EnderUnix Software Development Team

FreeBSD Dial-Up Gateway Kurulumu
 

Giris

26 Mayıs 2001

Bu dokumanda, Internete dial-up baglanan, dinamik ve tek IP'ye sahip olan kurumlar icin, FreeBSD Dial-UP Gateway kurulumu anlatilacaktir. FreeBSD kuracagimiz makinayi sahip oldugumuz bir internet servis saglayici hesabiyla internete baglayacak, ve bu makinayla ayni LAN icinde olan diger butun makinalari, (TCP/IP konusabilmesi yeterli, platform farketmez) FreeBSD gatewayimiz ile internete cikaracagiz.
Genel Notlar
Bu dokumanin en guncel hali; http://www.enderunix.org/docs/bsd-gateway.html adresindedir.

Aksi belirtilmedigi takdirde bu gibi dokumanlarin haklari kendilerini yazan yazarlarda saklidir. Bu dokuman da, parca parca ya da tamamen herhangi bir sekilde, yazarinin izni dahilinde dagitilabilir.

Yazar, bu dokumani okuyanlarin ugrayacaklari herhangi bir zarardan oturu sorumluluk kabul etmez. Use at your own risk!

Eger, herhangi bir konuda yardima ihtiyaciniz olursa, [email protected] adresine mail atabilirsiniz.!

FreeBSD Kurulumu
 

FreeBSD'yi ftp.freebsd.org, http://www.freebsd.org adresinde belirtilen yansilarin birinden, ya da 4.3-RELEASE 'i ftp://ftp.enderunix.org/pub/FreeBSD adresinden indirebilirsiniz. CD'nizi hazir ettikten sonra, bizim FreeBSD kurulum dokumanimizi okuyun:

http://www.enderunix.org/docs/freebsd_kurulum/

NOT: Kurulum yaparken, Distribution Set'lerden src ve onun icinden de sys (kernel kaynak kodlari) bolumunu mutlaka kurmalisiniz.

 

FreeBSD kernel'inimizi derliyoruz

Evet, makinamizi basari ile kurduktan sonra, IPFILTER 'imizi kullanabilmek icin, kernel derlememiz gerekiyor. Onun icin, 

Kernel kaynak kodlarimizin oldugu dizine geciyoruz, oradaki i386/conf daki, GENERIC isimli dosyayi, ENDERUNIX seklinde kopyaliyoruz. Sonra bu ENDERUNIX isimli dosyamizi favori text editorumuz olan vi ile edit ediyoruz:

 

freefall:~# cd /usr/src/sys/i386/conf/
freefall:/usr/src/sys/i386/conf# ls
FREEFALL GENERIC LINT NEWCARD
freefall:/usr/src/sys/i386/conf# cp GENERIC ENDERUNIX
freefall:/usr/src/sys/i386/conf# ls
ENDERUNIX FREEFALL GENERIC LINT NEWCARD
freefall:/usr/src/sys/i386/conf# vi ENDERUNIX

Evet simdi Kernel Konfigurasyon dosyamizin icerigine bakalim. Oradaki ident'i GENERIC yerine konfigurasyon dosyamizin ismi olan ENDERUNIX ile degistiriyoruz, maxusers direktifini de 128 olarak artiriyoruz.

Eski:

cpu I586_CPU
cpu I686_CPU
ident GENERIC
maxusers 32

Yeni:

cpu I586_CPU
cpu I686_CPU
ident ENDERUNIX
maxusers 128

Yine ayni dosyada, options IPFILTER ve options IP_FILTER_LOG direktiflerini ekliyoruz:

options ICMP_BANDLIM #Rate limit bad replies
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options IPFILTER
options IPFILTER_LOG

Bu dosyada, ihtiyaciniz olmayacak driver lari commentleyerek kernel'in onlari bosu bosuna yuklememesini saglayabilirsiniz. Her neyse, bu dosyani kaydediyoruz, ve:

freefall:/usr/src/sys/i386/conf# config ENDERUNIX
Don't forget to do a ``make depend''
Kernel build directory is ../../compile/ENDERUNIX
freefall:/usr/src/sys/i386/conf#

Sonra "compilation" directory'sine gidiyoruz, ve;

freefall:/usr/src/sys/i386/conf# cd ../../compile/ENDERUNIX/
freefall:/usr/src/sys/compile/ENDERUNIX# make depend
freefall:/usr/src/sys/compile/ENDERUNIX# make
freefall:/usr/src/sys/compile/ENDERUNIX# make install

deyip kernelimizi derleyip, install ediyoruz. Islem bittikten sonra, /etc/rc.conf'a su satirlari girerek, IPFILTER'in acilista aktif olmasini sagliyoruz:

