すごく基本的なiptablesの設定

iptablesの使い方と最低限の設定

環境
・CentOS release 6.5 (Final)
・iptables.x86_64

大原則の考え方

  • 全ての外部からの通信を通さない。
  • 逆に、外へ出て行く通信は全て通す。
  • その状態から指定した通信のみを許可して行く。
  • 今回の初期設定で許可するのは以下
  • 自ホストからの通信
  • 外からのping
  • 外からのssh

いわゆるホワイトリスト方式というやつです。

手順

現状の確認

1
2
    $iptables list
 

次に現状を保存します。

そのままファイルを作成してもいいのですが、iptablesの設定の保存の仕方です。

service iptables save

1
service iptables save

/etc/sysconfig/iptablesは存在がしませんので、一から作ってもいいのですが、個人的には面倒なので現状を保存したあとにそれを書き変えてます。

外からの通信(INPUT,FORWARD)を全て遮断。出て行く通信(OUTPUT)は許可

// vim /etc/sysconfig/iptables
:INPUT DROP[0:0]
:FORWARD DROP[0:0]
:OUTPUT ACCEPT[0:0]

1
2
3
4
5
   // vim /etc/sysconfig/iptables
:INPUT DROP[0:0]
:FORWARD DROP[0:0]
:OUTPUT ACCEPT[0:0]
 

すでに確立済みの通信は通す

既に確立済みなら全て通す。

-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

1
2
A INPUT m state state ESTABLISHED,RELATED j ACCEPT
 

pingは通す

プロトコルがICMPなら通す。

-A INPUT -p icmp -j ACCEPT

1
2
A INPUT p icmp j ACCEPT
 

ループバックは通す。

-A INPUT -i lo -j ACCEPT

1
2
A INPUT i lo j ACCEPT
 

SSHを通す

他ホストからsshは行うので、宛先が22番ポートなら通す。

-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT

1
2
A INPUT m state state NEW m tcp p tcp dport 22 j ACCEPT
 

その他のサービスでポートを空けるには、上記の書き方で

// HTTPの場合
-A INPUT -m –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

全体像

filter
:INPUT DROP [0:0]
:FORWARD cheap jerseys DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
COMMIT

1
2
3
4
5
6
7
8
9
10
filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
A INPUT m state state ESTABLISHED,RELATED j ACCEPT
A INPUT p icmp j ACCEPT
A INPUT i lo j ACCEPT
A INPUT m state state NEW m tcp p tcp dport 22 j ACCEPT
COMMIT
 

更新したら再起動

/etc/init.d/iptables restart

1
2
/etc/init.d/iptables restart
 

個人的にはこんな感じで運用してます。

:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A INPUT shipping -p icmp -j ACCEPT
-A are INPUT -i lo -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A INPUT -m state –state NEW -m cheap mlb jerseys tcp -p tcp –dport 80 -j wholesale jerseys China ACCEPT
-A INPUT just -m state –state NEW -m tcp -p tcp –dport 443 -j ACCEPT
-A wholesale nba jerseys INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 3000 -j ACCEPT
-A INPUT -j REJECT –reject-with icmp-host-prohibited
-A FORWARD -j REJECT –reject-with icmp-host-prohibited
COMMIT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state state NEW -m tcp -p tcp dport 22 -j ACCEPT
-A INPUT -m state state NEW -m tcp -p tcp dport 80 -j ACCEPT
-A INPUT -m state state NEW -m tcp -p tcp dport 443 -j ACCEPT
-A INPUT -m state state NEW -m tcp -p tcp dport 3306 -j ACCEPT
-A INPUT -p tcp -m tcp  dport 3000 -j ACCEPT
-A INPUT -j REJECT reject-with icmp-host-prohibited
-A FORWARD -j REJECT reject-with icmp-host-prohibited
COMMIT

SNSでもご購読できます。

コメントを残す

*