IPTables is de naam van een firewallsysteem dat via de opdrachtregel op Linux draait.Het programma wordt voornamelijk gebruikt als:UbuntuHet standaardhulpprogramma op.Beheerders gebruiken vaak IPTables-firewalls om toe te staan of te voorkomen dat verkeer hun netwerken binnenkomt.
Als IPTables nieuw voor u is, moet u het eerst bijwerken of installeren met de volgende opdracht:
$ sudo apt-get install iptables
Hoewel gebruikers die niet bekend zijn met de opdrachtregelinterface, vinden dat IPTables een leercurve heeft, is het hulpprogramma zelf erg eenvoudig en gemakkelijk te gebruiken.Er is een reeks kernopdrachten die kunnen worden gebruikt als basis voor het regelen van verkeer.Dat gezegd hebbende, moet u heel voorzichtig zijn bij het wijzigen van de IPTables-regels.Als u de verkeerde opdracht typt, wordt u mogelijk volledig uitgesloten van IPTables totdat u het probleem op de fysieke machine hebt opgelost.
In dit artikel geven we je een basisgids voor IPTables en laten we je kennismaken met de basis.Voordat we ingaan op de kern van IPTables, moet je ervoor zorgen dat je eenUbuntu uitvoeren 16.04的VPAen eenMet SSH-client的 Lokaal apparaat.Als je deze al hebt, is het tijd om te beginnen.
Inhoud
IPTables-zelfstudie: ketting
Een van de basisconcepten die u in IPTables moet beheersen, is het concept van ketens.De ketting is in wezen een regel.De filtertabel heeft drie ketens die je op IPTables tegenkomt;binnenkomen,Naar voren 和uitvoer.
-
- INVOER – De INPUT-keten is de regel die inkomende datapakketten controleert.U kunt hier nieuwe verbindingen blokkeren of toestaan.U kunt dit doen op basis van de poort, het protocol en het bron-IP-adres.
- FORWARD – De FORWARD-keten filtert inkomende pakketten die naar verschillende terminallocaties worden doorgestuurd.Tenzij u aan het routeren bent of specifiek op zoek bent naar doorsturen, is het onwaarschijnlijk dat u deze ketting gebruikt.
- OUTPUT – De OUTPUT-keten wordt gebruikt om uitgaande datapakketten en verbindingen te beheren.Het is belangrijk op te merken dat als u een externe host pingt, de invoerketen wordt gebruikt om de gegevens naar u terug te sturen.
Standaard kettinggedrag
Misschien wilt u in het begin direct naar het configureren van specifieke regels gaan, maar u moet een stap terug doen om het standaardgedrag te definiëren.Om te bepalen wat het standaardgedrag van de keten is, moet u de volgende opdracht uitvoeren:
$ sudo iptables -L commando
Dit geeft het volgende weer:
gebruiker@ubuntu:~$ sudo iptables -L -v Chain INPUT (beleid ACCEPT) Keten VOORUIT (beleid ACCEPTEREN) Keten OUTPUT (beleid ACCEPT) gebruiker@ubuntu:~$
Deze informatie vertelt u precies het doel van de ketenconfiguratie.In het voorbeeld zijn de invoer-, doorstuur- en uitvoerketens geconfigureerd om verkeer te accepteren.Deze instellingen zijn een goed startpunt, omdat ze eventuele gewenste verbindingen niet zullen voorkomen.
Als u echter merkt dat uw beleid geen verbindingen accepteert, kunt u elk van de volgende opdrachten invoeren om alle verbindingen te accepteren:
$ sudo iptables —beleid INPUT ACCEPTEREN
$ sudo iptables —beleid UITVOER ACCEPTEREN
$ sudo iptables —beleid VOORUIT ACCEPTEREN
Zodra uw standaardinstellingen alle verbindingen accepteren, kunt u de toegang tot IPTables regelen door IP-adressen en poortnummers te blokkeren.Hiermee kunt u specificeren welke verbindingen u wilt blokkeren in plaats van standaard alle verbindingen te blokkeren.
Als u te maken heeft met bijzonder gevoelige informatie, kunt u de standaardinstellingen configureren om automatisch alle verbindingen te blokkeren.Op deze manier kunt u IPTables gebruiken om de individuele IP-adressen te selecteren die u wilt toestaan.Om dit te doen, moet u de volgende opdracht invoeren:
$ sudo iptables —beleid INPUT DROP
$ sudo iptables —beleid OUTPUT DROP
$ sudo iptables —beleid VOORWAARTS DROP
Het is voor de meeste gebruikers het beste om alle verbindingen te accepteren, maar als u op een zeer goed beveiligde server werkt, is het de moeite waard om dit te onthouden.
Een enkele verbinding configureren
Na het configureren van het standaard kettinggedrag, kunt u een enkele verbinding configureren.Hier configureert u het zogenaamde verbindingsspecifieke antwoord.Dit vertelt IPTables in wezen hoe te communiceren wanneer verbinding wordt gemaakt met een IP-adres of poort.Deze reacties zijn als volgt;receptie,opgeven,Weigeren.
Zoals u in de bovenstaande afbeelding kunt zien, heeft de gebruiker kettingregels gedefinieerd om verbindingen toe te staan, te laten vallen of te weigeren op basis van vereisten.Hieronder volgt een beschrijving van wat elk antwoord bevat:
- ACCEPTEREN – Deze configuratie staat alleen verbindingen toe.
- DROP – Drop blokkeert de verbinding zonder enige interactie met de bron.
- WEIGEREN – Dit blokkeert de poging tot verbinding, maar stuurt ook een foutmelding.Dit is meestal om de bron te informeren dat de verbindingspoging is geblokkeerd door de firewall.
Verbindingen toestaan of blokkeren
Afhankelijk van uw instellingen zijn er veel verschillende manieren om verbindingen te blokkeren of toe te staan.In het volgende voorbeeld wordt een verborgen blokkeringsmethode gebruikt, dat wil zeggen met behulp vanVal Verbreek de verbinding zonder enige interactie. iptables-A Hiermee kunnen we extra waarschuwingen toevoegen aan de regels die zijn vastgesteld door de standaardketeninstellingen.Hieronder ziet u hoe u deze opdracht kunt gebruiken om de verbinding te blokkeren:
Een enkel IP-adres blokkeren:
$ sudo iptables -A INPUT -S 10.10.10.10 -j DROP
In het bovenstaande voorbeeld kun je 10.10.10.10 vervangen door het IP-adres dat je wilt blokkeren.
Blokkeer een reeks IP-adressen:
$ sudo iptables -A INPUT -s 10.10.10.10.0/24 -j DROP
of
$ sudo iptables -A INPUT -s 10.10.10.0/255.255.255/.0 -j DROP
Een enkele poort blokkeren:
$ sudo iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP
Houd er rekening mee dat ssh kan worden vervangen door elk protocol of poortnummer.Merk ook op dat de sectie -p tcp van de code wordt gebruikt om aan te geven of het protocol dat u wilt blokkeren UDP of TCP is.
Als het protocol UDP gebruikt, voert u in:-p udpIn plaats van-p tcp.U kunt ook alle verbindingen van IP-adressen blokkeren door de volgende opdracht in te voeren:
$ sudo iptables -A INPUT -p tcp --dport ssh -jDROP
Tweerichtingscommunicatie: verbindingsstatus IPTables-tutorial
De meeste protocollen die u tegenkomt, vereisen tweerichtingscommunicatie voor verzending.Dit betekent dat de transmissie bestaat uit input en output.Wat er in uw systeem gaat, is net zo belangrijk als wat er uitgaat.Met de verbindingsstatus kunt u mixen en matchen tussen tweerichtingsverbindingen en eenrichtingsverbindingen.In het volgende voorbeeld blokkeert het SSH-protocol SSH-verbindingen van IP-adressen, maar staat verbindingen met IP-adressen toe:
$ sudo iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state --state NIEUW, GEVESTIGD -j ACCEPTEREN $ sudo iptables -A OUTPUT -p tcp —sport 22 -d 10.10.10.10.-m staat —status GEVESTIGD -J ACCEPT
Nadat u de opdracht hebt ingevoerd om de verbindingsstatus te wijzigen, moet u de wijzigingen opslaan.Als u dit niet doet, gaat uw configuratie verloren wanneer u het hulpprogramma sluit.Afhankelijk van het distributiesysteem dat u gebruikt, kunt u veel verschillende opdrachten gebruiken:
Ubuntu:
$ sudo /sbin/iptables-opslaan
Red Hat/CentOS –
$ sudo /sbin/service iptables opslaan
of
$ sudo /etc/init.d/iptables opslaan
Onthoud dat het gebruik van deze commando's erg belangrijk is, omdat het de rompslomp van het telkens opnieuw moeten configureren van het hulpprogramma kan elimineren.
Regel verwijderen
Net zo belangrijk als het kunnen opslaan van regels, is het kunnen verwijderen ervan.Als je een fout hebt gemaakt of gewoon de oude regels wilt verwijderen, kun je de optie gebruiken - D 命令.Deze opdracht moet worden gebruikt in combinatie met het regelnummer dat u hebt ingevoerd.Dit nummer vertelt IPTables welke regel moet worden verwijderd.Als u bijvoorbeeld zou invoeren:
$ sudo iptables -D INPUT 10
Dan wordt de 10e regel die je hebt geconfigureerd verwijderd.
Als u het huis wilt opruimen en een reeks regels wilt verwijderen, kunt u gebruik maken van-F commando.U kunt dit doen door het volgende in te voeren:
$ sudo iptables -F
Hiermee wordt de volledige regelset gewist en wordt uw IPTable vernieuwd.
IPTables: kettingregels leren!
Hiermee is onze IPTables-tutorial afgerond.Zoals je kunt zien, is IPTables een manier om te blokkeren en toe te staanLinuxUitgegeven versieMultifunctioneel hulpmiddel op de stroom.Effectief gebruik van dit hulpprogramma omvat het effectief instellen van de standaardconfiguratie en het bouwen van andere regels er bovenop.Met de standaardconfiguratie kunt u de brede verkeersintentie schetsen om verkeer toe te staan of te weigeren;Met deze regels kunt u uw methode bouwen op basis van IP-adres, poort en protocol.
We hebben net het oppervlak van het potentieel van IPTables bekrast, je kunt veel verschillende commando's gebruiken om te beslissen hoe je het verkeer op de server ervaart.We raden u echter aan de basisprincipes te begrijpen voordat u andere opdrachten gaat gebruiken.Voordat u zich bijvoorbeeld tot iets professionelers verplicht, moet u de basisketenregels begrijpen.
Als je eenmaal gewend bent aan hoe IPTables werkt, kun je beginnen met het integreren van meer regels om je ervaring aan te passen.Door dit te doen, kunt u nauwkeuriger dan ooit tevoren de typen verbindingen specificeren die u toestaat.