ipfilter_enable="YES"
ipfilter_program="/sbin/ipf -Fa -f"
ipfilter_rules="/etc/ipf.rules"
ipfilter_flags="-E"
ipnat_enable="YES"
ipnat_program="/sbin/ipnat -CF -f"
ipnat_rules="/etc/ipnat.rules"
ipmon_enable="YES"
ipmon_program="/sbin/ipmon"
ipmon_flags="-Ds"

Makinamizin gateway olmasini saglamak icin de, /etc dizininin altinda sysctl.conf diye bir dosya olusturup icine sunu yaziyoruz:

freefall:/etc# vi sysctl.conf

net.inet.ip.forwarding=1

Ve islemlerimizin gecerlilik kazanmasini saglamak icin makinamizi reboot ediyoruz.

freefall:/usr/src/sys/compile/ENDERUNIX# reboot


 

/etc/ipf.rules, /etc/ipnat.rules
  Makinamiz acildiktan sonra, Dial-Up makinamizin NAT ve filtering fonksiyonlarini ustlenen IPFILTER'imizi konfigure ediyoruz. Once /etc/ipf.rules dosyamiza sunlari ilave ediyoruz:

pass out quick on lo0
pass in quick on lo0

block in quick on tun0 all with opt lsrr
block in quick on tun0 all with opt ssrr
block in quick on tun0 proto tcp from any to any flags FUP
block return-icmp(port-unr) in quick on tun0 from any to any port = 113


pass out quick on tun0 proto udp/tcp from any to any keep state
pass out quick on tun0 proto icmp from any to any keep state


block in quick on tun0 from any to any
 

sonra bunlarin aktif olmasini saglamak icin:

freefall:/etc# ipf -Fa -f /etc/ipf.rules

Evet, yukaridaki kurallarimizdan da anlasilacagi uzere, makinamiz ve agimiza internetten kaynaklanan butun baglantilara kapattik, agimizdan disari cikisa da kayitsiz sartsiz izin verdik. Simdi de, NAT fonksiyonu icin /etc/ipnat.rules dosyamiza sunlari yaziyoruz:

map tun0 0/0 -> 0/32 proxy port ftp ftp/tcp
map tun0 192.168.1.1/24 -> 0/32 portmap tcp/udp 12000:60000
map tun0 192.168.1.1/24 -> 0/32

Gene bunlarin da aktif olmasini saglamak icin de;

freefall:/etc# ipnat -CF -f /etc/ipnat.rules
59 entries flushed from NAT table
3 entries flushed from NAT list
freefall:/etc#

komutunu kullaniyoruz...

PPP konfigurasyonu, Internete baglanma
Evet, FreeBSD'de internete baglanmak cok mu cok kolay. Yapacagimiz ilk sey, /etc/ppp dizinine gecmek

freefall:~# cd /etc/ppp/
freefall:/etc/ppp# ls
ppp.conf ppp.deny ppp.linkdown ppp.linkup ppp.shells.sample
freefall:/etc/ppp#

Buradaki dosyalardan, ppp.conf'u /usr/share/examples/ppp dizininden kopyaliyoruz.

freefall:/etc/ppp# cp /usr/share/examples/ppp/ppp.conf.sample .

Gene ayni sekilde, ppp.linkdown ve ppp.linkup dosyalarina da ihtiyacimiz var. Bu dosyalar da ppp linkimiz up veya down oldugunda makinamizin calistirmasini istedigimiz komutlar icin gerekli. Mesela internete baglandigimiz anda NAT konfigurasyonumuzu reload etmek isteyecegiz, cunku NAT konfigurasyonumuz calismak icin aldigimiz yeni IP'yi bilmek isteyecektir.

freefall:/etc/ppp# cp /usr/share/examples/ppp/ppp.linkup.sample .
freefall:/etc/ppp# cp /usr/share/examples/ppp/ppp.linkdown.sample .

Simdi de internet baglantimiza ait bilgileri ppp.conf dosyamiza girelim. ppp.conf dosyasini acalim:

freefall:/etc/ppp# vi ppp.conf

Orada modemimizin bagli oldugu seri portu yazalim, ppp.conf'da default: kisminda set device direktifi ile bunu belirtiyoruz. Eger modemimiz DOS dili ile COM1 de ise /dev/cuaa0, COM2 de ise /dev/cuaa1 olacak

default:
set log Phase Chat LCP IPCP CCP tun command
set device /dev/cuaa0
set speed 115200
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT \
OK-AT-OK ATM0l0 OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"

Gene ayni dosyada, simdi de, Internet baglantimiz icin gerekli bilgileri girelim. ppp.conf'da PAPorCHAPpmdemand: kisminin altina ona benzer bir baglanti girelim: Ornek bir baglanti soyle olabilir:

netone:
set phone 08222111206
set login
set authname kullaniciadi
set authkey kullanicisifresi
set timeout 900
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
add default HISADDR
enable dns

