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