ana sayfa : araştırma : internet : linuxun iss olarak ayarlanması [ 5 / 6 ]

GERİ

BÖLÜM 5

LINUX’UN ISS OLARAK AYARLANMASI

5.1 Erişim sunucu Olarak Konfigürasyonu

Linux işletim sistemine sahip bir bilgisayar eğer doğru konfigüre edilmiş ise yönlendirici ve PPP server olarak kullanılabilir. Zaten bir internet servis sağlayıcının en temel görevi yönlendirme ve dial up hizmet vermedir. Ancak uygulamada routerlık bilgisayara değil yönlendiricilere yaptırılmaktadır.

Linux işletim sisteminde PPP protokolü şu bölümlerden oluşur:

·         Fiziki Interface:Çeşitli alanlar ve modemin içinde bulunduğu bölümdür.

·         Kernel(Çekirdek): PPP kuralları ve network arayüzü.

·         Daemon: Hattın işlemlerini kontrol eden bir daemon. (pppd)

PPP’ nin  Kernel ara yüzünü ayarlamak için çekirdek derlemesi sırasında

 

Ppp (point to point) support (CONFİG_PPP) [Y/M/N/?]  Y

 

Y olarak cevaplanmalıdır. Eğer PPP düzgün olarak tanıtılmış ve konfigüre edilmiş ise komut satırına ppp yada pppd yazıldığında

 

~=FF)#=C0!}!}!} }7}!}$}%}=DC#}%}%}

 

gibi anlamsız bazı işaretler görünecek ve yaklaşık bir dakika sonra tekrar komut satırına geri dönecektir. Aksi taktirde pppd’nin şu anda bulunmadığını söyleyen bir mesaj ile karşılaşılır.

Komut satırında görülen anlamsız işaretler Kernelin PPP için hazır olduğu anlamına gelir. Yaklaşık olarak bir dakika sonra komut yazma kontrolü geri verecektir. Eğer hata mesajı ile karşılaşırsak o zaman Kernel ayarlamalarını yeniden gözden geçirmemiz gerekecektir.

pppd-PPP, kontrol daemonu linux sistemdeki pppd.ppp daemonu ile kontrol edilir ve linux çekirdeğinde bulunan ppp kodu arabirimini etkin kale getirmenize olanak sağlar. Bunu da iki yolla yapar. PPP SERVER ve PPP CLIENT olarak.

Linux sistemde PPP konfigürasyon dosyaları:

·       Options(seçenekler)

·       Options.*

·       chap-secrets

·       pap-secrets

·       ip-up

·       ip-down

·       ppp-on-dialer

Aşağıdaki dosyalar PPP’ yi /usr/sbin klasöründe oluşturmak için kullanılır.

·       ppp-on

·       ppp-off

Aşağıdaki dosya PPP' yi her kullanıcının ana klasöründe oluşturmak için kullanılır

·       .ppprc

 

5.1.1 Options(seçenekler), Options.* ve .ppprc

Bu dosyalar pppd için ana kurulumu içerir. Options dosyası tüm kurulumlar da okunur. Optios.device dosyası bir öneri sağlayacağı zaman okunur. Bu işlemler şu sıra ile olur:

1.     pppd /etc/ppp/options dosyasını okur daha sonra

2.     pppd .ppprc dosyasını kullanıcının ana klâsöründen okur daha sonra Pppd kendi komut satırından okur. Son olarak ta pppd /etc/ppp/options.device dosyasını okur.

Bu düzen önemlidir. Bir kural olarak bu dosyalardaki bilgi sisteminizdeki herhangi bir kullanıcı tarafından görülebilir ama sadece sistem yöneticisi onların içine yazabilir.

Bu dosyalar üzerinde izinler verme için şu komutlar kullanılabilir:

 

Chown root:root /etc/ppp/options*

Chmod 644 /etc/ppp/options*

 

Normal bir işlemde pppd setuid ile çalışır. PPP root olarak çalışır. Konfigürasyonu kullanıcılardan korumak için şu komut verilebilir:

 

Chmod 600 /etc/ppp/options

 

Bu komut options dosyasını sadece rootun okuyup yazabileceği anlamına gelir. PPP yi kullanıcılara paylaştırmak için iki yol vardır. Birisi “defoultroute” diğeri ise “proxyarp” tır.

Eğer dosya seçeneklerinde defoultroute yada proxyarp seçilmişse bunlar komut satırında ppprc gibi satırlara da etki edebilir. .ppprc dosyası sizin ppp linkini kullanabilmesini istediğiniz her kullanıcı için geçerlidir ve her kullanıcı kendi özel ihtiyaçlarına göre .ppprc dosyalarını kendine uydurabilir. Options dosyasının bir yedeği linux ile birlikte kurulum sırasında oluşturulur. Bu dosyanın ayrıca her satırı detaylarıyla açıklayan satırları da vardır.

Eğer options dosyasını Modify etmek istiyorsanız bir kopyasını aldıktan sonra Modify etmek en akıllıcası olur. Bunun için

 

Options.save

 

komutu kullanılır.

Aşağıdaki alt bölümler  modify etmenin açıklamalarıdır:

5.1.2 Yetkilendirme etme seçenekleri

Options dosyası size PPP seçeneklerinin kontrol etmeniz sağlar.

