( birno | 2008. 03. 13., cs – 08:44 )

Először is köszönöm a segítséget!
Igen, ezek a szabályok a routerre kerülnének.
INPUT láncból ftp-t, torrentet kivettem, de a VNC-nek maradnia kell, különben távolról hogyan csatlakozom a géphez?

UPC-nél vagyok, tőlük dhcp-vel kapom az IP-t így folyamatosan jönnek bootstrap üzenetek, ezért engedélyeztem az INPUT-ban, a belső hálón lévő gépek fix IP-t kapnak.
A --syn limites sorból valóban hiányzott a target, köszi, bár ha végiggondolon nem tudom kell-e egyáltalán az a sor, az utána lévő úgyis eldobja a nem syn-es csomagokat, a nem kívánt forgalom meg úgysem jut át a többi szabály miatt, nem?

OUTPUT-on loopbacket engedélyeztem és az 53-as portot is, valóban a router van megadva name servernek.

FORWARD javítva, ftp-nél azért van külön megadva egy kiszolgáló, mert ő a 31337-es porton kommunikál, azonban amikor teszteltem a gépen hiába engedélyeztem a portot, nem volt adatforgalmam tőle, csatlakozni tudtam rá, de pl. egy "ls" parancsra már nem jött válasz, azért lett így megoldva.

A legtöbb esteben nem fix se a forrás se a cél, ahol tudtam, ott igyekeztem megadni, de pl. amikor csak a google imap szervere felé engedélyeztem a 993-as portot nem kommunikált, amint töröltem a célt és csak a portot hagytam működött, viszont a 25-ösnél érdekes mód nem zavarja a cél megadása.
"Ugye a 192.168.1.1 a router, és a 192.168.1.2 a mögötte lévő gép?" Igen, így van.

Az interfészekkel viszont bajban vagyok, egész másképp működik látszólag mint a gépen.
ifconfig kimenete:

# ifconfig 
br0        Link encap:Ethernet  HWaddr 00:1C:10:88:56:71  
           inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:1157122 errors:0 dropped:0 overruns:0 frame:0
           TX packets:1285335 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0 
           RX bytes:228217809 (217.6 MiB)  TX bytes:1345458877 (1.2 GiB)

eth0       Link encap:Ethernet  HWaddr 00:1C:10:88:56:71  
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:2749077 errors:3 dropped:0 overruns:3 frame:3
           TX packets:2406807 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:100 
           RX bytes:1628382191 (1.5 GiB)  TX bytes:1593592113 (1.4 GiB)
           Interrupt:4 Base address:0x1000 

eth1       Link encap:Ethernet  HWaddr 00:1C:10:88:56:73  
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:100 
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
           Interrupt:2 Base address:0x5000 

lo         Link encap:Local Loopback  
           inet addr:127.0.0.1  Mask:255.0.0.0
           UP LOOPBACK RUNNING MULTICAST  MTU:16436  Metric:1
           RX packets:62 errors:0 dropped:0 overruns:0 frame:0
           TX packets:62 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0 
           RX bytes:5297 (5.1 KiB)  TX bytes:5297 (5.1 KiB)

vlan0      Link encap:Ethernet  HWaddr 00:1C:10:88:56:71  
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:1157122 errors:0 dropped:0 overruns:0 frame:0
           TX packets:1285334 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0 
           RX bytes:232846581 (222.0 MiB)  TX bytes:1350598707 (1.2 GiB)

vlan1      Link encap:Ethernet  HWaddr 00:50:8D:F9:F3:E6  
           inet addr:86.101.4.240  Bcast:86.101.4.255  Mask:255.255.255.0
           UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1
           RX packets:1591955 errors:0 dropped:0 overruns:0 frame:0
           TX packets:1121475 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0 
           RX bytes:1346053670 (1.2 GiB)  TX bytes:242994974 (231.7 MiB)

Ebből elvileg az következik, hogy a br0-án kommunikál befele, a vlan1-en pedig kifele, de nem értem miért a vlan1-en és akkor mire van az eth0 és eth1?
Az OUTPUT-ban mindkettőt engedélyezni kell, mert mehet a külvilág fele is és a gépem fele is kapcsolat kezdeményezés, igaz?
INPUT-nál a br0-át kellene megadni, FORWARD-nál meg a vlan1-et?

NAT-oláshoz totál nem értek egyenlőre, de ha szükséges lesz majd utánaolvasok, egyenlőre bemásolom, hogy milyen szabályok vannak alapból a routerben.

