#1 Le 27/12/2007, à 23:28
- adrien.lm
serveur web (apache2) et proxy transparent (squid+iptables)
salut,
je voudrai mettre sur une machine un proxy transparent ainsi qu'un serveur web; es-ce possible ? comment dois-je configurer iptables? pour l'instant ma config iptables ressemble à ceci
EDIT : J'ai poster dans la section internet et réseau aussi mais personne ne veut me répondre !!! o๠dois-je poster car mon sujet chevauche 2 sections !!
#!/bin/sh
# script /etc/firewall.sh
# Activation du forwarding
# C'est pas pour faire joli, on aura des règles
# de forward et il faut bien que les paquets
# traversent la machine, donc on met ce fichier à 1echo 1 > /proc/sys/net/ipv4/ip_forward
# Alors la, on va appliquer quelques astuces
# pour empêcher les attaques de type spoofing
# et bloquer les réponses ICMP du firewall,
# comme ça c'est très propre. Attention, le
# fait de bloquer le trafic ICMP sur
# le firewall bloque les pings.# 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
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts# Pour faire bien, on va vider toutes les règles
# avant d'appliquer les nouvelles règles de firewalliptables -F
iptables -X# La on logue et on refuse le paquet,
# on rajoute un préfixe pour pouvoir
# s'y retrouver dans les logs
iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG \
--log-prefix '[IPTABLES DROP] : '
iptables -A LOG_DROP -j DROP# ici, on logue et on accepte le paquet,
# on rajoute un préfixe pour pouvoir
# s'y retrouver dans les logs
iptables -N LOG_ACCEPT
iptables -A LOG_ACCEPT -j LOG \
--log-prefix '[IPTABLES ACCEPT] : '
iptables -A LOG_ACCEPT -j ACCEPT# On veut faire un firewall efficace,
# donc la politique a appliquer est de tout
# refuser par défaut et rajouter une a une
# les règles que l'on autorise.
# Bien sur, on a RTFM un peu et on a vu que
# l'option -P permet de définir
# la cible par défautiptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP# Pour éviter les problèmes, on va tout accepter sur
# la machine en local (interface lo).
# Je déconseille de retirer cette règle car
# ça pose pas mal de problèmes et ça peut
# faire perdre la main sur la machineiptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT# Bon, la partie initialisation et préparation est
# terminée, passons aux choses sérieuses# Comme on l'a dit dans la présentation de
# l'architecture réseau, le firewall fait
# également office de proxy grà¢ce par exemple
# à un squid installé dessus. On va donc
# accepter que le proxy ait une connexion
# internet directe. Tant qu'à faire, on va
# mettre des états pour que ça soit bien sécuris?(chge ppp0 sur la connection internet)iptables -A OUTPUT -o eth4 -m state \
--state NEW,ESTABLISHED -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth4 -m state \
--state ESTABLISHED -p tcp --sport 80 -j ACCEPT# Maintenant, on va faire en sorte que le
# proxy soit totalement transparent pour le LAN
# bénéficiant de la connexion internet.
# L'astuce consiste a rediriger toutes les
# requêtes ayant un port de destination 80
# vers le port 3128 du proxy, ici c'est le
# firewall (qui est sur le firewall et qui
# a l'adresse IP 192.168.2.1 ). et qui est en local donc normalement on peut faire 127.0.0.1
# Une règle de NAT suffira largement pour faire ça.iptables -t nat -A PREROUTING -i eth1 -p tcp \
--dport 80 -j DNAT --to-destination 192.168.1.24:3128# accès ssh depuis le net et depuis le local
iptables -A INPUT -p tcp --dport 22 -i eth1 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -o eth1 -j ACCEPTiptables -A INPUT -p tcp --dport 22 -i eth4 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -o eth4 -j ACCEPT# idem pour l'accès au serveur web sur a machine ( proxy firewall , serveur vpn ...)
iptables -A INPUT -p tcp --dport 80 -i eth1 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -o eth1 -j ACCEPTiptables -A INPUT -p tcp --dport 80 -i eth4 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -o eth4 -j ACCEPT# Toutes les règles qui n'ont pas passé les
# règles du firewall seront refusées et loguées...
# facile :iptables -A FORWARD -j LOG_DROP
iptables -A INPUT -j LOG_DROP
iptables -A OUTPUT -j LOG_DROP
faut-il que je modifie le serveur apache pour qu'il fonctionne sur un autre port ? et si oui es-ce qu'il va être facilement joignable par le net ensuite ?
MERCI
et joyeuse année
Dernière modification par adrien.lm (Le 28/12/2007, à 00:23)
Hors ligne
#2 Le 28/12/2007, à 00:17
- adrien.lm
Re : serveur web (apache2) et proxy transparent (squid+iptables)
il me semble qu'il faudrait p-t vous faire un shéma de l'installation :
modem <==> serveur(web,proxy,vpn,...) <==> routeur <==> clients du réseau
eth4 eth1
Dernière modification par adrien.lm (Le 28/12/2007, à 00:18)
Hors ligne