Hoe uw Linux-bureaublad met Iptables te beveiligen
Linux heeft misschien een reputatie voor beveiliging, maar het is niet perfect. Veel distributies hebben ook niet de beste beveiligingsstandaards, dus het is het beste om een aantal best practices voor beveiliging in te voeren. Een voorbeeld hiervan is het gebruik van een firewall.
Er zijn een paar opties voor firewalls in Linux, maar de meeste zijn eigenlijk gewoon wrappers rond iptables. Voor deze gids laten we u zien hoe u direct met iptables kunt werken.
Wat is Iptables?
Iptables is de Linux kernel-firewall. Het wordt geleverd bij elke Linux-distributie en het is de meest directe manier om verkeer dat van en naar uw computer komt te beheren.
Iptables heeft de reputatie complex te zijn en dat kan ook zo zijn. U hoeft echter niet alles te weten over iptables om het effectief op uw bureaublad te gebruiken. U hebt gewoon enige basiskennis nodig van hoe het werkt en hoe de regels ervan zijn gestructureerd.
Gerelateerd : Hoe omgaan en configureren Firewall in Linux
Commandostructuur
Alle iptables-regels volgen dezelfde basisstructuur. Elke regel is een opdracht met één regel voor iptables die aangeeft hoe het verkeer op een specifieke poort moet worden afgehandeld. Bekijk het onderstaande voorbeeld:
-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 80 -j ACCEPT
Dat lijkt veel, maar het is heel eenvoudig als je het opsplitst. Ten eerste begint deze regel met -A
omdat deze wordt toegevoegd aan uw iptables-regels.
Vervolgens geeft de vlag -i
de interface aan waar de regel voor is. In dit geval is het eth0
. Wanneer u uw eigen regels schrijft, zorg er dan voor dat u weet via welke interface u bent verbonden met uw netwerk.
De volgende vlag, -p
, noemt het protocol. Deze regel is voor tcp
, dat is webverkeer.
De vlag -m
is een beetje anders. Het wordt gebruikt om te beweren dat er een voorwaarde is waaraan moet worden voldaan opdat verkeer niet wordt afgewezen. De voorwaarde in deze regel is de staat.
Staat is eigenlijk de volgende vlag. U moet --state
een lijst met aanvaardbare toestanden geven die in hoofdletters zijn geschreven en worden gescheiden door komma's. Deze regel accepteert zowel nieuwe als bestaande verbindingen.
De op één na laatste vlag hier is --sport
. Het staat voor "source port" en het vertelt iptables waar het verkeer vandaan komt. Er is ook een --dport
die staat voor 'bestemmingspoort'. Deze wordt gebruikt voor OUTPUT
regels voor het afhandelen van welk havenverkeer afkomstig is.
Eindelijk is er de vlag -j
. Het vertelt iptable welke actie naar "springt". In dit geval moet ACCEPT
het verkeer ACCEPT
dat aan de vorige voorwaarden voldoet.
Een bestand gebruiken
U kunt uw regels één voor één handmatig in iptables invoeren. Dat is ongelooflijk saai en het is heel gemakkelijk om uit het oog te verliezen waar je bent en wat je doet. Het is veel beter om een regelsbestand te maken dat u in iptables tegelijk kunt importeren.
Het maakt niet uit waar u het bestand maakt. Mensen maken ze zelfs in de directory /tmp
omdat iptables het resultaat opslaat nadat het is geïmporteerd.
Maak je bestand aan Deze gids gaat gebruik maken van /tmp/iptables-ip4
. Voeg in het bestand de volgende twee regels toe. Al uw regels gaan tussen hen in.
* filter # Uw regels hier COMMIT
Maak uw regels
U kunt beginnen met het instellen van uw regels. Dit zijn slechts suggesties. Vanzelfsprekend, als je andere services uitvoert of andere open poorten nodig hebt, kun je bepaalde dingen zeker aanpassen of je eigen regels toevoegen.
loopback
De loopback-interface is een interne interface die door Linux wordt gebruikt.
-EEN INPUT -i lo -j ACCEPTEREN -EEN UITGANG -zo niet-j ACCEPTEREN
Ping
Deze is een kwestie van voorkeur. Veel mensen houden niet van het toestaan van ping op hun desktops. Het kan echter handig zijn om het te hebben om verbindingen te testen. Als u ping wilt toestaan, voegt u de onderstaande regels toe. Als u dat niet doet, sluit u ze uit.
-A INPUT -i eth0 -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT -A INPUT -i eth0 -p icmp -m state --state ESTABLISHED, RELATED -j ACCEPT -A OUTPUT - o eth0 -p icmp -j ACCEPT
Het web
U wilt natuurlijk in staat zijn om verbinding te maken met het web. Aan de andere kant, wilt u geen verbindingen toestaan die afkomstig zijn van internet.
-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 80 -j ACCEPT -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 443 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 443 -j ACCEPT
U moet ook DNS-verbindingen toestaan zodat uw computer URL's kan gebruiken in plaats van alleen IP-adressen, omdat dat niet erg handig zou zijn. Vervang het IP-adres van uw router voor het adres dat hier wordt gebruikt.
-A INPUT -i ens3 -s 192.168.1.1 -p udp --sport 53 -m state --state ESTABLISHED, RELATED -j ACCEPT -A OUTPUT -o ens3 -d 192.168.1.1 -p udp --dport 53 -m udp -j ACCEPT
Tijd
De meeste Linux-desktops gebruiken NTP om de systeemtijd vanaf internet in te stellen en te onderhouden. U moet toestaan dat uw computer verbinding maakt met een NTP-server om de tijd te krijgen.
-A INPUT -i eth0 -p udp -m state --state ESTABLISHED, RELATED --dport 123 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --sport 123 -j ACCEPT
het drukken
Tenzij u een USB-printer of een externe printserver gebruikt, moet u verbindingen met CUPS inschakelen.
-A INPUT -p udp -m udp --dport 631 -j ACCEPT -A INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A OUTPUT -p udp -m udp --sport 631 -j ACCEPT -A OUTPUT -p tcp -m tcp --sport 631 -j ACCEPT
U wilt waarschijnlijk ook e-mail kunnen verzenden en ontvangen. E-mail kan lastig zijn. De poorten die hier zijn toegestaan, zijn de SSL-e-mailpoorten. Als u onbeveiligde e-mail moet gebruiken, vervangt u die poorten.
# IMAP-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 993 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 993 -j ACCEPT # POP3 -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 995 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 995 -j ACCEPT # SMTP -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 465 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 465 -j ACCEPT
SSH
Om SSH-verbindingen volledig te kunnen gebruiken, moet u zowel invoer als uitvoer via SSH toestaan.
# Input -A INPUT -i ens3 -p tcp -m state --state NEW, ESTABLISHED --dport 22 -j ACCEPT -A OUTPUT -o ens3 -p tcp -m state --state ESTABLISHED --sport 22 -j ACCEPT # Output -A OUTPUT -o ens3 -p tcp -m state --state NEW, ESTABLISHED --dport 22 -j ACCEPT -A INPUT -i ens3 -p tcp -m state --state ESTABLISHED --sport 22 -j ACCEPT
DHCP
De meeste Linux-desktops gebruiken DHCP om automatisch een IP-adres van een router te ontvangen. DHCP gebruikt eigen poorten, dus deze moeten ook toegankelijk zijn. Als u een statisch IP-adres gebruikt, hebt u deze regels niet nodig.
-A INPUT -i eth0 -p udp -m state --state ESTABLISHED, RELATED --sport 67:68 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --dport 67:68 -j ACCEPT
Weigeren alles anders
Ten slotte ga je iptables vertellen om absoluut alles te verwerpen wat je niet expliciet toestond in de bovenstaande regels.
-EEN INGANG -j VERWERPEN -A VOORUIT -j VERWERPEN-EEN UITVOERING -j VERWERPEN
Na alles zouden uw regels er ongeveer zo uit moeten zien.
Uw regels importeren
U hebt nu een volledig functionele iptables-regelslijst. Je hoeft het alleen maar aan iptables uit te delen om het te gebruiken.
Als er in de loop van de tijd regels zijn toegevoegd, wis ze dan. Na deze opdrachten ziet u de standaardinstellingen die alles toestaan.
sudo iptables -F && sudo iptables -X
Met die verdwenen, kunt u de nieuwe herstellen van het bestand dat u hebt gemaakt.
sudo iptables-restore </ tmp / itpables-ip4
Uw computer gebruikt nu de nieuwe iptables-regels. Je kunt ze bekijken.
sudo iptables -S
Ze zijn echter nog niet permanent. Als u nu uw computer opnieuw opstart, zult u een heel slechte tijd hebben.
Ze permanent maken
Er zijn verschillende manieren om de regels permanent te maken. Ze zijn verschillend voor elke distributie. Deze gids gaat zich richten op op Debian en Ubuntu gebaseerde systemen, omdat deze het meest populair zijn.
Er is een pakket beschikbaar, genaamd iptables-persistant
, dat zorgt voor het opslaan en herstellen van iptables. Het enige wat u hoeft te doen is het installeren.
sudo apt installeren iptables-persistent
Tijdens de installatie vraagt het pakket u of u uw configuratie wilt opslaan. Selecteer "Ja".
Als u in de toekomst regels wilt toevoegen, kunt u deze opnieuw opslaan door de volgende opdracht uit te voeren.
sudo service netfilter-persistent opslaan
U hebt nu controle over het verkeer dat door uw computer stroomt. Er is zeker meer dat je kunt doen met iptables, maar je moet eerst vertrouwen hebben in de basis.