·         auth- Bu seçenek pppd ye serverla beraber client da kurulmuşsa bunları yetkilendirmesini söyler.

·         +chap-Eğer yetkilendirme istenmiş ise bu yetki CHAP tarafından istenir.

·         -chap- Bir yetkiyi yasaklamak için CHAP kullanılır Eğer kendinizi bir server a yetkilendirmek istiyorsanız PAP kullanılır.

·         login- Linux sisteminizin şifre dosyasını /etc/passwd  PAP ile kullanır.

·         name- pppd nin kendi kendine tanımladığı örnek için name’i ayarlatır. Eğer pppd bir client olarak çalışıyorsa yetkilendirmek için bir ppp sunucusuna geçecektir. Eğer zaten server olarak çalışıyorsa bu onu client’e dönüştürür ve serveri arar. Diyelim ki makinemizin adı loki.ornek olsun fakat ISP bizi example olarak tanımlıyor. Bu durumda ppp davranışını adımızı yeniden ayarlamak için name seçeneği ile kullanmak gerekir. PAP ve CHAP bu seçeneği gizli dosyalar için kullanır. Bu dosyalar pap-secrets ve chap secrets dosyalarıdır.

·         +pap- Eğer yetkilendirme isteniyorsa bu PAP tarafından yapılır bu seçenek bağlantının kurulması için yetkilendirme kontrolünde yardımcı olur. Eğer yetkilendirme için bir yöntemi diğerinden çok daha kuvvetli tercih ediyorsanız out seçeneği veya +pap yada +chap seçenekleri size istediğinizi verecektir.

·         -pap-  pap tarafından bir yetkilendirmenin yasaklanması: Bu seçenek, bağlantının kullandığı yetkilendirme tipini kontrol etmede kullanılır. Eğer kendinizi bir sever olarak yetkilendirmişseniz bu seçeneği kullanarak chap yetkilendirmesini kuvvetlendirirsiniz.

·         remotename- chap ve pap yetkilendirmeleri için severın adını kurun.

5.1.3 Seri port modem ve Akış kontrol seçenekleri

Şu seçenekler  sizi modem yada seri port  yada akış kontrolü yönetiminde kullanılır.

·         crtscts- Yazılımdan çok donanımda kullanılır. Ulusal semiconductor 16500 uart yi kullanmadıkça bu seçeneği her zaman kullanın.  Bu seçenek diald deamon’u tarafından kullanılır.

·         -crtscts- Donanım akış kontrolünde kullanılmaması içindir.

·         local- Eğer null modem kablo alanı ile iki  workstation’u doğrudan bağlıyorsanız bu seçeneği kullanın. Bu seçenek CD(Carry detected) kullanmaz.

·         lock- UUCP-style kilitlemede kullanılır. Bu seçenekle pppd seri portu kontrol ettiğinde bir kilit dosyası yaratılır. Bu alanı kullanma birçok kabule  izin verir. (Örneğin minicom ) Başka hiçbir programın bu alanı kullandığına emin olmadıkça her zaman bu seçeneği kullanın.

·         modem- Modem aracılığıyla diğer bir sisteme bağlanıyorsanız bu seçeneği kullanın. Bir bağlantıyı kurmadan önce bu seçenek CD(carrier detect)’i bir çok hatta kullanır ve bağlantı kesildiğinde modemi resetlemek için  DTR (data terminal ready) düşer. Bu seçenek CRTSCTS seçeneğinin de ayrıca kullanılmış olduğunu gösterir. Bu diald deamonu tarafından kontrol edilir.

·         xonxoff- Yazılım akış kontrol kullanır. (xonxof karakterleri)

5.1.4 Network konfigürasyon seçenekleri

Şu seçenekler network konfigürasyonunda  pppd ‘ye  yardımcı olur:

·         defaultroute-pppd: Bir pppd ara yüzünü aktivite eder ve genellikle ppp0 olarak adlandırılır. defaultroute pppd ye kernelin yönlendirme  tablosuna girmesini emreder.

·         -defaultroute: pppd nin arayüzünü yasaklar.

·         -ip: Bazı ISP’ ler bir IP adresini gözetir ve bu statik IP adresi olarak adlandırılır. Çoğunlukla bir ISP bir IP adresini bir çevirmeli kullanıcıya bir bağlantı kurmaya çalışırken gösterir. O zamanda dinamik IP adresi olarak adlandırılır. Eğer –ip kurulmuşsa ip adresini tanımlamanız gerekir. Bunu ya komut satırında yada bir options dosyasında gösterirsiniz. Bunun için şu yazın kullanılır:

 

LocalIP:remoteIP

 

LocalIP ISP’ nin sunucunuzda gösterdiği ip adresidir. RemoteIP ise ISP’ nin IP adresidir. Eğer diğer adres tanımlanmamışsa yada hiçbir adres tanımlanmamışsa bu bağlantı sağlanamaz.

 

·         +ip-protocol: Bu seçenek IP’ nin PPP bağlatıcı üzerinde kullanılmasını sağlar.

·         -ip-protocol: Bu seçenek IP nin PPP bağlantısı üzerinde kullanılmaması içindir. Eğer IPX networku üzerinde çalışmak istiyorsanız yalnızca o zaman kullanılır.

·         ipcp-accept-local: Eğer kullanım için bir adres belirlemiş iseniz kendi bölgesel adresinizin IP’ si kabul edilir. Normal olarak siz bu seçeneği kullanmalısınız.

