Instalasi Anonymous FTP dan Web Server
Indra Dermawan
Dosen: Onno W. Purbo

Struktur Layanan Internet
Salah satu ciri yang menonjol dari Internet adalah bahwa banyak dari layanan-layanan yang berjalan diatasnya diimplementasikan menggunakan  arsitektur client/server. Pengertian dari client dan server itu sendiri adalah sebagai berikut :
Client merupakan  pihak yang bertanggung jawab untuk berinteraksi dengan user; sebagai contoh, dengan menerima masukan dari keyboard dan menampilkan data ke user. Sedangkan Server, merupakan pihak yang bertanggung jawab untuk menangani tugas-tugas yang diminta client; sebagai contoh, mengakses data atas nama client, menangani perhitungan, menyediakan data atau tanggapan sederhana pada client, dan sebagainya.	
Pengenalan Layanan Informasi di Internet
Layanan informasi di Internet yang akan dikenalkan disini mencakup antara lain layanan e-mail, telnet, finger, FTP, WAIS, dan World Wide Web (WWW).
E-mail atau electronic mail, sesuai dengan namanya adalah layanan Internet yang berupa pengiriman mail (surat) yang datanya diubah ke bentuk data elektronik dan dikirimkan melalui jaringan komputer. E-mail melalui internet dapat mencapai tidak hanya orang-orang yang terhubung langsung  ke Internet tapi juga  user  dari jaringan komersil seperti CompuServe,  America Online , dsb, serta jaringan komputer lain yang telah tersebar di seluruh dunia (Wide Area Network).
Telnet dan Finger adalah  dua layanan yang datang bersama kebanyakan  sistem operasi, sehingga keduanya digunakan secara luas meskipun  service tersebut  sederhana. Telnet   mengizinkan seseorang untuk login ke dalam sebuah sistem melalui jaringan seakan-akan orang tersebut  login dari terminal pada sistem tersebut.  Finger didesain untuk menyediakan informasi mengenai user dari lokal maupun remote sistem (seperti nama lengkap yang berhubungan dengan alamat e-mail user)
FTP (File Transfer Protocol)  merupakan layanan yang paling banyak digunakan oleh pemakai Internet untuk mengambil atau meletakkan file dari atau ke mesin lain di Internet. FTP sama seperti login ke suatu mesin, tapi disini user dibatasi pada sejumlah command tertentu, dan untuk anonymous FTP user, dibatasi hanya pada direktori tertentu. Arsip yang di-set agar dapat diakses oleh  publik  disebut arsip anonymous FTP, karena sebarang orang dapat  login (hanya alamat e-mail orang tersebut diminta sebagai identifikasi). FTP client terdapat pada hampir semua jenis komputer, dari palmtop sampai supercomputer. Setelah e-mail, FTP adalah layanan Internet yang paling umum digunakan.
Jika anda mempunyai sebuah database yang sangat besar dan anda sedang mencari cara  untuk memberikan kemudahan pada user untuk melihat isi seluruh database maka WAIS adalah jawabannya. WAIS atau Wide Area Information Server, menyediakan layanan akses ke suatu database melalui  jaringan TCP/IP . Software WAIS yang terbaru memungkinkan pembuatan indeks yang mudah untuk database yang sangat besar. Server mengizinkan user untuk meminta pencarian di database  untuk keyword yang  sederhana atau ekspresi boolean yang lebih kompleks.
World Wide Web atau lebih sering dikenal  sebagai  Web adalah layanan Internet  yang paling banyak memiliki tampilan grafis dan kemampuan link yang sangat bagus. Keistimewaan inilah yang telah menjadikan Web sebagai service yang paling cepat pertumbuhannya. Web mengizinkan  pemberian highlight  (penyorotan/penggaris bawahan) pada  kata-kata atau gambar dalam sebuah dokumen untuk menghubungkan  atau menunjuk  ke media lain  seperti dokumen, frase, movie clip, atau file suara. Web dapat menghubungkan dari sebarang tempat dalam sebuah dokumen  atau gambar ke sebarang tempat di  dokumen lain. Dengan sebuah browser yang memiliki  Graphical User Interface (GUI), link-link dapat dihubungkan ke tujuannya dengan  menunjuk link tersebut  dengan mouse dan menekannya. 
	Dibawah ini akan  dibahas proses instalasi server dari dua layanan Internet yang umum digunakan yaitu server untuk layanan FTP dan WWW pada UNIX FreeBSD.

Instalasi FTP Server
	Ada dua tipe akses yang FTP server sediakan yaitu user FTP dan anonymous FTP. User FTP adalah adalah layanan FTP yang disediakan untuk  orang yang mempunyai sebuah user account pada suatu host, sedangkan anonymous FTP disediakan untuk publik. Dengan layanan FTP anda dapat melakukan transfer file dari sistem anda atau ke sistem anda  dari berbagai tempat di internet. Tapi anda tidak dapat mengeksekusi semua perintah yang ada karena FTP server memang hanya menyediakan  perintah-perintah  tertentu, seperti melihat daftar dan mengubah direktori, dan  menerima serta mengirim file. Pada instalasi ini  yang akan menjadi pokok bahasan kita adalah Anonymous FTP server yang merupakan inti dari sebuah FTP Server.
	FTP server terdiri dari dua bagian, yaitu : server, yang menanggapi permintaan client seperti mengirim file, mendaftar direktori yang ada, dan lain-lain ; dan filesystem yang merupakan tempat FTP server membaca file dan direktori yang ada. Program implementasi standar UNIX untuk menjalankan FTP server adalah  ftpd  (ftp daemon).  ftpd berjalan dibawah inetd, UNIX superserver.  inetd  mendengarkan permintaan pada sejumlah port, termasuk  port kontrol FTP, TCP port 21. Ketika sebuah FTP client pertama kali mencoba untuk berhubungan dengan sebuah FTP server, dia mengirimkan paket ke port 21 pada host tujuannya. Kemudian  inetd menerima paket tersebut, menentukan dari nomor port tujuan bahwa layanan FTP perlu dijalankan, dengan melakukan proses forking dan executing pada ftpd. Jika pada saat yang bersamaan ada client lain yang ingin berhubungan dengan FTP server, maka inetd  akan meminta kopi dari ftpd yang sudah berjalan untuk menanganinya. Baris pada file konfigurasi inetd, inetd.conf yang mengawasi bagaiman ftpd dijalankan dapat dilihat di bawah ini :
	ftp	stream	tcp	nowait	root	/etc/ftpd		ftpd -l
Biasanya pada sistem UNIX konfigurasi  untuk ftpd seperti contoh diatas sudah ada pada file inetd.conf, yang akan kita bahas sekarang  adalah arti dari masing-masing field pada baris konfigurasi diatas.
Field  pertama (ftp) adalah field protokol, yang memberitahu inetd layanan apa yang disinggung oleh baris ini. Kemudian inetd akan melihat di file  /etc/services  untuk mencari padanan dari nomor port ftp yang ternyata adalah port 21. Ketika inetd menerima paket untuk port 21, maka inetd dengan menggunakan baris inetd.conf diatas sudah mengetahui server apa yang harus ia jalankan (FTP server).
Field  kedua dan ketiga (stream dan tcp) menerangkan tipe komunikasi yang digunakan FTP server. Dalam hal ini, komunikasi dilakukan melalui hubungan TCP,  yang merupakan aliran data berurutan antar dua komputer. Perlu diingat bahwa File Transfer Protocol (FTP) hanya bekerja melalui hubungan TCP.
Field keempat  (nowait) memberitahukan inetd untuk menjalankan sebuah server baru setiap kali ada client yang akan berhubungan. Apabila menuliskan wait pada field ini, maka akan memberitahu inetd bahwa untuk menjalankan sebuah server baru haru menunggu sampai tidak ada lagi server yang sedang berjalan.
Dua field terakhir (/etc/ftpd dan ftpd -l)  memberitahu pathname lengkap dari ftpd dan argumennya (termasuk nama programnya,  ftpd) untuk digunakan ketika menjalankan server.
Setelah melakukan konfigurasi  FTP server untuk berjalan dibawah inetd, anda perlu untuk menambahkan sebuah ftp user pada file /etc/passwd di komputer anda.  ftpd akan memeriksa keberadaan dari ftp user sebelum mengizinkan seorang anonymous user untuk menggunakan layanan FTP. Entry ftp user di file /etc/passwd harus mempunyai user ID dan group ID yang unik dan user harus tidak diizinkan untuk masuk  melalui layanan standar yang lain seperti telnet dan rlogin. Password  user ftp pada /etc/passwd harus berisi *, yang berarti bahwa tidak ada password, dan login shell seharusnya di-set ke /bin/false, sehingga  sistem tidak mengizinkan user ftp untuk login dari layanan lain. Setelah itu, direktori yang boleh diakses oleh ftp user juga harus diset yaitu di /usr/ftp. Contoh baris pada file /etc/passwd dapat dilihat dibawah ini.
	ftp:*:500:25:Anonymous FTP user:/user/ftp:/bin/false 
Untuk melakukan instalasi sebuah FTP server di FreeBSD, dapat dilakukan pada saat instalasi sistem FreeBSD pertama kali atau setelah sistem sudah berjalan. Cara pertama, instalasi FTP server bersamaan dengan instalasi FreeBSD pertama kali, hampir sama dengan cara kedua, hanya saja cara  pertama mulai dari pengkonfigurasian hardware, sedangkan cara kedua langsung ke menu-menu instalasi. Karena itu yang akan dibahas disini adalah cara yang kedua. 
	Pertama kali anda harus login sebagai root, kemudian ketikkan perintah sysinstall yang ada pada direktori  /stand, atau langsung dengan mengetikkan :
	# /stand/sysinstall
maka akan tampil menu Install, kemudian pilihlah menu Configure, maka akan muncul menu berikut :

                                                  Gambar 1. Menu Configure

                                                   Gambar 2. Menu Networking

Pilihlah menu Networking untuk melakukan konfigurasi layanan network tambahan, dan akan ditampilkan menu seperti gambar 2. Kemudian pilihlah  menu Anon FTP untuk melakukan instalasi Anonymous FTP server. 

                               Gambar 3. Konfigurasi Anonymous FTP server

Gantilah konfigurasi diatas jika ada yang akan anda ubah, seperti FTP root directory misalnya dapat diubah ke /data/ftp atau /usr/local/ftp. Untuk bagian lain sebenarnya merupakan konfigurasi default dan tidak perlu diubah, dengan memilih OK maka proses instalasi telah selesai.  

Instalasi Web Server
Web browser dan web server berkomunikasi menggunakan protokol HTTP (HyperText Transfer Protocol) . Ketika sebuah web browser meminta sebuah dokumen HTML dari web server,  hubungan dibuka, kemudian dokumen ditransfer, dan setelah itu hubungan ditutup. Layanan yang menggunakan protokol http ini memiliki nomor port 80 (default),  sehingga web server akan selalu mendengarkan permintaan client pada port 80. Ada beberapa contoh web server antara lain yaitu NCSA, CERN dan Plexus, tapi yang akan kita bahas disini adalah instalasi software APACHE  untuk web server yang sudah ada di FreeBSD. Sama seperti instalasi FTP server, instalasi WWW serverpun dapat dilakukan bersamaan dengan instalasi FreeBSD pertama kali atau setelah FreeBSD berjalan.  Sekarang kita akan melakukan instalasi setelah FreeBSD berjalan tapi dengan cara lain yaitu dengan menggunakan perintah pkg_add.
Pertama kali ambillah source software Apache, bisa dari CDROM, ftp site yang menyediakan source FreeBSD beserta packages-nya seperti misalnya di ftp.jp.FreeBSD.org/pub/FreeBSD/packages-2.2.8/www dengan nama file apache-1.2.6.tgz, atau langsung mengambil dari www.apache.org. Setelah diambil source-nya, extract-lah dengan perintah pkg_add.
# pkg_add apache-1.2.6.tgz
Biasanya hasil extract file tersebut langsung diletakkan di /usr/local/www dan file httpd di /usr/local/sbin. Setelah itu edit-lah file-file konfigurasi dari web server, yaitu httpd.conf, srm.conf dan access.conf yang biasanya terletak di /usr/local/www/server/conf agar webserver yang kita install sesuai dengan yang kita harapkan.
Konfigurasi httpd.conf
Kita hanya akan membahas bagian-bagian yang penting  dari file konfigurasi ini :
•	Ubah User dan Group dengan nama yang sesuai dengan keinginan anda, tapi disarankan untuk menggunakan user www dan group www, setelah itu edit-lah file /etc/master/passwd dan /etc/group untuk menambahkan user dan group baru tersebut.
•	Ubah Server Admin  menjadi nama yang anda inginkan, misalnya nama_anda@domain_anda. Nama ini harus diisi karena server akan memberitahukan Admin tersebut jika terjadi masalah dengan server.
•	Ubah Server Root  ke path direktori tempat anda meletakkan file executable httpd, file inilah yang akan dijalankan bila ada permintaan dari client, secara default Server Root akan terletak di /usr/local/www/httpd.
•	Ubah Server Name menjadi www.domain.anda. Nama ini harus sesuai dengan record yang ada pada name server dari domain anda.
•	Ubah Server Type  sesuai dengan keinginan anda, ada dua pilihan yaitu inetd dan standalone. Secara default akan berisi standalone dan sebaiknya tidak perlu diubah.
Konfigurasi srm.conf
•	Ubah Document Root ke path direktori tempat anda meletakkan file HTML anda.
•	Isi opsi UserDir dengan enable bila anda ingin user pada komputer anda dapat memiliki homepage sendiri, atau disable jika ingin sebaliknya.	
Konfigurasi access.conf
Default dari access.conf adalah :
 	<Directory /usr/local/www/cgi-bin>
•	Ubahlah path diatas ke direktori cgi-bin anda :
	Options Indexes Follow Symlinks
	</Directory>

	<Directory /usr/local/www/data>
•	Ubahlah path diatas ke direktori dari data homepage anda
	Options IndexesFollowSymlinks
	AllowOverride All
	<Limit GET>
		order allow,deny
		allow from all
	</limit>
</Directory>

Setelah semuanya di-edit maka anda telah siap untuk menjalankan web server anda secara standalone (server membaca konfigurasi sekali pada waktu dieksekusi dan akan dijalankan terus-menerus sampai prosesnya dimatikan) dengan cara me-reboot sistem anda. Jika letak file merupakan default-nya (biasanya di /usr/local/www/server/conf) maka cukup dengan menjalankan daemon-nya saja :
	# /usr/local/sbin/httpd