Aide passerelle iptables plus squid

bonjours debian
aide moi a configurer mon passerelle iptables et mon proxy squid
je suis nouveau en linux, j’utilise debian 5 Lenny

voici mon schemas
ip dynamic
internet------------routeur
|192.168.11.1
|
|eth0:192.168.11.2
debian ------------------------------- LAN 192.168.1.X
eth1:192.168.1.1

merci d’avance

Salut,
Ne voudrais tu pas fonctionner par étape ?
1 activer le routage
2 masquerading
3 règles de filtage à définir
.
.
.

ensuite peut être mettre en place du squid.
Qu’en penses tu?

salut
merci pour la réponse
ok je veux suive ces étapes mais comment le faire
1 echo 1 > /proc/sys/net/ipv4/ip_forward
2 iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
3 pour commencer je veux applique la règle de base autorisé tous, voici mon script

#!/bin/sh
iptables -F #suppression règles
iptables -X
iptables -P INPUT DROP # sortie accepté; entré refusé
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT # autorisé loopback
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state NEW -j ACCEPT # autorisé a entré les connexions établie
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # établie
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT # forward LAN vers internet
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT # forward internet vers LAN
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE # MASQUARADE
echo 1 > /proc/sys/net/ipv4/ip_forward # active FORWARD

MA QUESTION
1 ou en place ce script pour qu’il puisse démarré au boot
2 est ce script et exact

voici la démarche que j’ai fais:
1- configuration carte réseau:

dans debian /etc/network/interfaces

auto lo
iface lo inet loopback

auto etho
iface etho inet static
address 192.168.11.2
network 192.168.11.0
netmask 255.255.255.0
broadcast 192.168.11.255
gateway 192.168.11.1
dns_nameserver 196.192.32.5
auto eth1
iface eth1 inet static
address 192.168.1.1
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255

dans LAN (xp)
ip 192.168.1.2
masque 255.255.255.0
passerelle 192.168.1.1
dns 196.192.32.5

2- j’ai mis mon script dans
/etc/iptables.start

j’ai créer aussi un script dans /etc/iptables.stop
#!/bin/bash
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -X
iptables -t nat -F

et aussi dans /etc/init.d/iptables
#!/bin/bash
case $1 in
’start’)
/etc/iptables.start
;;
‘stop’)
/etc/iptables.stop
;;
*)
echo “Usage: /etc/init.d/iptables {stop|start}”
;;
esac

3- je rend ces scripts executable

chmod -v 0755 /etc/{,init.d/}iptables*

4- mise en place des liens symboliques

update-rc.d iptables start 99 2 3 4 5 .

5- je ne peut pas modifier /etc/resolv.conf

Dynamic resolv.conf (5) file for glibc resolver (3) generated by resolvconf (8)
DO NOT EDIT THIS FILE BY HAND --YOUR CHANGES WILL BE OVERWRITTEN

resultat

quand je redemerre debian:
erreur avahi deamon faild

SI je fait iptables -L le résultat

chain INPUT (policy ACCEPT)
target prot opt source destination

chain FORWARD (policy ACCEPT)
target prot opt source destination

chain OUTPUT (policy ACCEPT)
target prot opt source destination

SUR PC LAN
PING 192.168.1.1 OK
PING 192.168.11.2 OK
ping 192.168.11.1 NO
ping dns FAI NO
putty marche

sur debian

internet ok
ping pc LAN OK


question

1- pouquoi le script ne demarre pas au boot
2- pourquoi je ne peut pas modifie /etc/resolv.conf

Salut

Je dirais que :

  1. Ton script de configuration d’iptables doit démarrer AVANT que les interfaces eth0 et eth1 soient démarrées, donc les règles ne s’appliquent pas.

  2. Est ce que tes scripts dans chacun des runlevel (/etc/rc2, 3, 4 et 5) appartiennent bien a root ?

[quote=“andry”]
iptables -P INPUT DROP
[…]
iptables -A INPUT -m state --state NEW -j ACCEPT[/quote]
Contradictoire, tu acceptes toutes les demandes de connexions, autant mettre

