[2] OSの設定
OSの設定においては、脆弱性リスク低減とパフォーマンス維持のために、不要なサービスを停止しましょう。
まずは以下のコマンドで稼働中のサービス一覧を出力します。
# chkconfig --list
本コマンドを実行すると一覧で0:から6: までのRunlevel で稼働しているサービスが出力されます。
※ Runlevelに関してはコチラを参照。
下記は出力サンプルです。Runlevel「3:on」のサービスがネットワーク有のマルチユーザーモードで稼働中のサービスとなります。
[root@localhost ~]# chkconfig --list
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iscsi 0:off 1:off 2:off 3:on 4:on 5:on 6:off
iscsid 0:off 1:off 2:off 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:off
restorecond 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
要件次第ですが、サービスを停止する場合の例を以下に記します。
-
FTPサーバを出力する場合
chkconfig --list vsftpd
-
FTPサーバを使用しない場合
chkconfig vsftpd off
-
iSCSIイニシエータを使用しない場合
chkconfig iscsid off
offにしたものは、次回のOS起動時から反映されます。動作しているサービスをすぐに停止するなら「service サービス名 stop」を実行してください。
なお、FTPサーバを使用したい場合は、以下のようなコマンドになります。
chkconfig vsftpd on
[3] FWの設定
Firewallの設定に関しては、まず基本として、不要なポートを開けないことが重要です。さらに、攻撃される機会を減らすため、SSHなどの接続元IPやネットワークが限定できるものは限定します。
また、「よく判らないからFW機能を無効にする」というのはおすすめしません。なぜなら、FWを無効にすると、デフォルトで動いているサービスで、かつポートをListenしているものがあると、そこへ誰でもアクセスできでしまいます。すなわち、悪意を持つ攻撃者に攻撃できる機会を与えてしまうことになります。
- 設定ファイル : /etc/sysconfig/iptables
以下では、最低限設定したほうが良いと思うものを挙げておきます。
まず、デフォルトでは以下のように22番だけどこからでも接続できる状態で開いています。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
この行を接続元IPやネットワークを指定して制限するように修正します。
たとえば、IP 192.168.1.100/32とネットワーク 10.0.0.0/24からのみ許可するなら以下のようになります
-A INPUT -s 192.168.1.100/32 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 10.0.0.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
HTTP、HTTPS だけ開けるなら上記の行の下に下記を追加します。
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
修正・追加を行った後、以下のコマンドで設定を反映します。
iptables-restore < /etc/sysconfig/iptables
注意してほしいのは、「service iptables restart」で反映しようとすると、「/etc/sysconfig/iptables」に誤って無効な設定を書いてしまい、設定エラーがあった際、フルオープン状態でiptablesが起動してしまいます。言うまでもなく、とても危険です。
一方、「iptables-restore」なら設定エラーがあると、エラーになって反映されず、以前の設定内容のまま iptables が動き続けるので安全です。