·         ipcp-accept-remote: Uzaktaki sunucu için bir adres belirlemiş iseniz onu kabul eder.

·         ipx-protocol: IPX’ in parametrelerinin peer ile bağlantısının rahatça geçmesini sağlar. Bu seçeneği yalnızca pppd ile bir nowell networkune bağlanmak için kullanırsınız.

·         -ipx-protocol: IPX’ in parametrelerinin peer ile bağlantısının rahatça geçememesini sağlar. Bu seçeneği yalnızca pppd ile bir nowell networkune bağlamamak  için kullanırsınız.

·         noipdefault: Eğer İSP’niz dinamik olarak sisteminizdeki IP adresini gösteriyorsa noipdefault seçeneğini bu varsayımında kullanmalısınız aksi taktirde bağlantı kurulamaz.

·         proxyarp: Bu seçenek  ara yüz aracılığıyla uzaktaki host  için bir ARP tablosu kurar.

·         -proxyarp:  Bu seçenekte bir ARP tablosu oluşturmaz. PPP arayüzü aracılığıyla bir ARP tablosu oluşturmak tehlikeli olabilir.

5.1.5 chapsecrets ve papsecrets dosyaları

CHAP ve PAP protokolleri aracılığıyla bir PPP bağlantısını sağlayan şifreleri içerir. Şu bölümlere ayrılabilir.

·         İstemci Kimliği(The Client Identifier)

·         Sunucu Kimliği(The Server Identifier)

·         Sırlar(Secrets)

·         Bir veya birkaç seçimlik ip adresi(One ore more optional IP address)

İstemci Kimliği: Sunucunun kendi kendini yetkilendirmesidir.

Sunucu Kimliği: Yetkilendirme isteyen sunucudur. Sunucuyu tanımlar.

Sırlar: İstemcinin sunucuya kendini tanıtmak için kullandığı şifredir.

Bir veya birkaç seçimlik IP adresi: Nihayet dördüncü ve sonradan ortaya çıkan alanlar ip adresini tutar “*” karakterini sunucu veya istemci kimlik belirleyici için kullanılır. Bu işaret edilen isimlerin uzantılarını göstermese kullanılır. Örneğin geniş bir ISP’ de  bir çok modem bulunabilir. Bu durumda sadece tek bir “*”, server kimlik belirleyici için kullanılır. Bu da diğer uzantılarını göstermiş olur.

CHAP yada PAP, bir yetkilendirmede kullanılırken sunucu ve istemci kombinasyonları arasında, bir gizliliğe bakar. Eğer client yada server kimlik belirleyicileri için bir “*” kullanılmışsa bu alan azalacaktır.

Linux'un Ağ yönetimi ile ilgili  diğer dosyaları şunlardır:

·        hosts: Sistemlerin IP adreslerini , sistem adlarını ve sistem lakaplarını(aliases) içerir. Ağ uygulama protokolleri DNS kullanılmadığı zaman  sistem adreslerini buradan bulur.

·        network:  Ağların isimlerini ağ numaralarını ve takma adlarını tutar.

·        protocols: Bu dosya IP’ce kullanılır; gönderilecek olan paketlerin hangi üst düzey protokolüne ait olduğunu belirtir. Paket başlığından protokol numarasını alır ve bu tabloyu karşı düşen protokolü bulur.

·        ftpusers: Sistemde FTP yapmasına izin verilmeyen kullanıcı kimliklerini tutar; FTP yapılırken sunucu bu dosyaya bakar ve orada tanımlıysa izin vermez.

·        .netrc: Kullanıcılar bu dosyanın içine kullanıcı kimliklerini ve şifrelerini yarlarsa, ftp yaparken bu bilgiler sorulmaz; doğrudan bağlanır. Bu dosya kullanıcının kendi Home alanlarında bulunur. Eğer kullanıcı bu dosyaya sadece kullanıcı adını yazarsa sadece şifre sorulur. Eğer sadece şifresini yazarsa sadece kullanıcı adı sorulur. Eğer bu dosya yoksa yada içi boşsa kullanıcıya hem kullanıcı adı hem  de şifresi sorulur.

5.1.6 Örnek bir Erişim Sunucu Konfigürasyonu

Diyelim ki iş yerinizden zaten İnternete bağlısınız ve iş yerinizdeki bilgisayarı akşam açık bırakıp evden onun üzerinden internete bağlanmayı istediniz. Bunun için işi yerinizdeki bilgisayarınızı Linux ile konfigüre edip evden  rahatça bağlantınızı kurarsınız. İş yerinizdeki makinenizin nasıl konfigüre edildiğine geçmeden önce belirtmeliyim ki bu her makinede çalışmayabilir. Genel bir örnektir. Farklı makineler için farklı konfigürasyon gerekebilir.

 

/etc/ppp/options dosyasına:

asyncmap 0

proxyarp

netmask 255.255.255.0

lock crtscts modem

-detach

 

Netmask olarak kendi sisteminizde kullandığınız netmask'ı verin.

Yine aynı dizinde options.ttySX isimli bir dosya yaratın. Burada X modemin bağlı bulunduğu cua numarasıdır. Bu dosyanın içine

 

Sunucu makinenin IP nosu:İstemci makineye verilecek IP nosu

 

