Vytvorte si vlastný firewall s iptables pomocou tohto jednoduchého skriptu

Strávil som čas premýšľaním nad dvoma vecami o iptables: väčšina z tých, ktorí hľadajú tieto návody, sú začiatočníci a po druhé, mnohí už hľadajú niečo celkom jednoduché a už prepracované.

Tento príklad je pre webový server, ale môžete ľahko pridať ďalšie pravidlá a prispôsobiť ich svojim potrebám.

Keď uvidíte zmenu „x“ pre vašu adresu IP


#!/bin/bash

# Čistíme iptables tabuľky -F iptables -X # Čistíme NAT iptables -t nat -F iptables -t nat -X # mangle tabuľka pre veci ako PPPoE, PPP a ATM iptables -t mangle -F iptables -t mangle -X # Politiky Myslím, že toto je najlepší spôsob pre začiatočníkov a # stále to nie je zlé, vysvetlím výstup (výstup), všetko preto, že sú to odchádzajúce spojenia #, vstup všetko zahodíme a žiadny server by nemal ďalej postupovať. iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP #Intranet LAN intranet = eth0 #Extranet wan extranet = eth1 # Zachovať stav. Všetko, čo je už pripojené (založené), zostane takto: iptables -A INPUT -m stav --state ESTABLISHED, RELATED -j ACCEPT # Loop device. iptables -A INPUT -i lo -j ACCEPT # http, https, neurčujeme rozhranie, pretože # chceme, aby to bolo pre všetky iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp - dport 443 -j ACCEPT # ssh iba interne a z tohto rozsahu iptable ip -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 7659 -j ACCEPT # monitoring napríklad ak majú zabbix alebo nejaká iná snmp služba iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 10050 -j ACCEPT # icmp, ping dobre, záleží len na vás iptables -A INPUT -p icmp -s 192.168. xx / 24 - i $ intranet -j ACCEPT # mysql s postgresom je port 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT #sendmail bueeeh ak chcete poslať nejaký mail #iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx" # server IP - skutočná IP adresa vášho servera LAN_RANGE = "192.168.xx / 21 "# LAN rozsah vašej siete alebo vášho vlan # IP, ktoré by nikdy nemali vstúpiť do extranetu,je použiť trochu # logiky, ak máme čisto rozhranie WAN, nikdy by nemalo vstupovať do prenosu typu LAN cez toto rozhranie 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 / XNUMX "# Predvolená akcia - vykoná sa, keď sa nejaké pravidlo zhoduje ACTION =" DROP "# Pakety s rovnakou IP môjho servera cez wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION # iptables -A VÝSTUP -o $ extranet -s $ SERVER_IP -j $ AKCIA # Pakety s LAN rozsahom pre wan, dal som to takto pre prípad, že máte # ľubovoľnú konkrétnu sieť, ale toto je nadbytočné s nasledujúcim # pravidlom vo vnútri slučka „pre“ iptables -A VSTUP -i $ extranet -s $ LAN_RANGE -j $ AKCIA iptables -A VÝSTUP -o $ extranet -s $ LAN_RANGE -j $ AKCIA ## Všetky siete SPOOF nepovoľuje wan pre ip v $ SPOOF_IPS do iptables -A VSTUP -i $ extranet -s $ ip -j $ AKCIA iptables -A VÝSTUP -o $ extranet -s $ ip -j $ AKCIA hotová

Ako vždy čakám na vaše komentáre, sledujte tento blog, ďakujeme