Router oparty o iptables, wrzucić do skryptów startowych np do rc.local

#!/bin/bash
# Nasza siec
LOCALNETWORK='192.168.1.0/255.255.255.0'
GREEN=192.168.1.1

# Czyscimy wszystkie reguly:
iptables -F
iptables -t nat -F

# Domyślne zasady dla pakietów nie pasujących do żadnej regułki
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# Przypisanie kart sieciowych to LAN i WAN
export LAN=eth1
export WAN=eth0

# Potem blokujemy usługi tak, aby były dostępne tylko dla sieci LAN

iptables -I INPUT 1 -i ${LAN} -j ACCEPT
iptables -I INPUT 1 -i lo -j ACCEPT
iptables -A INPUT -p UDP --dport bootps -i ! ${LAN} -j REJECT
iptables -A INPUT -p UDP --dport domain -i ! ${LAN} -j REJECT

# (Opcjonalnie) Pozwalamy na dostęp do naszego serwera SSH z Internetu
iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT

# Upuszczamy pakiety TCP/UDP dla uprzywilejowanych portów
iptables -A INPUT -p TCP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP
iptables -A INPUT -p UDP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP

# Ostatecznie dodajemy regułki dla NAT
iptables -I FORWARD -i ${LAN} -d $LOCALNETWORK -j DROP
iptables -A FORWARD -i ${LAN} -s $LOCALNETWORK -j ACCEPT
iptables -A FORWARD -i ${WAN} -d $LOCALNETWORK -j ACCEPT
iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE

# Informujemy jądro o chęci przekazywania IP
echo 1 > /proc/sys/net/ipv4/ip_forward
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done

# Poniższe polecenia sprawią, że przy każdym uruchomieniu routera
# nie będziemy musieli wpisywać ręcznie wszystkich regułek
iptables-save
rc-update add iptables default
# nano /etc/sysctl.conf
# Dodajemy przez odkomentowanie następujące linijki:
# net.ipv4.ip_forward = 1
# net.ipv4.conf.default.rp_filter = 1
# Osoby bez stałego dostępu do Internetu zapewną zechcą włączyć tę opcję:
# net.ipv4.ip_dynaddr = 1

#####################
# Forwarding portów #
#####################

# Przekazywanie portu 20022 dla ssh na wewnętrznej stacji roboczej
iptables -t nat -A PREROUTING -p tcp --dport 20022 -i ${WAN} -j DNAT --to 192.168.1.2:22

# Przekazywanie FTP na wewnętrzną stację roboczą
iptables -t nat -A PREROUTING -p tcp --dport 21 -i ${WAN} -j DNAT --to 192.168.1.56

# Przekazywanie HTTP na wewnętrzną stację roboczą
iptables -t nat -A PREROUTING -p tcp --dport 80 -i ${WAN} -j DNAT --to 192.168.1.56

# Przekazywanie VNC na wewnętrzną stację roboczą
iptables -t nat -I PREROUTING -p tcp --dport 5900 -i ${WAN} -j DNAT --to 192.168.1.2
iptables -t nat -I PREROUTING -p tcp --dport 5901 -i ${WAN} -j DNAT --to 192.168.1.3:5900
# Aby mieć VNC na 192.168.0.3, należy po prostu dodać ':1' do nazwy routera

  # Przekazywanie Samba na wewnętrzną stację roboczą (dodatkowe porty potrzebne są do obsługi systemu Windows)
  iptables -t nat -I PREROUTING -p tcp --dport 135 -i ${WAN} -j DNAT --to 192.168.1.2
  iptables -t nat -I PREROUTING -p tcp --dport 139 -i ${WAN} -j DNAT --to 192.168.1.2
  iptables -t nat -I PREROUTING -p tcp --dport 445 -i ${WAN} -j DNAT --to 192.168.1.2
  iptables -t nat -I PREROUTING -p udp --dport 137:138 -i ${WAN} -j DNAT --to 192.168.1.2
  iptables -t nat -I PREROUTING -p udp --dport 445 -i ${WAN} -j DNAT --to 192.168.1.2

  # Przekazywanie Bittorrent
  iptables -t nat -A PREROUTING -p tcp --dport 14828 -i ${WAN} -j DNAT --to 192.168.1.10

  # Przekazywanie eDonkey/eMule
  iptables -t nat -A PREROUTING -p tcp --dport 4662 -i ${WAN} -j DNAT --to 192.168.0.55

## Poniższe linie dodajemy do rc.local ( poinformuje nas o starcie routera jak ipcop )
## Wymaga załądowanego modułu obsługującego speaker
# /home/grzegorz/admin/router/iptables_router
# /usr/bin/beep -f 300.7 -l 100; /usr/bin/beep -f 600.7 -l 100; /usr/bin/beep -f 900.7 -l 100
sieci/linux_router.txt · ostatnio zmienione: 2012/06/18 00:45 przez gcze
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki lantan - serwery linux windows Recent changes RSS feed Valid XHTML 1.0