Bu satır ile her tty'dan gelen kullanıcıya bir IP numarası verilmiş olur... Kendi Sunucunuzun IP’ si ile, komşudan aldığınız ikinci geçerli IP nosunu arka, arkaya; araya yalnızca bir ":" koyarak yazın. 

inittab dosyasında dial up bağlantı için hazırlanmış, önünde # işareti olan agetty'lı satırlardan birisini bularak, # işaretini silin. Komutu aşağıdaki biçime getirin:

 

SX:12345:respawn:/sbin/agetty -h -w -m -I "AT&FE0S0=2\015" 115200,38400,19200,9600,2400 ttySX vt100

 

SX, daha önce modem ve options.ttySX de kullandığınız modeminizin bağlı olduğu portun numarasından gelen bir isim.

-h -w -m -I seçeneklerine dokunmayın. Özel koşullarınızdan etkilenecek seçenekler değildirler.

AT ile başlayan bölüm modeminizi PPP bağlantısı için hazırlayan bölümdür. AT modeme komut gönderen ön komuttur. &F modemi fabrika ayarlarına döndürür. Modeminizin kitapçığına bakın bir kaç fabrika ayarı olabilir. O zaman uygun olanını seçersiniz ve F1 veya F2 gibi uygun biçimini eklersiniz. E0 modeme giden komutların echosunu engelleyerek, seri bağlantının paketlere kalmasına yardımcı olur. Veri bağlantısının kalitesinin artması için "Q1&D2&C1" komutlarının olması öneriliyor. Ancak zaten bir çok modemin fabrika ayarı zaten bu seçeneklere uygun... Modeminizin el kitabına bakıp, yukarıdaki komutlara karşılık gelen özel AT komut seti var mı diye kontrol edin. Bazılarında Q1 yeterli iken, bazılarında &Q1 gerekiyor. En kolay çözüm, en basit olanı; yalnız "AT&FE0S0=2" büyük olasılıkla işinizi görecektir...

En sonda yer alan S0=2 ise 2 kez çaldıktan sonra hattı aç anlamındadır. 0 veya istediğiniz bir sayı olabilir. Komutun sonundaki "\015"i unutmayın. Verdiğiniz komutların modeme ulaştırılmasını sağlayacak enter tuşunun yerini tutar

Arkadan gelen rakamlar seri portun veri akım hızıdır. eğer modeminiz 56K ise 115200, 57600; 28 veya 33K ise 38400, 14.4K ise 19200 üzerindeki rakamlara gerek yoktur. agetty "-m" seçeneği ile çalıştırıldığından bağlantının kalitesine göre listedeki bir uygun hızı kullanacaktır. Hat ne kadar iyi olsa da modeminizden hızlı bir iletişime olanak tanımayacağı için ilgili rakamlar yeterlidir. Ancak bazı modemler değişen hızları kabul etmiyorlar. Eğer modeminiz telefona yanıt vermez ise komuttaki "-m" seçeneğini kaldırın ve bir tek hız seçin. 56K modemler için 57600 ve 38400, 33K modemler için 38400, 19200, 14.4K modemler için ise 19200 uygun tek seçenek olabilir. inittab dosyasında gerekli değişiklikleri yapıp kaydedin. init q komutunu vererek aktifleştirdikten sonra modemin bağlı olduğu telefonu arayıp yanıt verip, vermediğini bir kaç kez kontrol edin. Her modem aynı hız ve yapılandırma ile çalışmıyor...

Modeminizin kitapçığından veri sıkıştırma ile ilgili komutları dikkatle inceleyip, iki modeminize de uygun veri sıkıştırma seçeneğini bu komutun içinde aktive edersiniz.

En son yazılan vt100 terminal olarak bağlanan istemciye, terminal tipi içindir ve değiştirmeniz gerekmez.

Artık inittab dosyamızı kaydedip, init q ile aktive edebiliriz.

İşte basit bir PPP sunucuyu hazırlamış olduk artık evden işyerimize rahatça bir dial up bağlantı yapıp internete ulaşabiliriz.

5.2 WWW Sunucu olarak konfigürasyonu

Linux’un Web sunucusu olarak çalışabilmesi için httpd daemonunun çalışıyor olması gerekir. Bu yazılım genellikle işletim sistemi açılırken çalışarak arka plana atılır.

Diğer kullanıcıların sorumlu oldukları Linux üzerindeki dosyalara WWW üzerinden erişebilmelerini sağlamak için sadece birkaç dakikaya ihtiyaç var. Halen Linux için sıkça kullanılan APACHE, NCSA ve ya CERN, gibi http sunucularından birinin kurulması gereklidir. Bu bölümde ve diğer bölümde kullanılacak IP adresleri örnektir. Gerçekle ilgisi yoktur. Yapılacak konfigürasyonlarda bu bölümlere ilgili makinelere ait IP bilgileri girilmelidir.

Httpd paketi Linux’un kurulum aşamasında ya da sonradan çekirdek derlenerek kurulduğunda birkaç alt dizin oluşur. Bunlardan en önemli olanları:

conf : http konfigürasyon dosyaları

cgi-bin : Örnek CGI (Common  Gateway Interface) programları

cgi-src : CGI kaynak programları

logs : Sunucuların sistem kayıtları

