[LinuxFocus-icon]
<--  | Ana Sayfa  | Eri�imd�zeni  | ��indekiler  | Arama

Duyumlar | Belgelikler | Ba�lant�lar | LF Nedir
Bu makalenin farkl� dillerde bulundu�u adresler: English  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Russian  Turkce  Polish  

[Photo of the Author]
Mario M. Knopf
<netzmeister/at/neo5k/dot/org>

Yazar hakk�nda:

Mario, Linux, a�lar ve g�venlik ile ilgili di�er konularla u�ra�maktan �ok keyif al�yor. Bo� zamanlar�nda neo5k.org ve linuxwallpapers.de sanaldoku y�relerinin bak�m�yla ilgilenmektedir.



T�rk�e'ye �eviri:
Erdal Mutlu <erdal(at)linuxfocus.org>

��erik:

 

vsftpd - �ok g�venli bir FTP sunucusuna giri�

vsftp

�zet:

Bu yaz� "Very Secure FTP Daemon" (�ok g�venli FTP sunucusu) giri� olu�turmaktad�r. Ba�lang��ta FTP ve vsftpd hakk�ndaki genel bilgiler ile ba�l�yorum. Daha sonra y�kleme, yap�land�rma ve vsftpd'nin �al��t�rma se�eneklerine bir g�z ataca��z. Sonu� olarak da k�sa fonksiyonlar testi ile konuyu kapataca��z.

_________________ _________________ _________________

 

Giri�

Dosya aktarma protokol�n (File Transfer Protocol) amac� i�letim sistemi ortamlar�ndan ba��ms�z olarak internette dosya aktarmakt�r ve istemci/sunucu mimarisine dayal�d�r. RFC 959[1]'e g�re FTP'nin biri veri aktar�m� (TCP 20 nolu ba�lant� noktas�) ve di�eri de denetim (TCP 21 nolu ba�lant� noktas�) olmak �zere, iki kanaldan olu�mas�n� �ngermektedir. Denetim kanal� �zerinden istemci ile sunucu veri aktar�m�na ba�lamak i�in �e�itli kumut al�� veri�inde bulunmaktad�r.
Bir FTP ba�lant�s� �u d�rt ad�m� i�ermektedir:

FTP veri aktar�m�nda, verilerin gidi�ini sa�layan ba�lant� denetimli TCP (Transmission Control Protocol) protokol�n� kullanmaktad�r. Dolay�s�yla, FTP'nin veri aktar�rken paket kayb� veya hata denetimi konular�nda endi�e etmesine gerek yoktur. K�saca ifade etmek gerekirse, TCP paketlerin bir defa,hatas�z ve d�zg�n s�rada aktar�ld��n� sa�lamaktad�r.

Veri aktar�m� �� farkl� t�rl� olmaktad�r. Stream'in (duraks�z,ak�m) sonunu dosya sonu (end-of-file EOF) belirlerken, di�er ikisinin sonunu da kay�t sonu (end-of-record EOR) belirlemektedir.

Bunun yan�s�ra iki farkl� aktarma kipi vard�r:

ASCII kipi metin dosyalar�n aktar�m�nda kullan�lmaktad�r. Binary (ikili) kipinde de program ve benzeri dosyalar�n aktar�m�nda kullan�lmaktad�r. �imdilerde kullan�c� bu iki kip aras�nda de�i�tirme yapmas�na gerek yoktur, ��nk� FTP istemcileri bunu otomatik olarak yapmaktad�r.

Kullan�c� kimliklendirme s�ras�ndaki kullan�c� ad� ve ge�i�s�zc��� kriptolanmad��� i�in buradaki olas� g�venlik riskine i�aret etmek �ok �nemlidir. Bu konu FTP hakk�ndaki g�venlik kayg�lar�n�n nedenini olu�turmaktad�r. Kas�m 1997'deki RFC 2228[2] yay�mlanmas�yla FTP'ye g�venlik odakl� eklemeler yap�ld�.

 

vsftpd