Evet bu dosyayi kaydedip cikin. Simdi de, baglantimiz aktif oldugu zaman IP'mizi NAT'a bildirmemiz icin gerekli. Bunun icin ppp.linkup dosyasina "ipnat -CF -f /etc/ipnat.rules" komutunu girmeliyiz.

freefall:/etc/ppp# vi ppp.linkup

ppp.linkup dosyasinda, MYADDR kisiminda soyle bir ibare olacak sekilde orayi edit edin:

# It is no longer necessary to re-add the default route here as our
# ppp.conf route is `sticky' (see the man page).
# If you're into sound effects when the link comes up, you can run
# ``auplay'' (assuming NAS is installed and configured).
#
MYADDR:
!bg /sbin/ipnat -CF -f /etc/ipnat.rules

# If we've got 192.244.176.32 as our address, then regard peer as a gateway
# to 192.244.176.0 network. This may also

ppp.linkup dosyamizi da kaydeyip cikalim. Evet, simdi sira geldi Internet'e baglanmaya, Bu da

freefall:/etc/ppp# ppp -ddial netone

komutu ile olacak. -ddial ibaresi Demand Dialing secenegini aktif hale getiriyor. netone ibaresi de ppp.conf daki netone kismidaki baglanti kriterlerimiz okuyup o baglantiyi kuruyor. Eger ayarlarimiz dogru ise, bir muddet sonra, Internet baglantimiz hazir hale gelmis olmali.

freefall:/etc/ppp# ifconfig
ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
inet6 fe80::200:21ff:fe50:3ea6%ed0 prefixlen 64 scopeid 0x1
inet 192.168.1.102 netmask 0xffffffff broadcast 192.168.1.102
inet 192.168.1.101 netmask 0xffffffff broadcast 192.168.1.101
ether 00:00:21:50:3e:a6
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552
faith0: flags=8000<MULTICAST> mtu 1500
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
gif1: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
gif2: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
gif3: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x9
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
inet6 fe80::200:21ff:fe50:3ea6%tun0 --> :: prefixlen 64 scopeid 0xb
inet 193.192.114.77 --> 193.192.101.13 netmask 0xffffff00
Opened by PID 1856
freefall:/etc/ppp#

ile tun0 arayuzunu gorebiliyorsaniz, fiziksel olarak baglanti kurulmus demektir. Simdi test edelim:

freefall:/etc/ppp# ping www.ttnet.net.tr
PING www.ttnet.net.tr (212.175.64.11): 56 data bytes
64 bytes from 212.175.64.11: icmp_seq=0 ttl=121 time=222.172 ms
64 bytes from 212.175.64.11: icmp_seq=1 ttl=121 time=190.345 ms
64 bytes from 212.175.64.11: icmp_seq=2 ttl=121 time=130.335 ms
^C
--- www.ttnet.net.tr ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 130.335/180.951/222.172/38.076 ms
freefall:/etc/ppp#

Evet, gordugumuz gibi gayet basarili bir sekilde internete baglanmis bulunuyoruz. Gelelim simdi de Client makinalarin konfigurasyonuna.

Istemci Makinalarin Konfigurasyonu

Win98 Makinalar:

Ethernet kartınızı kurmadıysanız, kurun

"Control Panel" / "Network"

TCP/IP protokolünü, mevcut değilse ekleyin.

TCP/IP Properties:
- Ip Adress Tab’ına geçin
– Bu makina için belirlediğiniz IP’yi girin (e.g. 192.168.1.2)
– Subnet : 255.255.255.0
– Gateway tab’ında, FreeBSD makinayı gateway olarak atayın (192.168.1.1)
– DNS tab’ında, ISS name server IP’lerini girin.
(e.g. Superonline için, 212.252.119.3 & 212.252.119.4)
– Diğer kısımları boş bırakıp "OK"yi tıklayın.
– Makinayı restart edin

Windows NT Makinalar

- Eğer tanıtmadıysanız, Ethernet kartınızı tanıtın.
– "Main" / "Control Panel" / "Network"
– "Add Software" bölümünden TCP/IP ‘yi ver gereken diğer bileşenleri eklemediyseniz ekleyin.
– "Network Software and Adapter Cards" bölümünün altında "Installed Network Software" in içindeki "TCP/IP Protokol"ü seçin
.

"TCP/IP Configuration" da, ethernet kartınızı seçin, IP adresi olarak daha önceden belirlediğiniz IP adresini atayın. (1 < x < 255) Subnet Mask olarak 255.255.255.0 verin. Default gateway olarak da FreeBSD makinanızın Ip’sini verin (192.168.1.1)

Diğer kısımları boş bırakın. (DHCP, WINS).

"OK" tıklayıp, makinanızı restart edin.

Sonra da makinalarinizdan internete baglanmaya calisin. Baglanabiliyorsaniz, Gecmis olsun. FreeBSD gayeway'iniz hazir ve nazir, hizmetinizdedir!!!!