Wednesday, January 14, 2009

Konfigurasi VerySecureFTPD


Disini saya akan mencoba menulisakan setting FTP dengan menggunakan VerySecureFTPD yang diinstal pada server linux openSUSE 10.3 dan koneksi internet menggunakan speedy

1 Installasi VerySecureFTPD

Pada topik ini diasumsikan bahwa komputer yang akan dijadikan FTP Server telah disetting Local Repository sehingga paket-paket tambahan dari openSUSE Linux dapat diinstall dengan menggunakan perintah zypper.

Pada konsole terminal, login sebagai root dan kemudian install paket vsftpd dengan perintah berikut:
zypper in vsftpd

Proses installasi vsftpd akan selesai dalam waktu singkat dan akan terbentuk directory:

/usr/share/doc/packages/vsftpd/

yang berisikan file-file yang diperlukan untuk konfigurasi vsftpd. Selain itu, kita dapat melihat file-file contoh konfigurasi untuk vsftpd yang tersimpan di /usr/share/doc/packages/vsftpd/.

Setelah paket vsftpd telah terinstall, buatlah directory /etc/vsftpd dengan menggunakan perintah berikut:

mkdir /etc/vsftpd

Secara default, file konfigurasi vsftpd akan berada di /etc/vsftpd.conf. Untuk memudahkan pengelompokan semua file-file yang berhubungan dengan vsftpd, maka dianjurkan untuk membuat directory /etc/vsftpd/ untuk menyimpan semua file-file vsftpd.

Kemudian pindahkan file /etc/vsftpd.conf ke /etc/vsftpd/vsftpd.conf

mv /etc/vsftpd.conf /etc/vsftpd/vsftpd.conf

Buat link ke file /etc/vsftpd/vsftpd.conf dan namain link tersebut /etc/vsftpd.conf.

ln -s /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf

Buat file user authentication untuk vsftpd:
vi /etc/pam.d/vsftpd

Isi dari file tersebut adalah berikut:
auth include common-auth
account include common-account

Authentication di file tersebut melakukan authentication terhadap user-user yang terdapat di local computer. Namun, apabila kita memasukkan komputer tersebut ke dalam domain, maka kita dapat juga melakukan authentication terhadapa user-user yang terdapat di dalam domain kita.

Untuk join komputer ke dalam domain, kita dapat menggunakan fasilitas yang disediakan oleh YaST --> Network Services --> Windows Domain Membership.

Setelah itu kita akan melakukan konfigurasi terhadap vsftpd dengan meng-edit file /etc/vsftpd/vsftpd.conf.
Pertama-tama, ubah nama file asli vsftpd /etc/vsftpd/vsftpd.conf menjadi /etc/vsftpd/vsftpd.conf.original.
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.original

Kemudian buat file baru /etc/vsftpd/vsftpd.conf:
vi /etc/vsftpd/vsftpd.conf

Isi dari file /etc/vsftpd/vsftpd.conf adalah sebagai berikut:
#
# 1. FTP Logon Configuration
#
## Modify the default FTP banner message
ftpd_banner="Welcome to SERVER's FTP site!"


#
# 2. User Access Configuration
#
## Disable username ftp and anonymous logon capability
anonymous_enable=NO

## Enable local system user logon capability including Virtual Users
local_enable=YES

## Set file & directory creation permission to rw------- & rwx------
## for both local and anonymous/virtual users
local_umask=077
anon_umask=077

## Users cannot create, update, or modify files/directories
write_enable=NO

## Anonymous/Virtual users will only be allowed to only
## download world readable files
anon_world_readable_only=YES

## Anonymous/Virtual users cannot upload files
anon_upload_enable=NO

## Anonymous/Virtual users cannot create directories and modify files
anon_mkdir_write_enable=NO

## Anonymous/Virtual users cannot delete or rename files or directories
anon_other_write_enable=NO

## Disable download capability
download_enable=NO

## Force users to be placed into their home directory
chroot_local_user=YES

## Classify all non-anonymous logins as "guest" logins and
## map "guest" logins as the Virtual User specified in "guest_username" setting
guest_enable=YES
guest_username=virtual
user_sub_token=$USER
local_root=/home/ftpsite/$USER

## Deny login access to users specified in the "userlist_file"
userlist_enable=YES
userlist_deny=YES

## Enable active FTP connections
port_enable=YES

## Enable passive FTP connections and
##determine the passive min and max port
pasv_enable=YES
pasv_min_port=30001
pasv_max_port=30005

## Set the display time to local time
use_localtime=YES

## Hide user and group information in directory listings
## Display them as "ftp"
hide_ids=YES

## Enable parallel logging of xferlog and vsftpd.log
dual_log_enable=YES

## Enable secure FTP connection via SSL TLS v1 protocol
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

## Force local and anonymous/virtual users to use SSL
## for login and data connections
force_local_data_ssl=YES
force_local_logins_ssl=YES
force_anon_data_ssl=YES
force_anon_logins_ssl=YES

listen=YES

