Portál AbcLinuxu, 13. května 2025 22:50
/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:~#
/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 doneMaš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.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.