Zprovoznění NATu pod Linuxem (ipchains)
* Návod je psán pro distribuci Debian verze 2.1. V jiných distribucích může
být poněkud jiné pojmenování souborů.
* Návod popisuje konfiguraci ip masquaradingu (NATu) pro počítač který dělá
rozhraní mezi Internetem a lokální sítí postavené na privátních IP adresách:
10.0.0.0/255.0.0.0
172.16.0.0/255.240.0.0
192.168.0.0/255.255.0.0
* Popis si klade za cíl čistě zprovoznění masquaradingu a týká se varianty ipchains
(jádra 2.2.xx a patchovaná 2.0.xx).
* Více informací viz man ipchains.
Předpoklady
- Mít přeložené jádro s podporou masquaradingu
- Zkonfigurovat skripty
Konfigurace:
Startovací skripty jsou u debianu v /etc/init.d/
/etc/init.d/ipchains
Soubor do kterého lze přidat obsluhu pro Masquarading.
#! /bin/sh
# Script to control packet filtering.
# If no rules, do nothing.
[ -f /etc/ipchains.rules ] || exit 0
case "$1" in
start)
echo -n "Turning on packet filtering:"
grep -v '#' /etc/ipchains.rules | /sbin/ipchains-restore || exit 1
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "."
;;
stop)
echo -n "Turning off packet filtering:"
echo 0 > /proc/sys/net/ipv4/ip_forward
/sbin/ipchains -X
/sbin/ipchains -F
/sbin/ipchains -P input ACCEPT
/sbin/ipchains -P output ACCEPT
/sbin/ipchains -P forward ACCEPT
echo "."
;;
*)
echo "Usage: /etc/init.d/ipchains {start|stop}"
exit 1
;;
esac
exit 0
/etc/ipchains.rules
A zde jsou vlastní pravidla. Je vidět že pro vnitřní síť je použito
IP adres 10.0.0.0/255.255.255.0 a pro vnější 194.213.228.220. Takto nakonfigurované
spustí čistě NAT.
-F
-X
:input ACCEPT
:forward ACCEPT
:output ACCEPT
-A forward -s 10.0.0.0/24 -j MASQ
Nyní zde uvedu složitější příklad kdy na routeru běží zároveň serverové služby
které musí být přístupné zvenku (DNS, WWW, SMTP) a veškerá další komunikace
dovnitř je blokována kromě odpovědí na požadavky zevnitř. Do internetu se 'dívá'
rozhraní Eth0 s ipadresou 62.44.1.16 a uvnitř jsou použity adresy
192.168.1.0/255.255.255.0.
-F
-X
:forward ACCEPT
:input DENY
### input je standardne zakázán
:output ACCEPT
-A input -s 0.0.0.0/0 -d 0.0.0.0/0 -i lo -j ACCEPT
### povolen jakýkoli provoz na loopback
-A input -s 192.168.1.0/24 -d 0.0.0.0/0 -i eth1 -j ACCEPT
### povoleny jakekoli pakety z vnitrni site
-A input -s 0.0.0.0/0 -d 62.44.1.16/32 -i eth0 -p icmp -j ACCEPT
### povolen prichod ICMP paketu zvenku
-A input -s 0.0.0.0/0 -d 62.44.1.16/32 -p udp -i eth0 -j ACCEPT
### povolen prichod UDP paketu zvenku (kuli fungovani DNS pro vnitrni pocitace)
-A input -s 0.0.0.0/0 -d 62.44.1.16/32 -i eth0 -p tcp ! -y -j ACCEPT
### povolen prichodjakychkoli TCP paketu ktere nenavazuji spojeni (odpovedi serveru)
-A input -s 0.0.0.0/0 ftp-data -d 62.44.1.16/32 -p tcp -i eth0 -j ACCEPT
### povolen prichod paketu z portu ftpdata na jakykoli port (kvuli funkci akt ftp)
-A input -s 0.0.0.0/0 -d 62.44.1.16/32 smtp -p tcp -i eth0 -j ACCEPT
### povoleno navazovani spojeni zvenku (fungovani posty) na port 25
-A input -s 0.0.0.0/0 -d 62.44.1.16/32 domain -p tcp -i eth0 -j ACCEPT
### povoleno navazovani spojeni zvenku (fungovani DNS) na port 53
-A input -s 0.0.0.0/0 -d 62.44.1.16/32 www -p tcp -i eth0 -j ACCEPT
### povoleno navazovani spojeni zvenku (fungovani www) na port 80
-A forward -s 192.168.1.0/24 -d 0.0.0.0/0 -j MASQ
### pakety z vnitrni site masquaraduj
-A input -s ! 192.168.1.0/24 -d 0.0.0.0/0 -i eth1 -j DENY
-A input -s 192.168.1.0/24 -d 0.0.0.0/0 -i eth0 -j DENY
### antispoofingova pravidla, zevnitr smi prijit jen paket pochazejici z rozsahu
### vnitrni site zvenku jakykoli krome adres vnitrni site
-M -S 3600 0 0
### zmena timeoutu masquarady
Soubor musí končit právě jedním prázdným řádkem !
/etc/modules
Do souboru je třeba přidat loadování modulu pro fungování FTP
a dalších služeb přes IPmasq.
ip_masq_cuseeme
ip_masq_irc
ip_masq_raudio
ip_masq_ftp
ip_masq_quake
ip_masq_vdolive
Pak už jen stačí zajistit startování skriptu například takto:
ln -s /etc/init.d/ipchains /etc/rc2.d/S20ipchains
ml@czech.net 991109
|