Linuxでルータ設定 iptablesなど

NIC2枚ざしのコンピュータをルータ化する

apt-get install iptables iptables-persistent ppp pppoeconf dnsmasq ntp ntpdate

 

〇nicについて

eth0はpppに利用⇒ONUに接続

eth1はLAN内に利用

 

〇ntpの設定

#ntpの設定

#/etc/ntp.conf
server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp
# /etc/init.d/ntp reload
# ntpq -pn

同期がとれている事を確認する

〇sysctlの設定

#ルータとしての設定
/etc/sysctl.confの以下の設定のコメントを削除する。

net.ipv4.ip_forward=1

 

〇dnsキャッシュサーバの設定

インストールしたままで、とりあえずキャッシュサーバとして動く

#Only on specified interface
interface=eth1
#disable DHCP
no-dhcp-interface=eth0
no-dhcp-interface=eth1

 

〇iptablesの設定

#iptables を設定したらその設定を保存し、起動時反映できるようにする

#iptables-save > /etc/iptables/rules.v4
#less /etc/iptables/rules.v4

〇pppoeconfを実行

プロバイダから指定されたユーザ名・パスワードの入力

dsl-providerにて設定

接続

pon dsl-provider

切断

pof dsl-provider

インターフェースの状態確認

ip addr show ppp0

 

〇基本的な iptablesの設定はこちら

#!/bin/sh

iptables -F
iptables -F -t nat

iptables -A INPUT -i lo -j ACCEPT

#INPUT chain

#インターネット側からの戻りのパケットは許可
iptables -A INPUT -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
#インターネット側からの icmp 許可
iptables -A INPUT -i ppp0 -p icmp -j ACCEPT
#それ以外のppp0 からのアクセスは拒否
iptables -A INPUT -i ppp0 -j DROP

#Forward chain
#インターネット側からの戻りのパケットはフォワード許可
iptables -A FORWARD -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT

#これがないと、WindowsUpdateできない パスMTU問題
iptables -A FORWARD -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

#LAN側からのフォワーディングは許可
iptables -A FORWARD -i eth+ -j ACCEPT
iptables -A FORWARD -i ppp0 -j DROP

#OUTPUT chain
#インターネットへ向けてプライベートアドレスを放出しない
iptables -A OUTPUT -o ppp0 -d 127.0.0.0/8 -j DROP
iptables -A OUTPUT -o ppp0 -d 192.168.0.0/16 -j DROP
iptables -A OUTPUT -o ppp0 -d 172.16.0.0/12 -j DROP
iptables -A OUTPUT -o ppp0 -d 10.0.0.0/8 -j DROP

# LAN内からインターネット回線に出るときの IPマスカレード(NAPT設定)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE