j'ai installé un serveur proxy squid sur mon pc et mnt je veux configurer iptables pour partger la connexion entre mes deux cartes réseaux wlan0 lié à internet(192.168.3.26) et eth0(192.168.0.6) lié au local et rédiriger toutes les requetes venant des utilisateurs(local) vers mon serveur squid
c'est pour cela j'ai crée un script nommé firewall que je l'ai mis sous /etc/init.d
- Code: Tout sélectionner
#!/bin/sh
IPT="/sbin/iptables"
MODPROBE="/sbin/modprobe"
IFACE_EXT="wlan0"
#"ppp0"
IFACE_INT="eth0"
PRIVATE_ADDR="192.168.0.6"
PRIVATE_NET="192.168.0.0/255.255.255.0"
test -f $IPT || exit 0
test -f $MODPROBE || exit 0
case "$1" in
start)
echo -n "Loading firwall’s rules: "
############################
# FLUSH TABLES
############################
$IPT -t filter -F
$IPT -t nat -F
$IPT -t mangle -F
############################
# MASQUERADING
############################
$IPT -t nat -A POSTROUTING -s $PRIVATE_NET -j MASQUERADE
############################
# FORWARDING RULES
############################
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # ESTABLISHED
#$IPT -A FORWARD -p UDP -i $IFACE_INT --dport 53 -j ACCEPT # DOMAIN
#$IPT -A FORWARD -p TCP -i $IFACE_INT --dport 21 -j ACCEPT # FTP
#$IPT -A FORWARD -p TCP -i $IFACE_INT --dport 22 -j ACCEPT # SSH
#$IPT -A FORWARD -p TCP -i $IFACE_INT --dport 25 -j ACCEPT # SMTP
#$IPT -A FORWARD -p TCP -i $IFACE_INT --dport 80 -j ACCEPT # HTTP
#$IPT -A FORWARD -p TCP -i $IFACE_INT --dport 110 -j ACCEPT # POP3
#$IPT -A FORWARD -p TCP -i $IFACE_INT --dport 443 -j ACCEPT # HTTPS
$IPT -A FORWARD -p TCP -i $IFACE_EXT --dport 8080 -j ACCEPT # REMOTE DESKTOP
$IPT -A FORWARD -i $IFACE_INT -s $PRIVATE_NET -j ACCEPT
$IPT -A FORWARD -j LOG --log-prefix "Forwarding table : "
$IPT -A FORWARD -j DROP
############################
# INPUT LOOPBACK
############################
$IPT -A INPUT -i lo -j ACCEPT
############################
# INPUT INTRANET
############################
$IPT -A INPUT -p UDP -i $IFACE_INT --dport 53 -j ACCEPT # DNS
$IPT -A INPUT -p UDP -i $IFACE_INT --dport 123 -j ACCEPT # NTP
$IPT -A INPUT -p UDP -i $IFACE_INT --dport 137 -j ACCEPT # NETBIOS-NS
$IPT -A INPUT -p UDP -i $IFACE_INT --dport 138 -j ACCEPT # NETBIOS-DGM
$IPT -A INPUT -p TCP -i $IFACE_INT --dport 139 -j ACCEPT # NETBIOS-SSN
############################
# INPUT INTERNET
############################
############################
# INPUT GENERAL
############################
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # ESTABLISHED
$IPT -A INPUT -p ICMP -j ACCEPT # ICMP
$IPT -A INPUT -p TCP --dport 21 -j ACCEPT # FTP
$IPT -A INPUT -p TCP --dport 22 -j ACCEPT # SSH
$IPT -A INPUT -p TCP --dport 80 -j ACCEPT # HTTP
$IPT -A INPUT -p TCP --dport 113 -j ACCEPT # AUTH
$IPT -A INPUT -p TCP --dport 443 -j ACCEPT # HTTPS
$IPT -A INPUT -p TCP --dport 3000 -j ACCEPT # NTOP
#$IPT -A INPUT -i $IFACE_EXT -j LOG --log-prefix "Input ppp0 : " # LOG..
#$IPT -A INPUT -i $IFACE_INT -j LOG --log-prefix "Input eth0 : " # LOG..
$IPT -A INPUT -j DROP # DENY ALL
# DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy
$IPT -t nat -A PREROUTING -i $IFACE_INT -p tcp --dport 80 -j DNAT --to 192.168.3.26:8080
# if it is same system
$IPT -t nat -A PREROUTING -i $IFACE_EXT -p tcp --dport 80 -j REDIRECT --to-port 8080
echo "Done."
;;
stop)
echo -n "Flushing firwall’s rules: "
###########################
# FLUSH TABLES
###########################
$IPT -t filter -F
$IPT -t nat -F
$IPT -t mangle -F
echo "Done."
;;
restart)
/etc/init.d/firewall stop
/etc/init.d/firewall start
;;
status)
# List tables
echo
echo "---------- FILTER TABLE -----------"
echo
$IPT -t filter -L -v
echo
echo "---------- NAT TABLE -----------"
echo
$IPT -t nat -L -v
echo
;;
*)
echo "Usage: /etc/init.d/firewall {start|stop|status}"
exit 1
;;
esac
exit 0
et j'ai édité le fichier /etc/sysctl.conf :
- Code: Tout sélectionner
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
puis
- Code: Tout sélectionner
sysctl -p
puis à l’aide de la commande update-rc.d, j'ai crée automatiquement les liens dans les repertoires /etc/rcX.d/ puisque j'ai pas iptables dans /etc/init.d:
puis à l’aide de la commande update-rc.d, j'ai crée automatiquement les liens dans les repertoires /etc/rcX.d/ puisque j'ai pas iptables dans /etc/init.d:
- Code: Tout sélectionner
update-rc.d firewall start 20 2 3 4 5 . stop 20 0 1 6 .
puis j'ai demarré mon script
- Code: Tout sélectionner
/etc/init.d/firewall start
j'ai fait un test avec une machine avec l'@ ip 192.168.0.9 et même passerelle que eth0 lié au local(192.168.0.0) mais le résulat est "Address Not Found" sachant que si je met une passerelle différente pour eth0(sur le serveur) le navigateur de la machine de test m'affiche la page web demandé
que dois je faire?y'a t'il qqe chose qui manque?merci d'avance.