センリュウのホームページへ ようこそ!
LINUXでインターネットサーバー構築 後編
ここではIPマスカレードを使ったファイアーウォールの設定をおこなう。
8 2枚目のNICの導入
2枚目のNICを認識させる
Redhatの場合
2枚目のNICを導入すると起動のとき新しいハードウェアが検出されるので、configueで自動設定してやる。
/etc/conf.modules に次の項目が加わる。
alias eth1 3c509 ←ドライバ(/lib/modules/2.2.*/net/にある)
Turbolinux8の場合
手動で上の設定を/etc/conf.modules に書き込んでやる→マシンの再起動。
9 ネットワークの設定
| etc/host.conf | multi on となっていることを確認=1つのホストに複数のIPアドレスが割り当てられている場合、そのすべてを答えとしてリゾルバに返す。 |
| /etc/sysconfig/network(2.2系の場合) | NETWORKING=yes FORWARD_IPV4=yes ←これをyesにする。 HOSTNAME=ns.kaisha.co.jp DOMAINNAME=kaisha.co.jp GATEWAY=333.139.162.225 GATEWAYDEV=eth0
|
| /etc/sysctl.conf(2.4系以降の場合) | net.ipv4.ip_forward=1 |
| /etc/sysconfig/network-script/ifcfig-eth0 | そのまま |
| /etc/sysconfig/network-script/ifcfig-eth1 | DEVICE=eth1 IPADDR=192.168.0.1 NETMASK=255.255.255.0 NETWORK=192.168.0.0 BROADCAST=192.168.0.255 ONBOOT=yes |
networkサービスを再起動して、コマンドの ifconfig、route
などでうまく作動しているか確かめておく。
10 ファイアーウォールの設定
/etc/rc.d/rc.local に次のような起動設定を書き込んでおく。
iptablesの例
MYHOST='333.139.162.226'
LOCALNET='192.168.0.0/24'
NS2='333.139.160.69' ←セカンダリ
######ルールの初期化######
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F
######ポリシー######
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
######なりすましパケットからの防御######
/sbin/iptables -N spoofing
/sbin/iptables -A INPUT -i eth0 -s 127.0.0.0/8 -j spoofing
/sbin/iptables -A INPUT -i eth0 -d 127.0.0.0/8 -j spoofing
/sbin/iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j spoofing
/sbin/iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j spoofing
/sbin/iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j spoofing
/sbin/iptables -A INPUT -i eth0 -s 255.255.255.255 -j spoofing
/sbin/iptables -A INPUT -i eth0 -s $MYHOST -j spoofing
/sbin/iptables -A spoofing -j LOG --log-prefix "IPTABLES SPOOFING:"
/sbin/iptables -A spoofing -j DROP
######win関連禁止ポート######
/sbin/iptables -N win
/sbin/iptables -A FORWARD -p tcp -m multiport --sport 135,137,138,139,445 -j win
/sbin/iptables -A FORWARD -p udp -m multiport --sport 135,137,138,139,445 -j win
/sbin/iptables -A FORWARD -p tcp -m multiport --dport 135,137,138,139,445 -j win
/sbin/iptables -A FORWARD -p udp -m multiport --dport 135,137,138,139,445 -j win
/sbin/iptables -A win -j LOG --log-prefix "IPTABLES USING_WIN_ PORT:"
/sbin/iptables -A win -j DROP
######IPフォアディングとNAT######
/sbin/iptables -A FORWARD -i eth1 -o eth0 -s $LOCALNET -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to $MYHOST
######ループバックのアクセスはすべて許可######
/sbin/iptables -A INPUT -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
######接続が確立したものは許可######
/sbin/iptables -A FORWARD -m state --state ESTABLISH,RELATED -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISH,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -m state --state ESTABLISH,RELATED -j ACCEPT
######ローカルネットワークからのアクセスは許可######
/sbin/iptables -A INPUT -i eth1 -s $LOCALNET -j ACCEPT
/sbin/iptables -A OUTPUT -o eth1 -d $LOCALNET -j ACCEPT
######DNS、udpはすべて許可######
/sbin/iptables -A INPUT -p udp --dport 53 -d $MYHOST -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --dport 53 -s $MYHOST -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 53 -s $NS2 -d $MYHOST -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 53 -s $MYHOST -d $NS2 -j ACCEPT
######WWWはすべて許可######
/sbin/iptables -A INPUT -p tcp --dport 80 -d $MYHOST -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 80 -s $MYHOST -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 443 -d $MYHOST -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 443 -s $MYHOST -j ACCEPT
######Mailはすべて許可######
/sbin/iptables -A INPUT -p tcp --dport 25 -d $MYHOST -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 25 -s $MYHOST -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 113 -d $MYHOST -j REJECT --reject-with tcp-reset
/sbin/iptables -A OUTPUT -p tcp --dport 113 -s $MYHOST -j ACCEPT
######icmp######
/sbin/iptables -A INPUT -p icmp -d $MYHOST -j ACCEPT
/sbin/iptables -A OUTPUT -p icmp -s $MYHOST -j ACCEPT
11 追加モジュールの設定
プロトコルの中にはポート情報を持たなかったり(ICMP)、応答パケットとは別の独立なパケットを出すプロトコル(一部のFTPやIRC)がある。このような場合には、一般的なIPマスカレードの変換の仕組みを適用できないので、必要に応じてモジュールを追加して対応しなければならない。ICMPはIPマスカレード機能が構築されていればすでに組み込まれているはず。ところがFTPなどは初期状態では組み込まれていないので、必要な場合は別途に追加しておかなければならない。
このようなときは/etc/rc.d/rc.local に次のように書き込み、起動時に自動的に読み込むようにする。このモジュールの実体は/lib/modules/2.*.*/kernel/net/ipv4/netfilter/にあるので確認しておくこと。
| /etc/rc.d/rc.local | /sbin/modprobe ip_conntrack_ftp |
以上で基本的な設定はすべて終了である。マシンを再起動してみよう。