昔のメモが出てきたんであげときます。
ADSLとか超なつかしい…
とりあえず動かすまで
構成
1 2 3 4 5 |
┌────────────────┐ ┌──────┐ ┌────────┐┌─────────┐├────┐ ┌────┤┌───┐│ │ │internet├┤ADSLModem├┤eth1│Linux │eth0├┤Hub├┤WinXP │ └────────┘└─────────┘├────┘ └────┤└───┘│ │ └────────────────┘ └──────┘ |
- フレッツADSL 8M
- 本に付いてたRedHat9(三枚組)
RedHat9のインストール
- NICは二枚とも刺した状態でLinuxのインストールを行えば勝手に認識してくれる
- eth0はIPアドレス「192.168.0.2」、サブネットマスク「255.255.255.0」に設定
- eth1はDHCP
- ファイアウォールなし
DHCPサーバ
各種サーバの設定参照
PPPoE接続の設定
ADSLの設定
# adsl-setup
入力箇所 (括弧内は今回入力するもの)
- ユーザ名 (例:hogehoge@mage.com)
- PPP接続を行うデバイス名 (eth1)
- 自動切断の設定 (no)
- DNSサーバのアドレス (server)
- PPP接続のパスワード
- 接続/切断を一般ユーザに許すか (yes)
- ファイアーウォールの設定 (0)
- 自動起動の設定 (no)
- 確認 (y)
接続
# adsl-start
マスカレードとNATの設定(本題)
/etc/sysctl.conf の編集(IPフォワーディングの有効化)
net.ipv4.ip_forward = 0
↓
nnet.ipv4.ip_forward = 1
IPマスカレードの設定(起動するたび必要)
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
最低限これだけで動く(Windowsから適当なサイトを閲覧できるようなら成功)
FTPを有効にする(起動するたび必要)
1 2 |
# insmod ip_nat_ftp # insmod ip_conntrack_ftp |
設定に失敗したのでやり直したい場合
# /etc/rc.d/init.d/iptables sto
ファイアウォールの設定
スクリプト作成
スクリプト作成、実行権を与える
1 2 |
# touch /root/firewall # chmod +x firewall |
スクリプト編集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#!/bin/sh # デフォルト iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP # 現在の設定をクリアする iptables -F FORWARD iptables -F INPUT iptables -F OUTPUT # udpポート67(DHCPサーバ)を開ける iptables -A INPUT -d 0.0.0.0/0 -p tcp --dport 23 -j ACCEPT # tcpポート80(webサーバ)を開ける iptables -A INPUT -d 0.0.0.0/0 -p tcp --dport 80 -j ACCEPT # tcpポート21(ftpサーバ)を開ける iptables -A INPUT -d 0.0.0.0/0 -p tcp --dport 21 -j ACCEPT # tcpポート23(telnetサーバ)を開ける iptables -A INPUT -d 0.0.0.0/0 -p tcp --dport 23 -j ACCEPT # tcp**をIP***.***.***.***へまわす #iptables -t nat -A PREROUTING -p tcp --dport ** -i ppp0 -j DNAT --to-destination ***.***.***.***:** #iptables -A FORWARD -d ***.***.***.*** -p tcp --dport ** -j ACCEPT # 拒否設定 iptables -A INPUT -i ppp0 -d 0.0.0.0/0 -p udp --dport 0:1023 -j LOG iptables -A INPUT -i ppp0 -d 0.0.0.0/0 -p tcp --dport 0:1023 -j LOG iptables -A INPUT -i ppp0 -d 0.0.0.0/0 -p udp --dport 0:1023 -j DROP iptables -A INPUT -i ppp0 -d 0.0.0.0/0 -p tcp --dport 0:1023 -j DROP iptables -A INPUT -i ppp0 -p tcp --syn -j LOG iptables -A INPUT -i ppp0 -p tcp --syn -j DROP iptables -A INPUT -i ppp0 -s 0.0.0.0/0 -p icmp --icmp-type echo-request -j LOG iptables -A INPUT -i ppp0 -s 0.0.0.0/0 -p icmp --icmp-type echo-request -j DROP # マスカレード iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth0 -j ACCEPT iptables -A FORWARD -j LOG |
実行(起動のたびに)
# /root/firewall
設定の保存(自動的に有効にする)
# /etc/rc.d/init.d/iptables save
設定に失敗したのでやり直したい場合
# /etc/rc.d/init.d/iptables stop