Salut à tous, je viens tout juste de m'inscrire dans l'espoir de trouver quelqu'un pouvant me filer un petit coup de main concernant une conf (avancée) d'iptables.
Concrètement, j'ai un dédié qui sert seulement de VPN. La conf du VPN route seulement quelques IP et pools d'IP. Le truc c'est que j'aimerai configurer mon itpables pour qu'il autorise le VPN à sortir seulement sur ces adresses. La théorie est très simple, la pratique est une autre histoire.
Est-ce que je dois autoriser ces IP à sortir sur tun0 ou eth0 ? Ou les 2 ? Et surtout comment ?
J'ai récupéré un script iptables (simple) que j'ai fait il y a quelques années mais n'y ayant pas touché depuis je nage un peu ...
Voici mon script actuel (certainement pas le plus propre ...)
## VAR
set -x
IFACE="eth0"
VPN="tun0"
##IP List
allowed_ip=`cat allowed_ip_list`
allowed_ip2="144.44.144.1-144.44.144.254" (pool random pour l'exemple)
## On reinitialise la conf
iptables -F
iptables -X
# Modifier la politique par defaut pour DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
# Autoriser l'interface locale
iptables -I INPUT -i lo -j ACCEPT
# On autorise le PC a faire des pings sur des IP externes et àéndre aux requês "ping"
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Autoriser le trafic entrant d'une connexion deja etablie
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow allowed_ip
for allowed_ip_server in ${allowed_ip};do
iptables -A OUTPUT -s ${allowed_ip_server} -j ACCEPT -m comment --comment "${allowed_ip_server}"
done
# Allow allowed_ip2
iptables -I OUTPUT -m iprange --src-range ${allowed_ip2} -j ACCEPT -m comment --comment "allowed_ip2"
# Permettre le trafic entrant sur un port specifique
iptables -A OUTPUT -p tcp --dport 2222 -j ACCEPT -m comment --comment "SSH-OUT"
iptables -A INPUT -p tcp -i $IFACE --dport 2222 -j ACCEPT -m comment --comment "SSH-IN"
#iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT -m comment --comment "ACC-HTTP"
iptables -A INPUT -p tcp -i $IFACE --dport 80 -j ACCEPT -m comment --comment "ACC-HTTP"
#iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT -m comment --comment "ACC-HTTPS"
iptables -A INPUT -p tcp -i $IFACE --dport 443 -j ACCEPT -m comment --comment "ACC-HTTPS"
iptables -A INPUT -p udp -i $IFACE --dport 4343 -j ACCEPT #OpenVPN
iptables -A INPUT -p tcp -i $IFACE --dport 4949 -j ACCEPT -m comment --comment "Munin"
## ALLOW ALL TRAFFIC IN VPN
#iptables -A INPUT -i $VPN -m state --state NEW -j ACCEPT
## OPENVPN SERVER
iptables -I FORWARD -i tun0 -j ACCEPT -m comment --comment "ACC-OVPN"
iptables -I FORWARD -o tun0 -j ACCEPT -m comment --comment "ACC-OVPN"
iptables -I OUTPUT -o tun0 -j ACCEPT -m comment --comment "ACC-OVPN"
iptables -A FORWARD -i tun0 -o $IFACE -j ACCEPT -m comment --comment "ACC-OVPN"
iptables -t nat -A POSTROUTING -o $IFACE -j MASQUERADE -m comment --comment "ACC-OVPN"
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o $IFACE -j MASQUERADE -m comment --comment "ACC-OVPN"
# Backup de la conf pour le boot
iptables-save > /etc/iptables.up.rules
iptables-save > /etc/iptables.rules
echo "[OK] Iptables Successfully Updated"