Sunucunun çalışabilmesi için conf dizini içindeki dosyaların düzenlenmesi gerekir. Bu düzenlemeler:

httpd.conf  dosyasına :

 

#Server nasıl çalışacak?

Server type standalone

 

#Çalışacağı Port

Port 80

Hostname Lookups on

 

#http’yi  kim  çalıştıracak?

User wwwadmin

Group #100

 

#Server Adminin email adresi

Server Admin wwwadmin@ornek.com.tr

 

#ServerRoot: Konfigürasyon, web sayfaları, logların  tutulacağı dizin

ServerRoot /var/lib/httpd

 

#ErrorLog: Hata dosyası

ErrorLog logs/error_log

 

#TransferLog: makineye erişim bilgilarinin tutulduğu dosya

TransferLog logs/access_log

 

#PidFile

PidFile logs/httpd.pid

 

#ScoreBoardFile

ScoreBoardFile logs/apache_status

 

#Serverin Adı

ServerName ornek.com.tr

 

#Timeout: Sayfalara ne kadar erişim olmadığında iletişimi keseceğini bildirir.(bur da 400ms)

Timeout 400

 

#KeepAlive Canlı Tutulacak bağlantı sayısı

KeepAlive 5

 

#KeepAliveTimeout:İkinci isteğin gelemsine kadar beklenecek süre

KeepAliveTimeout 15

 

MinSpareServers 5

MaxSpareServers 10

 

#Server Çalıştığında kaç Pid çalışacak?

SatartServers 5

 

#Aynı anda kaç kişi bağlanabilir?

MaxClients 150

MaxRequestPerChild 30

 

Bilgileri amaca göre girilir.

Srm.conf dosyasına:

 

#Server web sayfalarını nereden alacak?

Document Root /var/lib/httpd/htdocs

 

#Kullanıcılar özel sayfalarını hangi alt dizin altına kayacak?

UserDir public_html

 

#Server İlk olarak hangi dosyaya bakacak

DirectoryIndex index.html

 

FancyIndexing on

 

#Bilinen dosya tipleri için icon eklenir

AddIconByType(TXT ./icons/text.gif) text/*

AddIconByType(IMG ./icons/image2.gif) image/*

AddIconByType(SND ./icons/sound2.gif) audio/*

AddIconByType(VID ./icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe

AddIcon /icons/binhex.gif .hqx

AddIcon /icons/tar.gif .tar

AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv

AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip

AddIcon /icons/ a.gif .ps .ai .eps

AddIcon /icons/ layout.gif .html .shtml .htm .pdf

AddIcon /icons/text.gif .txt

AddIcon /icons/ c.gif .c

AddIcon /icons/p.gif .pl .py

AddIcon /icons/f.gif .for

AddIcon /icons/ dvi.gif .dvi

AddIcon /icons/ uuencodded.gif .uu

AddIcon /icons/ script.gif .conf .sh .shar .csh .ksh .tcl

AddIcon /icons/ tex.gif .tex

AddIcon /icons/bomb.gif core

 

 

AddIcon /icons/back.gif ..

AddIcon /icons/ hand.right.gif README

AddIcon /icons/ folder.gif ^^DIRECTORY^^

AddIcon /icons/blank.gif  ^^BLANICON^^

 

#Bilinmeyen tipler için kullanılan icon

DefoultIcon /icons/unknown.gif

 

ReadmeName README

HeaderName HEADER

IndexIgnore */.??* *~*# /HEADER* */README* */RCS

 

#İstemediğimiz kimselerin sayfaya girmesini engellemek için kullanılacak dosya

AccesFileName .htacces

 

DefaultType text/plain

 

#Sıkışmış dosyaları açmakta kullanılan programlar ve kullandıkları uzantılar

AddEncoding x-compress Z

AddEncoding x-gzip gz

 

#kullanacağımız ülke kodları

AddLanguage tr .tr

AddLanguage en .en

AddLanguage fr .fr

AddLanguage de .de

AddLanguage da .da

AddLanguage el .el

AddLanguage it .it

 

#Dillerin öncelik sırası

Language Priority tr en fr de

 

# Alias takma isim ve karşılığı (kısa yol)

Alias /icons/ /var/lib/httpd/icons/

 

#Script Alias

ScriptAlias /cgi-bin/ /var/lib/httpd/cgi-bin/

 

Bilgileri amaca göre girilir.

Httpd programını başlatmak için /etc/rc.d/rc.inet2 dosyasının içinde httpd ile ilgili satırın başından varsa “#”  karakteri  kaldırılır. Eğer böyle bir satır yoksa şu satır eklenir:

httpd –f<konfigurasyon_dosyasi>

“konfigurasyon_dosyasi” kısmına httpd.conf dosyasının nerede olduğu girilir. (örneğin /home/lib/httpd/htdocs/conf/httpd.conf)

Web dosyalarını hazırlamak, gerekli düzenlemeleri yapabilmek için ayrı bir kullanıcı tanımlanabilir. Örneğin wwwadmin diye bir hesap açılarak /var/lib/httpd/htdocs alt dizinin sahibi yapılabilir. Böylece bu kullanıcının bu dosyaları sürekli güncellemesi sağlanmış olur.

5.3 FTP Sunucu olarak konfigürasyonu

Linux’un tüm sürümleri FTP sunuculuğunu desteklemektedir. Fakat FTP sunucu yüklenmişse ve çalışmıyorsa;

