こんばんわ 成瀬さん。 福田 和志といいます。 >########################################### ># PREROUTING chain in the nat table ># ># Enable IP Destination NAT for DMZ zone ># > >$IPTABLES -t nat -A PREROUTING -p TCP -i $INET_IFACE -d $HTTP_IP --dport 80 -j DNAT --to-destination $DMZ_HTTP_IP >$IPTABLES -t nat -A PREROUTING -p TCP -i $INET_IFACE -d $HTTP_IP --dport 443 - j DNAT --to-destination $DMZ_HTTP_IP ここでDNATしてグローバルIPアドレスをローカルIPアドレスにしているみたいで すが、外部側からのパケットのみ、あて先アドレスがローカルIPアドレスに変換 されています。 なので、ローカル側からは 割り当てられているローカルIPアドレス(192.168. 255.102)でしかアクセスできません。 なので、解決策としては 案1・DNATをやめてグローバルIPアドレスにする 案2・同じくDNATをやめてローカルIPアドレスに加えグローバルIPアドレスも設 定する 案3・ローカルからもDNATする(あまり好きじゃない) 好きじゃないとか言ってる割には書いちゃってる案3スクリプト(w #------------------ $IPTABLES -t nat -A PREROUTING -p TCP -i $LAN_IFACE -d $HTTP_IP --dport 80 -j DNAT --to-destination $DMZ_HTTP_IP $IPTABLES -t nat -A PREROUTING -p TCP -i $LAN_IFACE -d $HTTP_IP --dport 443 -j DNAT --to-destination $DMZ_HTTP_IP #------------------ 個人的には案1がお勧めです。 では。 >こんにちは、成瀬です。 > >RedHatLinux8.0でiptablesにてNIC3枚使いFirewallの >構築をしております。 > >[構成] > > ____|____ 専用線 > |router| > ~~~|~~ > | グローバル(aaa.bbb.ccc.ddd/27) > ---┬┴-------- > | >eth0 | > ___|____ eth1 DMZ(192.168.255.0/24) > | FW |--------┬------------- > ~~|~~~ ___|___ > | |www| ←192.168.255.102(aaa.bbb.ccc.170) > eth2| ~~~~~ >----┴--------------内部ネットワーク(192.168.2.0/24) > > > >この構成で、DMZにあるwwwサーバがインターネット側からは >参照できるのですが、ローカル側からは、DMZのローカルアドレス >(192.168.255.102)でしかアクセスできません。 >ローカルからaaa.bbb.ccc.170のアドレスでアクセス出来ません。 > >下記が現在設定している内容です。 > >#!/bin/sh ># >LAN_IP="192.168.0.1" >LAN_BCAST_ADRESS="192.168.0.255" >LAN_IFACE="eth2" > >INET_IP="aaa.bbb.ccc.ddd" >INET_IFACE="eth0" > >DMZ_IP="192.168.255.1" >DMZ_IFACE="eth1" > >HTTP_IP="aaa.bbb.ccc.169" > >DMZ_HTTP_IP="192.168.255.102" > >LO_IP="127.0.0.1" >LO_IFACE="lo" > >IPTABLES="/sbin/iptables" > >########################################### ># ># Load all required IPTables modules ># > ># ># Needed to initially load modules ># > >/sbin/depmod -a > ># ># Adds some iptables targets like LOG, REJECT and MASQUARADE. ># > >/sbin/modprobe ipt_LOG >/sbin/modprobe ipt_MASQUERADE > ># ># Support for connection tracking of FTP and IRC. ># >#/sbin/insmod ip_nat_irc >#/sbin/modprobe ip_conntrack_irc >/sbin/insmod ip_nat_ftp >/sbin/insmod ip_conntrack_ftp > >#CRITICAL: Enable IP forwarding since it is disabled by default. ># > >echo "1" > /proc/sys/net/ipv4/ip_forward > ># ># Dynamic IP users: ># >#echo "1" > /proc/sys/net/ipv4/ip_dynaddr > >########################################### ># ># Chain Policies gets set up before any bad packets gets through ># > >$IPTABLES -P INPUT DROP >$IPTABLES -P OUTPUT DROP >$IPTABLES -P FORWARD DROP > ># ># the allowed chain for TCP connections, utilized in the FORWARD chain ># > >$IPTABLES -N allowed >$IPTABLES -A allowed -p TCP --syn -j ACCEPT >$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT >$IPTABLES -A allowed -p TCP -j DROP > ># ># ICMP rules, utilized in the FORWARD chain ># > > >$IPTABLES -N icmp_packets > ># Changed rules totally >$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT >$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT > ># ># bad_tcp_packets chain ># ># Take care of bad TCP packets that we don't want. ># > >$IPTABLES -N bad_tcp_packets >$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG -- >log-prefix "New not syn:" >$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP > ># ># Do some checks for obviously spoofed IP's ># > >$IPTABLES -A bad_tcp_packets -i $INET_IFACE -s 192.168.0.0/16 -j DROP >$IPTABLES -A bad_tcp_packets -i $INET_IFACE -s 10.0.0.0/8 -j DROP >$IPTABLES -A bad_tcp_packets -i $INET_IFACE -s 172.16.0.0/12 -j DROP > >########################################### ># POSTROUTING chain in the nat table ># ># Enable IP SNAT for all internal networks trying to get out on the Internet ># > >$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP > > > >########################################### ># PREROUTING chain in the nat table ># ># Enable IP Destination NAT for DMZ zone ># > >$IPTABLES -t nat -A PREROUTING -p TCP -i $INET_IFACE -d $HTTP_IP --dport 80 > -j DNAT --to-destination $DMZ_HTTP_IP >$IPTABLES -t nat -A PREROUTING -p TCP -i $INET_IFACE -d $HTTP_IP --dport >443 -j DNAT --to-destination $DMZ_HTTP_IP > >########################################### ># ># FORWARD chain ># ># ># Bad TCP packets we don't want ># > >$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets > > ># ># DMZ section ># ># General rules ># > >$IPTABLES -A FORWARD -i $DMZ_IFACE -o $INET_IFACE -j ACCEPT >$IPTABLES -A FORWARD -i $INET_IFACE -o $DMZ_IFACE -m state --state >ESTABLISHED,RELATED -j ACCEPT >$IPTABLES -A FORWARD -i $LAN_IFACE -o $DMZ_IFACE -j ACCEPT >$IPTABLES -A FORWARD -i $DMZ_IFACE -o $LAN_IFACE -j ACCEPT > ># ># HTTP server ># > >$IPTABLES -A FORWARD -p TCP -i $INET_IFACE -o $DMZ_IFACE -d $DMZ_HTTP_IP - >-dport 80 -j allowed >$IPTABLES -A FORWARD -p TCP -i $INET_IFACE -o $DMZ_IFACE -d $DMZ_HTTP_IP - >-dport 443 -j allowed >$IPTABLES -A FORWARD -p ICMP -i $INET_IFACE -o $DMZ_IFACE -d $DMZ_HTTP_IP - >j icmp_packets > ># ># LAN section ># > >$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT >$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT > ># ># LOG all packets reaching here ># > >$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log >-level DEBUG --log-prefix "IPT FORWARD packet >died: " > > >########################################################### ># ># Firewall rules ># Rules applying to the firewall box ># ># ># INPUT chain ># ># Bad TCP packets we don't want ># > >$IPTABLES -A INPUT -p tcp -j bad_tcp_packets > ># ># Packets from the Internet to this box ># > >$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets > ># ># Packets from LAN, DMZ or LOCALHOST ># > ># From DMZ Interface to DMZ firewall IP >$IPTABLES -A INPUT -p ALL -i $DMZ_IFACE -d $DMZ_IP -j ACCEPT > ># From LAN Interface to LAN firewall IP >$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_IP -j ACCEPT >$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BCAST_ADRESS -j ACCEPT > ># From Localhost interface to Localhost IP >$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT >$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT >$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT > ># All established and related packets incoming from the internet to the ># firewall >$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED >-j ACCEPT > ># Logging rule >$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log- >level DEBUG --log-prefix "IPT INPUT packet >died: " > >########################################################### ># ># OUTPUT chain ># ># ># Bad TCP packets we don't want ># > >$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets > ># ># Allow ourself to send packets not spoofed everywhere ># > >$IPTABLES -A OUTPUT -p ALL -o $LO_IFACE -s $LO_IP -j ACCEPT >$IPTABLES -A OUTPUT -p ALL -o $LAN_IFACE -s $LAN_IP -j ACCEPT >$IPTABLES -A OUTPUT -p ALL -o $INET_IFACE -s $INET_IP -j ACCEPT > ># ># Logging rule ># > >$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log- >level DEBUG --log-prefix "IPT OUTPUT packet >died: " > >ご教授いただけたら幸いとおもいます。 >どうかよろしくお願いします。
References:
- Prev by Subject: [linux-users:97095] Re: [linux-users:97094] Re: NIC 3枚でDMZ をi p tablesで
- Next by Subject: [linux-users:97098] The Linux JF Project: Monthly News 2003-01-01
- Previous by thread: [linux-users:97095] Re: [linux-users:97094] Re: NIC 3枚でDMZ をi p tablesで
- Next by thread: [linux-users:97098] The Linux JF Project: Monthly News 2003-01-01
- Indexes:[Main][Thread]