iptables -P INPUT ACCEPT

De mon côté, je dirais que la deuxième ligne est inutile puisque tu autorise déjà tout en sortie dans la première. Si un pro peut confirmer…

[quote=“fran.b”][quote=“andry”]
iptables -P INPUT DROP
[…]
iptables -A INPUT -m state --state NEW -j ACCEPT[/quote]
Contradictoire, tu acceptes toutes les demandes de connexions, autant mettre

iptables -P INPUT ACCEPT[/quote]

PascalHambourg te dirait que c’est un peu risqué :mrgreen:

Oui, note que c’est une bonne précaution de faire en sorte que quoi qu’il arrive 'y compris un changement des politiques par défaut, l’interface loopback reste opérationnelle.

C’est vrai, je n’avais pas pensé à la possibilité d’un changement de politique plus tard…

bonjours a tous

[quote=“dric64”]Salut

Je dirais que :

  1. Ton script de configuration d’iptables doit démarrer AVANT que les interfaces eth0 et eth1 soient démarrées, donc les règles ne s’appliquent pas.

  2. Est ce que tes scripts dans chacun des runlevel (/etc/rc2, 3, 4 et 5) appartiennent bien a root ?[/quote]

c’est vrai j’ai changé pour qu’il se démarre avant les interfaces
update-rc.d iptables remove
update-rc.d iptables 6 2 3 4 5 .
et aussi
chown root /etc/init.d/iptables
chown root /etc/iptables.start
chown root /etc/iptables.stop

[quote=“fran.b”][quote=“andry”]
iptables -P INPUT DROP
[…]
iptables -A INPUT -m state --state NEW -j ACCEPT[/quote]
Contradictoire, tu acceptes toutes les demandes de connexions, autant mettre

iptables -P INPUT ACCEPT[/quote]

j’ai supprimer iptables -A INPUT -m state NEW -j ACCEPT

RESULTAT

LA PASSERELLE MARCHE
Voici le rapport de iptables

Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all – anywhere anywhere
ACCEPT all – anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp – anywhere anywhere
ACCEPT tcp – anywhere anywhere tcp dpt:ssh

Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all – anywhere anywhere state RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all – anywhere anywhere

j’ai changer mon script:
ajout: autorisé ping; connexion ssh
suppression: d’après la réponse de fran.b

#!/bin/bash

iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP # les 3 cmd presque la debranchement des cables

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 INPUT ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT

interface lo

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#autorisé connexion établie
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

accept ping

iptables -A INPUT -p icmp -j ACCEPT

accept ssh port 22

iptables -A INPUT -p tcp --dport ssh -j ACCEPT

forward LAN vers internet

iptables -A FORWARD -i eth1 -0 eth0 -j ACCEPT

FORWARD INTERNET VERS lan

iptables -A FORWARD -i etho -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

#MASQUARADE
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

#active masquerade
echo 1 >/proc/sys/net/ipv4/ip_forward


1 -Maintenant j’arrive a connecté sur internet depuis le LAN
2 -je ne peut pas se connecté sur debian a travers putty : fatal error
3- ping 192.168.1.1 (eth1 du debian) :durée de vie expiré lors du transit
4- ping 192.168.11.1 (routeur) :astonished:k
5 -ping 192.168.11.2 (eth0 du debian) :délai d’attente dépassé

question
1- comment faire pour accéder debian en putty (ssh et déjà installé et sa marche avant que je l’ iptables fonctionne)
2- pourquoi j’arrive pas a pingé eth1
3- est ce que je peut installer maintenant squid si oui comment le faire

[quote]Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all – anywhere anywhere
ACCEPT all – anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp – anywhere anywhere
ACCEPT tcp – anywhere anywhere tcp dpt:ssh
[/quote]
Hum, il y a encore un souci…

slt
j’ai changer mon iptables comme suit:


#!/bin/bash
# Description: configuration de firewall netfilter/iptables
modprobe ip_tables
#modprobe iptables_filter
#modprobe iptables_nat
modprobe ip_conntrack

