Aller au contenu

Iptables bloque internet


Cesar4

Messages recommandés

slt,

J'ai fait un script iptables mais le problème c'est que je ne comprend pas pour quoi il bloque tout

j'ai ouvert le port 80 en tcp et udp et le port 53 en udp et tcp mais je ne sais toujours pas charger de page web

voici mon script

#!/bin/sh

start(  )

{

### Variables globales ###

Internet=eth0

Lan=eth0

Output=ACCEPT #politique des packet sortants

### Initialise iptables ###

stop

###

### Politique par defaut ###

iptables -P INPUT DROP

iptables -P OUTPUT $Output

echo ".: Politique par defaut des connexions sortantes: $Output :."

iptables -P FORWARD ACCEPT

###

### Autorise le traffic sur loopback ###

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

iptables -A FORWARD -i lo -j ACCEPT

iptables -A FORWARD -o lo -j ACCEPT

###

### Connection internet a autoriser ###

        iptables -A INPUT -p tcp -i $Internet --dport www -m state --state ESTABLISHED,RELATED -j ACCEPT

        iptables -A INPUT -p udp -i $Internet --dport www -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p tcp -i $Internet --dport domain -m state --state ESTABLISHED,RELATED -j ACCEPT

        iptables -A INPUT -p udp -i $Internet --dport domain -m state --state ESTABLISHED,RELATED -j ACCEPT

###

### Acepter tous sur le localhost ###

iptables -A INPUT  -s 127.0.0.1 -d 127.0.0.1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -s 127.0.0.1 -d 127.0.0.1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -A OUTPUT  -s 127.0.0.1 -d 127.0.0.1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

###

echo ".: Firewall demare :."

}

stop(  )

{

### On desactive le firewall ###

iptables -F

iptables -X

iptables -P INPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -P OUTPUT ACCEPT

iptables -t nat -F

iptables -t nat -X

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

iptables -t nat -P OUTPUT ACCEPT

iptables -t mangle -F

iptables -t mangle -X

iptables -t mangle -P PREROUTING ACCEPT

iptables -t mangle -P OUTPUT ACCEPT

echo ".: Firewall eteind :."

}

si quelqu'un pourrait m'aider ce serait cool car je suis bloquer sur ce problème depuis quelque temps déjà

Lien vers le commentaire
Partager sur d’autres sites

t'es sur qu'elle existe l'option "--dport" ? moi c'est "--destination-port"

pour ce qui est de mettre "domain" ou "www" je sais pas si ca marche moi je met plutot le numéro du port

pourquoi définir les chaines "internet" "lan" "outpout" , ça ne pose pas de problème mais tu peut directement mettre eth0 ou ACCEPT dans les commandes ?

Lien vers le commentaire
Partager sur d’autres sites

--dport existe tout comme -destination-port.

Par contre, les protocols comme www http etc... je suis du même avis que Tintaspi, je n'ai pas l'impression que ça marche réellement même si dans les tutos de Lea-Linux on en parle.

Par contre, je ne comprends pas trop pourquoi tu définis une variable $OUTPUT et pourquoi tu définis $Internet et $Lan vu que tu n'utilises que $Internet.

