ネットワークエンジニア系ブログ。エンターテイメント、おすすめ映画、本、キッズ系などお役立ち情報を紹介!

GOISBLOG

サーバー技術

【CentOS】IPtablesの使い方

投稿日:2014年7月13日 更新日:

CentOSでファイアーウォールというかセキュリティを強化するため、IPtablesをいじくったのでそん時のメモです。

あんまりガチガチに設定しすぎると大変なことになるので、最低限度の知識はもって、おいた上での大したことのない設定例です。

iptablesってアクセスリストと同じです

じぶんはネットワーク(土管屋さん)出身なので、これってアクセスリストでしょってのが最初の感想です。
結局はどNW機器も考え方は同じなんですねってことです。

それではまずは、iptablesの確認です。

# iptables -nvL --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     362K   47M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2      430 15684 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
3       48  1865 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
4        0     0 ACCEPT     tcp  --  *      *       10.1.11.128/25       0.0.0.0/0           state NEW tcp dpt:22
5        1    52 ACCEPT     tcp  --  *      *       172.17.24.0/24       0.0.0.0/0           state NEW tcp dpt:22
6       16  1208 ACCEPT     tcp  --  *      *       192.168.1.0/24       0.0.0.0/0           state NEW tcp dpt:22
7    26584 3497K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 152 packets, 20576 bytes)
num   pkts bytes target     prot opt in     out     source               destination

上記の設定はicmp(ping疎通)と、3つのセグメント(アドレス10./172./192)でのssh(port 22)での通信は許可し、それ以外の通信はすべて落とすぜ!

という設定になっとります。

また、一番左にあるのは設定番号。
アクセスするパケットは1番から順に確認されていきます。どこにも引っかからないパケットは最後は捨てられます(REJECT)って感じです。

簡単に言うとこんな感じ。

そして、実際に書かれている設定を確認するのが以下のコマンドです。

# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 10.1.11.128/25 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 172.17.24.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
スポンサーリンク


新たにIPtablesを追加する

それでは、実際に設定を追加してみます。

上記で説明したように、普通に設定をしちゃうと、リストの一番最下位に来てしまい、すべて落とされているので、設定が反映されません。

# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

なので、以下のような設定で、上記で確認した設定番号を指定して設定を追加します。

# iptables -I INPUT 4 -p tcp -m tcp --dport 80 -j ACCEPT

すると、以下のように設定は指定の番号に反映されます。

# iptables -nvL --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     362K   47M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2      430 15684 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
3       48  1865 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
4      678 35460 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
5        0     0 ACCEPT     tcp  --  *      *       10.1.11.128/25       0.0.0.0/0           state NEW tcp dpt:22
6        1    52 ACCEPT     tcp  --  *      *       172.17.24.0/24       0.0.0.0/0           state NEW tcp dpt:22
7       16  1208 ACCEPT     tcp  --  *      *       192.168.1.0/24       0.0.0.0/0           state NEW tcp dpt:22
8    26584 3497K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 152 packets, 20576 bytes)
num   pkts bytes target     prot opt in     out     source               destination

設定後、問題が無ければsaveコマンドを叩きます。
これをしないと、再起動した後などに設定が全部消えちゃうので、ご注意を!

# service iptables save
iptables: ファイアウォールのルールを /etc/sysconfig/iptable[  OK  ]中:

以上です。

この記事が気に入ったら
いいね!しよう

Twitter で
スポンサーリンク

-サーバー技術
-,

Copyright© GOISBLOG , 2016 AllRights Reserved.