Portál AbcLinuxu, 7. května 2025 03:17

Dotaz: Problém s firewallem

7.10.2011 19:10 Tonik
Problém s firewallem
Přečteno: 404×
Odpovědět | Admin
Zdravím, popišu můj probelém. Mám gateway s vnitří IP 192.168.1.1 ta je připojena do switche kde je připojený router s ip 192.168.1.10 a vnitřním rozsahem 192.168.6.1/24, za tímto routerem je PC s ip 192.168.6.2. Do switche spolu s routerem je připojené zařízení s ip 192.168.1.2 a teď můj problém. Pokud si z PC 6.2 pingnu 1.2, tak ping funguje, ale nefungujou ostatní data tzn. www, ssh apod, pokud z toho pc chci např. www z 1.1, tak bezproblému funguje. Už nevím co ve fw povolit, aby tato komunikace fungovala. Mohli byste mě nasměrovat?

Ještě jedna věc, z routeru 6.1 se bezprolému dostanu na 1.2 (www,ssh...)

Děkuji
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.10.2011 19:26 NN
Rozbalit Rozbalit vše Re: Problém s firewallem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Idelani bude pustit si tcpdump na vnejsim rozhrani routeru.

NN
7.10.2011 19:35 Tonik
Rozbalit Rozbalit vše Re: Problém s firewallem
To už jsem udělal, na 6.1 projde bez problému, ale nedojde na 1.1
8.10.2011 13:18 Tonda
Rozbalit Rozbalit vše Re: Problém s firewallem
v tcpdumpu jsem došel k tomu, že pakety ze 6.2 dorazí na gw na vnitřní rozhraní (eth1) 1.1, ale vypadá že nedorazí na 1.200.
7.10.2011 21:37 tomk
Rozbalit Rozbalit vše Re: Problém s firewallem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na firewallu staci ve FORWARD povolit TCP packety na danych portech (80, 22...). Jak nastaveni firewallu vypada nyni?

Tomas
8.10.2011 13:21 Tonda
Rozbalit Rozbalit vše Re: Problém s firewallem
zkoušel jsem např. toto iptables -A FORWARD -p tcp --dport 22 -j ACCEPT

