Firewall

Fermé
kenneth007 Messages postés 14 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 10 juin 2010 - 13 oct. 2008 à 13:12
kenneth007 Messages postés 14 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 10 juin 2010 - 13 oct. 2008 à 17:13
Bonjour,

j'ai install un petit réseau sur lequel il y'a un parefeu (Netfilter), un proxy et un serveur web.
Chaque machine a une adresse statique.Mon problème est que si je démarre le parefeu certains sites ne passent pas. quand je fais un ping sur ces sites ça passe. Quand j'arrête le parefeu tout roule à merveil.
J'ai tester toutes mes règles, ça mache, alors je sais pas ce que c'est! merci d'avance pour vos reponses
A voir également:

4 réponses

quels sites ?
0
kenneth007 Messages postés 14 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 10 juin 2010 2
13 oct. 2008 à 14:25
Bonjour,

Je voudraiq d'abord vous remercier d'avance d'avoir accepter de m'aider.
Alors la pluspart des sites comme yahoo, hotmail , wikipedia, etc....
-1
Youplaboum > kenneth007 Messages postés 14 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 10 juin 2010
13 oct. 2008 à 14:46
peut on avoir le script du firewall ?
0
kenneth007 Messages postés 14 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 10 juin 2010 2 > Youplaboum
13 oct. 2008 à 15:48
Voici le script du firewall

#! /bin/bash
. /lib/lsb/init-functions
case "$1" in

'start')
log_daemon_msg "Démarrage du parefeu..."
modprobe ip_tables
modprobe iptable_filter
modprobe ipt_state
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
iptables-restore < /etc/init.d/firewall.conf
echo 1 > /proc/sys/net/ipv4/ip_forward
sleep 1
RETVAL=$?
log_end_msg $RETVAL
;;

'stop')
log_daemon_msg "Arrêt du parefeu..."
iptables-restore < /etc/init.d/firewall.conf
iptables-save > /etc/init.d/firewall.conf

#Clean le parefeu pendant que la machine tourne
log_daemon_msg "Remise à zéro des règles du parefeu"
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT

#Désactive le partage de connexion
echo 0 > /proc/sys/net/ipv4/ip_forward
RETVAL=$?
log_end_msg $RETVAL
;;

'restart')
$0 stop && $0 start
;;

'clean')
$0 stop
log_daemon_msg "Activation du partage de connexion"
#Active le partage de connexion
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#Redémarre la connexion internet PPP
poff
pon dsl-provider
sleep 1
RETVAL=$?
log_end_msg $RETVAL

;;
'status')
iptables-save
sleep 1
RETVAL=$?
log_end_msg $RETVAL
;;
'init')
log_daemon_msg "Initialisation des règles du parefeu..."
/etc/init.d/firewall.init
iptables-save > /etc/init.d/firewall.conf
$0 start
RETVAL=$?
sleep 1
log_end_msg $RETVAL
;;
*)
echo "Usage: /etc/init.d/firewall {start|stop|restart|status|clean|init}"

RETVAL=1
log_end_msg $RETVAL
;;
esac

exit $RETVAL



# !/bin/bash
####################################################
#Variables globales#################################
####################################################

NET_ETH=ppp0 ;
LAN_ETH=eth1 ; # Interface reseau interne
LAN_IP=192.168.16.1 ; # Adresse reseau interne
LAN_NETWORK=192.168.16.0/24 ; # Reseau interne
LAN_BROADCAST=192.168.16.255 ; # Adresse de broadcast interne
IP_PROXY=192.168.16.3 ; # Adresse IP du Proxy
IP_PUBLIC=41.233.187.150 ; # Adresse IP publique
FTP_DATA_PORT=20 ;
FTP_PORT=21 ; # Port d'ecoute du serveur local
SSH_PORT=22 ; # Port d'ecoute du Serveur SSH local
SMTP_PORT=25 ; # Port d'ecoute du serveur SMTP local
DNS_PORT=53 ; # Port d'ecoute du serveur DNS local
TFTP_PORT=69 ; # Port d'ecoute du serveur TFTP local
WEB_PORT=80 ; # Port d'ecoute du servur WEb local
SFTP_PORT=115 ; # Port d'ecoute du serveur SFTP local
HTTPS_PORT=443 ; # Port d'ecoute du serveur HTTPS local
POP3_PORT=110 ; # Port d'ecoute du serveur POP3 local
IMAP_PORT=143 ; # Port d'ecoute du serveur IMAP local
MMCC_PORT=5050 ; # Port d'ecoute du serveur yahoo
MSN_PORT=1863 ; # Port d'ecoute du serveur MSN
UNPRIVPORTS="1024:65535";

