Einfacher Router: WLan über eth0 freigeben
Für ein kleines projekt habe ich mal angefangen mich mit dem Routen von Paketen auseinander zu setzten. Dies ist dabei herrausgekommen:
Routing Script (/usr/sbin/router):
#!/bin/bash
PATH=/usr/sbin:/sbin:/bin:/usr/bin
#
# delete all existing rules.
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
# Always accept loopback traffic
iptables -A INPUT -i lo -j ACCEPT
# Allow established connections, and those not coming from the outside
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i wlan0 -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -m state --state \ ESTABLISHED,RELATED -j ACCEPT
# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
# Masquerade.
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward
route add -net 192.168.2.0 netmask 255.255.255.0 dev eth0
Netzwerk Interfaces (/etc/network/interfaces):
#loopback device
auto lo
iface lo inet loopback
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
DHCPD Konfiguration (/etc/udhcpd.conf):
start 192.168.2.20 #default: 192.168.0.20
end 192.168.2.254 #default: 192.168.0.254
interface eth0 #default: eth0
opt dns 192.168.1.1
option subnet 255.255.255.0
opt router 192.168.2.1
opt wins 192.168.1.1
option domain local
option lease 864000 # 10 days of seconds
sudo router
sudo service udhcpd start
ausführen und schon ist euer Laptop ein Router. Viel Spaß damit ^^