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

English version of this article

How to set iptables to allow communication from a specific IP address only with a specific port number

前へ

愛媛県伊予市双海の菜の花の見どころスポット「閏住」の菜の花が綺麗だった