Portál AbcLinuxu, 1. listopadu 2025 02:05
/sbin/depmod -a /sbin/modprobe ipt_LOG /sbin/modprobe ipt_REJECT /sbin/modprobe ipt_MASQUERADE /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_nat_ftp echo "1" > /proc/sys/net/ipv4/ip_forward /sbin/iptables -X /sbin/iptables -F INPUT /sbin/iptables -F OUTPUT /sbin/iptables -F FORWARD /sbin/iptables -t nat -X /sbin/iptables -t nat -F POSTROUTING /sbin/iptables -t nat -F PREROUTING /sbin/iptables -t nat -F OUTPUT /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -P FORWARD DROP /sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE /sbin/iptables -A INPUT -i eth0 -p tcp --dport 21 -j DROP /sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j DROP /sbin/iptables -A INPUT -i eth0 -p tcp --dport 111 -j DROP /sbin/iptables -A INPUT -i eth0 -p tcp --dport 113 -j REJECT /sbin/iptables -A INPUT -i eth0 -p udp --dport 67 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 68 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 88 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 111 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 138 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 162 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 514 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 749 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 1433 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 1900 -j DROP /sbin/iptables -A OUTPUT -o lo -j ACCEPT /sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A INPUT -p icmp -j ACCEPT /sbin/iptables -A FORWARD -p icmp -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p udp -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p udp -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p tcp -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p tcp -j ACCEPTVýpis z iptables:
gw:~# iptables -L Chain INPUT (policy DROP) target prot opt source destination DROP tcp -- anywhere anywhere tcp dpt:ftp DROP tcp -- anywhere anywhere tcp dpt:www DROP tcp -- anywhere anywhere tcp dpt:sunrpc REJECT tcp -- anywhere anywhere tcp dpt:auth reject -with icmp-port-unreachable DROP udp -- anywhere anywhere udp dpt:bootpc DROP udp -- anywhere anywhere udp dpt:kerberos DROP udp -- anywhere anywhere udp dpt:sunrpc DROP udp -- anywhere anywhere udp dpt:netbios-dgm DROP udp -- anywhere anywhere udp dpt:snmp-trap DROP udp -- anywhere anywhere udp dpt:syslog DROP udp -- anywhere anywhere udp dpt:749 DROP udp -- anywhere anywhere udp dpt:ms-sql-s DROP udp -- anywhere anywhere udp dpt:1900 ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere state RELATED,ESTAB LISHED ACCEPT icmp -- anywhere anywhere ACCEPT udp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere Chain FORWARD (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTAB LISHED ACCEPT icmp -- anywhere anywhere ACCEPT udp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere
tcpdump, ten se k síťovému provozu dostane mnohem dřív, než se ke slovu dostanou iptables, takže tam samozřejmě uvidíte veškerý příchozí provoz.
/sbin/depmod -a /sbin/modprobe ipt_LOG /sbin/modprobe ipt_REJECT /sbin/modprobe ipt_MASQUERADE /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_nat_ftp echo "1" > /proc/sys/net/ipv4/ip_forward /sbin/iptables -X /sbin/iptables -F INPUT /sbin/iptables -F OUTPUT /sbin/iptables -F FORWARD /sbin/iptables -t nat -X /sbin/iptables -t nat -F POSTROUTING /sbin/iptables -t nat -F PREROUTING /sbin/iptables -t nat -F OUTPUT /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -P FORWARD DROP /sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE /sbin/iptables -A INPUT -i eth0 -p tcp --dport 113 -j REJECT /sbin/iptables -A OUTPUT -o lo -j ACCEPT /sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A INPUT -p icmp -j ACCEPT /sbin/iptables -A FORWARD -p icmp -j ACCEPT Následující zrušit a povolit pouze ty služby co chcete používat...a né že povolíte všechno. /sbin/iptables -A INPUT -i eth0 -p udp -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p udp -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p tcp -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p tcp -j ACCEPT
/sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -P FORWARD DROPa pak tam nastavuješ v chainu INPUT opět na DROP
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 21 -j DROP /sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j DROP /sbin/iptables -A INPUT -i eth0 -p tcp --dport 111 -j DROP /sbin/iptables -A INPUT -i eth0 -p tcp --dport 113 -j REJECT /sbin/iptables -A INPUT -i eth0 -p udp --dport 67 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 68 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 88 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 111 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 138 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 162 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 514 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 749 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 1433 -j DROP /sbin/iptables -A INPUT -i eth0 -p udp --dport 1900 -j DROPPROČ????? No a v zápětí celou tuhle politiku DROP popřeš a všechno to povolíš
/sbin/iptables -A INPUT -p icmp -j ACCEPT /sbin/iptables -A FORWARD -p icmp -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p udp -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p udp -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p tcp -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p tcp -j ACCEPTNení to trošku proti zdravému rozumu? Můžeš mi vysvětlit co tím chtěl básník říci? Vůbec jsem nepochopil o co jsi se snažil. Podle mě je to celé totálně blbě. Smazal bych to a začal po nějakém studiu jak to vlastně funguje znovu.
gw:~# iptables -t filter -L INPUT -nv
Chain INPUT (policy DROP 78 packets, 27414 bytes)
pkts bytes target prot opt in out source destination
36 1728 DROP tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
12 576 DROP tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
15 720 DROP tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:111
12 576 REJECT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:113 reject-with icmp-port-unreachable
6 276 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:68
6 276 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:88
6 276 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:111
33 6567 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:138
6 276 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:162
6 276 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:514
6 276 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:749
6 276 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:1433
6 276 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:1900
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
1285 173K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
24 1296 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
156 8460 ACCEPT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0
1527 73296 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0
gw:~# iptables -t filter -L INPUT -nv
Chain INPUT (policy DROP 78 packets, 27414 bytes)
pkts bytes target prot opt in out source destination
42 2016 DROP tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
14 672 DROP tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
17 816 DROP tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:111
14 672 REJECT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:113 reject-with icmp-port-unreachable
7 322 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:68
7 322 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:88
7 322 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:111
34 6613 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:138
7 322 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:162
7 322 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:514
7 322 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:749
7 322 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:1433
7 322 DROP udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:1900
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
1296 174K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
28 1512 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
180 9714 ACCEPT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0
1781 85488 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0
gw:~#
pravda. Ovšem ty dropnuté porty mi ukázal scanner - to je to divné. Ale už to funguje tak jak má viz.konfigurace dole, takže už to nebudu pitvat.
Děkuji
/sbin/depmod -a /sbin/modprobe ipt_LOG /sbin/modprobe ipt_REJECT /sbin/modprobe ipt_MASQUERADE /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_nat_ftp echo "1" > /proc/sys/net/ipv4/ip_forward /sbin/iptables -X /sbin/iptables -F INPUT /sbin/iptables -F OUTPUT /sbin/iptables -F FORWARD /sbin/iptables -t nat -X /sbin/iptables -t nat -F POSTROUTING /sbin/iptables -t nat -F PREROUTING /sbin/iptables -t nat -F OUTPUT /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -P FORWARD DROP /sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE /sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A INPUT -p icmp -j ACCEPT /sbin/iptables -A FORWARD -p icmp -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p tcp -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p udp -j ACCEPT
iptables -F iptables -X iptables -t nat -F iptables -t nat -XPokud totiž bude existovat nějaký neprázdný uživatelský řetězec, samotné 'iptables -X' ho nesmaže. Nebo chcete-li být opravdu důsledný, můžete použít
for t in `cat /proc/net/ip_tables_names`; do
iptables -t "$t" -F
iptables -t "$t" -X
done
Maškarádovací pravidlo by bylo vhodné upravit tak, aby se vztahovalo jen na pakety se "závadnou" zdrojovou adresou, tj. adresou z rozsahu vnitřní sítě. Sice si s tím většinou netfilter poradí i tak, ale jednou třeba přidáte DMZ a budete se divit, proč to zlobí.
U ICMP by asi bylo vhodné omezit frekvenci pomocí limit. Ve FORWARD by ho asi bylo vhodné povolit jen zevnitř ven.
/sbin/depmod -a # moduly /sbin/modprobe ipt_LOG /sbin/modprobe ipt_REJECT /sbin/modprobe ipt_MASQUERADE /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_nat_ftp # zapneme smerovani echo "1" > /proc/sys/net/ipv4/ip_forward # cisticka pravidel /sbin/iptables -F /sbin/iptables -X /sbin/iptables -t nat -F /sbin/iptables -t nat -X # nastaveni implicitni politiky /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -P FORWARD DROP # maskarada pro vnitrni rozsah adres /sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.1/255.255.255.0 -j MASQUERADE # loopback /sbin/iptables -A INPUT -i lo -j ACCEPT # probihajici a navazana spojeni povolime /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # icmp pakety povolime /sbin/iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 5 -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 5 -j ACCEPT # povolime ssh a indiana /sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT # z vnitrni site do netu povolime /sbin/iptables -A FORWARD -i eth0 -p tcp -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p udp -j ACCEPT
iptables nebude moc líbit, nejspíš to budete muset zapsat korektně jako '-s 192.168.0.0/255.255.255.0' nebo '-s 192.168.0.0/24'. Limit na ICMP bych asi dal vyšší, takhle to začne ICMP message zahazovat už v případě, že si dva uživatelé dají současně ping někam ven. Jinak to vypadá docela dobře.
ano, měla tam být adresa sítě samozřejmě 192.168.0.0 - to byl překlep. Limit na ping dám tedy 20. Díky moc
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.