Linux-PC実験室 2003/03/09  Home <<Back >>Next


Linuxルーター化計画
待ちに待ったADSLが自宅の山武町地域でサービス開始です。
まったく、ずいぶん待たされました。
さて、今回開通するのは、フレッツADSLです。ということは今までのISDNルーター環境からPPPOEのフレッツADSL環境に変わるため、PPPOEルーターが必要になります。

そこで、今日はLinux8.0サーバーをルーターとして機能させるため、DHCPサーバーを構築し、IPマスカレードさせることにした。この際だから、Linuxもインストールしなおして、最初からの設定しなおしということにしよう。

■用意したサーバー用パソコン
CPU Celeron 733MHz
M/B Intel815チップセット
HDD Maxtor 60GB
メモリ PC-133-512MB
LANボード 2枚用意
CD-ROM
FD 使わないのに付けてしまった
電源 特に音が静かなものを用意

■ネットワークのLAN接続状況

LinuxサーバーのLAN側IPを192.168.0.1とし、Windows機は192.168.0.2〜192.168.0.17をDHCPで利用することにする。
さらに、Linuxサーバーにiptable_natを利用したIPマスカレードを設定し、ルーターとして動作させる。

Linux8.0インストールとルーター設定
Linuxは、サーバー構成でインストールするが、後でファイルが足りなくて困るといけないから、すべてのファイルをインストールします。4.6GBのHDD領域が必要ですが、60GBのHDDを用意したので、ぜんぜん問題ありません。
(サーバ機能をすべて選択してインストールしてもOKでした)

LANカードは2枚差して、eth0をWAN側、eth1をLAN側として以下の様に設定します。
[メインメニュー]→[システム設定]→[ネットワーク]を開き、[編集(E)]をクリックし、デバイスの設定をします。
デバイス IPアドレス サブネットマスク デフォルトゲートウェイ
eth0 192.168.1.1
eth1 192.168.0.1 255.255.255.0


■インターネットの接続
この後、[メインメニュー]→[システムツール]→[インターネット設定ウィザード]をクリックし、[xDSL]の接続設定を行う。
Mozillaを起動して、Webページが開くかどうか確認する。

再度[メインメニュー]→[システム設定]→[ネットワーク]を開き、[デバイス(複数)]のタブは、下記のようになっている。
プロファイル 状態 デバイス ニックネーム タイプ
■(←チェック) 起動中 eth0 eth0 Ethernet
起動中 eth1 eth1 Ethernet
起動中 ppp0 so-net xDSL

[ネットワーク設定]の[ホスト]タブをクリックし、以下追加します。
アドレス 192.168.0.1 eth1のアドレス
ホスト名 linux.kin.sytes.net NO-IPで取得したドメイン名
エイリアス linux 適当なホスト名

[DNS]タブを開き、ホスト名を入力します。
ホスト名 linux.kin.sytes.net

ここで一度再起動します。


■ファイアーウォールの設定
[メインメニュー]→[システム設定]→[Terminal]をクリックして起動します。
[lokkit]と入力し、lokkitを起動します。
Security Levelを[Medium]にして、[Customize]ボタンを押します。
Trusted Devicesを[eth1]にチェックを入れて、[Allow incoming]から実現したいサービスを選択します。
[OK]→[OK]をクリックして設定完了。


■DHCPサーバーの構築
/etc/sysconfig/dhcpdを開いて、下記太字を追加する。
DHCPDARGS=eth1

テキストエディターで下記内容を記載したファイルを作成し、/etc/dhcpd.confとして保存する。
server-identifier kin.sytes.net;
option domain-name "kin.sytes.net";
option domain-name-servers 202.238.95.24,202.238.95.26;

#ddns-update-style ad-hoc;
ddns-update-style none;

shared-network NETVINE {
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 72000;

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.17;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
}
}
(so-netのフレッツADSLを使用したので、DNSサーバアドレスが202.238.95.24,202.238.95.26になっている)

テキストエディターで空のファイルを/etc/dhcpd.leasesとしてファイルを保存しておく。

[メインメニュー]→[サーバ設定]→[サービス]をクリックして開き、dhcpdを自動起動するようにチェックし、保存しておく。


■IPマスカレードの設定
ターミナルを起動し、[lsmod]コマンドで、iptable_natが起動しているのを確認する。(RedHatLinux8.0ではデフォルトで、ipchainsは動作していないので、iptable_natを利用する)
/etc/rc.d/rc.localファイルに以下の2行を書き込む。
### IP masq exec
/etc/rc.d/rc.ip-masq

[テキストエディタ]を起動して、下記を記述し、/etc/rc.d/rc.ip-masqとして保存する。(ファイルのオーナーはroot、ファイルの属性を755にしておく事)
#!/bin/sh
### LAN側:eth1 WAN側:ppp0 とする
### ■転送を許可するもの
###
### eth1 -> ppp0 Ping,DNS,WWW,POP3,SMTP,FTP
### eth1 <-> ppp0 既にコネクションを張って通信途中のパケット
###
### ■転送を拒否するもの
### 「転送を許可するもの」以外すべて

### モジュールをロード
echo " IP-masq Starting....."
/sbin/modprobe iptable_nat

### IPフォワーディングを有効にする(必修)
echo 1 > /proc/sys/net/ipv4/ip_forward

### 初期化 ###
### filter テーブル の FORWARD チェイン の中身を全削除(Flash)
### nat テーブル の POSTROUTING チェイン の中身を全削除(Flash)
iptables -t filter -F FORWARD
iptables -t nat -F POSTROUTING

### 条件とアクションの設定 ###
### サブネットからWAN側ネットワークへのIPマスカレード許可(MASQUERADE)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

### ポリシー設定 基本は通過拒否
iptables -t filter -P FORWARD DROP

### パケット通過許可設定
### コネクションを張ってデータ転送しているパケット(ESTABLISHED)の通過を許可、
### ftpのデータポートやICMPエラーのような既存の接続に関係しているものと判明したパケット(RELATED)の通過を許可
iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

### pingを許可
iptables -A FORWARD -i eth1 -p icmp -j ACCEPT

### DNS問い合わせを許可
iptables -t filter -A FORWARD -i eth1 -p udp --dport 53 -j ACCEPT

### wwwを許可
iptables -t filter -A FORWARD -i eth1 -p tcp --dport 80 -j ACCEPT

### Telnetの許可
iptables -t filter -A FORWARD -i eth1 -p tcp --dport 23 -j ACCEPT

### POPを許可(メール受信許可)
iptables -t filter -A FORWARD -i eth1 -p tcp --dport 110 -j ACCEPT

### SMTPを許可(メール送信許可)
iptables -t filter -A FORWARD -i eth1 -p tcp --dport 25 -j ACCEPT

### ftp通信用モジュールのロード(FTP許可)
iptables -t filter -A FORWARD -i eth1 -p tcp --dport 21 -j ACCEPT
/sbin/insmod ip_nat_ftp /sbin/insmod ip_conntrack_ftp 
(上記内容で、ppp0の部分は、ADSLモデムを利用しているため)
ひとまずここまで設定し、ルーターとして機能するようになりました。(^_-)v


今日はここまで!

2003/03/09  Home <<Back >>Next