今日もGolangの記事を投稿したかったのですが、急遽サーバー周りの設定をいじることになりましたので
そのTipsを参考までに投稿します。(サーバー管理は自己責任でやってください)
sshでの接続許可の設定なのですが、お客様都合でしばらくの間固定IPでの運用ができない状況に。。。
rsaの秘密鍵、公開鍵方式でsshするのが常套手段なのですが、
お客様側でそうした経験もないらしく。。。
さらにこのサーバは年明けそうそうにお役目を終了予定なので、あまり突っ込んだ設定も避けたいという事情も。
固定IPのみの接続を許可していたのであまり気にかけていなかったのですが、
いくつか気になった箇所もあり、
- SMTP postfixの設定変更
- response headerのApacheバージョンを隠蔽する
- response headerのPHPバージョンを隠蔽する
- hosts.allowの設定を変更する
という対策をしておきました。
後はfail2banのインストールなどでsshの不正アクセスを防げばしばらくは安全?。
固定IPが振り出され時点でhosts.allowを書き換えるので、それまでの一時しのぎですが。
少々確認に手間取ったのでメモ書き程度ですが参考になればと思います。
postfixの設定変更
今回のメールサーバーは送信のみ(送信専用)しか利用していない。
postfixの設定を確認する。
# vi /etc/postfix/main.cf
上記のコマンド(Viエディタ)でpostfixの設定ファイルを開く。
# SMTPサーバーの情報を表示しない smtpd_banner = ESMTP unknown # ユーザーの存在問い合わせに答えないようにする。 disable_vrfy_command = yes
を追記する。
編集が終わったら:wqして保存。
postfixをreloadする。今回触ったのはCentOS6.xなので下記コマンド。
# /etc/init.d/postfix reload
レスポンスヘッダのApacheバージョンの隠蔽
Apache2.4の設定
ソースコンパイルしてあったので、ディレクトリがyumでインストールした場合と異なる。
# vi /usr/local/apache2/conf/httpd.conf
httpd.conf内ではhttpd-default.confをコメントアウトし利用していないので
直接httpd.confへ追記した。(480行目付近)
# Various default settings #Include conf/extra/httpd-default.conf ServerTokens ProductOnly ServerSignature Off TraceEnable Off
Apacheはソースからコンパイルしたので下記で再起動する。
# /usr/local/apache2/bin/apachectl restart
yumからインストールした場合(CnetoOS6)は下記(今となってはなつかしの)コマンドで再起動。
# /etc/init.d/httpd restart
レスポンスヘッダのPHPバージョンの隠蔽
この点とっかかりに攻撃してくる可能性は大いにあります。
通常yumでインストールすると/etc/php.iniに設定ファイルがあります。
phpもソースコンパイルしたため、当方の環境では/usr/lib64/php.iniにファイルがありました。
各自の環境にあわせて確認してください。
vi /usr/lib64/php.ini
でファイルを開いて
expose_php = Off
とします。:wqでviを閉じます。
apacheの再読込か再起動をして設定を反映してください。
hosts.allowの設定を変更する
サーバーへアクセスしている事業所が移転のため固定IPでなくなった。
基本はhosts.denyでALL:ALLで全部拒否する。
hosts.allowで必要なIPまたはドメインを指定する。サーバーの再起動は特に必要なしです。
数年前に はじめて、このファイルを扱う際は指定方法がわからず。右往左往しました。
今回は国内のみのIPを許可し、海外のIPは受け付けないようにしました。
ALL : 127.0.0.1 #本来は固定IPのみ許可したほうが良い sshd : .jp vsftpd : .jp
192.168.0.とか途中で記述する方法
ドメインも.com .netとかで指定する方法
などいくつか指定方法はあります。
複数指定する場合は区切り文字は半角スペースにする。
設定に失敗すると自身もログインできなくなる場合もあります。作業時は必ずコンソールを2以上接続し、設定後のsshの接続テストを行なうようご注意ください。