OpenBSD - PFでNATボックス
- はじめに
- OpenBSDのPFを利用したNATボックスの構築について解説します。
以下の環境を前提としています。
OpenBSD:3.1
外側(グローバル)インターフェース:le1(1.1.1.1)
内側(プライベート)インターフェース:le0(192.168.0.254/24)
- PFの有効化
# vi /etc/rc.conf
pf=YES
pf_rules=/etc/pf.conf
nat_rules=/etc/nat.conf
pflogd_flags="-s 256"
- FireWallルールの設定
- 外部からやってくるプライベートIPルーティングやブロードキャストパケットのブロック等、
パケットフィルタリングルールを/etc/pf.confへ記述します。
# vi /etc/pf.conf
block in all
block in quick on le0 from 10.0.0.0/8 to any
block in quick on le0 from 172.16.0.0/12 to any
block in quick on le0 from 192.168.0.0/16 to any
block in quick on le0 from 255.255.255.255/32 to any
pass in all
pass out all
- 内側から外側へ通過させるNATルールを/etc/nat.confへ記述します。
# vi /etc/nat.conf
nat on le0 from 192.168.0.0/24 to any -> 1.1.1.1
rdr on le0 proto tcp from any to any port 21 -> 127.0.0.1 port 8081
- パケットフォワーディングの有効化
# vi /etc/sysctl.conf
net.inet.ip.forwarding=1
vm.swapencrypt.enable=1
net.inet.tcp.recvspace=65535
net.inet.tcp.sendspace=65535
kern.somaxconn=1024
- ftp-proxyの有効化
- クライアントが外部へFTP接続する際のプロキシ設定を/etc/inetd.confへ記述します。
# vi /etc/inetd.conf
8081 stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy -w
- 2枚目のインターフェースを手動登録
# vi /etc/rc.local
/sbin/ifconfig le1 1.1.1.1 netmask 255.0.0.0
- 再起動
- 再起動して終了です。
# shutdown -r now
- TIPS
ログはデフォルトでは/var/log/pflog
ログの閲覧
# tcpdump -n -e -ttt -r /var/log/pflog
# pfctl -s info