###########################################################################
###################Initialisation des tables###############################
# Initialise la table Filter (par defaut tout les echanges sont refuses)

iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# Initialisation de la table NAT (par defaut tout les echanges sont actives)
iptables -t nat -F
iptables -t nat -X


# Initialisation de la table Mangle(par defaut tout les echanges sont actives)
iptables -t mangle -F
iptables -t mangle -X


# On rejete les requetes icmp du type echo-request
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 10/min -j LOG --log-prefix "rejet_paquet_ICMP"
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP


# On autorise le ping sur l'interface LAN du parefeu et du LAN vers l'extérieur
iptables -A INPUT -i $LAN_ETH -p icmp -j ACCEPT
iptables -A FORWARD -s $LAN_NETWORK -p icmp -j ACCEPT

# On autorise l'interface loopback à dialoguer avec elle-meme
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

# On redirige les requetes en provenance de l'exterieur vers le serveur approprié
iptables -t nat -A PREROUTING -i $NET_ETH -d $IP_PUBLIC -p tcp -m multiport --dports $WEB_PORT,$FTP_DATA_PORT,$FTP_PORT,$DNS_PORT,$SFTP_PORT,$SSH_PORT -j DNAT --to-destination $IP_PROXY
iptables -t nat -A PREROUTING -i $NET_ETH -d $IP_PUBLIC -p udp -m multiport --dports $SSH_PORT,$DNS_PORT,$TFTP_PORT -j DNAT --to-destination $IP_PROXY

# On redirige vers le proxy les requets HTTP et FTP du LAN destinées vers l'exterieur \(sauf le proxy\)
# iptables -t nat -A PREROUTING -i $LAN_ETH -s ! $IP_PROXY -p tcp -m multiport --dports $WEB_PORT,$FTP_PORT,$FTP_DATA_PORT -j DNAT --to-destination $IP_PROXY:3128

# On accepte tous les paquets faisant partie d'une connexion déjà établie
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

# On autorise les nouveaux paquets à transiter par le parefeu pour les services autorisés
#iptables -A FORWARD -s $LAN_NETWORK -i $LAN_ETH -o $NET_ETH -p tcp -m multiport --dports $WEB_PORT,$MMCC_PORT,$MSN_PORT,$IMAP_PORT,$POP3_PORT,$FTP_PORT,$FTP_DATA_PORT,$HTTPS_PORT,$DNS_PORT,$SFTP_PORT,$SSH_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -d $IP_PROXY -p tcp -m multiport --dports $WEB_PORT,$SMTP_PORT,$FTP_PORT,$FTP_DATA_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -s $LAN_NETWORK -i $LAN_ETH -o $NET_ETH -p udp -m multiport --dports $DNS_PORT,$MMCC_PORT,$MSN_PORT,$IMAP_PORT,$POP3_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -d $IP_PROXY -p udp -m multiport --dports $DNS_PORT -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $NET_ETH -i $LAN_ETH -j ACCEPT

# On autorise le reseau local à dialoguer avec le routeur
iptables -A INPUT -s $LAN_NETWORK -j ACCEPT

# On autorise le parefeu à se connecter à l'Internet
iptables -A OUTPUT -j ACCEPT

# On active le partage de connexion
iptables -t nat -A POSTROUTING -o $NET_ETH -j MASQUERADE

# Journalisation des paquets rejetés
iptables -A INPUT -i $NET_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "rejets_inTCP_NET"
iptables -A INPUT -i $LAN_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_inTCP_LAN"
iptables -A OUTPUT -o $NET_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_outTCP_NET"
iptables -A OUTPUT -o $LAN_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_outTCP_LAN"
iptables -A FORWARD -m limit --limit 10/min -j LOG --log-prefix "Rejet_fw"
-1
Ritchi09 Messages postés 642 Date d'inscription samedi 28 juillet 2007 Statut Membre Dernière intervention 19 novembre 2010 41
13 oct. 2008 à 14:23
normal si, ces pas les mêmes ports qui sont utilisées.

