iptablesで特定のIPアドレスからの通信を特定のポート番号のみで許可する設定方法
最近はあまり使われなくなっているかもしれないけれど、Linux OSのやや古いファイアウォールソフト「iptables」で特定のIPアドレスからの通信を特定のポート番号のみで許可する設定方法をまとめる。以下に、例としてCentOS 6のiptablesで「httpsプロトコル」(443番ポート)を開放する手順を説明する。
CentOS 6で特定のIPアドレスからの通信をポート443(https)のみ許可する設定を追加する手順
1. 現在のiptablesの設定を確認する。(これから追加する設定が設定済でないこと等を確認する。)
# iptables -L
2. iptablesに設定を追加する。
# iptables -A INPUT -p tcp -s 許可する特定のIPアドレス --dport 443 -j ACCEPT
例:「許可する特定のIPアドレス」が「192.168.2.10」の場合、以下のコマンドを実行する。
# iptables -A INPUT -p tcp -s 192.168.2.10 --dport 443 -j ACCEPT
3. iptablesの設定を保存する。
# /etc/init.d/iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
4. iptablesサービスを再起動し、設定を有効化する。
# /etc/init.d/iptables restart
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
5. iptablesの設定が変更されたことを確認する。
# iptables -L
iptablesに追加した設定を削除する手順も以下に記載する。
CentOS 6で特定のIPアドレスからの通信をポート443(https)のみ許可する設定を削除する手順
1. 現在のiptablesの設定を確認する。(これから削除する設定が存在することを確認する。)
# iptables -L
2. iptablesに設定を追加する。
# iptables -D INPUT -p tcp -s 許可する特定のIPアドレス --dport 443 -j ACCEPT
※設定追加時は「iptables -A」だったが、設定削除時は「iptables -D」となる。
例:「許可する特定のIPアドレス」が「192.168.2.10」の場合、以下のコマンドを実行する。
# iptables -D INPUT -p tcp -s 192.168.2.10 --dport 443 -j ACCEPT
3. iptablesの設定を保存する。
# /etc/init.d/iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
4. iptablesサービスを再起動し、設定を有効化する。
# /etc/init.d/iptables restart
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
5. iptablesの設定が変更されたことを確認する。
# iptables -L