Раздача интернета на домашнюю сеть (вторую сетевую карту)
# vim /usr/local/bin/firewallset #!/bin/sh export LAN=eth0 export NAT=eth1 export WAN=ppp0 # Сообщаем ядру, что ip-форвардинг разрешен echo 1 >/proc/sys/net/ipv4/ip_forward # Обнуляет настройки файрволла! iptables -F iptables -t nat -F iptables -t mangle -F iptables -X # Проброс локального и VPN трафика iptables -t nat -A POSTROUTING -o ${NAT} -j MASQUERADE iptables -t nat -I POSTROUTING -o ${WAN} -j MASQUERADE iptables -t nat -I POSTROUTING -o ${LAN} -j MASQUERADE # Включаем фрагментацию пакетов. Необходимо из за разных значений MTU iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu # Проброс трафика Bittorrent iptables -t nat -A PREROUTING -p tcp --dport 6881:6889 -i ${WAN} -j DNAT --to 192.168.0.2 # Пробрасываем на ssh внутреннего хоста # iptables -t nat -A PREROUTING -p tcp --dport 2 -i ${WAN} -j DNAT --to 192.168.0.2:22
Настройка DHCP и DNS сервера
Установим dnsmasq, который предоставляет оба сервиса DHCP и DNS.
aptitude install dnsmasq
/etc/dnsmasq.conf
dhcp-range=192.168.240.200,192.168.251.250,300h interface=eth1
Форвардинг мультикаста (IPTV)
Для того чтобы на компьютерах домашней сети смотреть IPTV, нам понадобится igmpproxy. Низнаю с чем это связано, но в стандартных репозиториях Debian я его не нашёл. Поэтому собрал из исходников. Для этого понадобятся build-essential и checkinstall:
sudo aptitude install build-essential checkinstall
Скачиваем исходники - http://sourceforge.net/projects/igmpproxy
Распаковываем, собираем, устанавливаем:
tar xvf igmpproxy-src-*.tar.gz cd igmpproxy/src/ make checkinstall -D -y --pkgname=igmpproxy --pkgversion=0.1-beta2 --nodoc
/etc/igmpproxy.conf:
quickleave phyint eth0 upstream ratelimit 0 threshold 1 altnet 10.0.0.0/8 altnet 172.16.16.0/24 altnet 233.32.240.0/24 phyint eth1 downstream ratelimit 0 threshold 1
Теперь осталось прописать в автозагрузку. В принципе сделать это можно как душе угодно. Я сделал так:
# vim /etc/network/if-up.d/igmpproxy #!/bin/sh [ "$IFACE" = "eth1" ] || exit 0 /usr/local/bin/igmpproxy
chmod +x /etc/network/if-up.d/igmpproxy
Мост
Для создания моста между двумя устройствами нужен пакет bridge-utils. Пример файла /etc/network/interfaces
auto lo eth0 br0 iface lo inet loopback iface eth0 inet dhcp iface br0 inet static address 192.168.240.165 netmask 255.255.240.0 bridge_ports eth1 ath0 bridge_maxwait 0