J'ai l'impression que tu as mis des variables comme ça sans réellement savoir ce que tu faisais (ne le prends pas mal, ce n'est pas mon but). J'aurais plutôt mis en variables:

$IPTABLES=`which iptables`
$LOCALHOST=127.0.0.1

Lien vers le commentaire
Partager sur d’autres sites

Par contre, je ne comprends pas trop pourquoi tu définis une variable $OUTPUT et pourquoi tu définis $Internet et $Lan vu que tu n'utilises que $Internet.

J'ai l'impression que tu as mis des variables comme ça sans réellement savoir ce que tu faisais (ne le prends pas mal, ce n'est pas mon but). J'aurais plutôt mis en variables:

en fait cet variable je l'utilise mais je nai pas mis mon script en entier car il est long

je vais peut etre donner le script complet:

#!/bin/sh

start(  )

{

### Variables globales ###

Internet=eth0

Lan=eth0

Lan_Ip=192.168.1.2/10

Ping=yes

Lan_Ip_Accept=yes

Output=ACCEPT #politique des packet sortants

Tcp="www ssh https domain ftp ftp-data pop-3 smtp irc 1863 5222 6881 8767 51234"

Upd="ssh https domain pop-3 irc 1863 5222 6881 8767 51234"

Ip_interdites=192.168.1.8

###

### Chargement des modules ###

modprobe ip_conntrack_irc

###

### Initialise iptables ###

stop

###

### Politique par defaut ###

iptables -P INPUT DROP

iptables -P OUTPUT $Output

echo ".: Politique par defaut des connexions sortantes: $Output :."

iptables -P FORWARD ACCEPT

###

### Autorise le traffic sur loopback ###

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

iptables -A FORWARD -i lo -j ACCEPT

iptables -A FORWARD -o lo -j ACCEPT

###

### Protection contre les SYN/FLOOD ###

if [ -e /proc/sys/net/ipv4/tcp_syncookies ]

then

  echo 1 > /proc/sys/net/ipv4/tcp_syncookies

  echo ".: Protection contre les SYN/FLOOD :."

fi

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

###

### Connection internet a autoriser ###

        iptables -A INPUT -p tcp -i $Internet --dport www -m state --state ESTABLISHED,RELATED -j ACCEPT

        iptables -A INPUT -p udp -i $Internet --dport www -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p tcp -i $Internet --dport domain -m state --state ESTABLISHED,RELATED -j ACCEPT

        iptables -A INPUT -p udp -i $Internet --dport domain -m state --state ESTABLISHED,RELATED -j ACCEPT

###

### Ping ###

###

### Ip interdites ###

for ip in $Ip_interdites

do

  iptables -A FORWARD -p tcp -s $ip -m state --state NEW,RELATED,ESTABLISHED -j DROP #LOG --log-prefix '[iP DROP]'

  iptables -A FORWARD -p udp -s $ip -m state --state NEW,RELATED,ESTABLISHED -j DROP #LOG --log-prefix '[iP DROP]'

done

### Acepter tous sur le localhost ###

iptables -A INPUT  -s 127.0.0.1 -d 127.0.0.1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -s 127.0.0.1 -d 127.0.0.1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -A OUTPUT  -s 127.0.0.1 -d 127.0.0.1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

###

### Acepter tous sur le reseau local ###

if [ "${Lan_Ip_Accept}" = "yes" ]

then

  iptables -A INPUT  -s $Lan_Ip -d $Lan_Ip -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

  iptables -A FORWARD -s $Lan_Ip -d $Lan_Ip -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

  iptables -A OUTPUT  -s $Lan_Ip -d $Lan_Ip -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

fi

echo ".: Firewall demare :."

}

stop(  )

{

### On desactive le firewall ###

iptables -F

iptables -X

iptables -P INPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -P OUTPUT ACCEPT

iptables -t nat -F

iptables -t nat -X

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

iptables -t nat -P OUTPUT ACCEPT

iptables -t mangle -F

iptables -t mangle -X

iptables -t mangle -P PREROUTING ACCEPT

iptables -t mangle -P OUTPUT ACCEPT

echo ".: Firewall eteind :."

}

restart(  )

{

stop

  sleep 2

  start

echo ".: Firewall redemare :."

}

case "$1" in

'start')

    start

  ;;

'stop')

    stop

  ;;

'restart')

    restart

  ;;

'status')

    iptables -L

  ;;

*)

      echo "Usage: firewall.sh { start | stop | restart | status }"

esac

Lien vers le commentaire
Partager sur d’autres sites

  • 1 an après...

Bonsoir,

Moi je note plusieurs chose :

1/ ton interface lan et wan est le même, normal (eth0)? Difficile de faire un firewall qu'avec une seule interface, donc tes règles en forward ne servent à rien -> Faisons abstractions de cela pour la suite, même si cela me parait déjà un gros frein pour le fonctionnement dudit firewall

2/ tu autorises toutes les connexions established ou related en dport 80, comment veux tu que ton Lan se connect sans autoriser les new? Dans ta règle, je pense qu'il plutôt mettre un sport 80.

3/ Le protocol udp ne te servira pas pour le http au premier abord, donc tu peux le commenter histoire déjà de ne pas chercher la petite bête ou elle ne devrait pas se trouver

4/ Idem 2/ pour la résolution des noms

5/ N'oublies un petit coup de

echo 0 > /proc/sys/net/ipv4/ip_forward #en début de script pour protéger ton lan durant l'initialisation des règles

echo 1 > /proc/sys/net/ipv4/ip_forward #en fin de script pour permettre le forward entre tes 2 interfaces (ça risque de poser soucis vu que tu n'as apparemment qu'une seule interface....)

Je reste à ta disposition.

++

Lo

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...