Portál AbcLinuxu, 10. května 2025 22:15
Ahoj, mejme web server umisteny v DMZ za debianim firewallem.
Musim tedy nastavit pravidlo, ze pokud prijde paket na port 80 nebo 443, ze ho router posle na web server (ip: 192.168.2.3)
Ve firewallu jsem nastavil tyto pravidla:
#####################################################
#!/bin/sh
extif="eth0" # externi interface
intif="eth1" # interni interface
extip="x.x.x.x" # verejna ip adresa
ipt=/sbin/iptables
.
.
.
# povoleni tcp/udp/icmp 80/443 do site
$ipt -A FORWARD -i $extif --dport 80 -o $intif -p ALL -d 192.168.2.3 -j ACCEPT
$ipt -A FORWARD -i $extif --dport 443 -o $intif -p ALL -d 192.168.2.3 -j ACCEPT
#Projdou temito pravidly pozadavky na web server do DMZ?
#Jeste bych mel nadefinovat pravidla pri komunikaci web serveru z DMZ smerem do internetu
# povoleni tcp/udp/icmp 80/443 ze site ven
$ipt -A FORWARD -i $intif --dport 80 -o $extif -p ALL -j ACCEPT
$ipt -A FORWARD -i $intif --dport 443 -o $extif -p ALL -j ACCEPT
#####################################################
Co to vlastne dela?
parametr "-A" (append) pridava pravidlo/specifikaci
FORWARD: pravidlo, ktere vsechny prichazejici pakety na jedno sitove rozhrani presmerovava na jine
parametr "-d" (destination?) je to cilová IP
parametr "-p" (protocol) protokol, tzn. bud: tcp, udp, icmp
parametr "--dport" zachyceni na zaklade ciloveho portu
parametr "-j" urcuje co ma jadro s danym paketem (vyhovujicim pravidlu) udelat, ACCEPT ->paket propustit na dane rozhrani
parametr "-i" interface/rozhranni
Jak overit ze dane pravidlo funguje?
telnet x.x.x.x 80
Zde jsem nasel nejake How To:
http://www.aboutdebian.com/firewall.htm
Maji tam jeste aktivovany NAT (maskaradu)
# Enable DNAT port translation to DMZ Web server $ipt -t nat -A PREROUTING -i $extif -d $extip -p ALL --dport 80 -j DNAT --to 192.168.2.3
$ipt -t nat -A PREROUTING -i $extif -d $extip -p ALL --dport 443 -j DNAT --to 192.168.2.3
Diky :)
# Enable SNAT (MASQUERADE) functionality on $EXTIF iptables -t nat -A POSTROUTING -o $EXTIF -j SNAT --to $EXTIPNN
-p tcp jsem tam mel, jenze sel by pak ping? Ten bezi pres ICMP, az to pobezi tak to nastavim na tcp Prave ze mam dva firevall-y, jeden jako externi a druhy pro interni sit.
Ted nastavuji externi aby my routoval na web server s neverejnou IP adresou.
######################################################
!/bin/sh
extif="eth0" # externi interface
intif="eth1" # interni interface
extip="x.x.x.x" # verejna ip adresa
ipt=/sbin/iptables
# povoleni tcp/udp/icmp 80/443 do site
$ipt -A FORWARD -i $extif --dport 80 -o $intif -p ALL -d 192.168.2.3 -j ACCEPT
$ipt -A FORWARD -i $extif --dport 443 -o $intif -p ALL -d 192.168.2.3 -j ACCEPT
# povoleni tcp/udp/icmp 80/443 ze site ven
$ipt -A FORWARD -i $intif --dport 80 -o $extif -p ALL -j ACCEPT
$ipt -A FORWARD -i $intif --dport 443 -o $extif -p ALL -j ACCEPT
# Enable DNAT port translation to DMZ Web server
$ipt -t nat -A PREROUTING -i $extif -d $extip -p ALL --dport 80 -j DNAT --to 192.168.2.3
$ipt -t nat -A PREROUTING -i $extif -d $extip -p ALL --dport 443 -j DNAT --to 192.168.2.3
# Enable SNAT (MASQUERADE) functionality on $EXTIF iptables -t nat -A POSTROUTING -o $EXTIF -j SNAT --to $EXTIP
#####################################################
Jeste prikladam schema site, ktere jsem vyzistil na zaklade "ifconfig" na obou FW.
http://dl.dropbox.com/u/2007219/FwDmz.png
"Kombinovat --dport 80 a -p ALL je prece kravina"
Rozumim, na 80tce bezi HTTP a ten zas fici pres tcp, takze -p tcp
Ohledne pouziti dvou firewallu... take jsem se ptal proc? Sit jsem nenavrhoval ja, mozna tam maji jiny, rozumny duvod... nevim.
Sit jsem videl jen vzdalene, fyzicky nikoliv.
######################################################
!/bin/sh
extif="eth0" # externi interface
intif="eth1" # interni interface
extip="x.x.x.x" # verejna ip adresa
ipt=/sbin/iptables
# povoleni tcp 80/443 do site
$ipt -A FORWARD -i $extif --dport 80 -o $intif -p tcp -d 192.168.2.3 -j ACCEPT
$ipt -A FORWARD -i $extif --dport 443 -o $intif -p HTTP -d 192.168.2.3 -j ACCEPT
# povoleni tcp 80/443 ze site ven
$ipt -A FORWARD -i $intif --dport 80 -o $extif -p HTTP -j ACCEPT
$ipt -A FORWARD -i $intif --dport 443 -o $extif -p HTTP -j ACCEPT
# Enable DNAT port translation to DMZ Web server
$ipt -t nat -A PREROUTING -i $extif -d $extip -p HTTP --dport 80 -j DNAT --to 192.168.2.3
$ipt -t nat -A PREROUTING -i $extif -d $extip -p HTTP --dport 443 -j DNAT --to 192.168.2.3
# Enable SNAT (MASQUERADE) functionality on $extif
$ipt-t nat -A POSTROUTING -o $extif -j SNAT --to $extif
#####################################################
Diky moc
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.