Pour le ping et le HTTP ces des ports différents, donc celui du ping doit être ouvert et pas celui du serveur WEB.

après question serveur je suis pas très caler moi, faut attendre un pro des serveurs WEB.
-1
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
13 oct. 2008 à 14:49
Salut,

il faut tester les règles une par une
essaie avec ces règles quand ton firewall est actif

iptables -A INPUT -i INTERFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o INTERFACE -m state --state ! INVALID -j ACCEPT


INTERFACE tu l'as trouves avec la commande
 /sbin/ifconfig
--
106485010510997108
-1
kenneth007 Messages postés 14 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 10 juin 2010 2
13 oct. 2008 à 15:52
salut!

Merçi ,ais j'ai déjà essayé avec cette méthode et le résultat était le même
-1
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
13 oct. 2008 à 16:39
Re,

affiche le résultat de
iptables-save | perl -ne 's/([\s\/])(\d{1,3}\.){1,3}\d{1,3}/$1X.X.X.X/g;print'
-1
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
13 oct. 2008 à 17:04
Re,

plus besoin, je n'ai pas vu ton script ;-)))
-1
kenneth007 Messages postés 14 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 10 juin 2010 2
13 oct. 2008 à 17:13
Voici le script du firewall

#! /bin/bash
. /lib/lsb/init-functions
case "$1" in

'start')
log_daemon_msg "Démarrage du parefeu..."
modprobe ip_tables
modprobe iptable_filter
modprobe ipt_state
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
iptables-restore < /etc/init.d/firewall.conf
echo 1 > /proc/sys/net/ipv4/ip_forward
sleep 1
RETVAL=$?
log_end_msg $RETVAL
;;

'stop')
log_daemon_msg "Arrêt du parefeu..."
iptables-restore < /etc/init.d/firewall.conf
iptables-save > /etc/init.d/firewall.conf

#Clean le parefeu pendant que la machine tourne
log_daemon_msg "Remise à zéro des règles du parefeu"
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT

#Désactive le partage de connexion
echo 0 > /proc/sys/net/ipv4/ip_forward
RETVAL=$?
log_end_msg $RETVAL
;;

'restart')
$0 stop && $0 start
;;

'clean')
$0 stop
log_daemon_msg "Activation du partage de connexion"
#Active le partage de connexion
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#Redémarre la connexion internet PPP
poff
pon dsl-provider
sleep 1
RETVAL=$?
log_end_msg $RETVAL

;;
'status')
iptables-save
sleep 1
RETVAL=$?
log_end_msg $RETVAL
;;
'init')
log_daemon_msg "Initialisation des règles du parefeu..."
/etc/init.d/firewall.init
iptables-save > /etc/init.d/firewall.conf
$0 start
RETVAL=$?
sleep 1
log_end_msg $RETVAL
;;
*)
echo "Usage: /etc/init.d/firewall {start|stop|restart|status|clean|init}"

RETVAL=1
log_end_msg $RETVAL
;;
esac

exit $RETVAL



# !/bin/bash
####################################################
#Variables globales#################################
####################################################

NET_ETH=ppp0 ;
LAN_ETH=eth1 ; # Interface reseau interne
LAN_IP=192.168.16.1 ; # Adresse reseau interne
LAN_NETWORK=192.168.16.0/24 ; # Reseau interne
LAN_BROADCAST=192.168.16.255 ; # Adresse de broadcast interne
IP_PROXY=192.168.16.3 ; # Adresse IP du Proxy
IP_PUBLIC=41.233.187.150 ; # Adresse IP publique
FTP_DATA_PORT=20 ;
FTP_PORT=21 ; # Port d'ecoute du serveur local
SSH_PORT=22 ; # Port d'ecoute du Serveur SSH local
SMTP_PORT=25 ; # Port d'ecoute du serveur SMTP local
DNS_PORT=53 ; # Port d'ecoute du serveur DNS local
TFTP_PORT=69 ; # Port d'ecoute du serveur TFTP local
WEB_PORT=80 ; # Port d'ecoute du servur WEb local
SFTP_PORT=115 ; # Port d'ecoute du serveur SFTP local
HTTPS_PORT=443 ; # Port d'ecoute du serveur HTTPS local
POP3_PORT=110 ; # Port d'ecoute du serveur POP3 local
IMAP_PORT=143 ; # Port d'ecoute du serveur IMAP local
MMCC_PORT=5050 ; # Port d'ecoute du serveur yahoo
MSN_PORT=1863 ; # Port d'ecoute du serveur MSN
UNPRIVPORTS="1024:65535";

