Blog

iptables

iptables starten en stoppen

Je kan iptables starten, stoppen of herstarten met de volgende commando's:

# service iptables start
# service iptables stop
# service iptables restart

iptables status controleren
# service iptables status

iptables starten tijdens boot process

Met chkconfig wordt de iptables service gestart tijdens het booten van de machine:

# chkconfig iptables on

Voor een overzicht van services:

# chkconfig --list

Voor een overzicht van actieve firewall regels:

# iptables -L -v

iptables wijzigingen

Exporteren van de actieve regels:

iptables-save > firewall-config

Wijzigen van de regels:

nano firewall-config

voorbeelden

In alle voorbeelden dient x.x.x.x te worden vervangen door het gewenste IP-adres.

De standaard is interface eth0 echter, op mijn VPS omgeving is dit echter venet0. Zie ifconfig.

# DEFAULT POLICY (Deze staat standaard op ACCEPT, letop: dit weigert alle toegang, uitzonderingen moeten worden toegevoegd!)
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP

PING

-A INPUT -p icmp --icmp-type echo-request -j ACCEPT -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

PING (uitgaand)

-A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

Toegang weigeren van één bepaald IP-adres:

-A INPUT -s x.x.x.x -j DROP

Toegang weigeren van IP-bereik:

-A INPUT -m iprange --src-range x.x.x.x-x.x.x.x -j DROP

Toegang weigeren van een IP-adres uit een bepaald subnet:

-A INPUT -s x.x.x.x/24 -j DROP

SSH

-A INPUT -i eth0 -p tcp -s x.x.x.x --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

SSH (uitgaand)

-A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

SSH (uitgaand)

-A OUTPUT -o eth0 -p tcp -d x.x.x.x/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

FTP

-A INPUT -i eth0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT -A OUTPUT -o eth0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT

FTP (Active)

-A INPUT -i eth0 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT -A OUTPUT -o eth0 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT

FTP (Passive)

-A INPUT -i eth0 -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT -A OUTPUT -o eth0 -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

HTTP

-A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

HTTP (uitgaand)

-A OUTPUT -o eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT -A INPUT -i eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

HTTPS

-A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

HTTPS (uitgaand)

-A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

Remote MySQL connectie

-A INPUT -i eth0 -p tcp -s x.x.x.x --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT -A OUTPUT -o eth0 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

SMTP

-A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT

IMAP en IMAP2

-A INPUT -i eth0 -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT -A OUTPUT -o eth0 -p tcp --sport 143 -m state --state ESTABLISHED -j ACCEPT

IMAPS

-A INPUT -i eth0 -p tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT -A OUTPUT -o eth0 -p tcp --sport 993 -m state --state ESTABLISHED -j ACCEPT

POP3

-A INPUT -i eth0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT -A OUTPUT -o eth0 -p tcp --sport 110 -m state --state ESTABLISHED -j ACCEPT

POP3S

-A INPUT -i eth0 -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT -A OUTPUT -o eth0 -p tcp --sport 995 -m state --state ESTABLISHED -j ACCEPT


iptables wijzigingen opslaan

Overschijven van de actieve regels:

iptables-restore < firewall-config
service iptables save

File Transfer Protocol en Plesk VPS

Op mijn VPS omgeving is de module ip_conntrack_ftp niet geladen in de kernel, daarom kan ik deze niet toevoegen in /etc/sysconfig/iptables-config:

IPTABLES_MODULES="ip_conntrack_ftp"

Download: iptables.sh

Meer informatie: HowTos/Network/IPTables - CentOS Wiki | 42.9. IPTables

Zoeken