CentOS6.4インストール後の初期設定

初期設定というよりは、設定するにあたっていろいろ邪魔になるので最終的にはここらのセキュリティー関係の設定は最後にちゃんとしておきましょう。特にiptablesは必須。
これらのSULinuxとiptablesを切ってその他の設定をしてしまいましょう。終わったらiptablesで丁寧にFWの設定をします。

1. SULinuxを無効化する

以下のコマンドを実行すると有効の場合は、Enforcingと表示されます。無効になっている場合は、Permissiveと表示されます。
# getenforce
有効になっていたら/etc/sysconfig/selinuxを編集します。
# vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
#SELINUX=enforcing ← コメントアウトか削除
SELINUX=disabled ← こちらを追加
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted

この設定をしてサーバーを再起動するとSULinuxが無効になっています。この場合は、getenforceを実行するとDisabledと表示されます。

iptablesを停止する

以下のコマンドでiptablesを停止させます。
# service iptables stop

iptablesの設定

設定内容はそのサーバーの用途に関わってくるのでいろいろあるわけですが、

  • localhostからの通信はすべて通す
  • 外部からのpingはすべて通す
  • 外部からのSSHはIPアドレスを限定(例:123.456.789.xxx)して通す
  • 外部からのhttpdはすべて通す
  • それ以外の外部からの通信は遮断
  • 外部へ出ていく通信はすべて通す

という簡単な設定をします。
FWは基本的にホワイトリスト方式が簡単でいいです。まずはすべての外部からの通信を遮断し必要な通信のみ許可します。以下のファイルで設定します。
# vi /etc/sysconfig/iptables
すべての通信を拒否・遮断する
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

確立済の通信は許可する
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
pingを通す
-A INPUT -p icmp -j ACCEPT
ループバック(localhost)を通す
-A INPUT -i lo -j ACCEPT
SSHは通してやる
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
httpは通してやる
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
全部設定するとこんな感じ
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
COMMIT

SSHはTCP Wrapperで制限してやる。hosts.denyですべてのssh通信を遮断し、hosts.allowで許可するIPアドレスのみを設定します。
# vi /etc/hosts.deny
sshd : all ← この一行を追加しすべてのsshアクセスを拒否

許可するIPアドレスを設定。許可するIPアドレスだけ追記してゆきます。
# vi /etc/hosts.allow
sshd : 123.456.789.xxx
sshd : xxx.xxx.xxx.xxx

TCP Wrapperは再起動とかいらなくて保存した時から有効になります。