- - PR -
【Linuxルータ】同様の悩みです。。。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-04-13 01:37
こんばんは。
他の方が同じような悩みを抱えておられるのを見ましたが、 未解決のようでしたので、新規投稿させて頂きました。 私の環境は、インターフェースが3枚で、 eth0(ppp0)はモデムへ(PPPoE) eth1は各サーバへ (IP:192.168.10.1) eth2はローカルエリア (IP:192.168.1.1/24) と定義しています。 @ITなどを検索して1つのiptablesを組んだのですが、 いくつか問題が出てきて解決できません。。 1は、他の方同様Webページが表示されないのですが、 ヤフーやその他、すぐに表示されるサイトもあります。 @ITは遅くて無理です。 2は、外部からPacketixでVPNをはりたいのですが、 443は外部から開いているのに接続ができない。 クライアントからサーバにはつながっているような感じなのですが、 接続はできません。 3つめはローカルホストからゲートウェイにPingが飛びません。。 ※外部からのWebサーバは問題なく見れる。 この問題の為現在2つのiptablesスクリプトを使っています。 もう一方は上の3つの問題がなくなります。 長くなりますが、指摘を頂ければと思いますので、スクリプトを載せます。 よろしくお願いいたします。 ※グローバルIPを直で書いている為、2*0.*55.2*6.17*と記載させて頂いております。 【問題が起きるiptables】 #!/bin/sh ############# # 変数設定 # ############# IPTABLES="/sbin/iptables" ################### # フォワード有効化 # ################### #echo 1 > /proc/sys/net/ipv4/ip_forward ################# # テーブル初期化 # ################# $IPTABLES -F $IPTABLES -t nat -F $IPTABLES -X ################ # 初期設定ルール # ################ $IPTABLES -P INPUT DROP $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD DROP $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -i eth1 -o ppp0 -s 192.168.10.0/24 -j ACCEPT $IPTABLES -A FORWARD -i eth2 -o ppp0 -s 192.168.1.0/24 -j ACCEPT ##################################### # ローカルIP->グローバルIPへマスカレード # ##################################### $IPTABLES -t nat -A POSTROUTING -o ppp0 -s 192.168.10.0/24 -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE ################## # ループバック許可 # ################## $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A OUTPUT -o lo -j ACCEPT ################# # LAN<->DMZ許可 # ################# $IPTABLES -A FORWARD -i eth1 -o eth2 -j ACCEPT $IPTABLES -A FORWARD -i eth1 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -i eth2 -o eth1 -j ACCEPT $IPTABLES -A FORWARD -i eth2 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT ############ # ICMP許可 # ############ $IPTABLES -A OUTPUT -p icmp --icmp-type echo-reply -s 192.168.10.0/24 -j ACCEPT $IPTABLES -A INPUT -p icmp --icmp-type echo-request -s 192.168.10.0/24 -j ACCEPT $IPTABLES -A OUTPUT -p icmp --icmp-type echo-reply -s 192.168.1.0/24 -j ACCEPT $IPTABLES -A INPUT -p icmp --icmp-type echo-request -s 192.168.1.0/24 -j ACCEPT ########### # ssh許可 # ########### $IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP $IPTABLES -A INPUT -p tcp -m state --state NEW,ESTABLISHED,RELATED -s 192.168.10.0/24 -d 192.168.10.0/24 --dport 22 -j ACCEPT $IPTABLES -A OUTPUT -p tcp -s 192.168.10.0/24 --sport 22 -d 192.168.10.0/24 -j ACCEPT $IPTABLES -A INPUT -p tcp -m state --state NEW,ESTABLISHED,RELATED -s 192.168.1.0/24 -d 192.168.10.0/24 --dport 22 -j ACCEPT $IPTABLES -A OUTPUT -p tcp -s 192.168.10.0/24 --sport 22 -d 192.168.1.0/24 -j ACCEPT ########################## # スタティックルーティング # ########################## ################# # DNAT(HTTP) # ################# http_ip='192.168.10.100' http_port='80' $IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 -d 2*0.*55.2*6.17* --dport 80 -j DNAT --to-destination $http_ip:$http_port $IPTABLES -A FORWARD -i ppp0 -o eth1 -p tcp -d $http_ip --dport $http_port -j ACCEPT ################# # DNAT(HTTPS) # ################# https_ip='192.168.10.50' https_port='443' $IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 -d 2*0.*55.2*6.17* --dport 443 -j DNAT --to-destination $https_ip:$https_port $IPTABLES -A FORWARD -i ppp0 -o eth1 -p tcp -d $https_ip --dport $https_port -j ACCEPT ################# # DNAT(SMTP) # ################# smtp_ip='192.168.10.110' smtp_port='25' $IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 -d 2*0.*55.2*6.17* --dport $smtp_port -j DNAT --to-destination $smtp_ip:$smtp_port $IPTABLES -A FORWARD -i ppp0 -o eth1 -p tcp -d $smtp_ip --dport $smtp_port -j ACCEPT ################# # DNAT(POP3) # ################# pop3_ip='192.168.10.110' pop3_port='110' $IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 -d 2*0.*55.2*6.17* --dport $pop3_port -j DNAT --to-destination $pop3_ip:$pop3_port $IPTABLES -A FORWARD -i ppp0 -o eth1 -p tcp -d $pop3_ip --dport $pop3_port -j ACCEPT ################# # DNAT(SSH) # ################# ssh_ip='192.168.10.10' ssh_port='22' $IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 -d 2*0.*55.2*6.17* --dport $ssh_port -j DNAT --to-destination $ssh_ip:$ssh_port $IPTABLES -A FORWARD -i ppp0 -o eth1 -p tcp -d $ssh_ip --dport $ssh_port -j ACCEPT ################################ # ローカルIPを外部へ漏れるのを防止 # ################################ $IPTABLES -A OUTPUT -o ppp0 -d 10.0.0.0/8 -j DROP $IPTABLES -A OUTPUT -o ppp0 -d 176.16.0.0/12 -j DROP $IPTABLES -A OUTPUT -o ppp0 -d 192.168.0.0/16 -j DROP $IPTABLES -A OUTPUT -o ppp0 -d 127.0.0.0/8 -j DROP ############ # ロギング # ############ $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 ############ # 設定保存 # ############ /etc/init.d/iptables save ################# # END # ################# 【問題は解決されるがセキュリティが低いと思われるiptables】 #!/bin/sh IPTABLES="/sbin/iptables" # ルールをクリア $IPTABLES -F $IPTABLES -t nat -F ################################################### # # INPUT:入ってくるパケット # FORWARD:転送パケット # OUTPUT:出て行くパケット # ################################################## # 原則破棄 $IPTABLES -P INPUT DROP # 原則許可 $IPTABLES -P FORWARD ACCEPT $IPTABLES -P OUTPUT ACCEPT #################################################### # # INPUT # #################################################### # SSHサーバへのアクセスを許可 $IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT # WEBサーバへのアクセスを許可 $IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT # SMTPサーバへのアクセスを許可 $IPTABLES -A INPUT -p tcp --dport 25 -j ACCEPT # POPサーバへのアクセスを許可 $IPTABLES -A INPUT -p tcp --dport 110 -j ACCEPT # SSLのアクセスを許可 $IPTABLES -A INPUT -p tcp --dport 443 -j ACCEPT # 外部からDNSサーバへのアクセスを許可 $IPTABLES -A INPUT -p tcp --dport 53 -j ACCEPT $IPTABLES -A INPUT -p udp --dport 53 -j ACCEPT # 自端末からのアクセスを許可 $IPTABLES -A INPUT -i lo -j ACCEPT # LAN内の他端末からのアクセスを許可 $IPTABLES -A INPUT -i eth0 -s 192.168.10.0/24 -j ACCEPT $IPTABLES -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT #接続が確立したパケットの応答は許可 $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #################################################################### # # FORWARD # #################################################################### # 宛先ポート135,137〜139,445のパケットを破棄 $IPTABLES -A FORWARD -p tcp --dport 135 -j DROP $IPTABLES -A FORWARD -p udp --dport 135 -j DROP #$IPTABLES -A FORWARD -p tcp --dport 137:139 -j DROP $IPTABLES -A FORWARD -p udp --dport 137:139 -j DROP $IPTABLES -A FORWARD -p tcp --dport 445 -j DROP $IPTABLES -A FORWARD -p udp --dport 445 -j DROP # パスMTU問題対策 $IPTABLES -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu ########################################################################## # # LANから外に出て行くパケットの送信元IPを書き換える # ########################################################################## $IPTABLES -t nat -A POSTROUTING -o ppp0 -s 192.168.10.0/24 -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE ####################################################################### # # OUTPUT # サーバ機で生成されたパケットに対するチェイン # ####################################################################### # 宛先ポート135,137〜139,445のパケットを破棄 $IPTABLES -A OUTPUT -o ppp0 -p tcp --dport 135 -j DROP $IPTABLES -A OUTPUT -o ppp0 -p udp --dport 135 -j DROP $IPTABLES -A OUTPUT -o ppp0 -p tcp --dport 137:139 -j DROP $IPTABLES -A OUTPUT -o ppp0 -p udp --dport 137:139 -j DROP $IPTABLES -A OUTPUT -o ppp0 -p tcp --dport 445 -j DROP $IPTABLES -A OUTPUT -o ppp0 -p udp --dport 445 -j DROP ####################################################################### # # 静的NAT # ######################################################################## $IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 22 -j DNAT --to 192.168.10.10 $IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.10.100 $IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 25 -j DNAT --to 192.168.10.110 $IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 110 -j DNAT --to 192.168.10.110 $IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 443 -j DNAT --to 192.168.10.50 $IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 53 -j DNAT --to 192.168.10.130 $IPTABLES -t nat -A PREROUTING -i ppp0 -p udp --dport 53 -j DNAT --to 192.168.10.130 [ メッセージ編集済み 編集者: nwx 編集日時 2006-04-13 01:40 ] |
1