Howto

ルータとしてのセットアップ(2)

ルータとして動作させるための手順その2です。まず、ルータとしてのセットアップ(1)を参照してルーティングを可能にしてください。

今回は、パケットフィルタとIPマスカレード、そしてローカルネットワーク用DHCPサーバの設定も記載します。

1. パケットフィルタ/IPマスカレード

iptables コマンドを使用します。まず以下の/etc/init.d/iptablesに以下の例ようなファイルを作成ます 。

#!/bin/sh
 
PATH=/bin:/usr/bin:/sbin:/usr/sbin
 
IPTABLES=/sbin/iptables
 
case "$1" in
start)
$IPTABLES -F
$IPTABLES -t nat -F
#------------------------------
# DEFAULT POLICY
#------------------------------
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
#------------------------------
# INPUT
#------------------------------
# icmp, web, ssh, pop, dns
$IPTABLES -A INPUT -p icmp -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 110 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 53 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 53 -j ACCEPT
# from localhost, local network
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -i eth0 -s 192.168.10.0/24 -j ACCEPT
# after connection established
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#------------------------------
# FORWARD
#------------------------------
# deny 135, 137 - 139, 445
$IPTABLES -A FORWARD -p tcp --dport 135 -j DROP
$IPTABLES -A FORWARD -p udp --dport 135 -j DROP
$IPTABLES -A FORWARD -p tcp --dport 137:139 -j DROP
$IPTABLES -A FORWARD -p udp --dport 137:139 -j DROP
$IPTABLES -A FORWARD -p tcp --dport 445 -j DROP
$IPTABLES -A FORWARD -p udp --dport 445 -j DROP
# masquerade
$IPTABLES -t nat -A POSTROUTING -o eth1 -s 192.168.10.0/24 -j MASQUERADE
#------------------------------
# OUTPUT
#------------------------------
# deny 135, 137 - 139, 445
$IPTABLES -A OUTPUT -p tcp --dport 135 -j DROP
$IPTABLES -A OUTPUT -p udp --dport 135 -j DROP
$IPTABLES -A OUTPUT -p tcp --dport 137:139 -j DROP
$IPTABLES -A OUTPUT -p udp --dport 137:139 -j DROP
$IPTABLES -A OUTPUT -p tcp --dport 445 -j DROP
$IPTABLES -A OUTPUT -p udp --dport 445 -j DROP
echo "done."
;;
esac
 
exit 0

次に、起動時に実行されるよう、以下のコマンドを実行します。

[armadillo ~]# update-rc.d iptables start 90 2 3 4 5 .

2. DHCPサーバ

aptでdhcpサーバをインストールします。

[armadillo ~]# apt-get install dhcpd

/etc/dhcpd.confを編集し、192.168.10.100 〜 254をDHCPで割り当てるIPアドレスに指定します。また、ルーターのアドレスに192.168.10.1を指定します。

...
subnet 192.168.10.0 netmask 255.255.255.0;
{
  range 192.168.10.100 192.168.10.254;
  option broadcast-address 192.168.10.255;
  option routers 192.168.10.1;
  option subnet-mask 255.255.255.0;
}
...

最後に/etc/default/dhcp を編集して、eth0デバイスに対してDHCPを有効にするように設定します。

INTERFACES="eth0"

これでローカルネットワーク側に接続した機器が、グローバルネットワーク側にアクセスできると思います。