apacheの設定に続いて、iptablesの設定も書いときます。
まずはファイルが無いので作成する
$ sudo vi /etc/sysconfig/iptables
開いたら以下を書いて閉じる。
※可読性をよくするためにスペースを入れるけど、実際に書く時はスペースなしで。
*filter #このホストに対して入ってくるパケットを通過させるか遮断させるかを設定 #すべてのパケットを許可([0:0] : 「パケットカウンタ:バイトカウンタ」) :INPUT ACCEPT [0:0] #このホストを経由するパケットに対しての設定 :FORWARD ACCEPT [0:0] #このホストから送られるパケットに対する設定 :OUTPUT ACCEPT [0:0] # ユーザ定義チェーン :RH-Firewall-1-INPUT - [0:0] #「-j」オプション:あるチェインを別チェインにジャンプさせる. # ここではINPUTチェインを、ユーザー定義チェインにジャンプさせることで、INPUTとFORWARDチェインで入ってくるパケットをユーザー定義チェインでチェックさせる。 -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT # ループバック(lo)は通信を許可する。 -A RH-Firewall-1-INPUT -i lo -j ACCEPT # pingで疎通確認したいからICMPも通信を許可する。 -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT #「-p」に続けて番号を入力することで、プロトコルを指定 # 50(ESP)と51(AH)を許可 -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT #「5353」:マルチキャストDNS # これは専用のアドレス「224.0.0.251」にパケットを投げて応答をもらうことで、 # わざわざIPアドレスとホスト名の変換を行わなくてもマシンを認識できる仕組み。 -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT # ポート「631」は印刷データの送受信のためのプロトコルで、これも「ACCEPT」で許可。 -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT # この「state」はパケットの状態を指定するためのモジュール。 # 今回は「ESTABLISHED(過去に接続されたことがある)」または「RELATED(既存の接続に関係している)」と # 見なされた場合に、接続を許可する。 -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #「-m tcp」でtcpモジュールを有効にした後に、「-p tcp」でプロトコルがtcpの場合に限定する。 # SSH, HTTP, FTP1, FTP2, MYSQL -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT # 接続許可のルールに一致しなかったパケット。 # それらのパケットはすべて「REJECT(エラーパケット送信)」します。 #「–reject–with」はエラーパケットの種類を指定するためのもので、 # 今回は「icmp-host-prohibited(ホストによって禁止されました)」というメッセージを送るように指定しています。 -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
設定が完了したらiptablesを再起動させます。
$ sudo /etc/rc.d/init.d/iptables restart