先日、RedHat上でのファイアウォール設定(iptables)を行ったのでやり方を書いておきます。
まずGUI画面を使ったインストール画面にて「ファイアウォール設定を使う」としてインストールを行います。その際、通過可能なサービス(httpやsmtpなど)を4つほど選択する箇所があります。とりあえず、SSHのみ通過としてインストールを進めます。
インストール完了後、以下の手順で通過させたいサービスのポート番号を設定します。
# vi /etc/sysconfig/iptables
[ファイル例]
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT – [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp –icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp –dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp –dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-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 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 110 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT
編集後、下記コマンドで上記設定を有効にします。
# /sbin/service iptables restart
下記のコマンドで設定を確認します。
# /sbin/iptables -L
アクセス元を限定することも可能です。例えばSSHを111.222.333.444からのみ許可する場合、
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp -s 111.222.333.444 –dport 22 -j ACCEPT
のような記述になります。
設定ファイルの記述を間違うとサーバルームに行くことになるので気を付けましょう!