| Vazi za: OpenBSD Version 3.9 |
| Vazi za: OpenBSD Version 4.0 |
Ovaj clanak ce vam pomoci da konfigurisete vas OpenBSD tako da on bude vas mrezni gateway / firewall / NAT ruter koristeci PPPOE konekciju do vaseg ISP. Moze se koristiti kao vodic i ne treba se citati bez osnovnog znanja o TCP/IP, i ne treba da zameni citanje OpenBSD PF prirucnika i odgovarajucih man stranica. Za pocetak pogledajte sledece man stranice. Ne morate da razumete sve u ovim man stranicama ali bi trebalo da ih procitate tako da bi znali gde da trazite pomoc kasnije.
Ovaj clanak je uglavnom kompletan ali neki delovi nedostaju. Ocekujte promene dok je rad na njemu u toku tako da dostigne standarde prave openbsd dokumentacije.
Da bi ovaj clanak ucinili citljivijim koristi ce mo fxp0 i rl0 kao imena za unutrasnji i spoljasnji interfejs. Naravno ovo trebate promeniti tako da odgovara vasim potrebama.
Prva stvar koju treba da uradimo je da omogucimo usmeravanje paketa izmedju interfejsa, tako da ce mo modifikovati /etc/sysctl.conf tako sto cemo ukloniti komentar sa net.inet.ip.forwarding=1 linije tako da izgleda ovako:
Konfiguracioni fajl: /etc/sysctl.conf net.inet.ip.forwarding=1
Trebamo modifikovati taj fajl tako da se promene automatski primene prilikom startovanja sistema. Da promenite trenutnu vrednost bez restartovanja sistema, pokrenite sledecu komandu:
Komanda: sysctl net forwarding # sysctl net.inet.ip.forwarding=1
pppoe (4) se nalazi u kernelu i dosao je u OpenBSD 3.7. Trebate da kreirate fajl /etc/hostname.pppoe0 i ubacite odgovarajuca podesavanja. Sintaksa i metoda koriscenja se promenila u pppoe(4) izmedju OpenBSD 3.9 i 4.0. Pogledajte odgovarajuce sekcije za verziju koju koristite. Mozete odrediti IP (zamenite 0.0.0.0 sa IP adresom ako imate staticku adresu). Promenite USERNAME (moze biti vasa email adresa na nalogu) i PASSWORD sa vasim korisnickim imenom i lozinkom.
U OpenBSD 3.9, upravljanje pppoe tunelom je moguce pomocu korisnickog alata spppcontrol.
Konfigurcioni Fajl: /etc/hostname.pppoe0 pppoedev rl0 !/sbin/ifconfig rl0 up !/usr/sbin/spppcontrol \$if myauthproto=pap myauthname=USERNAME myauthkey=PASSWORD !/sbin/ifconfig \$if inet 0.0.0.0 0.0.0.1 netmask 0xffffffff !/sbin/route add default 0.0.0.1 up
Od OpenBSD 4.0 konfiguracija pppoe(4) ide preko regularnog ifconfig interfejsa.
Konfigurcioni Fajl: /etc/hostname.pppoe0 inet 0.0.0.0 255.255.255.255 NONE pppoedev rl0 \ authproto pap authname USER authkey PASSWORD up dest 0.0.0.1 !/sbin/route add default 0.0.0.1
Fizicka konekcija do vaseg DSL modema ce koristiti cas spoljnji interfejs za kreiranje tunela. Stvarni internet saobracaj ce teci preko PPPOE tunela. Ovo je vazno ako koristite softver kao npr. pf, u suprotnom softver ce traziti pakete na pogresnom interfejsu. Verovatno ce te zeleti da onemogucite pristup ovom fajlu zato sto sadrzi vasu PPPoE lozniku. Da bi ovo uradili:
Komanda: onemogucavanje pristupa za /etc/hostname.pppoe0 # chmod go-rwx /etc/hostname.pppoe0
PPPOE tunnel ce se kreirati preko regularne ethernet konekcije do vaseg DSL modema. Fizicki interfejs nema IP adresu tako da sve sto trebamo da uradimo je da se postaramo da netstart(8) oznaci interfejs kao up prilikom starta sistema.
Komanda: Podesavanje /etc/hostname.rl0 echo up > /etc/hostname.rl0
Prisustvo /etc/mygate fajla moze uticati na ruting tabelu. Ovaj fajl treba da bude prazan ili da ne postoji.
Komanda: uklonite /etc/mygate rm -f /etc/mygate
Mozete pokrenuti sh /etc/netstart kako bi vasa mrezna podesavanja bila ponovo ucitana. Neka vas pf firewall bude ugasen u suprotnom PPPoE paketi nece moci da prodju.
Komanda: Restart svih mreznih interfejsa # sh /etc/netstart
Trebamo konfigurisati fajl kako bi sistem mogao da podigne interfejs sa IP adresom. Licno ja volim da moji serveri koriste vece brojeve a korisici manje brojeve. Najveci broj (254) je uvek moj gateway. Biram 10.0.0.0/8 zato sto ljudi koriste redje ovaj opseg – sto znaci manje sanse za preklapanje (Ako imate 192.168.0.16 lokalno i kacite se preko VPN na lokaciju koja ima tu IP adresu dodeljenu na nekom drugom mestu onda ce te naici na probleme).
Konfigurcioni Fajl: /etc/hostname.fxp0 inet 10.10.2.254 255.255.255.0 NONE
Zelimo DHCP server na nasem LAN-u tako da kompjuteri dobijaju IP adrese automatski, zato cemo ga sad konfigurisati. Postoje dva glavna fajla: /etc/dhcpd.conf (5) i /etc/dhcpd.interfaces. Oba su jednostavna za konfigurisanje. Promenite domain-name-servers kako bi odgovarali vasim dns serverima koje vam je dao vas ISP.
Konfigurcioni Fajl: /etc/dhcpd.conf
# See dhcpd.conf(5) and dhcpd(8) for more information.
shared-network LOCAL-NET {
option domain-name "mydomain.com";
option domain-name-servers 151.164.1.8, 206.13.28.12;
subnet 10.10.2.0 netmask 255.255.255.0 {
option routers 10.10.2.254;
range 10.10.2.30 10.10.2.50;
}
}
Ako zelite da odredjena MAC adresa uvek dobija istu IP adresu (ako npr imate forwarding pravilo) onda dodajte mapiranje hostova. Ispod sledi primer. Naravno zamenite somenamehere sa imenom hosta kome zelite da dodelite tu adresu. Klijentima ime ne znaci mnogo zato ga postavite kako bi vama bio od koristi. Ovaj deo je pogodan za prosledjivanje portova, ali bi trebalo da odrzavate DHCP zbog jednostavnosti (na primer imate laptop koji nosite na posao i donosite kuci; koriscenjem DHCP vas zivot ce biti malo laksi tako sto ce te imati manje fajlova za konfigurisanje).
Konfigurcioni Fajl: /etc/dhcpd.conf
host somenamehere {
hardware ethernet 00:0C:8D:16:E0:AD;
fixed-address 10.10.2.49;
}
Sto se tice /etc/dhcpd.interface sve sto vam treba je jedna linija koja sadrzi ime interfejsa na kome treba da slusa, ako je vas interfejs npr 'fxp0' onda ce fajl izgledati ovako:
Konfigurcioni Fajl: /etc/dhcpd.interfaces fxp0
Da bi startovali dhcpd editujte /etc/rc.conf.local i dodajte sledece:
Konfigurcioni Fajl: /etc/rc.conf.local dhcpd_flags=""
Pre nego to uradite postarajte se da vasa konfiguracija bude tacna. Ovo bi trebalo da uradite svaki put kada menjate konfiguraciju:
Komanda: Koristeci -n sa dhcpd # /usr/sbin/dhcpd -n -c /etc/dhcpd.conf
Da bi ucitali rucno, tako da ne trebate da restartujete sistem pokrenite istu komandu kao i u /etc/rc.local:
Komanda: Pokretanje dhcpd # /usr/sbin/dhcpd fxp0
Lokalni DNS server moze biti koristan iz dva razloga:
Named (verzija 9) dolazi sa OpenBSD 4.0 podrazumevano i konfigurisan je da kesira za lokalnu mrezu, sve sto treba da uradite je da ga omogucite. Da bi to uradili, unesite sledece izmene u /etc/rc.conf.local
Konfigurcioni Fajl: /etc/rc.conf.local named_flags=""
Da omogucite named bez restarta sistema, jednostavno ukucajte named kao root.
Koristi cemo PF (4) kao nas firewall i NAT zato sto je podrazumevano ukljucen u OpenBSD instalaciji i dokazao se tokom vremena. Postoji izvanredna knjiga za |PF(4) koju trebate procitati pre nego pocnete da hakujete vas pf.conf. Svaki sajt ce imati razliciti pf.conf shodno situaciji. Primer koji je naveden dole ce vam biti dobra polazna tacka ali nije zamena za citanje korisnickog prirucnika. Vazno je znati da nadjete najsvezije izmene verzije koju instalirate (ako koristite pravila iz starije verzije) kako bi znali dali trebate uneti neke izmene. Na primer, 4.0 do 4.1 izdanja sadrze dosta izmena. pf.conf koji je naveden dole dolazi direktno iz korisnickog prirucnika. Ima veoma specificne namene:
| Beleska: Trebate omoguciti PF *nakon* sto ste osnovali PPPoE konekciju, u suprotnom PF ce je blokirati; ako neko zna pravila koja ovo dozvoljavaju, postujte na stranici za raspravu |
| Beleska: Ako koristite DSL: Dodajte “scrub out on $extIF max-mss 1440” u vas pf.conf, u suprotnom sajtovi kao digg.com, myspace.com, i neki online games nece raditi ispravno |
| Beleska: Kada koristite pppoe0, trebate koristiti taj interfejs u pf.conf umesto vaseg fizickog interfejsa. |
Opet ponavljamo da trebate razumeti pf sto je to vise moguce pre nego sto krenete da ga koristite.
Konfigurcioni Fajl: /etc/pf.conf
# macros
ext_if="pppoe0"
int_if="fxp0"
tcp_services="{ 22, 113 }"
icmp_types="echoreq"
comp3="192.168.0.3"
# options
set block-policy return
set loginterface $ext_if
set skip on lo
# scrub
scrub in
# nat/rdr
nat on $ext_if from !($ext_if) -> ($ext_if:0)
nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021
rdr on $ext_if proto tcp from any to any port 80 -> $comp3
# filter rules
block in
pass out keep state
anchor "ftp-proxy/*"
antispoof quick for { lo $int_if }
pass in on $ext_if inet proto tcp from any to ($ext_if) \
port $tcp_services flags S/SA keep state
pass in on $ext_if inet proto tcp from any to $comp3 port 80 \
flags S/SA synproxy state
pass in inet proto icmp all icmp-type $icmp_types keep state
pass quick on $int_if
Originalan link: http://www.openbsd-wiki.org/index.php?title=PPPoE_Router_and_Firewall
soxxx@dalibor