back

IPマスカレード: ノートPCからも外へつなぐのじゃ


IPマスカレードはプライベートネットワーク上のPCを外部ネットワークにつなぐために 使うっす。本来はもっといろいろできるものだけどここでは外につなぐことだけをする っす。じつのところDebian流のやり方はわからなかったっす。 ここではJFの Linux IP Masquerade mini HOWTOのやり方でやるっす。

IPマスカレードテスト

まず、IPマスカレードをやってみるっす。
# echo 1 > /proc/sys/net/ipv4/ip_forward
# ipchains -P forward DENY
# ipchains -A forward -s 192.168.0.1/255.255.255.0 -j MASQ
このあとノートPCからインターネットが見れたら成功っす。 そのままこの設定を/etc/ipchains.rulesに保存するっす。
# ipchains-save > /etc/ipchains.rules

/etc/sysctl.conf

つぎにsysctlで起動時に/proc/sys/net/ipv4/ip_forwardが設定されるようにするっす。 /etc/sysctl.confに以下を追加するっす。
net/ipv4/ip_forward=1

/etc/init.d/packetfilter

起動スクリプトpacketfilterを作るっす。
#!/bin/sh
[ -f /etc/ipchains.rules ] || exit 0

case "$1" in
start)
  echo -n "Turning on packet filtering: "
  /sbin/ipchains-restore < /etc/ipchains.rules || exit 1
  echo "."
  ;;
stop)
  echo -n "Turning off packet filtering: "
  /sbin/ipchains -X
  /sbin/ipchains -F
  /sbin/ipchains -P input ACCEPT
  /sbin/ipchains -P output ACCEPT
  /sbin/ipchains -P forward ACCEPT
  echo "."
  ;;
*)
  echo "Usage: /etc/init.d/packetfilter {start|stop}"
  exit 1
  ;;
esac
exit 0
Debianのパッケージルールではstartとstop以外にもrestart、reload、 force-reloadを作る必要があるけどとりあえずこれだけあれば大丈夫っす。 作ったらrcconfで起動時に起動するよう設定するっす。

modules

デフォルトの設定だけではftp、irc、realplayerとかがプライベート ネットワークからはつながらないっす。そこでそうするための カーネルモジュールをロードするようにするっす。
Debianでは/etc/modulesに起動時にロードするモジュールを1行ずつ書き込むこと になってるっす。
ip_masq_ftp
ip_masq_irc
ip_masq_raudio
これで再起動するたびに自動でモジュールが読み込まれるっす。 再起動してノートPCからインターネットでftp、realplayer、ircが つながったらOKっす。 これでダイアルアップルータの設定は終りっす。

追記

だいたい流儀がわかったっす。 /etc/networks以下でやるといいっす。 ip_forwardは/etc/network/optionsの「ip_forward=no」を「ip_forward=yes」に するっす。
ipchainsの設定は/etc/network/interfacesに以下を追加するっす。 これで起動時に読み込むっす。
up ipchains -F
up ipchains -P forward DENY
up ipchains -A forward -s 192.168.0.0/255.255.255.0 -j MASQ
/etc/init.d/pacetfilter、/etc/ipchains.rulesはいらないし /etc/sysctl.confに書かなくてもいいっす。 さらにipmasqというパッケージがあることも発見したっす。 でも使い方がわからないっす。

back
Copyright (c) 2000 ichiyama ryoichi, All Rights Reserved.