Linux勉強(DNSサーバ、Webサーバの設定)

chkconfig オプション サービス名 on/offで、Linux起動時にサービスが自動で起動するかどうかを設定できる  

サービス名例:httpd,named

DNSサーバ

DNSサーバの構築に必要なbind,caching-nameserverを入れる 

bindの設定

まず/etc/resolv.confでDNSをルータに向ける (自分に向けるのはちゃんと設定ができてから)

 設定ファイルは/etc/named.conf

 listen-on port 53の127.0.0.1の後ろに自分のIPアドレスを追記

 allow-queryのlocalhost;となっている部分を所属している所で使えるIPの範囲に変更(bindを使用する範囲)

viewのmatch-clientsの{}の中をanyに変更 

後ろの方に正引きの 

zone "ドメイン名";

  type master;

  file "ドメイン名.zone";

  allow-update{ none };

と逆引きの

zone "2.168.192.in-addr.arpa" {

  type masterl

  file "2.168.192.zone" ;

  allow-update{ none };

の2つを追記

named-checkconf でBINDの設定をチェックすることができる

zoneファイル 

次に、/etc/named/内にドメイン名.zoneファイルを作る

サンプルコードをコピーしてから編集すると楽

正引きのファイルに 

IN NS フルサーバ名.

IN  MX 10 フルサーバ名. 

A サーバのIPアドレス

ホスト名 IN A サーバのIPアドレス

router IN A ルータのIPアドレス

www  IN CNAME ホスト名等を追加

MXレコードは、メールを管理するドメインを管理するサーバのホスト名を返すもの

逆引きのファイルに

 IN NS ドメイン名.

 IPアドレスの第4オクテット IN PTR ドメイン名.を追加

serialの数字は、ファイルを変更する際に一番最初に数字を増加させる 

設定を変更したら、そのたびにnamedを停止させ、起動 

Webサーバ

Webサーバの構築に必要なhttpdを入れる
PHPを使えるようにするためにphp,php-cli,php-commonを入れる

ログファイルの場所

OSやソフトのログは/var/log/messagesに、システムのログは/var/logに

アクセスログは/var /log/httpd/access_log、

エラーログは/var/log/httpd/error_log

DIGEST認証

DIGEST認証は、ホームページに認証をかけることができる

 /etc/httpd/conf/httpd.confファイルの<Directory></Directory>で囲まれてない所に

<Directory "/var/www/html/secret">

  AuthType Digest

 AuthName "Secret Zone"

 AuthUserFile /etc/httpd/.htdigest

 Require user ユーザ名

</Directory>

を追加

その後にhtdigest -c /etc/httpd/.htdigest 'Secret Zone' ユーザ名と入力し、パスワードを設定

これで認証をかけることができる

Secret Zoneの部分は必ず、全て同じ文字列にすること

バーチャルホスト

/etx/httpd/conf/httpd.confを編集

NameVirtualHost *:80をコメントから外す

<VirtualHost *:80>

 ServerName バーチャルホストのフルサーバ名

  DocumentRoot /var/www/バーチャルホストのフルサーバ名

 ErrorLog /var/log/httpd/バーチャルホストのフルサーバ名_log

 CustomLog /var/log/httpd/バーチャルホストのフルサーバ名_accersslog

</VirtualHost>  

/etc/httpd/conf/httpd.confの中身で
CustomLog /var/log/httpd/www2.nakamura.suncom.local_access_logの後ろにcommonをつける
commonの意味は、ログの中身で何月何日に誰が何を見に来たとかの形式 

Apacheの起動、再起動、停止 

service httpd startでApache起動、startをrestartに変えれば再起動、stopに変えれば停止

DNS(ポート番号53)とHTTP(ポート番号)80をファイアウォールで許可する

DNSはtcpとudpの2種類を許可する、これをしないと、ほかのクライアントからDNSにアクセスできない

/etc/sysconfig/iptablesの中身で、
ほかの許可されているやつをコピペした後にポート番号の部分だけ変えてやればいい
許可した後は、サービスを停止させ、起動させる

その他 

 nslookupで特定のレコードを選択する場合は、
1、nslookup
2、ドメイン名入力
3、set q=MX 例としてMX
4、もう一度ドメイン名で出来る

LAN内のほかのクライアントからサーバへDNSを向けても名前解決が出来ない場合は、selinuxの設定を切る

 Apacheのバージョンを出さないようにする
/etc/httpd/conf/httpd.confの編集
ServerTokens OSをServerTokens Prodに変更し、httpdを再起動