Je fuis depuis longtemps les iptables, et j'ai décidé de m'y mettre un peu.
J'ai une installation avec 2 réseaux :
livebox[gw,dhcp](192.168.1.254) <-> (192.168.1.1)routeur[gw,dhcp](10.0.0.254) <-> mon réseau domestique
J'ai opté pour cette configuration car je change souvent de FAI (ça m'évite de devoir reconfigurer tout mon matériel à chaque changement.
Dans mon matos, j'ai un serveur avec 2 cartes ethernet. Je n'utilisais jusque là qu'une seule interface, eth0 sur le réseau domestique.
J'ai une méga connexion fibre, et mon routeur actuel me limite à 10Mo/s. J'aimerai cependant que mon serveur puisse dépasser cette limite afin d'avoir mes 110Mo/s.
J'ai donc décidé de connecter eth1 sur la livebox (J'ai en projet futur de me débarrasser de la livebox, et de transformer ce serveur en routeur mais ce n'est pas le sujet)
J'aimerai donc prévoir des iptables pour que tout ne soit pas ouvert, et de bien maîtriser les entrées et sorties de celui-ci.
Voici les politiques d'accès que je voudrais installer sur ce serveur :
* eth0 :
- total accès sur tous les ports. Ce serveur n'est accessible que depuis mon réseau local de toute façon.
* eth1 :
- sortie uniquement pour http, NTP, SMTP, DNS
- entrée et sortie pour SSH et 5001
*aucun passage entre eth0 et eth1 quelque soit le sens
la passerelle par défaut est bien sur eth1 :
Code : Tout sélectionner
#route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
default 192.168.1.254 0.0.0.0 UG 0 0 0 eth1
10.0.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
Code : Tout sélectionner
#!/bin/bash
clear
# Supprimer les règles écrites
iptables -F
iptables -X
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
#autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
#autoriser le ping
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
#pas de forward entre les interfaces
iptables -A FORWARD -i eth0 -j DROP
iptables -A FORWARD -o eth0 -j DROP
iptables -A FORWARD -i eth1 -j DROP
iptables -A FORWARD -o eth1 -j DROP
# Ne pas casser les connexions etablies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
### ETH0
#tout autoriser sur eth0
iptables -I INPUT -i eth0 -j ACCEPT
### ETH1
#autoriser les entrées et sorties
iptables -A OUTPUT -i eth1 -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -i eth1 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --dport 5001 -j ACCEPT
iptables -A INPUT -i eth1 -p udp --dport 5001 -j ACCEPT
#refuser tout le reste
iptables -t filter -i eth1 -A INPUT -j DROP
Le premier problème que je rencontre et qu'il semble impossible d'utiliser OUTPUT avec -i donc comment autoriser la sortie pour http sans autoriser l'entrée ?
Merci d'avance pour votre aide