[ CentOS/セキュリティ ]

iptables でファイアウォールを構築します。

インストール

インストール確認

[root@linux ~]# yum list | grep iptables
iptables.i386                            1.3.5-1.2.1            installed ←■ インストール済
iptables-ipv6.i386                       1.3.5-1.2.1            installed ←■ インストール済(ipv6用)
iptables-devel.i386                      1.3.5-1.2.1            base            
[root@linux ~]# rpm -qa | grep iptables
iptables-1.3.5-1.2.1 ←■ インストール済
iptables-ipv6-1.3.5-1.2.1 ←■ インストール済(ipv6用)
[root@linux ~]#

インストール

インストールされていなかった場合、インストールします。

[root@linux ~]# yum -y install iptables ←■ インストール
[root@linux ~]#
[root@linux ~]# chkconfig iptables on ←■ 自動起動をONにする
[root@linux ~]#
[root@linux ~]# chkconfig --list iptables ←■ 自動起動の確認
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@linux ~]#

iptables 設定確認

インストール時にファイアフォールを有効にした場合は以下のコマンドで設定内容が表示されます。

[root@linux ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
RH-Firewall-1-INPUT  all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
RH-Firewall-1-INPUT  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain RH-Firewall-1-INPUT (2 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere            icmp any
ACCEPT     ipv6-crypt--  anywhere             anywhere
ACCEPT     ipv6-auth--  anywhere             anywhere
ACCEPT     udp  --  anywhere             224.0.0.251         udp dpt:5353
ACCEPT     udp  --  anywhere             anywhere            udp dpt:ipp
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:smtp
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited
[root@linux ~]#

iptables 設定

編集前にファイルバックアップ

[root@linux ~]# cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.org

/etc/sysconfig/iptables の編集

[root@linux ~]# vi /etc/sysconfig/iptables  ← viエディタで編集する

# 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 -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#■↓ SSH
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT
#■↓ HTTP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
#■↓ FTP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
#■↓ FTP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
#■↓ SMTP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
#■↓ POP3
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
#■↓ HTTPS
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
#■↓ OP25B対策(サブミッションポート)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT
#■↓ MySQL(使用する場合)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
#■↓ PostgreSQL(使用する場合)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
#■↓ Webmin(使用する場合)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

ポート番号の範囲指定する場合
例) 50000番~50005番を設定する

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50000:50005 -j ACCEPT

iptables 起動・停止

起動

[root@linux ~]# /etc/rc.d/init.d/iptables start  ← iptables 起動
iptables ファイアウォールルールを適用中:                   [  OK  ]
[root@linux ~]#

停止

[root@linux ~]# /etc/rc.d/init.d/iptables stop  ← iptables 停止
ファイアウォールルールを適用中:                            [  OK  ]
チェインポリシーを ACCEPT に設定中filter                   [  OK  ]
iptables モジュールを取り外し中                            [  OK  ]
[root@linux ~]#

再起動

[root@linux ~]# /etc/rc.d/init.d/iptables restart  ← iptables 再起動
ファイアウォールルールを適用中:                            [  OK  ]
チェインポリシーを ACCEPT に設定中filter                   [  OK  ]
iptables モジュールを取り外し中                            [  OK  ]
iptables ファイアウォールルールを適用中:                   [  OK  ]
[root@linux ~]#

iptables 有効・無効

iptables を有効にするとは、OSの起動と同時にサービスを起動すること

iptables を有効にする

[root@linux ~]# chkconfig iptables on  ← iptables サービスを有効
[root@linux ~]#

iptables を無効にする

[root@linux ~]# chkconfig iptables off  ← iptables サービスを無効
[root@linux ~]#

設定確認

[root@linux ~]# chkconfig --list iptables
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@linux ~]#

良く使う使用ポート一覧

ポート番号サービス名説明
22SSHSSH デフォルト ポート番号を変更する場合は不要
2222SSHSSH カスタム
20FTP(データ)FTP デフォルト
21FTP(制御コマンド)FTP デフォルト
80HTTPHTTP デフォルト
443HTTPSHTTPS デフォルト
25SMTPメール送信
110POP3メール受信
587SMTPOP25B対策(サブミッションポート)
465SMTPSメール送信 SSL対応
995POP3Sメール受信 SSL対応
143IMAPメールIMAP受信
993IMAPSメールIMAPS受信
3306MySQLMySQL デフォルト
5432PostgreSQLPostgreSQL デフォルト
10000WebminWebmin デフォルト

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-05-19 (水) 00:00:00 (3166d)