iptables
basics
iptables
is een commando dat in de kernel netwerkfilters inbouwt.
bij elke iptables
commando wordt een extra filter toegevoegd,
of eventueel een volledig geheel van filters ge-cleared.
iptables
is een stateful packet-filter/-mangler
Stateful betekent dat van de pakketten wordt nagekeken of ze tot een reeds geopende of nieuwe sessie behoren.
Filteren betekent tegenhouden of doorlaten afhankelijk van bepaalde regels.
Mangling betekent het aanpassen van (IP/TCP/UDP) headers afhankelijk van weer andere regels.
De kernel doet het eigenlijke filteren en het commando iptables voegt regeltjes toe aan de firewall.
Commando's achter mekaar zetten doen we in een script.
Dat zetten we best op een goede plaats, met een herkenbare naam.
-
ORGANISEER je
iptables
-script
- maak een directory
/etc/iptables
- plaats hierin een bestand met als naam
iptables-v.xyz.sh
v.xyz
staat voor een versie, xyz kan een datum zijn
.sh
staat als suffix voor shell script
We beginnen als volgt:
#! /bin/bash # # iptables-script # bvdb ( 01/11/2017 ) ###################################################### # # here follows the script ....
Sla dit op als
/etc/iptables/iptables.v000.sh
Voer vervolgens eenchmod +x
uit
Test of je script uitvoerbaar is.
- maak een directory
- CLEAR
iptables
Een iptables-script moet steeds beginnen met een clear van de firewall. Dit om vorige configuraties op nul te zetten. Er zijn 5 verschillende items die moeten worden gereset. De volgende source maakt één en ander snel duidelijk:#! /bin/bash # # iptables-script # bvdb ( 02/11/2017 ) ###################################################### # # v = verbose, X = flush tables, F = delete non standard chains # general iptables -vX iptables -vF # nat and masquerading -t refers to table iptables -vt nat -F iptables -vt nat -X # mangling TCP header iptables -vt mangle -F iptables -vt mangle -X # reset policies -P refers to policies iptables -vP INPUT ACCEPT iptables -vP OUTPUT ACCEPT iptables -vP FORWARD ACCEPT # turn off routing echo 0 > /proc/sys/net/ipv4/ip_forward
Maak een kopie van je eerste script en pas de versie aan:
$sudo cp iptables.v000.sh iptables-clear.v001.sh
Voeg daarna de juiste elementen toe zoals hierboven.
Sla op, en Test je script, en vergewis u er van dat je vanaf je machine nog steeds kan doen wat je voordien ook al kon. (bijvoorbeeld eenapt-get update
)
iptables
status op scherm brengen
Voeg de volgendeiptables
commandos toe aan het einde van je script.
Je kan er ook een apart script van maken om gewoon jeiptables
-status op scherm te brengen.### PRINT iptables configuration ### # echo ">>>>> iptables -n -L" iptables -n -L echo "--------------" echo ">>>>> iptables -S" iptables -S echo "--------------" echo ">>>>> iptables -t nat -L" iptables -t nat -L echo "--------------" echo ">>>>> iptables -t mangle -L" iptables -t mangle -L echo "--------------" echo "routing set: " `cat /proc/sys/net/ipv4/ip_forward` echo "=============="
Selecteer wat je nodig hebt, en maak tot comments met # wat je niet wil zien ...
uit de man pagina's:
-L
--list
[chain]
List all rules in the selected chain. If no chain is selected, all chains are listed. Like every other iptables command, it applies to the specified table (filter is the default), so NAT rules get listed byiptables -t nat -n -L
-S
--list-rules
[chain]
Print all rules in the selected chain. If no chain is selected, all chains are printed like iptables-save. Like every other iptables command, it applies to the specified table (filter is the default).
uit de appendix E van de Red Hat docs:
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/ch-proc
Typingcat /proc/sys/net/ipv4/ip_forward
returns either a 0 (off or false) or a 1 (on or true).
A 0 indicates that the kernel is not forwarding network packets.
To turn packet forwarding on, runecho 1 > /proc/sys/net/ipv4/ip_forward