Problème de routage (entre Debian et winXP via un switch) - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 14-11-2005 à 10:07:35
#forward
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o eth1 -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Si ta freebox est reliée sur eth0 et ton pc sous win sur eth1,
Tu n'autorise que le FORWARD que depuis internet vers ton pc sous windows.
Or, tu dois le faire dans les deux sens :
$IPTABLES -A FORWARD -i eth0 -o eth1 -j ACCEPT
$IPTABLES -A FORWARD -i eth1 -o eth0 -j ACCEPT
Marsh Posté le 13-11-2005 à 17:48:01
Bonjour,
J'ai un pc/Linux (Debian Sarge stable) relié directement à ma freebox.
J'ai installé un switch pour relier mon pc/winXP au pc/Linux.
mon problème = je n'arrive pas à accéder à Internet avec mon pc/winXP pourtant il y a une activité sur le réseau (paquets envoyés et reçus).
Voici mes config, merci de me dire ce que je dois corriger.
Sur Linux
ethO : Configuration Manuelle
adresse ip = 192.168.0.1
masque de sous-réseau = 255.255.255.0
eth1 : configuration automatique DHCP
Sur Win
adresse ip = 192.168.0.2
masque de sous-réseau = 255.255.255.0
passerelle par défaut = 192.168.0.1
j'arrive à ping 192.168.0.1 dpuis mon pc/win (qui est 192.168.0.2)
j'arrive à ping 192.168.0.2 depuis mon pc/win (lui-même quoi)
je n'arrive pas à ping www.google.fr depuis mon pc/win
j'arrive à ping www.google.fr depuis mon pc/linux
je n'arrive pas à ping 192.168.0.2 depuis mon pc/linux
j'arrive à ping 192.168.0.1 depuis mon pc/linux (lui-même quoi)
fichier /etc/init.d/ipfirewall (obtenu auprès d'un ami utilisant Suse) :
######################################
export PATH=$PATHsbinusr/sbin
IPCHAINS="/sbin/ipchains"
IPTABLES="/sbin/iptables"
MODE="iptables"
if [ $MODE = "ipchains" ]; then
test -x $IPCHAINS || exit 5
elif [ $MODE = "iptables" ]; then
test -x $IPTABLES || exit 5
else
echo "No mode defined, u must chose ipchains/iptables .."
fi
. /etc/rc.status
###############################
# IPCHAINS #
###############################
#loader le module sur un kernel 2.4
modload_ipchains() {
/sbin/depmod -a
/sbin/modprobe ipchains >/dev/null 2>&1
# /sbin/modprobe ip_masq_ftp ports=21 >/dev/null 2>&1
# /sbin/modprobe ip_masq_h3233 >/dev/null 2>&1
# /sbin/modprobe ip_masq_irc >/dev/null 2>&1
# /sbin/modprobe ip_masq_cuseeme >/dev/null 2>&1
# /sbin/modprobe ip_masq_quake >/dev/null 2>&1
# /sbin/modprobe ip_masq_raudio >/dev/null 2>&1
# /sbin/modprobe ip_masq_vdolive >/dev/null 2>&1
return 0
}
#demarer le firewall
ip_chains_firewall_on() {
#on ferme
ipchains -P input DENY
ipchains -P forward DENY
#allouer le retour de nos conection
ipchains -A input -p TCP -s 0.0.0.0/0 -d 0.0.0.0/0 \! -y -j ACCEPT
#Servir le Web
ipchains -A input -p TCP -s 0.0.0.0/0 -d $CURENTIP 80 -j ACCEPT
#ipchains -A input -p TCP -s 0.0.0.0/0 -d 0.0.0.0/0 8000 -j ACCEPT
#Servir l'ident
ipchains -A input -p TCP -s 0.0.0.0/0 -d $CURENTIP/24 113 -j ACCEPT
#data Type
ipchains -A output -p tcp -d 0.0.0.0/0 telnet -t 0x01 0x10
ipchains -A output -p tcp -d 0.0.0.0/0 ftp -t 0x01 0x10
ipchains -A output -p tcp -s 0.0.0.0/0 ftp-data -t 0x01 0x08
}
#arreter le firewall
ip_chains_firewall_off() {
ipchains -P input ACCEPT
ipchains -P forward ACCEPT
ipchains -P output ACCEPT
ipchains -F input
ipchains -F forward
ipchains -F output
}
###############################
# IPTABLES #
###############################
modload_iptables() {
/sbin/depmod -a
/sbin/rmmod ipchains >/dev/null 2>&1
/sbin/insmod ip_tables >/dev/null 2>&1
/sbin/insmod ip_conntrack >/dev/null 2>&1
/sbin/insmod ip_conntrack_ftp >/dev/null 2>&1
/sbin/insmod iptable_nat >/dev/null 2>&1
/sbin/insmod ip_nat_ftp >/dev/null 2>&1
#/sbin/insmod ipt_mark
#/sbin/insmod ipt_tcpmss
#/sbin/insmod ipt_limit
#/sbin/insmod ipt_multiport
#/sbin/insmod ipt_state
#/sbin/insmod ipt_unclean
#/sbin/insmod iptable_filter
#/sbin/insmod iptable_mangle
}
ip_tables_firewall_on() {
#police par default reject
$IPTABLES -P INPUT DROP
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
#loopback
$IPTABLES -A INPUT -i lo -s 127.0.0.0/8 -j ACCEPT
$IPTABLES -A INPUT -i eth0 -s 192.168.0.1/32 -d 192.168.0.1/32 -j ACCEPT
$IPTABLES -A INPUT -i eth0 -s 192.168.0.1/32 -d 127.0.0.1/8 -j ACCEPT
#retour des connections ouvertes par la station
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#Connection depuis le lan interne
$IPTABLES -A INPUT -i eth0 -s 192.168.0.1/24 -d 192.168.0.1/24 -j ACCEPT
$IPTABLES -A OUTPUT -o eth0 -s 192.168.0.1/24 -d 192.168.0.1/24 -j ACCEPT
#httpd
$IPTABLES -A INPUT -i eth1 -p tcp -s 0.0.0.0 -d $CURENTIP --dport 80 -j ACCEPT
$IPTABLES -A INPUT -i eth1 -p tcp -s 0.0.0.0 -d $CURENTIP --dport 443 -j ACCEPT
#forward
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -o eth1 -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -o eth1 -j MASQUERADE
}
ip_tables_firewall_off() {
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -t nat -F
}
###############################
# Common Start #
###############################
modload_ipfirewall() {
if [ $MODE = "ipchains" ]; then
modload_ipchains
elif [ $MODE = "iptables" ]; then
modload_iptables
else
echo "No mode defined, u must chose ipchains/iptables .."
fi
}
ip_firewall_on() {
# ifconfig ppp0 |grep "inet addr:" >/dev/null 2>&1 || exit 5
CURENTIP=`ifconfig ppp0 |grep "inet addr:"|cut -f2 -d ":"|cut -f1 -d " "`
ROUTER=`ifconfig ppp0 |grep "inet addr:"|cut -f3 -d ":"|cut -f1 -d " "`
CURENTIP=81.***.***.***
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
fi
if [ -e /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ]; then
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
fi
echo 1 > /proc/sys/net/ipv4/ip_forward
if [ $MODE = "ipchains" ]; then
ip_chains_firewall_on
elif [ $MODE = "iptables" ]; then
ip_tables_firewall_on
else
echo "No mode defined, u must chose ipchains/iptables .."
fi
}
ip_firewall_off() {
if [ $MODE = "ipchains" ]; then
ip_chains_firewall_off
elif [ $MODE = "iptables" ]; then
ip_tables_firewall_off
else
echo "No mode defined, u must chose ipchains/iptables .."
fi
}
ip_firewall_view() {
if [ $MODE = "ipchains" ]; then
ipchains -L -n
elif [ $MODE = "iptables" ]; then
iptables -L -n
echo -e "\n\nnat table:"
iptables -L -n -v -t nat
echo -e "\n\nmangle table:"
iptables -L -n -v -t mangle
else
echo "No mode defined, u must chose ipchains/iptables .."
fi
}
###############################
# Appel Argument #
###############################
case "$1" in
status)
if [ `/sbin/ipchains -L input -n | grep "policy DENY" | wc -l`
-eq 1 ]
then
echo "ipfirewall is on."
else
echo "ipfirewall is off."
fi
rc_status -v
;;
start)
echo -n "Starting Firewall"
modload_ipfirewall
ip_firewall_on
rc_status -v
;;
stop)
echo -n "Stoping Firewall"
ip_firewall_off
rc_status -v
;;
restart)
ip_firewall_off
ip_firewall_on
rc_status
;;
view)
echo -n "Curent cirewall config:"
ip_firewall_view
rc_status -v
;;
*)
echo "Usage: /etc/rc.d/init.d/ipfirewall
{status|start|stop|restart|view}"
;;
esac
exit 0
######################################
Merci pour votre aide.