popř. ještě pár dalších pokusů, ale výsledek je pořád stejný :(
8.10.2011 14:11 tomk
Rozbalit Rozbalit vše Re: Problém s firewallem
"-A" pridava pravidla nakonec, takze dokud nebudeme vedet, co je v poradi pred tim, tak to nemusi nic znamenat.

Opravdu by bylo nejlepsi poslat aktualni vypis pravidel na firewallu. Protoze pokud ping funguje, tak by to melo znamenat, ze smerovani je v poradku a problem by mel byt skutecne ve firewallu (alespon podle toho, co dosud vime).

Tomas
8.10.2011 14:27 Tonda
Rozbalit Rozbalit vše Re: Problém s firewallem
# IP a broadcast adresa a rozhrani vnitrni site
LAN1_IP="192.168.1.1/24"
LAN1_BCAST="192.168.1.255/24"
LAN1_IFACE="eth1"

# Lokalni loopback rozhrani
LO_IFACE="lo"
LO_IP="127.0.0.1/32"

# Cesta k programu iptables
IPTABLES="/sbin/iptables"

# Inicializace databaze modulu
/sbin/depmod -a

# Zavedeme moduly pro nestandardni cile
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE

# Modul pro FTP prenosy
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp

# Zapneme routovani paketu
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp

# rp_filter na zamezeni IP spoofovani
for interface in /proc/sys/net/ipv4/conf/*/rp_filter; do
   echo "1" > ${interface}
done

# Implicitni politikou je zahazovat nepovolene pakety
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

# Zahazovat a logovat (max. 5 x 3 pakety za hod)
$IPTABLES -N logdrop
$IPTABLES -A logdrop -m limit --limit 5/h --limit-burst 3 -j LOG --log-prefix "Rezervovana adresa: "
$IPTABLES -A logdrop -j DROP


# V tomto retezci se kontroluje, zda prichozi pakety nemaji nesmyslnou IP adresu
$IPTABLES -N IN_FW
$IPTABLES -A IN_FW -s 192.168.0.0/16 -j logdrop # rezervovano podle RFC1918
$IPTABLES -A IN_FW -s 10.0.0.0/8 -j logdrop     #   ---- dtto ----
$IPTABLES -A IN_FW -s 172.16.0.0/12 -j logdrop  #   ---- dtto ----

# ... dalsi rezervovane adresy mozno doplnit podle
#       http://www.iana.com/assignments/ipv4-address-space

# TOS flagy slouzi k optimalizaci datovych cest. Pro ssh, ftp a telnet
# pozadujeme minimalni zpozdeni. Pro ftp-data zase maximalni propostnost
$IPTABLES -t mangle -A PREROUTING -p tcp --sport ssh -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A PREROUTING -p tcp --dport ssh -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A PREROUTING -p tcp --sport ftp -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A PREROUTING -p tcp --dport telnet -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A PREROUTING -p tcp --sport ftp-data -j TOS --set-tos Maximize-Throughput


#
# Retezec FORWARD
#

# Navazovani spojeni ala Microsoft -
# Paket navazuje spojeni, ale nema nastaveny priznak SYN, pryc s nim
$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

$IPTABLES -A FORWARD -p tcp -i $INET_IFACE --tcp-flags SYN,FIN SYN,FIN -j LOG -m limit --limit 10/m --log-prefix="bogus packet: "
$IPTABLES -A FORWARD -p tcp -i $INET_IFACE --tcp-flags SYN,FIN SYN,FIN -j DROP

# Nechceme rezervovane adresy na internetovem rozhrani
$IPTABLES -A FORWARD -i $INET_IFACE -j IN_FW

# Umoznit presmerovani portu na stanici dovnitr site
#$IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -p tcp -d 192.168.1.2 --dport ssh -j ACCEPT

# Routing zevnitr site ven neomezujeme
$IPTABLES -A FORWARD -i $LAN1_IFACE -j ACCEPT

# Routing zvenku dovnitr pouze pro navazana spojeni (stavovy firewall)
$IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
####DODANO

# Ostatni pakety budou zahozeny, tak je budeme logovat (12 x 5 pkt/hod)
$IPTABLES -A FORWARD -m limit --limit 12/h -j LOG --log-prefix "forward drop: "


#
# Retezec INPUT
#

# Navazovani spojeni ala Microsoft -
# Paket navazuje spojeni, ale nema nastaveny priznak SYN, pryc s nim
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

# Portscan s nastavenym SYN,FIN
$IPTABLES -A INPUT -p tcp -i $INET_IFACE --tcp-flags SYN,FIN SYN,FIN -j LOG -m limit --limit 10/m --log-prefix="bogus packet: "
$IPTABLES -A INPUT -p tcp -i $INET_IFACE --tcp-flags SYN,FIN SYN,FIN -j DROP

# Nejprve se zbavime nezadoucich adres
$IPTABLES -A INPUT -i $INET_IFACE -j IN_FW

# Pravidla pro povolene sluzby
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 21 -j ACCEPT  #FTP server
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 990 -j ACCEPT  #FTPS server
$IPTABLES -A INPUT -i $INET_IFACE -p UDP --dport 53 -j ACCEPT  #DNS server UDP
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 53 -j ACCEPT  #DNS server TCP
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 80 -j ACCEPT  #WWW server
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 5001 -j ACCEPT #iperf server
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 443 -j ACCEPT #HTTPS server
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 873 -j ACCEPT #rsync server
$IPTABLES -A INPUT -i $INET_IFACE -p udp -m udp --dport 5060 -j ACCEPT #VOIP
$IPTABLES -A INPUT -i $INET_IFACE -p udp -m udp --dport 7070:7080 -j ACCEPT #VOIP

#SNMP
$IPTABLES -A INPUT -p udp -m udp -s 0/0 --dport 161:162 -j ACCEPT

# Sluzbu AUTH neni dobre filtrovat pomoci DROP, protoze to muze
# vest k prodlevam pri navazovani nekterych spojeni. Proto jej
# sice zamitneme, ale tak, aby nedoslo k nezadoucim prodlevam.
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 113 -m limit --limit 12/h -j LOG
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 113 -j REJECT --reject-with tcp-reset #AUTH server

# Propoustime pouze ICMP ping
$IPTABLES -A INPUT -i $INET_IFACE -p ICMP --icmp-type echo-request -j ACCEPT

# Loopback neni radno omezovat
$IPTABLES -A INPUT -i $LO_IFACE -j ACCEPT

# Stejne jako pakety z lokalni site, jsou-li urceny pro nas
$IPTABLES -A INPUT -i $LAN1_IFACE -d $LAN1_IP -j ACCEPT
$IPTABLES -A INPUT -i $LAN1_IFACE -d $INET_IP -j ACCEPT

# Broadcasty na lokalnim rozhrani jsou take nase
$IPTABLES -A INPUT -i $LAN1_IFACE -d $LAN1_BCAST -j ACCEPT

# MS klienti maji chybu v implementaci DHCP
$IPTABLES -A INPUT -i $LAN1_IFACE -p udp --dport 67 -j ACCEPT

# Pakety od navazanych spojeni jsou v poradku
$IPTABLES -A INPUT -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT

# Vsechno ostatni je zakazano - tedy logujeme, maxim. 12x5 pkt/hod
$IPTABLES -A INPUT -m limit --limit 12/h -j LOG --log-prefix "INPUT drop: "

#
# Retezec OUTPUT
#

# TOS flagy slouzi k optimalizaci datovych cest. Pro ssh, ftp a telnet
# pozadujeme minimalni zpozdeni. Pro ftp-data zase maximalni propostnost
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --sport ssh -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --dport ssh -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --sport ftp -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --dport ftp -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --dport telnet -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --sport ftp-data -j TOS --set-tos Maximize-Throughput

# Povolime odchozi pakety, ktere maji nase IP adresy
$IPTABLES -A OUTPUT -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -s $LAN1_IP -j ACCEPT
$IPTABLES -A OUTPUT -s $INET_IP -j ACCEPT

# Povolime DHCP broadcasty na LAN rozhrani
$IPTABLES -A OUTPUT -o $LAN1_IFACE -p UDP --dport 68 --sport 67 -j ACCEPT

# Ostatni pakety logujeme (nemely by byt zadne takove)
$IPTABLES -A OUTPUT -j LOG --log-prefix "OUTPUT drop: "

###################
#MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth0 -j MASQUERADE
8.10.2011 15:29 tomk
Rozbalit Rozbalit vše Re: Problém s firewallem
Pokud to spravne chapu, mohl by byt problem v asymetrickem routingu a v pravidlu $IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP na firewallu.

Jde o to, ze firewall nevidi uvodni syn packet od 6.2 na 1.2, protoze ten forwarduje 1.10 do primo pripojene site 1.0/24 - tedy mimo 1.1.

1.1 pak vidi az syn odpoved od 1.2. 1.2 ma 1.1 jako default gw, takze packety do 6.0/24 posila prostrednictvim 1.1. SYN packet od 1.2 tedy pravdepodobne jeste projde, ale nasledny packet od 1.2, ktery 1.1 prijme vyhovuje stavu NEW (protoze spada do z jeho pohledu jeste nevytvoreneho spojeni - videl jen jeden SYN), ale nema priznak SYN, tudiz je uvedenym pravidlem zahozen.

Tomuto vysvetleni by odpovidalo i to, ze icmp packety prochzeji - nevyhovuji totiz uvedenemu pravidlu a tak se jich tyka az povolovaci $IPTABLES -A FORWARD -i $LAN1_IFACE -j ACCEPT.

Nevim, kolik dalsich zarizeni v siti 1.0/24 je, ale nejhezci by mi prislo upravit v nich smerovani tak, aby data do 6.0/24 posilala prostrednictvim 1.10.

Tomas
8.10.2011 18:06 Tonda
Rozbalit Rozbalit vše Re: Problém s firewallem
Ahoj,

přesně takto to vidím i já, taky si myslím, že dotaz na 1.2 dojde, ale zpět už nepřijde.

S síti 1.0/24 jsou 3 routery a 2 access pointy a právě na ty access pointy se potřebuji z jednotlivých vnitřních rozhraní routerů dostat tzn. nejen z 6.1, ale i 7.1 a 8.1.

Co tím přesně myslíš: Nevim, kolik dalsich zarizeni v siti 1.0/24 je, ale nejhezci by mi prislo upravit v nich smerovani tak, aby data do 6.0/24 posilala prostrednictvim 1.10.

mohl bys to trošku rozvézt?

Díky moc
8.10.2011 18:56 tomk
Rozbalit Rozbalit vše Re: Problém s firewallem
Presne jsem tim myslel udelat na 1.2 (a pripadne vsech dalsich zarizenich v te siti) tohle: route add -net 192.168.6.0 netmask 255.255.255.0 gw 192.168.1.10

Tedy docilit toho, aby do site 192.168.6.0 (pripadne dalsich) chodila prostrednictvim spravneho routeru a ne cestou default gw.

Alternativa je samozrejme na default gw v iptables povolit, aby to tuhle komunikaci nezahazovalo. Pokud se ma jednat jen o pristup do managementu APcek z danych siti, tak by to zas strasne nebylo.

Tomas
8.10.2011 21:00 Tonik
Rozbalit Rozbalit vše Re: Problém s firewallem
Dík moc, vyzkouším.
pavlix avatar 8.10.2011 18:14 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Problém s firewallem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na to nepotřebuješ poradnu. Pusť to s úplně volným firewallem, pak postupně přidávej pravidla a pomocí přepínače -v si můžeš v iptables zobrazit počítané pakety. Na to povolení můžeš zkoušet obecná pravidla, pak méně obecná (-p tcp, -p udp), pak konkrétní porty... chce to jen trochu snahy.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.