CentOS6 iptables 設定について( ● ´ ー ` ● )
iptables って結構, 奥が深くハマったので自戒を込めて
残しておきたいと思います。
iptables の中身を見ていきましょう♪
iptables の中身を見るには, iptables -L -n --line-number
というコマンドをたたくと見やすく表示してくれますよ♪
更に, -v オプションを付加すると更に詳細に表示されます
ここでは, 詳細に表示する -v を付加しています。
iptables中身
[root@localhost /]# iptables -L -n -v --line-number
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8
2 3 252 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 0
3 501 49301 ACCEPT all -- * * 192.168.1.0/24 0.0.0.0/0
4 0 0 ACCEPT tcp -- * * 192.168.1.0/24 0.0.0.0/0 tcp dpt:22
5 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
6 82 6251 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
7 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 335 packets, 38006 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
less /etc/sysconfig/iptables
で直接見たときの形式は, このような感じになっています。
iptablesファイルの中身
# Generated by iptables-save v1.4.7 on Sat Jun 30 23:12:40 2018
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [78:11824]
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j DROP
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Sat Jun 30 23:12:40 2018
要点というか書くルールについて説明していくよ♪
command
// まず行頭のルールから説明するね♪
iptables -I INPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -I INPUT -p icmp --icmp-type 0 -j ACCEPT
// ↑これは, ping 疎通確認のときに使用するのに必要になるんだよ♪
// ping は, 8, 0 を許可してやる必要があるんだ(ΦдΦ)
iptables -I INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport ssh -j ACCEPT
// ↑ こやつらは, 自ネットワークからの ssh 接続と全てのプロトコルへのアクセスを許可する設定だよ。
// httpd のポート開放とかいちいち気にしなくてすむんだよ
iptables -I INPUT 5 -i lo -j ACCEPT
iptables -I OUTPUT -o lo -j ACCEPT
// ↑ ローカルループバックといって内部でしようする通信を許可するって意味なんだ
// INPUT と OUTPUT 両方で許可しているよ
iptables -I INPUT 6 -m state --state ESTABLISHED,RELATED -j ACCEPT
// ↑ これは, 接続済(確立済)で関係する通信を許可するっていう奴なんだすごく重要な奴
// これが, 行末(一番最後の行)に来るようにしてあげないとネット接続できなくなるを
// 重要 この場合だと, ESTABLISHED,RELATED ルールが, 全拒否ルールの上にくるようにします
iptables -I INPUT 2 -s 0.0.0.0/0 -j DROP
// こいつで, INPUT を全て拒否するんだよ
// これないと全て許可されちゃうからね
重要 この場合だと, ESTABLISHED,RELATED ルールが, 全拒否ルールの上にくるようにします
iptables -I INPUT 2 とか数字の部分は, ルールの挿入位置をしめしているので各自の環境に合わせてねo(`ω´)o
192.168.1.0/24 も各自の環境に合わせて設定してねε-(´ωノ|