Archiv pro štítek: iptables

Linux mini-howto: Blokujeme TOR EXIT nodes

Linux mini-howto?
Krátce o nástrojích ze života sysadmina.

Důvod proč blokovat přístup ke službám ze sítě Tor je na Vašem rozhodnutí a není předmětem tohoto článku.

Tor je anonymizační nástroj (software) maskující skutečný pohyb uživatele po internetové síti, ukrývající skutečnou IP adresu případně další informace, které mohou umožnit jeho sledování.

Pokračování textu Linux mini-howto: Blokujeme TOR EXIT nodes

Linux: Firewall Iptables v příkladech

Zcela bez komentáře, linux firewall iptables v pár jednoduchých příkladech.

firewall status
# iptables -L -n -v
# iptables -n -L -v --line-numbers
# iptables -L INPUT -n -v
# iptables -L OUTPUT -n -v --line-numbers
Smazání všech pravidel (-F), chainu(-X), výchozí politika chainu(-P)
# iptables -F
# iptables -X
# iptables -t nat -F
# iptables -t nat -X
# iptables -t mangle -F
# iptables -t mangle -X
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEP

# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP
Insert a delete pravidel
# iptables -L INPUT -n --line-numbers
# iptables -I INPUT 10 -s 192.168.0.0/16 -j DROP
# iptables -L INPUT -n --line-numbers
# iptables -D INPUT 10
# iptables -D INPUT -s 192.168.0.0/16 -j DROP
Zahodit veškerý příchozí trafik i předávaní mezi rozhraním (forward), povolit pouze odchozí (ze stroje)
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
# iptables -P OUTPUT ACCEPT
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Zahození privátních rozsahů na rozhraní do internetu (eth0)
# iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP
# iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
# iptables -A INPUT -i eth0 -s 192.16.0.0/16 -j DROP
# iptables -A INPUT -i eth0 -s 224.0.0.0/4 -j DROP
# iptables -A INPUT -i eth0 -s 240.0.0.0/5 -j DROP
# iptables -A INPUT -i eth0 -s 127.0.0.0/8 -j DROP
  • 10.0.0.0/8 -j  (A
  • 172.16.0.0/12  (B)
  • 192.168.0.0/16 (C)
  • 224.0.0.0/4 (MULTICAST D)
  • 240.0.0.0/5 (E)
  • 127.0.0.0/8 (LOOPBACK)
Blokovaní příchozí, odchozí adresy, rozsahu, portu
# iptables -A INPUT -s 1.2.3.4 -j DROP
# iptables -A INPUT -s 192.168.0.0/24 -j DROP
# iptables -A INPUT -p tcp --dport 80 -j DROP
# iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP
# iptables -A OUTPUT -d 1.2.3.4 -j DROP
# iptables -A OUTPUT -d 192.168.1.0/24 -j DROP
# iptables -A OUTPUT -o eth1 -d 192.168.1.0/24 -j DROP
Logování, burst a drop
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix "IP_SPOOF A: "
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -m limit --limit 5/m --limit-burst 7 -j LOG --log-prefix "IP_SPOOF A: "
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
Zahození podle MAC
# iptables -A INPUT -m mac --mac-source d4:3d:7e:27:79:fc -j DROP
Blokování/povolení ICMP echo request/reply (ping)
# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP
# iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type echo-request -j ACCEPT
# iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
Otevření skupiny(rozsahu) portů
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT
Manipulace s rozsahem adres
# iptables -A INPUT -p tcp --destination-port 80 -m iprange --src-range 192.168.1.100-192.168.1.200 -j ACCEPT
Povolení služeb
## ssh tcp port 22 ##
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
## CUPS (tisk pouze z LAN) ##
iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 631 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 631 -j ACCEPT
## NTP ##
iptables -A INPUT -m state --state NEW -p udp --dport 123 -j ACCEPT
## SMTP ##
iptables -A INPUT -m state --state NEW -p tcp --dport 25 -j ACCEPT
# DNS ##
iptables -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
## http/https (Apache) ##
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
## POP3 ##
iptables -A INPUT -m state --state NEW -p tcp --dport 110 -j ACCEPT
## IMAP ##
iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT
## Samba (pouze z LAN) ##
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
## PROXY (pouze z LAN) ##
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 3128 -j ACCEPT
## mysql ##
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
Omezení počtu paralelních spojení (SSH 3 spojení z jedné IP adresy, HTTP 80 spojení z adres resp. seskupenou pod /24 IPv4 masku hosta)
# iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT
# iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 24 -j DROP

 

František Havel