/etc/inetd.conf içine

 

ftp  steam tcp nowait root     /usr/sbin/tcpd  wu.ftpd

 

satırını yada benzeri bir satırı eleyip inetd daemonunu

 

killall –HUP inetd

 

komutunu verip baştan çalıştırmak gerekecektir. FTP sunucu için önemli olan üç dosya vardır.

ftpaccess:ftp sunucusunun birçok erişim ayarlarının yapıldığı dosya.

ftpconversions: FTP sunucusunun dosya aktarımında kullanacağı programları belirleyen dosya.

ftpusers: FTP’ ye hangi kullanıcıların giremeyeceğini belirleyen dosyadır. Bu dosya daha çok sistem güvenliği ile ilgilidir.

5.3.1 ftpaccess Dosyası

Bir örnek FTP sunucunun ftpaccess  dosyası şöyledir:

 

#En çok iki hatalı giriş yapılabilir.

loginfails 2

 

class local real,guest,anonymous *.domain 0.0.0.0

class remote real,guest,anonymous *

 

#Makine ve dışarısı için sınırlama

limit local 10 Any                   /etc/msgs/msg.toomany

limit remote 20 SaSu|Any 1800-0600   /etc/msgs/msg.toomany

limit remote 20 Any                  /etc/msgs/msg.toomany

 

#Biri Makineye bağlanırken göreceği mesajlar

readme README* login

readme README* cwd=*

 

messge /welcome.msg  login

messge .message      cwd=*

 

compress  yes  local remote

tar       yes  local remote

 

#Özel grup ve site şifrelerine izin verilsin mi?

private         yes

 

#rfc822’ye göre şifre kontrolü

passwd-check    rfc822 warn

 

log commands real

log transfers anonymous,real inbound,outbound

shotdown /etc/shutmsg

 

#Dosya erişim hakları nasıl olacak? Adı geçemeye n tüm yetkiler mevcuttur.

delete          no   guest,anonymous #delete permission?

overwrite no   guest,anonymous #overwrite permission?

rename    no   no   guest,anonymous

chmod     no   anonymous       #chmod permission?

umask     no   anonymous       #umask permission?

 

#upload yapılmasına izin verilen alt dizinler

upload /home/ftp *   no

upload /home/ftp  /incoming    yes  root deamon    0600 dirs

upload    /home/ftp  /bin no

upload /home/ftp  /esc    no

#ftp serverde kullanılan kısa yolar

alias inc: /incoming

 

#cdpath

cdpath    /incoming

cdpath    /pub

cdpath /

 

#path-filter

path-filter     anonymous /etc/pathmsg [-A-Za-z0-9_\.]*$ \. ^-

path-filter     anonymous /etc/pathmsg [-A-Za-z0-9_\.]*$    ^-

 

guestgroup ftponly

email root@ornek.com.tr

5.4 DNS Sunucusu olarak konfigürasyonu

5.4.1 BIND konfigürasyonu

Bind, Linux dağıtımlarının hepsi ile gelen ve alan adı sorgulularına yanıt veren yazılım paketidir. Açılımı Berkley Internet Domain Name şeklindedir.

Doğrudan Linux kurulu olan bir sunucu üzerindeki BIND konfigürasyonuna geçmeden DNS ile ilgili birkaç konudan bahsetmekte yarar ver. DNS ile ilgili yazlımlar istemci ve sunucu olarak ikiye ayrılır.

Sunucu istemciden gelen sorgulara yanıt veren ve sürekli çalışan bir işlem olup BIND paketinden çıkan “named” yazılımı bu işi görür. İstemcilerse Linux dağıtımlarıyla gelen host,nslookup, vb.. programlar olup sorgu yapan yazılımlardır. Bununla birlikte BIND konfigürasyonunda sıklıkla karşımızı çıkacak olan birkaç kavram aşağıda açıklanmaktadır. Yeri geldikçe de diğer kavramlara değinilecektir.

5.4.1.1 primary name server

O alana ait bütün bilgilerin bulunacağı sunucu olup bu amaçla konfigüre edilmiş sunucudur. “primary name server” bir alan için ancak bir tane olabilir. “primary name server” tanımlanırken, named.hosts, named.boot, named.rev ve named.cahe gibi dosyalara ihtiyaç vardır.

5.4.1.2 Secondary name server

O alana ait veri tabanındaki bilgileri “primary name server” dan belirli aralıklarla alan sunucusudur. Belirli aralıklarla transfer edilen bu dosyalara zone-file adı verilir. “primary name server” dan da alınabilecek yanıtların aynısı “secondary name server”dan da doğru bir şekilde alınabilir.

5.4.1.3 Caching only name server

Bu şekilde konfigüre edilen DNS sunucuları, yapılan sorguları “cache” de tutup bir sonraki sorgu için bir önceki aynı sorguya kullanılan yanıtı kullanır. Bir çok DNS sunucu bu şekilde konfigüre ediliyor olmasına rağmen “caching only” sunucular  her zaman doğru yanıt vermeyebilir.

5.4.2 BIND konfigürasyonunda kullanılan Dosyalar

BIND yazılımın görevini “named” adı verilen bir sunucu yazılımı yerine getirmektedir. “named” konfigürasyonu ile ilgili dosyalar ve işlevleri şöyledir:

named.boot : Genel named parametrelerini ve olana ait veri tabanı bilgilerinin nerede olacağı belirtilir.

named.cache : İnternet üzerindeki root domain sunucularının listesini içerir.

named.local : loopback adresine ait tanımları içerir.

named.hosts : O domaine ait makine adreslerine karşılık gelen IP numaralarının bulunduğu dosya.

named.reserve : IP  adresine karşılık gelen isimlerin listesinin tutulduğu dosya.

Bu dosya lardan named.boot dışındaki dosya isimleri genelde karşılaşılan isimler olduğu için kullanılmıştır. Bu dosya isimleri istenilen şekilde değiştirilebilir.

named.boot : named.boot dosyası named programı çalıştığı zaman baktığı ilk konfigürasyon dosyasıdır. Ve /etc dizini altındadır. named konfigürasyon dosyası ile diğer dosyalara veya DNS tanımlarının tutulduğu diğer dosyalara nasıl ulaşılacağını öğrenir. Örnek bir named.boot dosyasını inceleyim:

 

;

; Örnek named.boot dosyası

;

directory    /etc/named.data

 

;type   domain    source host/file     backup file

 

cache                                  root.cache

primary ornek.com.tr                        db.tef

primary 0.0.127.IN-ADDR.ARPA           named.local

primary 11.11.194.IN-ADDR.ARPA         named.rev

forwarders 193.140.83.9 144.122.199.20

 

named.boot dosyasındaki satırları açıklayacak olursak,

directory : named.boot dosyasında belirtilen diğer dosyaları named programının hangi dizin altında arayacağını belirtir.

cache : cache dosyasını belirtir.

primary : primary’den hemen sonra gelen alanın primary name server olduğunu bildirir ve ilgili bilgileri de alan adından hemen sonra verilen dosya içerisinde tutar. Bu satır birden fazla olabilir, bu durumda ise konfigüre edilen sunucu birden fazla alan için primary name server olarak görev yapar.

forwarders : Sorgularına yanıt veremediği istekleri yönlendireceği  sunucuların listelendiği satır.

slave : Yukarıdaki konfigürasyon dosyasında olmayan fakat başka bir yerde karşımıza çıkabilecek olan slave eklendiği zaman name server sorgulara yanıt vermek için sadece ve sadece forwarders satırında belirtilen sunucuları kullanabilir.

Yukarıdaki satırları named.boot dosyasına yazılması yetmiyor. Bilgisayar_adi.ornek.com.tr sunucusunun ornek.com.tr için primary olduğunu Türkiye için root sunucu olan knidos.cc.metu.edu.tr sunucusunun da bilmesi gerekiyor. Bunu www.metu.edu.tr/~dnsadmin sayfasından yapabiliriz.

knidos.cc.metu.edu.tr sunucusunda aşağıdaki satırların girilmesi şarttır.

 

ornek.com.tr           IN   NS Bilgisayar_adi.ornek.com.tr

Bilgisayar_adi.ornek.com.tr IN   NS   194.11.11.2

primary 0.0.127.IN-ADDR.ARPA           named.local

satırıyla ornek.com.tr makinesinde 127.0.0.1 IP adresine karşılık gelen loopback isminin tanımlarının yer alacağı dosya adı verilmişti.

Bazı programların reserve tanımlarını kullanıyor olması nedeniyle (örneğin tcpd) bu tür tanımların girilmesi önemlidir. Bir veya daha fazla C sınıfı şeklinde adres IP adres blokları aldığınız zaman IP adresi aldığınız kurumdan, bu adres aralığının reserve tanımlarını sizin alan adı sunucunuza yönlendirmesini isteyebilirsiniz. Bir C sınıfından az sayıdaki IP adresleri içinse yine IP adresini aldığınız kurum gerekli reserve tanımlarını sizin için yapmak zorundadır.

named Konfigürasyon dosyası:

named konfigürasyon dosyalarında (named.hosts,named.local, named.cache,named.rev ) karşılaşılan konfigürasyon parametreleri ve açıklamaları aşağıda verilmiştir.

SOA(Start of authory) : İlgili dosyanın ne kadar zaman arayla yineleneceği bilgilerini içerir.

NS(Name Server) : Alan adı sınıcısı olduğunu belirtir.

A(Address) : Makine ismini IP adresine çevirir.

PTR(Pointer) : IP adresini makine ismine çevirir.

MX(Mail Exchanche) : O alana ait maillerin hangi makine tarafından dağıtılacağını belirtir.

CNAME(Canonical Name) : Bir makineye verilen isimler birden fazla ise bu isimleri belirtirken kullanılır.

HINFO(Host Information) : Belirtilen sunucunun işletim sistemi ve ya donanımı   konusunda bilgi verir.

named.hosts, named.local, vb. dosyalara girilen standart bir DNS kaydı aşağıdaki yapıda karşımıza çıkar.

[name] [ttl]  IN type data

[ ]içerisindeki değerler isteğe bağlıdır. Gerekmediği durumlarda yazılmayabilir.

name : Bu kısma tam domain isimi, makine isimi yazılabilir.

ttl : Burada belirilen sayı kadar saniye cache tutulabileceğini ifade eder. Eğer her hangi bir süre kullanılmamış ise SOA kısmındaki süre kullanılır.

