Przez chwilę myślałem o dwóch rzeczach związanych z iptables: większość tych, którzy szukają tych tutoriali, to początkujący, a po drugie, wielu już szuka czegoś dość prostego i już rozbudowanego.
Ten przykład dotyczy serwera WWW, ale możesz łatwo dodać więcej reguł i dostosować je do swoich potrzeb.
Kiedy zobaczysz zmianę „x” dla Twojego adresu IP
#!/bin/bash
# Czyścimy tabele iptables -F iptables -X # Czyścimy NAT iptables -t nat -F iptables -t nat -X # mangle table dla rzeczy takich jak PPPoE, PPP i ATM iptables -t mangle -F iptables -t mangle -X # Zasady Myślę, że jest to najlepszy sposób dla początkujących i # nadal nie jest zły, wyjaśnię wyjście (wyjście) wszystko, ponieważ są to połączenia wychodzące, # wejście odrzucamy wszystko i żaden serwer nie powinien przekazywać dalej. iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP #Intranet LAN intranet = eth0 #Extranet wan extranet = eth1 # Zachowaj stan. Wszystko, co jest już połączone (ustanowione), pozostaje w ten sposób: iptables -A INPUT -m stan --state USTANOWIONO, ZWIĄZANE -j AKCEPTUJ # Urządzenie pętlowe. iptables -A INPUT -i lo -j AKCEPTUJ # http, https, nie określamy interfejsu, ponieważ # chcemy, aby był to cały iptables -A INPUT -p tcp --dport 80 -j AKCEPTUJ iptables -A INPUT -p tcp - dport 443 -j AKCEPTUJ # ssh tylko wewnętrznie iz tego zakresu iptables iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 7659 -j AKCEPTUJ # monitorowanie np. jeśli mają zabbix lub inne usługa snmp iptables -A WEJŚCIE -p tcp -s 192.168.xx / 24 -i $ intranet --dport 10050 -j AKCEPTUJ # icmp, ping dobrze to zależy od Ciebie iptables -A WEJŚCIE -p icmp -s 192.168.xx / 24 - i $ intranet -j AKCEPTUJ #mysql z postgresem to port 5432 iptables -A WEJŚCIE -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j AKCEPTUJ #sendmail bueeeh jeśli chcesz wysłać pocztę #iptables -A WYJŚCIE -p tcp --dport 25 -j AKCEPTUJ # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx" # IP serwera - prawdziwy adres IP serwera LAN_RANGE = "192.168.xx / 21" # zakres LAN Twojej sieci lub # IP sieci VLAN, które nigdy nie powinny trafiać do Extranetu,ma użyć trochę logiki #, jeśli mamy interfejs wyłącznie WAN, to nigdy nie powinien wprowadzać ruchu typu LAN przez ten interfejs SPOOF_IPS = "0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0 / 16 "# Akcja domyślna - wykonywana, gdy jakakolwiek reguła pasuje do ACTION =" DROP "# Pakiety z tym samym adresem IP mojego serwera przez wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION # iptables -A OUTPUT -o $ extranet -s $ SERVER_IP -j $ ACTION # Pakiety z zakresem LAN dla wan, umieściłem to w ten sposób na wypadek, gdybyś # jakakolwiek konkretna sieć, ale jest to zbędne z następującą regułą # wewnątrz pętli " dla "iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION ## Wszystkie sieci SPOOF niedozwolone przez wan dla ip w $ SPOOF_IPS do iptables -A WEJŚCIE -i $ extranet -s $ ip -j $ AKCJA iptables -A WYJŚCIE -o $ extranet -s $ ip -j $ AKCJA wykonana
Jak zawsze czekam na wasze komentarze, zaglądajcie na ten blog, dziękuję