rtgx

Firewall - iptables

Príkazy (commands)

-A, --append

iptables -A INPUT ...

pridáva pravidlo do reťaze

-D, --delete

iptables -D INPUT --dport 80 -j DROP, iptables -D INPUT 1

maže pravidlo z reťaze

-L, --list

iptables -L INPUT

generuje zoznam pravidiel v reťazi

-F, --flush

iptables -F INPUT

vyprázdni zoznam pravidiel v reťazi

-P, --policy

iptables -P INPUT DROP

nastavuje štandardnú politiku reťaze

Príklad štandardnej politiky

Všetky prichádzajúce (INPUT) a prechádzajúce (FORWARD) pakety budú zahodené, len pakety z lokálneho systému smerujúce do siete (OUTPUT) budú povolené.

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

Príklady nastavenia pre FTP

Príkazy shellu na nahranie modulov pre ftp:

# modprobe ip_conntrack
# modprobe ip_conntrack_ftp

Nastavenie iptables:

iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 202.54.1.20 --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 202.54.1.20 --sport 21 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 202.54.1.20 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -s 202.54.1.20 --sport 1024:65535 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp -s 202.54.1.20 --sport 20 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 202.54.1.20 --dport 20 -m state --state ESTABLISHED -j ACCEPT

Príklad

#!/bin/sh
echo 'starting firewall...'

iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

iptables -A INPUT -p icmp -m state --state ESTABLISHED -i eth0 -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED -i eth0 -j ACCEPT
iptables -A INPUT -p udp -m state --state ESTABLISHED -i eth0 -j ACCEPT

# allow SSH input
iptables -A INPUT -p tcp --dport 22 -s xxx.xxx.xxx.xxx -j ACCEPT

# allow FTP input
iptables -A INPUT -p tcp --dport 21 -s xxx.xxx.xxx.xxx -j ACCEPT

# allow DNS
iptables -A INPUT -p tcp --dport 53 -s xxx.xxx.xxx.xxx/24 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -s xxx.xxx.xxx.xxx/24 -j ACCEPT

# allow smb
iptables -A INPUT -p tcp -m multiport --destination-port 137,138,139,445,5353 -s 10.50.50.0/24 -j ACCEPT
iptables -A INPUT -p udp -m multiport --destination-port 137,138,139,445,5353 -s 10.50.50.0/24 -j ACCEPT

# allow HTTP input
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# alow ping
iptables -A INPUT -p icmp -s xxx.xxx.xxx.xxx -j ACCEPT

# modules
modprobe ip_conntrack
modprobe ip_conntrack_ftp

iptables -A INPUT -m limit --limit 3/second --limit-burst 5 -i ! lo -j LOG

Výpis nastavených pravidiel

# iptables -L -nv
Chain INPUT (policy DROP 51 packets, 2760 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT icmp -- eth0 * 0.0.0.0/0 0.0.0.0/0 state ESTABLISHED
18019 861K ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 state ESTABLISHED
13 1363 ACCEPT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 state ESTABLISHED
0 0 ACCEPT tcp -- * * xx.xx.xx.xxx 0.0.0.0/0 tcp dpt:22
0 0 ACCEPT tcp -- * * xx.xx.xx.xxx 0.0.0.0/0 tcp dpt:21
0 0 ACCEPT tcp -- * * xx.xx.xx.0/24 0.0.0.0/0 tcp dpt:53
0 0 ACCEPT udp -- * * xx.xx.xx.0/24 0.0.0.0/0 udp dpt:53
4 256 ACCEPT tcp -- * * xx.xx.xx.0/24 0.0.0.0/0 multiport dports 137,138,139,445,5353
13 2125 ACCEPT udp -- * * xx.xx.xx.0/24 0.0.0.0/0 multiport dports 137,138,139,445,5353
34 1928 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
0 0 ACCEPT icmp -- * * xx.xx.xx.0/24 0.0.0.0/0
10 300 LOG all -- !lo * 0.0.0.0/0 0.0.0.0/0 limit: avg 3/sec burst 5 LOG flags 0 level 4

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 31050 packets, 45M bytes)
pkts bytes target prot opt in out source destination

Chain RH-Firewall-1-INPUT (0 references)
pkts bytes target prot opt in out source destination

Generátor typoscriptu

Vytvára typoscript pre bežné použitie. Generátor je jednoduchý na obsluhu, stačí vyplniť zopár položiek formulára.

Odkazy