ラズパイルーター
Raspberry Pi で PPPoE NATルーターを構築。
市販普及型ルーターとは一線を画す安定性!
ソフトウエアVPNサーバーの実装で実用性も最高!
現在は、Wi-Fiブリッジとしても稼働中。
最新情報は、「Raspberry PiによるWi-Fi AP付PPPoEルーター構成」の記事を参照して下さい。
こちらの内容で構築したラズパイルーター、
早速、OPT100Eの上に仮置き。
問題ないので、OPT100Eを仕舞い込んでラズベリーパイに置き換え。
スループットもOPT100Eと比較しても遜色ない。(というか、手前のVDSLが遅くてボトルネックだから比較評価できない;)
現状のファイアウォールは以下の通り。
これでしばらく試すことにした。
#! /bin/sh
local_net=‘192.168.1.0/24’
my_local_ip=‘192.168.1.254’
#my_test_ip=‘192.168.1.253’
WAN=‘ppp0’
LAN=‘eth0’
#echo 1 > /proc/sys/net/ipv4/ip_forward
##############
#Flush & Reset
##############
iptables -F
iptables -t nat -F
iptables -X
##############
#Deafult Rule
##############
iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $LAN -s $local_net -d $my_local_ip -j ACCEPT
#iptables -A INPUT -i $LAN -s $local_net -d $my_test_ip -j ACCEPT
#DHCP permission
iptables -A INPUT -i $LAN -p udp --dport 67:68 --sport 67:68 -j ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A FORWARD -i $LAN -o $WAN -s $local_net -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
##################
#VPN pass-through
##################
#iptables -A FORWARD -i $WAN -o $LAN -p esp -j ACCEPT
#iptables -A FORWARD -i $WAN -o $LAN -p ah -j ACCEPT
#########
#loopback
#########
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#################
#SNAT(masquerade)
#################
iptables -t nat -A POSTROUTING -o $WAN -s $local_net -j MASQUERADE
#################
#DNAT(HTTP)
#################
server_ip=‘192.168.1.1’
http_port=‘80’
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 80 -j DNAT --to-destination $server_ip:$http_port
iptables -A FORWARD -i $WAN -o $LAN -p tcp -d $server_ip --dport $http_port -j ACCEPT
#################
#DNAT(HTTPS)
#################
https_port=‘443’
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 443 -j DNAT --to-destination $server_ip:$https_port
iptables -A FORWARD -i $WAN -o $LAN -p tcp -d $server_ip --dport $https_port -j ACCEPT
#################
#DNAT(Softether)
#################
softether_port=‘5555’
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 5555 -j DNAT --to-destination $server_ip:$softether_port
iptables -A FORWARD -i $WAN -o $LAN -p tcp -d $server_ip --dport $softether_port -j ACCEPT
softether_port2=‘992’
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 992 -j DNAT --to-destination $server_ip:$softether_port2
iptables -A FORWARD -i $WAN -o $LAN -p tcp -d $server_ip --dport $softether_port2 -j ACCEPT
#################
#DNAT(IKE)
#################
ike_port=‘500’
iptables -t nat -A PREROUTING -p udp -i $WAN --dport 500 -j DNAT --to-destination $server_ip:$ike_port
iptables -A FORWARD -i $WAN -o $LAN -p udp -d $server_ip --dport $ike_port -j ACCEPT
#################
#DNAT(NAT-T)
#################
nat_t_port=‘4500’
iptables -t nat -A PREROUTING -p udp -i $WAN --dport 4500 -j DNAT --to-destination $server_ip:$nat_t_port
iptables -A FORWARD -i $WAN -o $LAN -p udp -d $server_ip --dport $nat_t_port -j ACCEPT
#################
#DNAT(SMTP)
#################
smtp_port=‘25’
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 25 -j DNAT --to-destination $server_ip:$smtp_port
iptables -A FORWARD -i $WAN -o $LAN -p tcp -d $server_ip --dport $smtp_port -j ACCEPT
#################
#DNAT(SUBMISSION)
#################
submission_port=‘587’
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 587 -j DNAT --to-destination $server_ip:$submission_port
iptables -A FORWARD -i $WAN -o $LAN -p tcp -d $server_ip --dport $submission_port -j ACCEPT
#################
#DNAT(POP3 over SSL)
#################
pop3s_port=‘995’
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 995 -j DNAT --to-destination $server_ip:$pop3s_port
iptables -A FORWARD -i $WAN -o $LAN -p tcp -d $server_ip --dport $pop3s_port -j ACCEPT
#################
#DNAT(SSH)
#################
ssh_port=‘22’
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 22 -j DNAT --to-destination $server_ip:$ssh_port
iptables -A FORWARD -i $WAN -o $LAN -p tcp -d $server_ip --dport $ssh_port -j ACCEPT
################################################
#Outgoing packet should be real internet Address
################################################
iptables -A OUTPUT -o $WAN -d 10.0.0.0/8 -j DROP
iptables -A OUTPUT -o $WAN -d 172.16.0.0/12 -j DROP
iptables -A OUTPUT -o $WAN -d 192.168.0.0/16 -j DROP
iptables -A OUTPUT -o $WAN -d 127.0.0.0/8 -j DROP
#########
#logging
#########
iptables -N LOGGING
iptables -A LOGGING -j LOG --log-level warning --log-prefix “DROP:” -m limit
iptables -A LOGGING -j DROP
iptables -A INPUT -j LOGGING
iptables -A FORWARD -j LOGGING

