mirtouf a écrit :
Mais sans script ça va être dur de t'aider...
Tu peux pas faire un tri ?
|
voila le script en question :
#!/bin/sh
##################################################
# #
# FIREWALL ET PARTAGE DE CONNECTION INTERNET #
# #
##################################################
# activation du forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# Je veux pas de spoofing
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
then
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
do
echo 1 > $filtre
done
fi
# pas de icmp (ping)
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# chargement des modules necessaires
modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp
# vidage des regles courantes
iptables -F
iptables -X
# on logue et on refuse le paquet
iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] : '
iptables -A LOG_DROP -j DROP
# on logue et on accepte le paquet
iptables -N LOG_ACCEPT
iptables -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : '
iptables -A LOG_ACCEPT -j ACCEPT
# on refuse tout par defaut
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# on autorise l'utilisation de l'interface lo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# on autorise ce qui se passe sur le reseau local
iptables -A INPUT -s xxx.0.0.0/8 -j ACCEPT
iptables -A OUTPUT -d xxx.0.0.0/8 -j ACCEPT
iptables -A FORWARD -s xxx.0.0.0/8 -j ACCEPT
# on autorise le dns
iptables -A INPUT -i eth0 --protocol udp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o eth0 --protocol udp --destination-port 53 -j ACCEPT
iptables -A INPUT -i eth0 --protocol tcp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o eth0 --protocol tcp --destination-port 53 -j ACCEPT
iptables -A INPUT -i eth1 --protocol udp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o eth1 --protocol udp --destination-port 53 -j ACCEPT
iptables -A INPUT -i eth1 --protocol tcp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o eth1 --protocol tcp --destination-port 53 -j ACCEPT
# on autorise la navigation sur le net
iptables -A INPUT -i eth0 --protocol tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 --protocol tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 --protocol tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 --protocol tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT
# on autorise les connections ssh vers internet
iptables -A INPUT -i tun0 --protocol tcp --source-port 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o tun0 --protocol tcp --destination-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
# on autorise les connections ssh depuis le reseau local
#iptables -A INPUT -i eth0 --protocol tcp --source-port 22 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT
#iptables -A OUTPUT -o eth0 --protocol tcp --destination-port 22 -m state --state ESTABLISHED -j LOG_ACCEPT
# on autorise les connections ftp
iptables -A INPUT -i tun0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o tun0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
## connections en mode actif
iptables -A INPUT -i tun0 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o tun0 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
## connection en mode passif
iptables -A INPUT -i tun0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o tun0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# PARTAGE DE LA CONNECTION INTERNET
#
# autorisation du forwarding
#iptables -F FORWARD
#iptables -A FORWARD -j ACCEPT
# masquage des machines du reseau local
#iptables -A POSTROUTING -t nat -o tun0 -j MASQUERADE
# acces complet a internet pour les machines du reseau local
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -o eth1 -i eth0 -j ACCEPT
# masquage des machines du reseau local
iptables -t nat -A POSTROUTING -s xxx.0.0.0/24 -j MASQUERADE
# tout le reste est refuse et logue
iptables -A FORWARD -j LOG_DROP
iptables -A INPUT -j LOG_DROP
iptables -A OUTPUT -j LOG_DROP
echo " [Termine]"