以前、postfix、apache の設定ファイルのチェック方法を紹介しました。
今回はそれに加えて、sshd、dovecot、bind、rsyslogd の方法も紹介します。
なお、説明は CentOSの場合です。
設定ファイルの文法チェック(postfix、apacheの場合) パソコン鳥のブログ
apache
/usr/sbin/httpd -S
出力の最後に「Syntax OK」と出ればOKです。
エラーチェックは設定項目名、設定内容ともに行われるようです。
下記記述があると、いずれもエラーになります。
ServerRoot2 "/etc/httpd" # 存在しない項目名 ServerRoot2 ServerRoot "/etc/httpd2" # 存在しないディレクトリ /etc/httpd2
sshd
/usr/sbin/sshd -t
何も出なければOKです。
エラーチェックは設定項目名、設定内容ともに行われるようです。
下記記述があると、いずれもエラーになります。
HostKey2 /etc/ssh/ssh_host_rsa_key # 存在しない項目名 HostKey2 HostKey /etc/ssh/ssh_host_rsa_key2 # 存在しないファイル ssh_host_rsa_key2
postfix
postfix check
何も出なければOKです。
エラーチェックは設定項目名には行われないようです。
下記記述はエラーになりません。
queue_directory2 = /var/spool/postfix # 存在しない項目名 queue_directory2
dovecot
doveconf -n
dovecotの設定内容を出力します。
問題無ければ、デフォルトと異なる設定だけが出力されます。
設定項目名にミスがあれば、エラーが表示されます。
但し、設定項目の内容のチェックまではされないようです。
例えば、下記のように存在しない設定項目名(ここでは ssl_cert2)を指定するとエラーになります。
ssl_cert2 = </etc/pki/tls/certs/server.crt
設定項目があっていれば、指定したファイル server.crt2 が存在しなくてもエラーにはなりません。
ssl_cert = </etc/pki/tls/certs/server.crt2
bind
named-checkconf、named-checkzone の2つです。
named-checkconf は named.conf のチェックを行います。
named-checkconf -t /var/named/chroot /etc/named.conf
何も出力がなければOKです。
設定項目名にミスがあれば、エラーが表示されます。
場合により設定項目の内容もチェックされるようです。
例えば下記の場合はエラーになります。
directory "/var/named2"; #存在しないディレクトリ listen-on2 port 53 { any;}; #存在しない項目名
下記の場合、example.com.zone2が存在しなくてもエラーになりませんでした。
zone "example.com" in { type master; file "example.com.zone2"; };
named-checkzone はゾーンファイルのチェックを行います。
named-checkzone ゾーン名 ゾーンファイル名
次のように実行します。
named-checkzone example.com example.com.zone
エラーが無ければ、出力の最後に「OK」が表示されます。
rsyslogd
rsyslogd -N1
出力の最後に「rsyslogd: End of config validation run. Bye.」と出ればOKです。
エラーの場合は、エラーとともに、出力の最終行が「rsyslogd: CONFIG ERROR:」で始まる行が出力されます。
下記で始まる Warnning が出た場合は、-c5 オプションを指定します。
rsyslogd: WARNING: rsyslogd is running in compatibility mode.
rsyslogd -N1 -c5
出力の最後に「rsyslogd: End of config validation run. Bye.」と出ればOKです。
参考
設定ファイルの文法チェック(postfix、apacheの場合) パソコン鳥のブログ
named-checkconf コマンドで BIND の設定をチェック
コラム【Linux道場 ネットワーク編】第6回 – TCPWrappers(hosts.allow,hosts.deny)とSSHの公開鍵認証について
rsyslog でconfigチェックする方法 | フクロウの目
コメント