vsftpd, Linux, ?BSD, Solaris, HP-UX ve IRIX gibi UNIX ve benzeri i�letim sistemlerinde �al��an bir FTP sunucusudur. Di�er bir�ok FTP sunucusunda eksik olan bir�ok �zelli�i desteklemekedir:

vsftpd "very secure FTP daemon" (�ok g�venli FTP sunucusu) isminden de anla��laca�� �zere, program�n geli�tiricisi olan Chris Evans'�n en �nemli endi�esinin g�venlik oldu�u hemen anla��lmaktad�r. Tasar�mda ve geli�tirmenin ba��ndan beri y�ksek g�venlik FTP sunucusunun odak noktas� olmu�tur.

Sunucunun g�venlik odakl� olmas�na bir �rnek, vsftpd'nin yeni ana dizinini(1) atanm�� ve bu dizin d���ndaki program ve dosyalara ula��m�n olmad���, ba�ka bir deyi�le bu dizine 'kilitlendi�i' denilen, chroot kipinde �al���yor olmas� g�sterilebilir. FTP sunucusu k�r�ld���nda, k�r�c� sistemin di�er k�s�mlar�ndan ayr�lm�� olacak ve daha fazla zarar vermesi engellenmi� olacakt�r. chroot hakk�nda daha fazla bilgi i�in [3] nolu yaz�ya bak�n�z. [4] nolu yaz� vsftpd'ye �zg� g�venlik konular� hakk�ndad�r.

Bir�ok �zelli�i ve y�ksek g�venlik gereksinimlerini kar��lamas�yla FTP sunucular� aras�ndan vsftpd olduk�a yukar�larda yer almaktad�r.

 

Y�kleme

vsftpd'nin y�klenmesi olduk�a kolayd�r. Ana Linux da��t�c�lar�n �o�unda RPM paketi olarak yer almakta ve bir�ok durumda da zaten y�klenmi�tir. Yoksa kaynak kodu [6] nolu adresten indirebilir ve y�kleyebilirsiniz.

Kaynak kodun oldu�u paketi indirdikten sonra, tar dosyas�n� a��n ve ilgili dizine ge�erek make komutunu �al��t�r�n. Bunun yap�l��� a�a��da g�sterilmi�tir:

neo5k@phobos> tar xzvf vsftpd-x.x.x.tar.gz
neo5k@phobos> cd vsftpd-x.x.x
neo5k@phobos> make

Bundan �nce, "nobody" kullan�c�s�n�n ve "/usr/share/empty" dizinin var olup olmad���na bak�n. E�er, yoksa bunlar� yaratman�z gerekir. E�er, anonymous kullan�c�s�na eri�im hakk� vermeyi planl�yorsan�z "ftp" kullan�c�s�n� ev dizini "/var/ftp" olacak �ekilde yaratman�z gerekecektir. Bunu a�a��daki komutlar� �al��t�rmakla yapabilirsiniz:

neo5k@phobos> mkdir /var/ftp
neo5k@phobos> useradd -d /var/ftp ftp

G�venlik nedenlerinden dolay� "/var/ftp" dizini "ftp" kullan�c�s�na ait olmamas� gibi o dizinde yazma hakk�n�n�n da bulunmamas� gerekir. A�a��daki iki komutla kullan�c�y� de�i�tirebilir ve di�er kullan�c�lar�n eri�im haklar�n� kald�rabilirizi:

neo5k@phobos> chown root.root /var/ftp
neo5k@phobos> chmod og-w /var/ftp

T�m �n ko�ullar yerine getirildi�ine g�re vsftp sunucusunun y�klemesine ge�ebiliriz:

neo5k@phobos> make install

Man sayfalar� ile program sistemdeki ilgili yerlere yerlere kopyalanabilir. Beklenmedik bir kar���kl�k durumunda bu i�lem elle de yap�labilir.

neo5k@phobos> cp vsftpd /usr/sbin/vsftpd
neo5k@phobos> cp vsftpd.conf.5 /usr/share/man/man5
neo5k@phobos> cp vsftpd.8 /usr/share/man/man8

