IPマスカレードの設定(TurboLinux 7 WorkStation)

IPマスカレードについて( ipchains, iptables )

通常、1つの回線で2台以上のPCをインターネットに接続させるには、ルータ
を使用するのが簡単ですが、ルータ1台だけでは接続形態に制限が出てしまいます。
かといってコスト的には、ルータを何台も使うわけにはいきません。
そこで、LinuxのIPマスカレード機能を利用すれば、Linuxサーバー経由で接続できる
だけではなく、パケットフィルタリングにより、ファイヤーウォールの構築も可能になります。

TurboLinux 7 からは、今までの ipchains と新たに iptables が採用になりました。
両方同時には利用できませんので、今回は新しい iptables を利用します。

接続形態

引越しに伴い、1階と2階でPCを接続する必要性が生じたため、
1階のPCはルータに直接接続し、2階のPCはLinuxマシン経由でルータに接続しました。

NET.gif

taka ルータ を1階に設置し、 tabo(Linuxサーバー)以下を2階に設置。

Linuxサーバーの準備

IPマスカレードを利用するには、LinuxサーバーにNIC(ネットワークカード)
を2枚さし、認識させる必要があります。

NE2000互換PCIカードの場合

root login するか、su コマンドでスーパーユーザーになる。
viエディタまたはemacsで/etc/modules.conf を開き

alias eth0 ne2k-pci ---- VAN用カード
alias eth1 ne2k-pci ----LAN用カード

を追加・保存する

# depmod -a
# mkinitrd -f /boot/initrd `uname -r`
# lilo
再起する

# /usr/sbin/turbonetcfg を実行

広域ネットワーク設定
ホスト名: tabo
ドメイン名: hosoyama.dyn.to
検索ドメイン: hosoyama.dyn.to
DNSネームサーバー: 192.168.0.6 ---サーバーでBIND起動
プロバイダDNSのIPでも可
GatewayのIP: 192.168.0.1 ---ルータのIP
Gatewayの機器: eth0

ホスト一覧

IPアドレス
FQDN
ホスト名
127.0.0.1
localhost.localdomain
localhost
192.168.0.2
taka.hosoyama.dyn.to
taka
192.168.0.6
tabo.hosoyama.dyn.to
tabo ---Linuxサーバー
192.168.1.3
junko.hosoyama.dyn.to
junko ---マスカレードするクライアント
192.168.1.4
ken.hosoyama.dyn.to
ken ---マスカレードするクライアント
192.168.1.5
miyu.hosoyama.dyn.to
miyu ---マスカレードするクライアント

インターフェースの選択・設定
インターフェース名
eth0
eth1
IPアドレス
192.168.0.6
192.168.1.1
ネットマスク
255.255.255.0
255.255.255.0
ネットアドレス
192.168.0.0
192.168.1.0
ブロードキャストアドレス
192.168.0.255
192.168.1.255

[*]起動時に使用
[*]起動時に使用

(*)No Bootp/DHCP
(*)No Bootp/DHCP

インターフェースの選択で起動させる

[*] eth0: 192.168.0.6
[*] eth1: 192.168.1.1
[*] lo: 127.0.0.1

ipchainsを起動させず、iptablesの起動を設定

# chkconfig --del ipchains
# chkconfig --add iptable

/etc/rc.d/rc.ip-masqファイルの作成

/etc/rc.d に iptables の設定ファイル rc.ip-masq を作成する

#!/bin/sh
### プロンプトに表示
echo " IP-masq Starting....."

### モジュール読み込み
/sbin/modprobe iptable_nat

### IPフォワードの有効化
echo 1 > /proc/sys/net/ipv4/ip_forward

### iptablesの初期化
/sbin/iptables --flush
/sbin/iptables -t filter -F FORWARD
/sbin/iptables -t nat -F POSTROUTING
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

### 外部から許可
### FTPの許可
#/sbin/iptables -A INPUT -i eth0 -p tcp --dport 20 -j ACCEPT
#/sbin/iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
### SSHの許可
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
### SMTPの許可
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
### DNSの許可
#/sbin/iptables -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT
#/sbin/iptables -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT
### wwwの許可
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
### POPの許可
#/sbin/iptables -A INPUT -i eth0 -p tcp --dport 110 -j ACCEPT
###
/sbin/iptables -t filter -A FORWARD -m state --state ESTABLISHE,RELATED -j ACCEPT

### 内部から外部へのpingの許可
/sbin/iptables -A FORWARD -i eth1 -p icmp -j ACCEPT
### 内部から外部へ許可
### FTPの許可
/sbin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 20 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 21 -j ACCEPT
/sbin/insmod ip_nat_ftp
/sbin/insmod ip_conntrack_ftp

### SSHの許可
/sbin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 22 -j ACCEPT
### Telnetの許可
/sbin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 23 -j ACCEPT
### SMTPの許可
/sbin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 25 -j ACCEPT
### DNSの許可
/sbin/iptables -t filter -A FORWARD -i eth1 -p udp --dport 53 -j ACCEPT
### wwwの許可
/sbin/iptables -t nat -A FORWARD -i eth1 -p tcp --dport 80 -j ACCEPT
### POPの許可
/sbin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 110 -j ACCEPT
### NNTPの許可
#/sin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 119 -j ACCEPT

###その他外部インターフェイスに入ってくるパケットを破棄
/sbin/iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP
/sbin/iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP

### 内部から外部へ許可
### httpsの許可
/sbin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 443 -j ACCEPT
### RealStreamingの許可
/sbin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 554 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 6970:7070 -j ACCEPT


上記ファイルを保存し、実行権を与える

# chmod +x /etc/rc.d/rc.ip-masq

/etc/rc.d/rc.localの設定

上記 rc.ip-masq ファイルを起動時に読み込み、実行させるために
/etc/rc.d/rc.localファイル内の最後の行に、

/etc/rc.d/rc.ip-masq

の一行を追加し、保存する。

ipchainsの停止、iptablesの起動

turboserviceの詳細設定にて
ipchainsを起動させない様にする

iptables をランレベル3,4,5で起動するように設定後
サーバーを再起動する。

クライアントマシン(192.168.1.*) の設定

	TCP/IPのプロパティ
IPアドレス: 192.168.1.* ----それぞれのIPアドレス
ネットマスク: 255.255.255.0
デフォルトゲートウェイ: 192.168.1.1 (eth1 のIPアドレス)
DNSサーバ: 192.168.0.6 ----Linuxサーバー(BIND起動)
プロバイダのDNSでも可

TOP