#vider lesegegles

iptables -X
iptables -F
iptables -t nat -F
echo "[regle effacer]"
#politique parefaut
iptables -P INPUT  DROP
iptables -P OUTPUT  DROP
iptables -P FORWARD DROP 
echo "[politique par défaut]"
# LOG
#iptables -A LOG_DROP -j LOG --log-prefix "[IPT]"
#iptables -A LOG_DROP -j DROP
echo "[log]"

iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
echo "[prerouting postrouting]"

#interface lo
iptables -A FORWARD -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
echo "[lo AUTORISE]"
#ACCEPTER TOUS CE QUI PASSE SUR LE LAN
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT
echo "[LAN AUTORISER]"
#PING SANS RESTRICTION
iptables -A INPUT -p icmp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -m state --state NEW -m limit --limit 10/min -j ACCEPT
iptables -A OUTPUT -p icmp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
echo "[PING AUTORISE]"
#SSH
#iptables -A INPUT -i eth0 -p tcp --sport ssh -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --dport ssh -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
echo "[SSH AUTORISE]"
# ACCEPT CONNEXION ETABLIE
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
echo "[CONNEXION ETABLIE]"
# DNS
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
echo "[DNS ETABLIE]"
#NTP OUT
iptable -A INPUT -p tcp --dport 3128 -j ACCEPT
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
echo "[NTP AUTORISE]"
#MASQUARADE
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#iptables -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#iptables -A PREROUTING -p udp -m udp --dport 80 -j REDIRECT --to ports 3128
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 
#active masquerade
echo 1 >/proc/sys/net/ipv4/ip_forward
echo 0 >/proc/sys/net/ipv4/tcp_ecn

résultat:
1-LAN accède internet
2-le serveur debian ne peut pas ouvrir un page web
question:
pourquoi je n’arrive pas a ouvrir une page web sur le serveur

squid
fichier config

http_port 3128 #port squid
cache_mem 64                                                          #memoire vive utile
maximum_object_size 50MB                                              #taille max objet dans cache
coredump_dir /var/spool/squid                                         #destination fichier core
cache_dir ufs /var/spool/squid 10000 16 256                           #taille cache
cache_access_log /var/log/squid/access.log                            #log sur les requette qui transite squid
cache_log /var/log/squid/cache.log                                    #log etat squid au demarrage
emulate_httpd_log on                                                  #format log standard
cache_store_log /var/log/squid/store.log                              #log object dans cache


hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?                                    #SUPPRIME CACHE URL
no_cache deny QUERY

visibles_hostname debian

dns_nameservers 196.192.32.5 41.188.9.130
dns_timeout 2 minutes
 
refresh_pattern ^http://1440 20% 10080
refresh_pattern ^ftp://1440 20% 10080
refresh_pattern ^gopher://1440 10% 1440
refresh_pattern .5 20% 20160
refresh_patern -i\.microsoft\.com 1440 20% 20160

acl lanugp src 192.168.1.0/255.255.255.0
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8

acl SSL_ports port 443
acl SSL_ports port 563
acl SSL_ports port 873
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl Safe_ports port 631
acl Safe_ports port 873
acl Safe_ports port 901
acl Safe_ports port 1863 # msn

acl purge method PURGE
acl CONNECT method CONNECT


http_access allow lanugp
http_access allow localhost
http_access allow purge localhost
http_access allow manager localhost
http_access deny all

ht_reply_access allow all
icp_access allow all

httpd_accel_with_proxy on
httpd_accel_uses_host_header on
httpd_accel_host virtual
httpd_accel_port 80


#message d'erreur
#error_directory /usr/share/squid/errors/french 

résultat:
1- LAN pas d’internet
2- skype marche
3- squid-z
FATAL: bungled squid.conf line 1:http_port 3128 # port squid
question: :question:
comment résoudre ces problèmes ?
pour information

  • j’ai résolu les problème de ping que j’ai posté avant " faute de frappe dans iptable"
  • j’ai pas encore pu modifier manuellement /etc/resolv.conf