## FTP Client Timeout Configuration
accept_timeout=0
connect_timeout=120
idle_session_timeout=600

#
# 3. Configuration Files Setting
#

## Specify the PAM service name associated with vsftpd.
## The location of the file is in /etc/pam.d/
pam_service_name=vsftpd

## Specify the location of the user configuration directory
user_config_dir=/etc/vsftpd/vsftpd_user_conf

## Specify the location of the userlist_file
userlist_file=/etc/vsftpd/deniedUsers

## Define the location of vsftpd.log file
vsftpd_log_file=/var/log/vsftpd/vsftpd.log

## Define the location of xferlog file
xferlog_file=/var/log/vsftpd/xferlog

## Define the location of RSA certificate to use for SSL connections
rsa_cert_file=/etc/vsftpd/vsftpd.pem



Supaya semua user yang terkoneksi ke FTP server kita dianggap seakan-akan sebagai Virtual Users, kita akan membuat home directory dimana semua users akan cuma bisa masuk ke home directory tersebut. Selain itu juga perlu dibuat user dan group untuk Virtual User tersebut.
#### Membuat home directory untuk Virtual User
mkdir /home/ftpsite

#### Membuat group Virtual User
groupadd virtual

#### Membuat user Virtual User
useradd -d /home/ftpsite -g virtual -c “Virtual FTP Users” virtual

#### Merubah permission untuk /home/ftpsite
chmod 700 /home/ftpsite
#### Merubah owner & group untuk /home/ftpsite
chown virtual:virtual /home/ftpsite

Membuat daftar user-user yang tidak diperbolehkan untuk menggunakan FTP server:
#### Memasukkan semua daftar user-user yang terdapat di Active
#### Directory ke dalam file /etc/vsftpd/deniedUsers
wbinfo -u > /etc/vsftpd/deniedUsers

Dari daftar user-user yang ada di file /etc/vsftpd/deniedUsers, kita bisa memperbolehkan user-user tertentu untuk bisa mengakses FTP server dengan cara menambahkan tanda pagar (#) di depan nama user tersebut:
SERVER\ardian
SERVER\andi
#SERVER\jaka
SERVER\dewi
#SERVER\lily

Setelah itu kita perlu membuat permission configuration untuk tiap-tiap user apabila kita menghendaki setiap user itu mempunyai hak akses yang berbeda dari default akses permission yang terdapat di file /etc/vsftpd/vsftpd.conf:

#### Membuat directory user permission configuration
mkdir /etc/vsftpd/vsftpd_user_conf

#### Membuat permission setting utk user SERVER\ardian
vi vsftpd_user_conf/SERVER\\ardian
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
download_enable=YES

#### Membuat permission setting utk user SERVER\andi
vi vsftpd_user_conf/SERVER\\andi
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES


Kita akan menggunakan SSL untuk koneksi ke vsftpd. Untuk itu kita perlu generate SSL key yang diperlukan dan SSL key tersebut akan diletakkan di /etc/vsftpd/vsftpd.pem:
#### Membuat SSL key
openssl req -newkey rsa:1024 -nodes -x509 -keyout /etc/vsftpd/vsftpd.pem
-out /etc/vsftpd/vsftpd.pem

Langkah terakhir adalah configuration pada SuSEFirewall dan ADSL Modem. Pertama kita akan membuka port-port yang diperlukan untuk menjalankan service vsftpd.
Kita memulai dengan mengedit file /etc/sysconfig/SuSEfirewall2:
#### Mengedit file /etc/sysconfig/SuSEfirewall2
vi /etc/sysconfig/SuSEfirewall2

#### Pada line FW_SERVICES_EXT_TCP tambahkan
#### nilai 30001:30005.
#### Ini menandakan bahwa kita membuka port TCP 30001 s/d 30005
#### untuk koneksi passive ftp. Nilai ini harus sama dengan nilai
#### yang terdapat di file /etc/vsftpd/vsftpd.conf
FW_SERVICE_EXT_TCP=”30001:30005”

#### Pada line FW_CONFIGURATIONS_EXT tambahkan
#### nilai vsftpd.
#### Nilai vsftpd pada line ini merupakan indikator buat SuSEfirewall2
#### untuk membuka port TCP 20 dan 21 untuk koneksi active ftp.
FW_CONFIGURATIONS_EXT=”vsftpd”


Kemudian kita akan membuka port-port yang telah kita pergunakan di atas di Modem ADSL:



Jalankan service vsftpd dengan menggunakan perintah berikut:
#### Jalankan service vsftpd
service vsftpd start

#### Matikan service vsftpd
service vsftpd stop

#### Melihat status service vsftpd
service vsftpd status


2 Installasi FileZilla FTP

Untuk FTP Client kita akan mempergunakan FileZilla karena bersifat Open Source dan mendukung enkripsi SSL.




Buat Site Connection baru dengan profile seperti terlihat di gambar berikut:

Setelah itu tekan tombol Connect untuk logon ke vsftpd server.





No comments:

Post a Comment