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