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の部分は必ず、全て同じ文字列にすること
バーチャルホスト
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を再起動