# iptables -t nat -vnL
Chain PREROUTING (policy ACCEPT 10457 packets, 1083K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       0    --  vlan1  *       0.0.0.0/0            192.168.1.0/24      
    0     0 DNAT       icmp --  *      *       0.0.0.0/0            86.101.4.240        to:192.168.1.1 
    2   120 DNAT       tcp  --  *      *       0.0.0.0/0            86.101.4.240        tcp dpt:8080 to:192.168.1.1:443 
    9   540 DNAT       tcp  --  *      *       0.0.0.0/0            86.101.4.240        tcp dpt:22 to:192.168.1.1:22 
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            86.101.4.240        tcp dpt:56732 to:192.168.1.2 
    0     0 DNAT       udp  --  *      *       0.0.0.0/0            86.101.4.240        udp dpt:56732 to:192.168.1.2 
 3013  178K DNAT       tcp  --  *      *       0.0.0.0/0            86.101.4.240        tcp dpts:54896:54897 to:192.168.1.2 
  742 36438 DNAT       udp  --  *      *       0.0.0.0/0            86.101.4.240        udp dpts:54896:54897 to:192.168.1.2 
    6   360 DNAT       tcp  --  *      *       0.0.0.0/0            86.101.4.240        tcp dpt:64561 to:192.168.1.2 

Chain POSTROUTING (policy ACCEPT 3712 packets, 212K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 SNAT       tcp  --  *      *       192.168.1.0/24       192.168.1.2         tcp dpt:56732 to:192.168.1.1 
    0     0 SNAT       udp  --  *      *       192.168.1.0/24       192.168.1.2         udp dpt:56732 to:192.168.1.1 
   57  3420 SNAT       tcp  --  *      *       192.168.1.0/24       192.168.1.2         tcp dpts:54896:54897 to:192.168.1.1 
    0     0 SNAT       udp  --  *      *       192.168.1.0/24       192.168.1.2         udp dpts:54896:54897 to:192.168.1.1 
    0     0 SNAT       tcp  --  *      *       192.168.1.0/24       192.168.1.2         tcp dpt:64561 to:192.168.1.1 
 4549  454K MASQUERADE  0    --  *      vlan1   0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 30 packets, 2034 bytes)
 pkts bytes target     prot opt in     out     source               destination         
# iptables -vnL       
Chain INPUT (policy DROP 2660 packets, 398K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       0    --  br0    *       0.0.0.0/0            86.101.4.240        
   36  3686 DROP       0    --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID 
22946 1892K ACCEPT     0    --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
  495 30357 ACCEPT     0    --  br0    *       0.0.0.0/0            0.0.0.0/0           
    8   517 ACCEPT     0    --  lo     *       0.0.0.0/0            0.0.0.0/0           
    2   120 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.1         tcp dpt:443 
    9   540 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.1         tcp dpt:22 

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  373 22960 ACCEPT     0    --  br0    br0     0.0.0.0/0            0.0.0.0/0           
    0     0 DROP       0    --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID 
 6195  335K TCPMSS     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x06/0x02 tcpmss match 1453:65535 TCPMSS set 1452 
2058K 1365M ACCEPT     0    --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
 7157  374K wanin      0    --  vlan1  *       0.0.0.0/0            0.0.0.0/0           
 5172  497K wanout     0    --  *      vlan1   0.0.0.0/0            0.0.0.0/0           
 5172  497K ACCEPT     0    --  br0    *       0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 25337 packets, 3344K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain wanin (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.2         tcp dpt:56732 
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            192.168.1.2         udp dpt:56732 
 4968  274K ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.2         tcp dpts:54896:54897 
 2183 99708 ACCEPT     udp  --  *      *       0.0.0.0/0            192.168.1.2         udp dpts:54896:54897 
    6   360 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.2         tcp dpt:64561 

Chain wanout (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Nem tudom ez így megfelelő-e vagy bele kell vetnem magam a NAT rejtelmeibe? :)

A logolás még egy érdekes téma, elvileg minden lánc végén ott a szabály, de pl. amikor az imap szerverrel nem tudott kommunikálni a logok üresek voltak, a torrent szintén elszállt timeout-al, pedig a bejövő forgalomra használt és a trackerek elérését biztosító portok is engedélyezve voltak a FORWARD láncon, logokban szintén semmi, hogy miért nem tudott csatlakozni.
Nem értem, netán valamely más tábla szabályain akadna fenn?
De melyikén?

Végül bemásolom a jelenlegi scriptet:

## otthoni tuzfal

## eloszor torlunk minden szabalyt.
iptables -F
iptables -X
iptables -Z
## alap policy
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

## INPUT szabalyok.
iptables -A INPUT -i lo -j ACCEPT ## loopback -en engedelyezzuk a forgalmat.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ## engedelyezzuk befele, ami tolunk szarmazik.
iptables -A INPUT -p tcp --syn -m state --state NEW -m limit --limit 2/min -j ACCEPT # uj kapcsolat
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP #nem syn-nel kezdodik, kulonben esetleg tamadas
iptables -A INPUT -p tcp --dport ssh -m limit --limit 3/m -j LOG --log-uid --log-prefix "SSH_ACCEPT: "
iptables -A INPUT -p tcp -s 192.168.1.2 --syn --dport ssh -j ACCEPT
iptables -A INPUT -p tcp -s 145.236.252.34 --syn --dport ssh -j ACCEPT
iptables -A INPUT -p tcp -s 212.51.124.92 --syn --dport ssh -j ACCEPT
iptables -A INPUT -p tcp --syn --dport ssh -m --set -j ACCEPT
iptables -A INPUT -p tcp --syn --dport ssh -m recent --update --seconds 60 --hitcount 3 -j DROP
iptables -A INPUT -p tcp --dport 45761 -m state --state NEW -j ACCEPT ## router tavoli eleres
iptables -A INPUT -p tcp --dport 56732 -m state --state NEW -j ACCEPT ## VNC
iptables -A INPUT -p icmp -j ACCEPT ## kintrol "ping" mehet.
iptables -A INPUT -p udp --dport 68 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.1.2 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.1.2 -j ACCEPT
iptables -A INPUT -j LOG --log-uid --log-prefix "INPUT_DROP: "
iptables -A INPUT -j DROP

## OUTPUT szabalyok.
iptables -A OUTPUT -o lo -j ACCEPT ## loopback -en engedelyezzuk a forgalmat.
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ## jovahagyott kapcsolatok engedelyezese.
iptables -A OUTPUT -p tcp -d 192.168.1.2 --syn --dport ssh -m limit --limit 3/m -j ACCEPT
iptables -A OUTPUT -s 192.68.1.1 -d 213.46.246.53:213.46.246.54 -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -s 192.68.1.1 -d 213.46.246.53:213.46.246.54 -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -j LOG --log-uid --log-prefix "OUTPUT_DROP: "
iptables -A OUTPUT -j DROP

# FORWARD lanc
iptables -A FORWARD -p icmp -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT ## jovahagyott kapcsolatok engedelyezese.
iptables -A FORWARD -p udp --dport 53 -j ACCEPT ## a DNS -re szukseg van.
iptables -A FORWARD -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 123 -j ACCEPT ## ntp mehet
iptables -A FORWARD -p tcp --dport 123 -m state --state NEW -j ACCEPT

iptables -A FORWARD -p tcp --dport 80 -m state --state NEW -j ACCEPT ## http mehet.
iptables -A FORWARD -p tcp --dport 443 -m state --state NEW -j ACCEPT ## https mehet
iptables -A FORWARD -p tcp --dport 22 -m state --state NEW -j ACCEPT ## ssh mehet.
iptables -A FORWARD -p tcp --dport 21 -m state --state NEW -j ACCEPT ## ftp control mehet
iptables -A FORWARD -p tcp --dport 20 -m state --state NEW -j ACCEPT ## ftp data mehet
iptables -A FORWARD -p tcp -d kiszolgalo -m state --state NEW -j ACCEPT ## ftp
iptables -A FORWARD -p tcp --dport 43 -m state --state NEW -j ACCEPT ## whois
iptables -A FORWARD -p tcp -d mail.chello.hu --dport 25 -m state --state NEW -j ACCEPT ## Levelezes SMTP
iptables -A FORWARD -p tcp --dport 993 -m state --state NEW -j ACCEPT ## Levelezes IMAP4s

iptables -A FORWARD -p tcp --dport 1863 -m state --state NEW -j ACCEPT ## msn
iptables -A FORWARD -p tcp --dport 6667 -m state --state NEW -j ACCEPT ## irc
iptables -A FORWARD -p tcp --dport 54896:54897 -m state --state NEW -j ACCEPT ## torrent
iptables -A FORWARD -p udp --dport 54896:54897 -m state --state NEW -j ACCEPT ## torrent
iptables -A FORWARD -p tcp --dport 2710 -m state --state NEW -j ACCEPT ## torrent tracker
iptables -A FORWARD -p udp --dport 2710 -m state --state NEW -j ACCEPT ## torrent tracker
iptables -A FORWARD -j LOG --log-uid --log-prefix "FORWARD_DROP: "
iptables -A FORWARD -j DROP