綾小路龍之介の素人思考

サーバのをiptablesでNATルータ化する

/etc/sysctl.conf または /etc/sysctl.d/*.conf を編集してパケット転送を許可 (net.ipv4.ip_forward = 1)。iptables の nat テーブル、POSTROUTING チェインに MASQUERADE を設定。プライベートアドレスを WAN に出さないように設定 (3 行)。ローカルホストアドレスを WAN に出さないように設定。

# echo net.ipv4.ip_forward=1 >> /etc/sysctl.d/local.conf
# iptables -t nat -A POSTROUTING -j MASQUERADE
# iptables -A OUTPUT -o eth0 -d 10.0.0.0/8     -j DROP
# iptables -A OUTPUT -o eth0 -d 176.16.0.0/12  -j DROP
# iptables -A OUTPUT -o eth0 -d 192.168.0.0/16 -j DROP
# iptables -A OUTPUT -o eth0 -d 127.0.0.0/8    -j DROP

パケットが NAT テーブルを通って MASQUERADE されると、パケットは OUTPUT チェインにいく。このとき、distination はそのまま、source はサーバの WAN から見たアドレスに書き換え、という処理が行われるので (多分)。さて、ここまでの設定では FQDN で WAN に出れない。FQDN と IP アドレスの相互変換を行う DNS サーバに FQDN はついていない (多分) ので、クライアントの DNS サーバ設定は手作業でしておく。下のようにしてリゾルバの IP アドレスを確認できる。

cat /etc/resolv.conf

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2008-09-24T08:39:02+09:00
  2. Modified: 2008-09-24T07:06:57+09:00
  3. Generated: 2017-04-05T23:09:35+09:00