各種サーバの設定ファイルの書式チェックの方法

ALL
スポンサーリンク

以前、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チェックする方法 | フクロウの目

コメント