###########################################################################
###################Initialisation des tables###############################
# Initialise la table Filter (par defaut tout les echanges sont refuses)

iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# Initialisation de la table NAT (par defaut tout les echanges sont actives)
iptables -t nat -F
iptables -t nat -X


# Initialisation de la table Mangle(par defaut tout les echanges sont actives)
iptables -t mangle -F
iptables -t mangle -X


# On rejete les requetes icmp du type echo-request
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 10/min -j LOG --log-prefix "rejet_paquet_ICMP"
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP


# On autorise le ping sur l'interface LAN du parefeu et du LAN vers l'extérieur
iptables -A INPUT -i $LAN_ETH -p icmp -j ACCEPT
iptables -A FORWARD -s $LAN_NETWORK -p icmp -j ACCEPT

# On autorise l'interface loopback à dialoguer avec elle-meme
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

# On redirige les requetes en provenance de l'exterieur vers le serveur approprié
iptables -t nat -A PREROUTING -i $NET_ETH -d $IP_PUBLIC -p tcp -m multiport --dports $WEB_PORT,$FTP_DATA_PORT,$FTP_PORT,$DNS_PORT,$SFTP_PORT,$SSH_PORT -j DNAT --to-destination $IP_PROXY
iptables -t nat -A PREROUTING -i $NET_ETH -d $IP_PUBLIC -p udp -m multiport --dports $SSH_PORT,$DNS_PORT,$TFTP_PORT -j DNAT --to-destination $IP_PROXY

# On redirige vers le proxy les requets HTTP et FTP du LAN destinées vers l'exterieur \(sauf le proxy\)
# iptables -t nat -A PREROUTING -i $LAN_ETH -s ! $IP_PROXY -p tcp -m multiport --dports $WEB_PORT,$FTP_PORT,$FTP_DATA_PORT -j DNAT --to-destination $IP_PROXY:3128

# On accepte tous les paquets faisant partie d'une connexion déjà établie
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

# On autorise les nouveaux paquets à transiter par le parefeu pour les services autorisés
#iptables -A FORWARD -s $LAN_NETWORK -i $LAN_ETH -o $NET_ETH -p tcp -m multiport --dports $WEB_PORT,$MMCC_PORT,$MSN_PORT,$IMAP_PORT,$POP3_PORT,$FTP_PORT,$FTP_DATA_PORT,$HTTPS_PORT,$DNS_PORT,$SFTP_PORT,$SSH_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -d $IP_PROXY -p tcp -m multiport --dports $WEB_PORT,$SMTP_PORT,$FTP_PORT,$FTP_DATA_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -s $LAN_NETWORK -i $LAN_ETH -o $NET_ETH -p udp -m multiport --dports $DNS_PORT,$MMCC_PORT,$MSN_PORT,$IMAP_PORT,$POP3_PORT -m state --state NEW -j ACCEPT
#iptables -A FORWARD -d $IP_PROXY -p udp -m multiport --dports $DNS_PORT -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $NET_ETH -i $LAN_ETH -j ACCEPT

# On autorise le reseau local à dialoguer avec le routeur
iptables -A INPUT -s $LAN_NETWORK -j ACCEPT

# On autorise le parefeu à se connecter à l'Internet
iptables -A OUTPUT -j ACCEPT

# On active le partage de connexion
iptables -t nat -A POSTROUTING -o $NET_ETH -j MASQUERADE

# Journalisation des paquets rejetés
iptables -A INPUT -i $NET_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "rejets_inTCP_NET"
iptables -A INPUT -i $LAN_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_inTCP_LAN"
iptables -A OUTPUT -o $NET_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_outTCP_NET"
iptables -A OUTPUT -o $LAN_ETH -p tcp -m limit --limit 10/min -j LOG --log-prefix "Rejet_outTCP_LAN"
iptables -A FORWARD -m limit --limit 10/min -j LOG --log-prefix "Rejet_fw"
0