iptables の設定

カーネルパラメータの設定
 別セグメントへのパケットの転送を許可する(IPv4

# echo 1 > /proc/sys/net/ipv4/ip_forward
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1

カーネルパラメータの確認

# sysctl -p

・rsyslog設定

# vi /etc/rsyslog.conf
kern.debug   /var/log/iptables.log
※dubugログ以上のiptablesのログ(つまり全てのiptablesのログ)を /var/log/iptables.log に出力する

iptables ルールの確認

# iptables -L -t [ filter | nat | mangle ]
※引数なしの場合は filter テーブルのルールが表示される

・ルール設定例

# iptables -t filter -A INPUT -s 192.168.0.0/24 -j ACCEPT
# iptables -t filter -A INPUT -s 192.168.100.0/24 -j ACCEPT

# iptables -t filter -A FORWARD -s 192.168.0.0/24 -d 192.168.100.0/24 -j ACCEPT
# iptables -t filter -A FORWARD -s 192.168.100.0/24 -d 192.168.0.0/24 -j ACCEPT

# iptables -t filter -A OUTPUT -d 192.168.0.0/24 -j ACCEPT
# iptables -t filter -A OUTPUT -d 192.168.100.0/24 -j ACCEPT

# iptables -t nat -A PREROUTING  -i tun0 -j DNAT -d 192.168.100.100 --to 192.168.0.100
# iptables -t nat -A PREROUTING  -i tun0 -j DNAT -d 192.168.100.101 --to 192.168.0.101
# iptables -t nat -A PREROUTING  -i tun0 -j DNAT -d 192.168.100.105 --to 192.168.0.105
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT -s 192.168.100.0/24 --to 192.168.0.102

【ポリシー】
※OpenVPNサーバにて 192.168.100.0/24(仮想セグメント)から 192.168.0.0/24(物理セグメント)に疎通するためのポリシー。
 VPNクライアントは 192.168.100.100/32 にアクセスし、OpenVPNサーバでSrcNAT変換とDstNAT変換して 192.168.0.100/32 に転送する。

192.168.0.0/24, 192.168.100.0/24 からの受信を許可
192.168.0.0/24, 192.168.100.0/24 への送信を許可
192.168.0.0/24 <-> 192.168.100.0/24 のパケット転送を許可
tun0 が受信した送信先が 192.168.100.100/32 のパケットは送信先を 192.168.0.100/32 に書き換える(DstNAT)
tun0 が受信した送信先が 192.168.100.101/32 のパケットは送信先を 192.168.0.101/32 に書き換える(DstNAT)
tun0 が受信した送信先が 192.168.100.105/32 のパケットは送信先を 192.168.0.105/32 に書き換える(DstNAT)
送信元が 192.168.100.0/24 のパケットは、送信元を 192.168.0.102 に書き換えて eth0 から送信する(SrcNAT)

・ログ出力ルール設定

# iptables -t filter -A INPUT -j LOG --log-prefix "[IPTABLES_INPUT]" --log-level [ info | debug ]
※ログ出力したいルールの前段に設置すること
※設定しない場合は warn レベル以上がログ出力される

・特定ルールの削除

# iptables --line-numbers -L -t [ filter | nat | mangle ] 
# iptables -t nat -D INPUT 1
※ --line-numbers オプションでルール番号を調べて、
 -D オプションでテープル・チェーン・ルール番号を指定して削除する

・ルールの全削除

# iptables -F -t [ filter | nat | mangle ] 
※ -t オプションなしの場合は filter テーブルのルールが削除される

・ユーザ定義チェーンの削除

# iptables -X
※ユーザ定義のチェーンを全削除する

・設定の保存

# iptables-save > /etc/sysconfig/iptables

・設定のバックアップ

# iptables-save > /etc/sysconfig/iptables.bak

・設定のリストア

# iptables-restore < /etc/sysconfig/iptables.bak