Hoewel Linux een van de meest betrouwbare en veilige besturingssystemen is, zal er dankzij zijn kenmerken altijd een soort kwetsbaarheid zijn, hetzij inherent aan het systeem, hetzij onbedoeld door de gebruiker. Om de Linux-beveiliging te vergroten, hebben we verschillende tools die zijn ontworpen om services, processen, profielen of bestanden te beschermen en vandaag zullen we ons concentreren op een speciale genaamd Iptables.
Wat is IptablesIptables is een geavanceerde firewall-tool die is geïntegreerd in de Linux-kernel die deel uitmaakt van een project met de naam netfilter.
Dankzij Iptables kunnen we alle inkomende en uitgaande verbindingen naar de server nauwkeurig en direct beheren. Iptables is ontwikkeld voor IPv4-adressering, terwijl we voor IPv6 Ip6tables hebben.
1. Iptables-structuur in Linux
De structuur die we vinden in Iptables is de volgende:
RauwHet is verantwoordelijk voor het filteren van de pakketten vóór een andere bestaande tabel
FilterDit is de standaardtabel van de applicatie
natHet wordt gebruikt voor netwerkadresvertaling
MangroveHet wordt gebruikt voor het wijzigen van gespecialiseerde netwerkpakketten
VeiligheidKan worden geïmplementeerd voor verplichte netwerkverbindingsregels voor toegangscontrole
2. Commandostructuur in Iptables op Linux
In Iptables is elke regel een commando dat aangeeft hoe het netwerkpakketverkeer moet worden afgehandeld.
We kunnen de volgende structuur gebruiken:
-A INPUT -i eth0 -p tcp -m status - GEVESTIGD, GERELATEERD --sport 80 -j ACCEPTERENDe gebruikte parameters zijn:
- -A: Geeft aan dat de regels worden toegevoegd aan Iptables
- -i: Geeft de interface aan waarop de regel wordt toegepast
- -p: verwijst naar het protocol waar de regel van toepassing is
- -m: verwijst naar het feit dat er een voorwaarde is waaraan moet worden voldaan om de regel toe te passen
- --state: acceptatie van nieuwe verbindingen toestaan
- --sport: geeft de bronpoort aan
- -j: (Jump) geeft aan dat ze al het verkeer kunnen accepteren dat aan de gegeven voorwaarden voldoet.
3. Regels maken met Iptables op Linux
Hoewel we de regels handmatig kunnen toevoegen, is het veel praktischer om een regelsbestand te maken en dit vervolgens te importeren. In dit geval zullen we het bestand maken in het pad / tmp / iptables-ip4 en we kunnen een editor gebruiken voor de respectieve aanpassing:
sudo nano / tmp / iptables-ip4De syntaxis zal als volgt zijn:
* filter # Regels om COMMIT toe te voegenNu zullen we de volgende regels in het bestand maken:
Loopback = Het is de externe interface van Linux
-A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT
Ping = Hiermee kunnen we netwerkverbindingen controleren
-A INGANG -i eth0 -p icmp -m status --status NIEUW --icmp-type 8 -j ACCEPT -A INGANG -i eth0 -p icmp -m status --status GEVESTIGD, GERELATEERD -j ACCEPT -A UITGANG - o eth0 -p icmp -j ACCEPTEREN
Web = Via deze regels controleren we inkomend en uitgaand verkeer.
-A INPUT -i eth0 -p tcp -m staat --state GEVESTIGD, GERELATEERD --sport 80 -j ACCEPT -A INPUT -i eth0 -p tcp -m staat --state GEVESTIGD, GERELATEERD --sport 443 -j ACCEPT -A UITVOER -o eth0 -p tcp -m tcp --dport 80 -j ACCEPTEREN -A UITVOER -o eth0 -p tcp -m tcp --dport 443 -j ACCEPTEREN
In het geval van het toevoegen van de DNS zullen we de volgende regels gebruiken:
-A INGANG -i ens3 -s 192.168.0.1 -p udp --sport 53 -m status --state VASTGESTELD, GERELATEERD -j ACCEPT -A UITGANG -o ens3 -d 192.168.0.1 -p udp --dport 53 -m udp -j ACCEPTEREN
Opmerking:Hier moeten we het IP zo nodig wijzigen
Tijd = Deze regels maken verbinding met NTP mogelijk voor correcte tijdsynchronisatie
-A INPUT -i eth0 -p udp -m state --state GEVESTIGD, GERELATEERD --dport 123 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --sport 123 -j ACCEPT
Afdrukken = Hiermee kunnen USB-poorten voor het aansluiten van printers worden ingeschakeld
-A INGANG -p udp -m udp --dport 631 -j ACCEPT -A INGANG -p tcp -m tcp --dport 631 -j ACCEPT -A UITVOER -p udp -m udp --sport 631 -j ACCEPT -A UITGANG -p tcp -m tcp --sport 631 -j ACCEPTEREN
E-mail = We kunnen de verschillende e-mailprotocollen inschakelen
# IMAP -A INPUT -i eth0 -p tcp -m state --state GEVESTIGD, GERELATEERD --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 GEVESTIGD, GERELATEERD --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 GEVESTIGD, GERELATEERD --sport 465 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 465 -j ACCEPT
SSH = Schakel beveiligde verbindingen met de computer in met behulp van het SSH-protocol
# Input -A INPUT -i ens3 -p tcp -m state --state NIEUW, VASTGESTELD --dport 22 -j ACCEPT -A OUTPUT -o ens3 -p tcp -m staat --state GEVESTIGD --sport 22 -j ACCEPT
# Uitvoer -A UITGANG -o ens3 -p tcp -m staat --status NIEUW, GEVESTIGD --dport 22 -j ACCEPTEREN -A INGANG -i ens3 -p tcp -m staat --state GEVESTIGD --sport 22 -j ACCEPT
DHCP: we kunnen regels maken om IP-adressering via DHCP te autoriseren
-A INPUT -i eth0 -p udp -m state --state GEVESTIGD, GERELATEERD --sport 67:68 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --dport 67:68 -j ACCEPT
Alle verbindingen afwijzen: We kunnen de volgende regels toevoegen om al het bovenstaande uit te schakelen:
-A INPUT -j REJECT -A FORWARD -j REJECT -A OUTPUT -j REJECT
Al deze regels worden toegevoegd in het genoemde bestand:
VERGROTEN
We slaan de wijzigingen op
Ctrl + O
We verlaten de editor met
Ctrl + X
4. De regels importeren met Iptables Linux
Nadat het bestand is bewerkt, kunnen we deze regels in Iptable importeren door de volgende opdracht uit te voeren:
sudo iptables -F && sudo iptables -XWe kunnen de status van de regels zien met het commando sudo iptables -S:
VERGROTEN
Als we alle regels willen herstellen, voeren we de volgende regel uit:
sudo iptables-restore </ tmp / itpables-ip4Als we willen dat deze regels permanent zijn, zullen we het volgende uitvoeren:
sudo apt install iptables-persistentOp deze manier is Iptables onze beste bondgenoot bij het configureren van de firewall in Linux-omgevingen.