Bu noktada yap�land�rma dosyas� �rne�imiz de�i�medi�inden ve konuya giri�i kolaya�t�raca��ndan bir komut daha �al��t�rmam�z gerekir:

neo5k@phobos> cp vsftpd.conf /etc

 

Yap�land�rma

Yap�land�rma dosyas�n� "/etc/vsftpd.conf" dur. Hemen hemen t�m yap�land�rma dosyalar�na oldu�u gibi '#' den sonraki k�s�m a��klamad�r.

# A��klama sat�r�

�rnek bir yap�land�rma �u �ekilde olabilir:

# Anonymus FTP-access permitted? YES/NO
anonymous_enable=NO
 
# Permit anonymus upload? YES/NO
anon_upload_enable=NO
 
# Permission for anonymus users to make new directories? YES/NO
anon_mkdir_write_enable=NO
 
# Permission for anonymus users to do other write operations - like renaming or deleting? YES/NO
anon_other_write_enable=NO
 
# Log on by local users permitted? YES/NO
local_enable=YES
 
# Shall local users be locked into their home directory? YES/NO
chroot_local_user=YES
 
# Highest permitted data transfer rate in bytes per second for local logged on users. Default = 0 (unlimited)
local_max_rate=7200
 
# General write permission? YES/NO
write_enable=YES
 
# Enable messages when changing directories? YES/NO
dirmessage_enable=YES
 
# Welcome banner at users logon.
ftpd_banner="Welcome to neo5k's FTP service."
 
# Activate logging? YES/NO
xferlog_enable=YES
 
# Logging of all FTP activities? YES/NO
# Careful! This can generate large quantities of data.
log_ftp_protocol=NO
 
# Confirm connections are established on port 20 (ftp data) only. YES/NO
connect_from_port_20=YES
 
# Timeout during idle sessions
idle_session_timeout=600
 
# Data connection timeout
data_connection_timeout=120
 
# Access through Pluggable Authentication Modules (PAM)
pam_service_name=vsftpd
 
# Standalone operation? YES/NO - depending on operation mode (inetd, xinetd, Standalone)
# The author's FTP service is being startet with xinetd, therefore the value here is NO.
listen=NO

 

FTP sunucusunu ba�latma

vsftpd �� farkl� �ekilde �al��abilir. Biri inetd veya xinetd, di�eri de tek ba��nad�r.  

inetd

E�er, FTP sunucusu inetd ile birlikte �al��acaksa, bir metin i�lemcisiyle "/etc/inetd.conf" yap�land�rma dosyas�n� a��yoruz:

neo5k@phobos> vi /etc/inetd.conf

FTP servisi ile ilgili sat�rlar� bulup vsftpd'in �n�ndeki yorum i�aretini kald�r�yoruz. Sat�r a�a��daki gibi g�z�kmelidir:
# ftp   stream   tcp   nowait   root   /usr/sbin/tcpd   in.ftpd
ftp   stream   tcp   nowait   root   /usr/sbin/tcpd   vsftpd
 

xinetd

vsftp'yi inetd yerine ondan daha g�ncel olan xinetd ile �al��t�r�lmas� �nerilmektedir. Yap�lan baz� g�ncelimler, isteklerin �etelerinin tutulmas�, eri�im denetimleri, bir servisin belli bir a� aray�z�nde �al��t�r�lmas� vs. xinetd hakk�nda �ok g�zel bir tan�t�m belgesi [7] nolu adresten elde edilebilir. xinetd'in yap�land�rmas� a�a��daki gibi g�z�kmelidir:
# vsftp daemon.
service ftp
{
     disable = no
     socket_type = stream
     wait = no
     user = root
     server = /usr/sbin/vsftpd
     per_source = 5
     instances = 200
     no_access = 192.168.1.3
     banner_fail = /etc/vsftpd.busy_banner
     log_on_success += PID HOST DURATION
     log_on_failure += HOST
     nice = 10
}
    
 

Tek ba��na �al��ma

vsftp sunucusunu tek ba��na da �al��t�rmak olas�d�r. Bunun i�in tekrar "/etc/vsftpd.conf" yap�land�rma dosyas�n� a��p a�a��daki de�i�iklikleri yap�yoruz:

# Shall the vsftp daemon run in standalone operation? YES/NO
listen=YES

Bu de�i�iklikten sonra sunucuyu a�a��daki gibi ba�latabilirisiniz:

neo5k@phobos> /usr/sbin/vsftpd &

Sunucunun bulundu�u dizin PATH �evre de�i�keninde d�zg�n bir �ekilde yeral�yorsa, sunucuyu a�a��daki gibi de ba�latabilirisiniz:

neo5k@phobos> vsftpd &

A�a��daki komutla sunucunun arama yoltan�m�nda yer al�p almad���n� denetleyebilirsiniz:

neo5k@phobos> echo $PATH
/usr/sbin:/bin:/usr/bin:/sbin:/usr/X11R6/bin

vsftp'nin tek ba��na ba�lat�lmas� durumunda inetd veya xinetd taraf�ndan ba�lat�lmamas�ndan emin olun.  

�al��ma testi

Ba�ar�l� bir y�kleme ve yap�land�rmadan sonra, FTP sunucusuna olan eri�imi deneyebiliriz.
neo5k@phobos> ftp phobos
Connected to phobos
220 "Welcome to neo5k's FTP service."
Name (phobos:neo5k): testuser
331 Please specify the password.
Password:
230 Login successful
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -l
229 Entering Extended Passive Mode
150 Here comes the directory listing
drwxr-xr-x      11  500      100        400  May 07 16:22  docs
drwxr-xr-x       9  500      100        464  Feb 01 23:05  hlds
drwxr-xr-x      39  500      100       4168  May 10 09:15  projects
226 Directory send OK.
ftp>
 

Sonu�

Fark etti�imiz gibi vsftp sunucusunun ne y�klenmesinde ne de yap�land�rmas�nda zorluk yoktur. Sunucu bir�ok �zellik ve y�ksek derece g�venlik sa�lamaktad�r.

Tabii bu yaz�, vsftpd'nin sundu�u say�s�z se�enekler g�z �n�nde bulundurursa, bu yaz� sadece k�sa bir giri� niteli�inde oldu�unu hemen s�yleyebiliriz. vsftpd'yi yak�ndan incelemek isteyenler, projenin[6] sanaldoku y�resini ziyaret edebilir ve oradaki belgelerden yararlanabilirler.

 

Ba�lant�lar

[1] ftp://ftp.rfc-editor.org/in-notes/rfc959.txt [RFC 959 - File Transfer Protocol]
[2] ftp://ftp.rfc-editor.org/in-notes/rfc2228.txt [RFC 2228 - FTP Security Extensions]
[3] linuxfocus.org: 225 nolu yaz�, Ocak 2002 [chroot]
[4] http://vsftpd.beasts.org/DESIGN [Security vsftpd]
[5] http://www.wu-ftpd.org/ [WU-FTPD]
[6] http://www.vsftpd.beasts.org/ [Home of vsftpd]
[7] linuxfocus.org: 175 nolu yaz�, Kas�m 2000 [xinetd]

 

Bu yaz� i�in g�r�� bildiriminde bulunabilirsiniz

Her yaz� kendi g�r�� bildirim sayfas�na sahiptir. Bu sayfaya yorumlar�n�z� yazabilir ve di�er okuyucular�n yorumlar�na bakabilirsiniz.
 talkback page 

<--, Bu say�n�n ana sayfas�na gider

G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Mario M. Knopf, FDL
LinuxFocus.org
�eviri bilgisi:
de --> -- : Mario M. Knopf <netzmeister/at/neo5k/dot/org>
de --> en: Jürgen Pohl <sept.sapins/at/verizon.net>
en --> tr: Erdal Mutlu <erdal(at)linuxfocus.org>

2004-06-26, generated by lfparser version 2.43