Pour que plusieurs machines d'un réseau local puissent utiliser la meme connexion Internet, il faut faire de l'IP masquerade (routage des paquets avec masquage de l'adresse locale).
Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) Loadable module support ---> [*] Enable loadable module support (CONFIG_MODULES) [*] Set version information on all module symbols (CONFIG_MODVERSIONS) [*] Kernel daemon support (e.g. autoload of modules) (CONFIG_KERNELD) General setup ---> [*] Networking support (CONFIG_NET) Networking options ---> [*] Network firewalls (CONFIG_FIREWALL) [*] TCP/IP networking (CONFIG_INET) [*] IP: forwarding/gatewaying (CONFIG_IP_FORWARD) [*] IP: syn cookies (CONFIG_SYN_COOKIES) [*] IP: firewalling (CONFIG_IP_FIREWALL) [*] IP: firewall packet logging (CONFIG_IP_FIREWALL_VERBOSE) [*] IP: masquerading (CONFIG_IP_MASQUERADE) [*] IP: ICMP masquerading (CONFIG_IP_MASQUERADE_ICMP) [*] IP: always defragment (CONFIG_IP_ALWAYS_DEFRAG) [*] IP: optimize as router not host (CONFIG_IP_ROUTER) [*] IP: Drop source routed frames (CONFIG_IP_NOSR) Filesystems ---> [*] /proc filesystem support (CONFIG_PROC_FS)
Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) Loadable module support ---> [*] Enable loadable module support (CONFIG_MODULES) [*] Set version information on all symbols for modules (CONFIG_MODVERSIONS) [*] Kernel module loader (CONFIG_KMOD) General setup ---> [*] Networking support (CONFIG_NET) [*] Sysctl support (CONFIG_SYSCTL) Networking options ---> <*> Packet socket (CONFIG_PACKET) [*] Network firewalls (CONFIG_FIREWALL) <*> Unix domain sockets (CONFIG_UNIX) [*] TCP/IP networking (CONFIG_INET) [*] IP: firewalling (CONFIG_IP_FIREWALL) [*] IP: masquerading (NEW) (CONFIG_IP_MASQUERADE) [*] IP: ICMP masquerading (NEW) (CONFIG_IP_MASQUERADE_ICMP) [*] IP: masquerading special modules support (NEW) (CONFIG_IP_MASQUERADE_MOD) [*] IP: optimize as router not host (CONFIG_IP_ROUTER) [*] IP: TCP syncookie support (not enabled per default) (CONFIG_SYN_COOKIES) [*] IP: Allow large windows (not recommended if <16Mb of memory) (CONFIG_SKB_LARGE) Filesystems ---> [*] /proc filesystem support (CONFIG_PROC_FS)
Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) Loadable module support ---> [*] Enable loadable module support (CONFIG_MODULES) [*] Set version information on all module symbols (CONFIG_MODVERSIONS) [*] Kernel module loader (CONFIG_KMOD) General setup ---> [*] Networking support (CONFIG_NET) [*] Sysctl support (CONFIG_SYSCTL) Networking options ---> <*> Packet socket (CONFIG_PACKET) [*] Packet socket: mmapped IO (CONFIG_PACKET_MMAP) [*] Network packet filtering (replaces ipchains) (CONFIG_NETFILTER) <*> Unix domain sockets (CONFIG_UNIX) [*] TCP/IP networking (CONFIG_INET) [*] IP: TCP syncookie support (disabled per default) (CONFIG_SYN_COOKIES) IP: Netfilter Configuration ---> <*> Connection tracking (required for masq/NAT) (CONFIG_IP_NF_CONNTRACK) <*> FTP protocol support (CONFIG_IP_NF_FTP) <*> IRC protocol support (CONFIG_IP_NF_IRC) <*> IP tables support (required for filtering/masq/NAT) (CONFIG_IP_NF_IPTABLES) <*> netfilter MARK match support (CONFIG_IP_NF_MATCH_MARK) <*> Multiple port match support (CONFIG_IP_NF_MATCH_MULTIPORT) <*> Connection state match support (CONFIG_IP_NF_MATCH_STATE) <*> Unclean match support (EXPERIMENTAL) (CONFIG_IP_NF_MATCH_UNCLEAN) <*> Packet filtering (CONFIG_IP_NF_FILTER) <*> REJECT target support (CONFIG_IP_NF_TARGET_REJECT) <*> Full NAT (CONFIG_IP_NF_NAT) <*> MASQUERADE target support (CONFIG_IP_NF_TARGET_MASQUERADE) <*> Packet mangling (CONFIG_IP_NF_MANGLE) <*> LOG target support (CONFIG_IP_NF_TARGET_LOG) <*> TCPMSS target support (CONFIG_IP_NF_TARGET_TCPMSS) File systems ---> [*] /proc file system support (CONFIG_PROC_FS)
Tout ce qui suit devrait etre rajouté aux scripts de démarrage de ma machine.
# /sbin/depmod -a # /sbin/modprobe ip_masq_ftp # pour router le ftp # /sbin/modprobe ip_masq_irc # pour router l'irc #
# echo "1" > /proc/sys/net/ipv4/ip_forward #
# ipfwadm -F -p deny #
# ipchains -P forward DENY #
# iptables -P FORWARD DROP #
# /sbin/ipfwadm -F -a m -W eth0 -S 192.168.1.0/24 -D 0.0.0.0/0 #
# ipchains -A forward -i eth0 -s 192.168.1.0/24 -j MASQ #
# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE # iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP # iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP #
Pour qu'un client utilise la passerelle tarsier:
# route add default gw tarsier #