この記事では、CentOS 6(ここでは6.9)でファイアウォール(iptables)を初心者でも簡単に設定する方法を解説します。
通常のレンタルサーバー(共有サーバー)と違い、自前のサーバーやVPSサーバーはファイアウォールの設定を自分で行う必要があります。運用するサーバーの特徴をしっかり理解し、正しい設定を行いましょう。
Linuxの操作に慣れた人であればiptablesの設定は特に何てことのない作業です。特にポートを開けるくらいであれば、以下のコマンドとサービスの再起動を行うだけです。
$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
ただ、Linux初心者やコマンド操作に抵抗がある人はiptablesに抵抗がある人が多いのではないでしょうか。ここから『system-config-firewall』という設定ツールを使って簡単に設定する方法を説明していきます。
設定手順
現在の設定を確認するため以下のコマンドを実行します。
$ sudo iptables -nL
設定一覧が表示されます。初期状態であれば以下のような状態が一般的です。WebサーバーやDNSサーバーなど、構築したいサーバーに必要なポートは開き、それ以外は閉じておく必要があります。
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
iptablesをウィザードで設定するための『system-config-firewall』のパッケージをインストールします。
$ sudo yum -y install system-config-firewall
続いて、パッケージの実行に必要なサービスを起動します。このサービスが起動していない場合、system-config-firewallを実行するとエラーになります。
$ sudo service messagebus start
$ sudo chkconfig messagebus on
以下のコマンドで実行します。
$ sudo system-config-firewall
ファイアウォールの設定画面が表示されます。ここではキーボードの[Tab]で各項目を移動、[スペース]で選択、[Enter]で決定を行います。まず始めに、[ファイアウォール]トラベルが付いたチェックボックスにスペースでチェックを入れます。その後、タブで移動して[カスタマイズ]でEnterを押します。

開放したいサービスを選びます。

サーバーの用途によってチェックを付けるサービスが異なります。以下を参考にしてみてください。
- FTP:FTPサーバーの場合
- SSH:どんなサーバーでも(ポートを変更した場合は次の画面で設定)
- メール(SMTP):どんなサーバーでもチェック
- DNS:DNSサーバーの場合
- www(HTTP):Webサーバーの場合
- 安全なwww(HTTPS):Webサーバーの場合
- SSL上のIMAP:メールサーバーの場合
- SSL上のPOP-3:メールサーバーの場合
前項でなかったポートを開放したい場合はこちらから設定します。[<追加>]にカーソルを合わせてEnterを押します。

ポートとプロトコルを入力します。

ここではNTPを設定しますUDPの123番を指定しましょう。範囲してい場合は[10-20]のようにハイフンで繋いで指定します。SSHのポート番号を変えている場合、ここでTCPのプロトコルと変更したポート番号を入力します。全て追加したら[OK]にカーソルを当ててEnterを押します。
追加したポートが一覧に表示されます。問題なければ[転送]にカーソルを当ててEnterを押します。再度[<追加>]を選択することでポートを追加することができます。

信頼したインターフェイスは特に設定せずに[転送]を選択します。

マスカレーディングは特に設定せずに[転送]を選択します。

ポートフォワーディングは特に設定せずに[転送]を選択します。

pingによるサーバーの死活監視を行うため[エコー要求(ping)]にチェックを入れます。必要がなければそのまま[転送]を選択します。

カスタムルールも初期では設定しなくてもOKです。[閉じる]を選択します。

最初の画面に戻るので[OK]を選択してEnterを押します。

警告が表示されます。[はい]を設定すると設定が反映されます。取りやめたい場合は[いいえ]を選択しましょう

設定が反映されたか確認するため以下のコマンドを実行します。追加した設定が加わっていれば完了です。
$ sudo iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
REJECT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8 reject-with icmp-host-prohibited
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 #追加した設定
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443 #追加した設定
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25 #追加した設定
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:123 #追加した設定
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination