Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
Bab 4
Konfigurasi FTP Server pada Linux
1. FTP server Ada banyak metode untuk mengkonfigurasi FTP server. Salah satunya adalah user-ftp, yaitu ftp server yang hanya membolehkan user yang terdaftar untuk melakukan akses ftp ke server. Jenis ftp server yang lain adalah anonymous FTP server. Anonymous FTP
server mengijinkan semua user untuk melakukan akses ftp dengan
menggunakan user anonymous. Dengan cara ini maka user tidak perlu terdaftar sebagai anggota untuk melakukan proses ftp. Anonymous ftp sangat populer diimplementasikan pada banyak server di seluruh dunia antara lain untuk server yang mengijinkan seorang user pada jaringan untuk terhubung dengannya dan mentransfer file tanpa memiliki
account.
Sehubungan
dengan
resiko
yang
bisa
ditimbulkannya maka perlu diatur perijinan agar hanya directorydirektory tertentu yang bisa diakses. Konfigurasi yang akan dibahas disini adalah FTP
server yang
memungkinkan FTP untuk melakukan pengamanan tidak penuh (semisecure) dari sistem file Unix, Guest FTP access. Konfigurasi ini mengijinkan user untuk memiliki akses ke direktory dari FTP server tanpa perlu memberikan perijinan untuk bisa masuk ke level yang lebih tinggi. Cara ini merupakan setup pengamanan yang paling banyak dilakukan untuk FTP server.
Instalasi FTP Server 41
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
Pada instalasi berikut ini diasumsikan : •
Perintah (commands) kompatibel dengan Unix (Unixcompatible).
•
Source path yang digunakan adalah /var/tmp , bisa dilakukan setting dengan path yang lain.
•
Proses instalasi diuji pada Red Hat Linux 6.1 atau lebih baru
•
Semua tahapan dalam proses instalasi dilakukan dengan account super-user atau root .
•
Versi dari wu-ftpd adalah 2.6.0
Paket-paket yang digunakan: Wu- ftpd Homepage:http://www.wu-ftpd.org/ Wu- ftpd FTP Site:205.133.13.68 Lakukan download pada : wu- ftpd-2.6.0.tar.gz
Untuk proses kompilasi, perlu melakukan decompress terhadap tarball, tar.gz.
Instalasi FTP Server 42
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
# c p wu-ftpd-version.tar.gz /var/tmp # c d /var/tmp # t a r xzpf wu-ftpd-version.tar.gz
2. Melakukan proses Setup user FTP Perlu kiranya untuk memberi user FTP shell account yang sifatnya tidak real pada sistem Linux. Dengan cara ini, maka jika seorang user dapat keluar dari FTP chrooted environment, maka user tersebut tidak mungkin bisa menjalankan tasktask yang dibuatnya tanpa memiliki sebuah bash shell. Maka sehubungan dengan itu, langkah pertama yang dilakukan adalah membuat user- user baru yang diijinkan untuk melakukan akses ftp. Lakukan perintah berikut ini untuk membuat user baru di file /etc/passwd. Langkah-langkah berikut ini harus selalu dikerjakan untuk setiap penambahan user baru. # m k d i r /home/ftp # u s e r a d d -d /home/ftp/ftpadmin/ -s /dev/null ftpadmin > /dev/null 2>&1 # p a s s w d ftpadmin
Changing password for user ftpadmin New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully
•
Perintah mkdir akan membuat direktori baru bernama ftp yang berada di dalam direktori /home. Direktori /home/ftp digunakan sebagai home direktori dari ftp user dan cukup dibuat sekali saja.
•
Perintah useradd digunakan untuk menambah user baru ke server linux
•
Perintah passwd digunakan untuk mengubah password
Instalasi FTP Server 43
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
Edit file /etc/shells , vi /etc/shells dan tambahkan shell baru yang tidak dikenali oleh linux (shell semu) dan beri sembarang nama, misalnya null. (Shell yang umum digunakan di unix antara lain c shell atau csh, bourne shell atau bash, korn shell atau ksh, dll). Shell semu /dev/null akan membatasi akses sistem yang dilakukan oleh ftp user. Setelah itu, edit file /etc/passwd dan secara manual tambahkan /./
untuk memisahkan direktori /home/ftp dengan direktori
/ftpadmin.
ftpadmin:x:502:502::/home/ftp/./ftpadmin/:/dev/null ^^
3. Menentukan user environment Pada instalasi ftp server yang bertipe user-ftp, user yang melakukan akses ftp harus dibatasi hanya pada direktori yang telah ditentukan. Hal ini dimaksudkan agar user tidak dapat masuk ke direktori lain sehingga keamanan lebih terjaga. Pada contoh dibawah ini, user ftp hanya diperbolehkan mengakses direktori /home/ftp.
Instalasi FTP Server 44
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
Setelah direktori /home/ftp dibuat, berikutnya adalah menjalankan perintah-perintah sbb. : # # # #
mkdir mkdir mkdir mkdir
/home/ftp/dev /home/ftp/etc /home/ftp/bin /home/ftp/lib
Kemudian direktori-direktori tersebut modenya diset menjadi 0511 untuk alasan keamanan. Dengan cara tersebut maka root mempunyai hak baca dan eksekusi, sedangkan user lainnya hanya mempunyai hak eksekusi saja. # # # #
chmod chmod chmod chmod
0511 0511 0511 0511
/home/ftp/dev/ /home/ftp/etc/ /home/ftp/bin /home/ftp/lib
1. Copykan file binary /bin/ls ke /home/ftp/bin dan ubahlah modenya menjadi 0111 . Hal ini berarti file /bin/ls hanya
Instalasi FTP Server 45
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
dapat dieksekusi saja tetapi tidak dapat dibaca maupun dimodifikasi. # c p /bin/ls /home/ftp/bin # c h m o d 0111 /bin/ls /home/ftp/bin/ls
2. Carilah shared library file yang berhubungan dengan file ls dengan perintah
:
# ldd /bin/ls
libc.so.6 => /lib/libc.so.6 (0x00125000) /lib/ld-linux.so.2 =7gt; /lib/ld-linux.so.2 (0x00110000)
Setelah itu copykan file di atas ke direktori /home/ftp/lib : # c p /lib/libc.so.6 /home/ftp/lib/ # c p /lib/ld-linux.so.2 /home/ftp/lib/
File library tersebut diperlukan agar file ls dapat bekerja secara normal pada sistem jaringan. Setelah itu buatlah file /home/ftp/dev/null # m k n o d /home/ftp/dev/null c 1 3 # c h m o d 666 /home/ftp/dev/null
3. Copykan file /etc/group dan /etc/passwd ke /home/ftp/etc. Setelah hapuslah semua user kecuali yang dibutuhkan saja yaitu user yang diperbolehkan untuk mengakses ftp. a. # c p /etc/passwd /home/ftp/etc/ # c p /etc/group /home/ftp/etc/
Instalasi FTP Server 46
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
b. Editlah file /home/ftp/etc/passwd dengan perintah v i , kemudian hapuslah semua user yang
/home/ftp/etc/passwd
tidak dibutuhkan sehingga user yang tertinggal hanya seperti berikut ini : root:x:0:0:root:/:/dev/null ftpadmin:x:502:502::/ftpadmin/:/dev/null
c. Edit file /home/ftp/etc/group dengan perintah, v i /home/ftp/etc/group
dan hapus semua baris sehingga
menjadi seperti berikut ini : root:x:0:root ftpadmin:x:502:
4. Untuk keamanan data yang lebih baik, file passwd dan group diubah attributnya . # c d /home/ftp/etc/ # c h a t t r +i passwd # c d /home/ftp/etc/ # c h a t t r +i group
4. Konfigurasi Semua file konfigurasi yang dibutuhkan untuk tiap software disediakan dalam bentuk file gzipped file, floppy.tgz untuk kemudahan.
Dan
dapat
di-download
dari
alamat
web
:
http://www.openna.com/books/floppy.tgz File tersebut dapat
Instalasi FTP Server 47
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
diekstrak (unpack) ke sembarang lokasi pada mesin lokal anda, misalnya /tmp , asumsikan anda telah mengerjakan hal tersebut dan sekarang struktur direktory menjadi /tmp/floppy . Dengan directory floppy seperti ini, maka tiap file konfigurasi memiliki directory-nya sendiri-sendiri untuk tiap software. Sebagai
contoh,
file
konfigurasi
FTP
diorganisasikan
seperti ini :
total -rw-r--r-1 Wuftpd -rw------1 -rw------1 ftpconversions -rw------1 -rw------1 -rw------1 drwxr-xr-x 2 drwxr-xr-x 2
32 iwanarif
iwanarif
iwanarif iwanarif
iwanarif iwanarif
1036 Jun 8 13:00 ftpaccess 538 Jun 8 13:00
iwanarif iwanarif iwanarif iwanarif iwanarif
iwanarif iwanarif iwanarif iwanarif iwanarif
39 188 79 4096 4096
419 Jun
8 13:00 Compile-
Jun 8 13:00 ftpgroups Jun 8 13:00 ftphosts Jun 8 13:00 ftpusers Jun 8 13:00 logrotate.d/ Jun 8 13:00 pam.d/
Anda bisa melakukan cut dan paste secara langsung dengan mengikuti
instruksi
yang
diberikan
atau
secara
manual
mengeditnya untuk dimodifikasi sesuai dengan kebutuhan anda. Fasilitas ini sangat mudah, akan tetapi jangan lupa untuk melakukan
pengujian,
verifikasi,
dsb,
sebelum
anda
menggunakannya untuk memastikan apakah perlu dimodifikasi atau tidak. Untuk menjalankan FTP server, file-file berikut ini akan dibutuhkan dan harus dibuat atau dikopikan ke directory pada server anda. •
Copikan file ftpaccess ke dalam directory /etc/ .
Instalasi FTP Server 48
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
•
Copikan file ftpusers ke dalam directory /etc/ .
•
Copikan file ftphosts ke dalam directory /etc/ .
•
Copikan file ftpgroups ke dalam directory /etc/ .
•
Copikan file ftpconversion ke dalam directory /etc/ .
•
Copikan file ftp ke dalam directory /etc/pam.d/.
•
Copikan file ftpd ke dalam directory /etc/logrotate.d/.
4.1. Configurasi file /etc/ftphosts File
/etc/ftphosts
digunakan
untuk
mendefinisikan
apakah
user
diijinkan untuk melakukan log in dari suatu host atau apakah terdapat akses yang diabaikan (denied access). 1. Buat file ftphosts, touch /etc/ftphosts dan tambahkan (sebagai contoh) baris-baris berikut ke dalam file ini : # Example host access file # # Everything after a '#' is treated as comment, # empty lines are ignored allow ftpadmin 208.164.186.1 208.164.186.2 208.164.186.4 deny ftpadmin 208.164.186.5
2. Pada contoh dibawah ini, user ftpadmin untuk terhubung via FTP
dari daftar alamat secara eksplisit 208.164.186.1
208.164.186.2 208.164.186.4,
dan abaikan koneksi user ftpadmin
dari site 208.164.186.5. 3. Sekarang, perubahan secara default diijinkan adalah 600: [root@deep ] /# c h m o d 600 /etc/ftphosts
Instalasi FTP Server 49
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
4.2. Konfigurasi file /etc/ftpusers File /etc/ftpusers/ menentukan bahwa user-user yang bersangkutan TIDAK diijinkan untuk terhubung ke FTP server. 1. Buat file ftpusers , touch /etc/ftpusers dan tambahan dalam file ini user-user berikut untuk tujuan pengamanan : Root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody
2. Sekarang, perubahan yang secara default diijinkan adalah 600 : [root@deep ] /# c h m o d 600 /etc/ftpusers
4.3. Konfigurasi file /etc/ftpconversions File /etc/ftpconversions berisi instruksi yang mengijinkan anda untuk melakukan compress files sesuai kebutuhan sebelum ditransfer. 1. Edit file ftpconversions , v i /etc/ftpconversions dan tambahkan dalam file ini baris perintah berikut :
Instalasi FTP Server 50
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
:.Z: : :/bin/compress -d -c %s:T_REG│T_ASCII:O_UNCOMPRESS:UNCOMPRESS : : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS :.gz: : :/bin/gzip -cd %s:T_REG│T_ASCII:O_UNCOMPRESS:GUNZIP : : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP : : :.tar:/bin/tar -c -f - %s:T_REG│T_DIR:O_TAR:TAR : : :.tar.Z:/bin/tar -c -Z -f %s:T_REG│T_DIR:O_COMPRESS│O_TAR:TAR+COMPRESS : : :.tar.gz:/bin/tar -c -z -f - %s:T_REG│T_DIR:O_COMPRESS│O_TAR:TAR+GZIP : : :.crc:/bin/cksum %s:T_REG::CKSUM : : :.md5:/bin/md5sum %s:T_REG::MD5SUM
2. Sekarang, perubahan yang diijinkan secara default adalah 600 : [root@deep ] /# c h m o d 600 /etc/ftpconversions
4.4. Konfigurasi file /etc/pam.d/ftp Konfigurasi file /etc/pam.d/ftp untuk keperluan autentifikasi pam dengan membuat file /etc/pam.d/ftp dan menambahkan baris perintah berikut : #%PAM-1.0 auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed auth required /lib/security/pam_pwdb.so shadow nullok auth required /lib/security/pam_shells.so account required /lib/security/pam_pwdb.so session required /lib/security/pam_pwdb.so
4.5. Konfigurasi file /etc/logrotate.d/ftpd Konfigurasi file /etc/logrotate.d/ftpd untuk melakukan rotate secara otomatis
file
log
/etc/logrotate.d/ftpd
anda
setiap
minggu
dengan
membuat
file
dan menambahkan baris perintah berikut :
/var/log/xferlog { # ftpd doesn't handle SIGHUP properly
Instalasi FTP Server 51
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
nocompress }
4.6. Konfigurasi ftpd menggunakan tcp-wrappers inetd Tcp-wrappers harus diset enable untuk memulai dan mengakhiri ftpd server.
Selama
konfigurasi
proses
dari
/etc/inetd.conf.
file
Harus
eksekusi, konfigurasi,
ada
entri
inetd
membaca
informasi
secara
default
ada
pada
field
dari
file
untuk
tiap
konfigurasi, dengan entri tiap field yang terpisah dengan tanda tab atau spasi. Edit file inetd.conf, vi /etc/inetd.conf dan tambahkan atau lakukan verifikasi terhadap keberadaan dari baris perintah berikut : ftp
stream
tcp
nowait
root
/usr/sbin/tcpd
in.ftpd -l -a
Ubah file inetd.conf dengan mengirimkan sinyal SIGHUP, killall -HUP inetd,
setelah
menambahkan
baris
perintah
diatas
dalam
file
tersebut. [root@deep ] /# killall -HUP inetd
Edit file hosts.allow , v i /etc/hosts.allow dan tambahkan, sebagai contoh, baris perintah berikut : in.ftpd: 192.168.1.4 win.openna.com
Yang mana berarti client IP 192.168.1.4 dengan host name win.openna.com
diijinkan untuk FTP ke server.
Instalasi FTP Server 52
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
5. Pengamanan FTP File
ftpusers.
Penting
artinya untuk memastikan bahwa telah
dilakukan setup terhadap file /etc/ftpusers untuk menentukan useruser yang mana yang tidak diijingkan untuk terhubung ke FTP server. Minimum, entri-entri berikut: root, bin, daemon, adm, lp, sync, shutdown, halt, mail, news, uucp, operator, games, tidak seorangpun dan semua default vendor memiliki account dalam file /etc/passwd .
Anonymous
FTP
program.
Untuk men-disable anonymous FTP , hapus
anonymous user ftp dari file password dan lakukan pembuktian (verifikasi) bahwa paket anonftp-version.i386.rpm tidak diinstall pada sistem anda. Untuk menghapus user user ftp dari file password, gunakan perintah berikut : [root@deep ] /# userdel ftp
Untuk membuktikan bahwa paket RPM dari anonymous FTP program tidak diinstal pada sistem Linux, gunakan perintah berikut : [root@deep ] /# r p m -q anonftp
package anonftp is not installed
Perintah
upload.
Secara
menjamin
kewenangan
default,
server
(privileges)
upload
Wu-ftpd server akan untuk
semua
user.
Parameter upload mengijinkan remote clients untuk me-load dan
Instalasi FTP Server 53
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
menempatkan
file-file
pada
FTP
server.
Untuk pengamanan yang
optimal, kita tidak mengijinkan user untuk dapat melakukan upload ke dalam sub directory bin, etc , dev , dan lib dalam directory /home/ftp.
Dalam file /etc/ftpaccess kita telah mempunyai chroot'd
users untuk /home/ftp dan user-user tersebut tidak dapat melakukan akses
pada
daerah
filesystem
diluar
upload
/home/ftp/, /home/ftp/bin , /home/ftp/etc, /home/ftp/dev,
file
ke
dalam
dan /home/ftp/lib.
Lakukan edit pada file ftpaccess, vi /etc/ftpaccess dan tambahkan baris perintah berikut untuk mengabaikan upload privileges. # We don't want users being able to upload into these areas. upload /home/ftp/* / no upload /home/ftp/* /etc no upload /home/ftp/* /dev no upload /home/ftp/* /bin no upload /home/ftp/* /lib no
Perintah diatas dibutuhkan untuk mengabaikan perintah upload ke dalam directory / , /etc , /dev, /bin
dan /lib dari struktur directory chroot /home/ftp.
6. File spesial .notar Apakah anda mengijinkan untuk mentar-kan directory atau tidak, harus dipastikan. perintah diijinkan.
tar
End-run tidak dapat dibuat dengan menggunakan
pada
semua
area
dimana
parameter
upload
tidak
Untuk maksud tersebut, buatlah direktory khusus untuk
file .notar dalam tiap directory dan dalam directory FTP . [root@deep [root@deep [root@deep [root@deep [root@deep
] ] ] ] ]
/# /# /# /# /#
touch touch touch touch touch
/home/ftp/.notar /home/ftp/etc/.notar /home/ftp/dev/.notar /home/ftp/bin/.notar /home/ftp/lib/.notar
Instalasi FTP Server 54
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
[root@deep [root@deep [root@deep [root@deep [root@deep
] ] ] ] ]
/# /# /# /# /#
chmod chmod chmod chmod chmod
0 0 0 0 0
/home/ftp/.notar /home/ftp/etc/.notar /home/ftp/dev/.notar /home/ftp/bin/.notar /home/ftp/lib/.notar
File Zero-length .notar akan bisa tercampur dengan beberapa web clients dan FTP proxies, sehingga perlu ditandai agar tidak terjadi kemungkinan yang tidak diinginkan. Tambahkan baris perintah berikut ke dalam file /etc/ftpaccess. noretrieve .notar
Perintah noretrieve.
Parameter noretrieve dari Wu-ftpd server
mengijinkan anda untuk mengabaikan transfer dari directory atau file yang sudah dipilih. Ini merupakan cara yang bagus untuk mencegah downloads dari subdirectori seperti bin , etc , dev , dan lib dalam directory /home/ftp dengan memberikan perintah noretrieve pada file /etc/ftpaccess . # We'll prevent downloads with noretrieve. noretrieve /home/ftp/etc noretrieve /home/ftp/dev noretrieve /home/ftp/bin noretrieve /home/ftp/lib
7. Instalasi Anonymous FTP dengan wu-ftp Pada instruksi berikut ini, /home/ftp adalah home dari anonymous FTP user seperti yang tertulis dalam file /etc/passwd. File FTP daemon, ftpd mengenali anonymous user dan memberikan beberapa hak akses yang terbatas.
Instalasi FTP Server 55
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
Direktori utama untuk mengakses anonymous ftp adalah /home/ftp. Hal
ini
berarti
bahwa
semua
user
yang
login
sebagai
anonymous
hanya mempunyai akses ke direktori /home/ftp.
Struktur direktori untuk anonymous ftp adalah sbb. : •
/home/ftp—hanya
•
/home/ftp/etc—dimiliki
•
/home/ftp/bin—dimiliki
dimiliki oleh root, hak tulis hanya dimiliki oleh root oleh root, hak tulis hanya dimiliki oleh root oleh root dan berisi beberapa program
misalnya: compress, cpio, gzip, ls, sh, tar, dan zcat. Semua file tersebut harus mempunyai mode ---x--x--x; chmod 111 ~ftp/bin/* •
/home/ftp/lib—berisi
file ld-linux.so.2, libc.so.6, libnsl.so.1,
and libnss_files.so.1. •
/home/ftp/pub
– dimiliki oleh root/ftp, dan dapat keduanya diberi akses
untuk menulis (write) •
/home/ftp/pub/incoming
– direktori ini dapat ditulisi oleh siapa saja.
Hal ini bisa berakibat berbahaya jika pada saat menginstall anonymous ftp setting securitynya tidak bagus. Direktori /etc harus diset 111 dan harus berisi file groups, passwd dan ld.so.cache Direktori upload dan download harus dibuat dibawah direktori /home/ftp/pub. Untuk seorang user anonymous ftp yang akan mengirimkan/menuliskan file ke direktori “upload”, direktori ini harus dimiliki oleh FTP dan diset ‘writable’ buat pemiliknya. FTP user harus sudah terdaftar di file /etc/passwd seperti baris dibawah ini: ftp:*:14:50:FTP User:/home/ftp: FTP adalah service yang diatur oleh inet dan harus tertulis pada file /etc/services. Untuk mengcek apakah ftp sudah tertulis pada file /etc/services, ketikkan perintah $ cat /etc/services | grep ftp
Instalasi FTP Server 56
Praktikum Jaringan Komputer PENS ITS Iwan Syarif & Ferry Astika
$ cat services |grep ftp ftp-data
20/tcp
ftp
21/tcp
tftp
69/udp
sftp
115/tcp
Jika belum ada, maka tambahkan baris ini : ftp 21/tcp
Referensi : •
http://www.tldp.org/LDP/solrhe/Securing-Optimizing- Linux- RH-Editionv1.3/index.html
•
Official wu-ftp Site, www.wu-ftpd.org
• • •
Official Redhat Site, www.redhat.com Linux Documentation Project, www.ldp.org Wu-ftp Mailing List, www.landfield.com/wu-ftpd/mail-archive/ wuftpd-dev
Instalasi FTP Server 57