IN : Girilen kaydın DNS kaydı olduğunu belirtir.

type : Yukarıdaki bahsettiğimiz kısaltmalardan ilgili olanı yazılır.

data : Bu kısma IP adresi yazılır.

Şimdide bu kısaltmaların bulunduğu named.cache, maned.hosts, named.local gibi dosyaların içeriklerine göz atalım.

“root.cache” dosyası dünyadaki name serverların listesini tutar. Süregelen değişiklikler doğrultusunda bu dosyadaki kayıtlar güncellenir. Sürekli güncel tutmak için de adresinden dosyanın en yeni halini sık aralıklarla almakta da fayda vardır.

ttl  süresi de olabildiğince uzun tutularak root sunucuların her hangi bir şekilde cache’den silinmesi  engellenmiş olur.

named.local dosyasının içeriği ise:

 

;

; @(#)named.local     1.1

;

$ORIGIN 0.0.127.IN-ADDR.ARPA.IN SOA Bilgisayar_adi.ornek.com.tr

root.Bilgisayar_adi.ornek.com.tr

(       97120902  ; Serial

        10800     ; Refresh

3600                ;Retry 1 hours

604800 ;Expire 1 week

86400        ;minimum 24 hours

)

  IN   NS   Bilgisayar_adi.ornek.com.tr

  IN   NS   Bilgisayar_adi2.ornek2.com.tr

  IN   NS   Bilgisayar_adi3.ornek2.com.tr

  IN   NS   knidos.cc.metu.edu.tr

1 IN   PTR  localhost

 

IN SOA ile başlayan satırda Bilgisayar_adi.ornek.com.tr adresi ile ilgili bilgisayarda sorun çıktığında ulaşılacak kişinin root@Bilgisayar_adi.ornek.com.tr e-posta adresine sahip kişi olduğu tanımlanıyor.

Diğer bilgilerdeyse sırasıyla ornek.com.tr’nin primary name server olduğunu ve 127.0.0.1 IP adresine local isminin karşılık geldiğini belirtir.

named.hosts dosyası ise:

 

;

;    @(#)db.ornek 1.2

;

$ORIGIN tef.gazi.edu.tr @IN SOA                       Bilgisayar_adi.ornek.com.tr

root.Bilgisayar_adi.ornek.com.tr

 

(

        9826056   ;serial

        10800     ;refresh

3600               ;retry

604800 ;Expire

86400        ;minimum

)

 

  IN   NS        Bilgisayar_adi.ornek.com.tr

  IN   MX   10   Bilgisayar_adi.ornek.com.tr

  IN   NS        Bilgisayar_adi2.ornek.com.tr

  IN   MX   20   Bilgisayar_adi2.ornek.com.tr

  HINFO “Linux” “Pentium III”

 

Bilgisayar_adi              IN   A         194.11.11.2

Bilgisayarin_diger_isimi    IN   CHNAME    Bilgisayar_adi

Ag_gecidi_adi               IN   A         194.11.11.1

Lan_routerin_adi            IN   A         194.11.11.3

ns                IN   CHNAME    Bilgisayar_adi

ftp                    IN   CHNAME    Bilgisayar_adi

www                    IN   CHNAME    Bilgisayar_adi

irc                    IN   CHNEM Bilgisayar_adi

 

Burada diğer named.local dosyasından farklı olarak makine ismi IP adresi eşleştirilmesi yapılmış olup MX ve CNAME deyimleri kullanılmıştır.

MX’in bulunduğu satırda ornek.com.tr için e-posta alabilecek sunucu olarak Bilgisayar_adi.ornek.com.tr tanımlanmış; 10 sayısı ise Bilgisayar_adi.ornek.com.tr’nin ornek.com.tr olarak gelmesi gereken mesajlardaki önceliği belirtir. Sayı ne kadar küçükse öncelik o kadar fazladır. Örneğin 20 sayısı girilmiş olan Bilgisayar_adi2 makinesi Bilgisayar_adi makinesinde bir sorun çıkarsa maillerin geri dönmemesi içindir. Bilgisayar_adi2 makinesi sorun düzelene kadar mailleri kendi üzerinde tutar.

HINFO tanımının bulunduğu satır Bilgisayar_adi.ornek.com.tr’nin donanım, işletim sistemi bilgilerini tutuyor.

CNAME geçen satırlar ise Bilgisayar_adi makinesinin olması düşünülen diğer isimlerini tanımlamak için kullanıldı. Örneğin www.ornek.com.tr ile Bilgisayar_adi.ornek.com.tr aynı sunuculardır.

Bütün bu konfigürasyon işlemleri bittikten sonra, bir de /etc/resolv.conf dosyasının içine:

 

domain ornek.com.tr

nameserver 194.11.11.2

nameserver 194.11.16.7

nameserver 144.122.199.20

 

eklenmelidir. Bu dosya sırasıyla hangi makinelerden isim alacağını belirtir. Bu makineler sırasıyla Bilgisayar_adi, Bilgisayar_adi2, knidos  makineleridir. Namedin çalışıp çalışmadığını kontrol için komut satırına  

$named 

komutu girilir. nslookup ve ya host  gibi programlar yardımıyla nameserver’ımızın çalışıp çalışmadığını kontrol edebiliriz. Çalıştırdığımızda verilen hata mesajları /usr/adm/mesages dosyasına yazılır.