Brug af Iptables på Linux
Denne vejledning vil forsøge at forklare, hvordan man bruger iptables på linux på et letforståeligt sprog.
Indhold[skjule]
|
Oversigt
Iptables er en regelbaseret firewall, som vil behandle hver regel i rækkefølge, indtil den finder en, der matcher.
Todo: inkludere eksempel her
Anvendelse
Iptables-værktøjet er typisk forudinstalleret på din Linux-distribution, men kører ikke nogen regler. Du finder værktøjet her på de fleste distributioner:
/ Sbin / iptables
Blokerer en enkelt IP-adresse
Du kan blokere en IP ved at bruge parameteren -s, og erstatte 10.10.10.10 med den adresse, du forsøger at blokere. Du bemærker i dette eksempel, at vi brugte -I parameteren (eller -insert virker også) i stedet for tilføjelsen, fordi vi vil sørge for at denne regel vises først, før nogen tillade regler.
/ sbin / iptables -I INPUT -s 10.10.10.10 -j DROP
Tillad al trafik fra en IP-adresse
Du kan alternativt tillade al trafik fra en IP-adresse ved at bruge samme kommando som ovenfor, men erstatte DROP med ACCEPT. Du skal sørge for, at denne regel vises først, før eventuelle DROP regler.
/ sbin / iptables -A INPUT -s 10.10.10.10 -j ACCEPT
Blokerer en port fra alle adresser
Du kan blokere en port udelukkende fra at blive adgang til via netværket ved at bruge porten -port og tilføje porten til den tjeneste, du vil blokere. I dette eksempel blokerer vi mysql-porten:
/ sbin / iptables -A INPUT -p tcp --port 3306 -j DROP
Tilladelse af en enkelt port fra en enkelt IP
Du kan tilføje kommandoen -s sammen med kommandoen -dport for yderligere at begrænse reglen til en bestemt port:
/ sbin / iptables -A INPUT -p tcp -s 10.10.10.10 --port 3306 -j ACCEPT
Visning af de nuværende regler
Du kan se de nuværende regler ved hjælp af følgende kommando:
/ sbin / iptables -L
Dette skal give dig en output svarende til følgende:
Kæde INPUT (politik ACCEPT) mål prot opt kilde destination ACCEPT alle - 192.168.1.14 hvor som helst ACCEPT alle - 10.10.10.0/24 hvor som helst DROP tcp - hvor som helst tcp dpt: ssh DROP tcp - hvor som helst tcp dpt: mysql
Den faktiske produktion vil naturligvis være lidt længere.
Rydning af de nuværende regler
Du kan rydde alle de nuværende regler ud ved hjælp af flush-parameteren. Dette er meget nyttigt, hvis du skal sætte reglerne i den rigtige rækkefølge, eller når du tester.
/ sbin / iptables - flush
Distribution-Specific
Mens de fleste Linux-distributioner indeholder en form for iptables, indeholder nogle af dem også indpakninger, der gør forvaltningen lidt lettere. Oftest er disse "addons" i form af init scripts, der tager sig af at initialisere iptables ved opstart, selvom nogle distributioner også omfatter fuldblæste wrapper applikationer, som forsøger at forenkle den almindelige sag.
Gentoo
Det iptables init script på Gentoo er i stand til at håndtere mange fælles scenarier. Til at begynde med kan du konfigurere iptables til at indlæse ved opstart (normalt hvad du vil):
rc-update tilføj iptables standard
Ved hjælp af init scriptet er det muligt at indlæse og rydde firewallen med en kommando, der er nem at huske:
/etc/init.d/iptables start /etc/init.d/iptables stop
Init script håndterer detaljerne om at fortsætte din nuværende firewall konfiguration ved start / stop. Således er din firewall altid i den tilstand, du forlod den. Hvis du har brug for manuelt at gemme en ny regel, kan init script også håndtere dette:
/etc/init.d/iptables save
Derudover kan du gendanne din firewall til den tidligere gemte tilstand (i det tilfælde, hvor du eksperimenterede med regler og nu vil gendanne den tidligere arbejdskonfiguration):
/etc/init.d/iptables reload
Endelig kan init-scriptet sætte iptables i en "panik" -tilstand, hvor alle indgående og udgående trafik er blokeret. Jeg er ikke sikker på, hvorfor denne tilstand er nyttig, men alle Linux firewalls synes at have det.
/etc/init.d/iptables panik
Advarsel: Start ikke paniktilstanden, hvis du er tilsluttet din server via SSH; du vilje frakobles! Den eneste gang du burde sætte iptables i panik tilstand er mens du er fysisk foran computeren.