[CentOS 7][7.3.1] Konfigurasi Ftp (Proftpd)

Konfigurasi Proftpd Pada CentOS 7


Assalamualaikum..
Ya, ketemu lagi dengan saya Dimas Trihandika selaku admin dari blog ini.
Pada kesempatan kali ini saya hanya ingin sharing aja sedikit, eh ga sedikit deng :v tentang tutorial konfigurasi Ftp menggunakan Proftpd menggunakan CentOS 7.


Sebelumnya, kita ketahui dulu, Ftp itu apa sih, terus Proftpd tuh apa sih.


Jadi, FTP itu suatu protokol yang berfungsi untuk tukar menukar file dalam suatu Network/Jaringan yang mensupport TCP/IP Protokol. Jadi, dengan menggunakan FTP ini kita bisa Sharing file dengan PC lain yang berada dalam satu jaringan dengan kita. jadi ga perlu colak colok flashdisk lagi buat berbagi file, kita hanya cukup membuka alamat FTP tersebut, secara default FTP menggunakan Port 21.
Sedangkan Proftpd itu aplikasi untuk membangun FTP tersebut. Sebenarnya bisa menggunakan Proftpd maupun Vsftpd, namun pada tutorial kali ini saya akan menjelaskan cara konfigurasinya menggunakan Proftpd.

Topology (Coming Soon)

Oke, langsung saja kita masuk ke tahap konnfigurasi..

User Mode


Konfigurasi Server


1) Perlu kalian ketahui bahwa package installer Proftpd tidak tersedia di dalam repo centos kita, maka dari itu kita harus downlaod, dan melakukan instalasinya melalui internet.

Pertama-tama yang harus kita lakukan adalah memasukan repository epel kedalam server centos kita. Download repository epel tersebut melalui internet tentunya, disini saya downloadnya di http://dl.fedoraproject.org. Sebenarnya banyak sekali link mirror untuk mendownload repository epel tersebut, tidak hanya di link yang tadi saya cantumkan, tapi bisa juga di http://download.fedoraproject.org, http;//mirrors.fedoraproject.org, dan masih banyak lagi yang gabisa saya sebutkan satu-satu, soalnya nanti kelamaan :3.

Bagi kalian yang menggunakan CentOS 64 bit, untuk menambah repositry epel bisa menggunakan syntak seperti berikut :
rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
Catatan : Disitu menunjukan bahwa repository epel yang di download yaitu versi 7.8. Perlu kalian ketahui, ini tidak selalu menetap, bisa saja ada pembaharuan untuk repo tersebut, maka dari itu pada saat ingin menambah repositry epel, lihat dulu di link downloadnya, versi terbarunya versi berapa.

Nah itu untuk yang 64 bit, namun pada tutorial ini saya menggunakan CenOS 32 bit.
Karena repository epel versi 7 belum tersedia untuk yang 32 bit, maka pada tutorial ini saya menggunakan epel repository versi 6. Untuk cara menambah reponya, tidak jauh beda sama CentOS 64 bit, hanya filenya doang yang beda.
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

2) Sekarang, coba cek directory /etc/yum.repos.d/ karena disitulah tempat repository centos kita. Cek apakah reponya sudah berhasil dimasukan atau tidak.
ls /etc/yum.repos.d/

3) Jika sudah, update repositorynya dan tunggu hingga prosesnya selesai
yum update -y



 4) Setelah itu install Proftpd dan tunggu hingga proses penginstalan selesai
yum install proftpd -y



 5) Start (jalankan) dan Enable (agar berjalan otomatis saat pc direstart) Proftpd
systemctl start proftpd
systemctl enable proftpd 

6) Cek status proftpd, pastikan berjalan dengan baik
systemctl status proftpd

7) Tambahkan port 21 ke firewall, mengapa poprt 21? ya karena 21 adalah port default ftp. Atau bisa juga dengan menambahkan service ftp kedalam firewall
 firewall-cmd --permanent --add-port=21/tcp
Atau :
firewall-cmd --permanent --add-service=ftp 

8) Reload firewall agar konfigurasi yang baru berjalan.
firewall-cmd --reload

9) Setelah itu aktifkan service ftp pada SELinux
setsebool -p ftp_home_dir on

10) Buat user yang nantinya akan kita gunakan pada saat login ke ftp, dan jangan lupa berikan password untuk user tersebuy
useradd dims
passwd dimas 

Verifikasi Client

1) Sekarang, coba akses ftp melalui client, disini saya menggunakan windows 10.
Untuk caranya bisa melalui CMD, File Explorer, atau melalui aplikasi seperti Filezila. Namun disini saya menggunakan FIile Explorer.
ftp://"ip server kalian"
Maka akan tampil halaman login, isikan username beserta password sesuai dengan apa yang sudah dibuat pada server centos kita tadi


2) Jengjreng, berhasil login ke ftp tersebut. Kita akan bisa create file pada ftp tersebut karena tadi sudah diberi hak akses pada SELinux


Pengecekan Pada Server

1) Setiap user yang kita buat, secara default akan terletak di directory /home/. Maka dari itu coba lakukan pengecekan pada server kalian, apakah folder yang sudah dibuat pada client windows 10 tadi akan terdapat juga atau tidak pada directory user tersebut.
ls /home/dims/

Anonymous Mode


Konfigurasi Server

1) Untuk membuat ftp server mode anonymous, kita harus buat directory enable_mod dan disable_mod agar tidak mengacaukan file konfigurasi proftpd.conf.
Pertama-tama stop proftpd terlebih dahulu
systemctl stop proftpd

2) Edit file proftpd.conf yang berada di directory /etc/
nano /etc/proftpd.conf

3) Tambahkan script ini dibagian paling bawah
include /etc/proftpd/enable_mod/*.conf

4) Buat directory enable_mod dan disable_mod
mkdir -p /etc/proftpd/enable_mod
mkdir -p /etc/proftpd/disable_mod

5) Buat file anonymous.conf di dalam directory /etc/proftpd/disbale_mod/
nano /etc/proftpd/disable_mod/anonymous.conf

6) Isikan Script seperti gambar dibawah ini


7) Walau modul anonymousnya sudah terbuat, akan tetapi masih belum aktif.
Untuk mengaktifkannya kita harus membuat simbol link ke directory enable_mod.
ln -s /etc/proftpd/disable_mod/anonymous.conf /etc/proftpd/enable_mod/
ll /etc/proftpd/enable_mod/ 

8) Karena tadi proftpdnya di stop, yuk sekarang coba start(jalankan) kembali proftpdnya
systemctl start proftpd

Verifikasi Client

1) Sekarang coba kunjungi lagi ftp tersebut menggunakan file explorer, maka tidak akan muncul halaman login lagi, karena kita sudah mengatur proftpd ke mode anonymous


2) Sekarang coba lakukan pengetesan pembuatan folder, maka tidak akan bisa, karena disini kita dalam mode anonymous.

Lantas bagaimana agar mode anonymous bisa create atau upload file ke ftp? yuk simak langkah-langkahnya dibawah ini

Konfigurasi Anonymous Dapat Create file atau Directory


Konfigurasi Server

1) Edit kembali file anonymous.conf
nano /etc/proftpd/disable_mod/anonymous.conf

2) Ubah script Deny All menjadi Allow All, untuk lebih jelasnya lihat gambar dibawah ini.


3) Seteleh itu buat directory baru, yang dimana nantinya directory tersebut akan digunakan sebagai directory ftp mode anonymous user yang bisa create file atau directory. Setelah dibuat, beri hak akses user ftp ke directory tersebut dengan cara mengatur kepemilikannya (ownership)
mkdir /var/ftp/dims
chown ftp /var/ftp/dims/ 

4) Lakukan konfigurasi SELinux agar kita bisa create file atau upload directory pada folder ftp anonymous tersebut
chcon -t public_content_rw_t /var/ftp/dims/
setsebool -P allow_ftpd_anon_write=1 

5) Kemudian, restart proftpd agar konfigurasi yang baru berjalan dengan baik
systemctl restart proftpd

Verifikasi Client

1) Sekarang coba lagi kunjungi ftp tersebut menggunakan file explorer, kemudian buat file atau directory pada directory baru yang sudah dikonfigurasi agar user anonymous dapat create file atau directory, Maka akan berhasil create file atau directory ke ftp tersebut.



Akses Ftp Menggunakan Nama Domain


Konfigurasi Server

Agar Ftp bisa diakses menggunakan nama domain, kita harus membuat dns dengan cara menginstall bind terlebih dahulu pada server centos kita.
Tutorial untuk membuat dns bisa kalian lihat pada postingan saya sebelumnya pada lab [6.1], dan bisa kalian lihat di Konfigurasi Domain Name System (CentOS7)
Lakukan konfigurasi seperti pada lab tersebut, sesuaikan ip nya dan atur nama domainnya terseah kalian saja, maka nanti ftp kita bakalan bisa di akses menggunakan nama domain

Berikut saya tampilkan point pointnya saja ya..

1) Pertama instal bind nya dulu, abis itu edit file named.conf yang berada di directory /etc/
nano /etc/named.conf

 2) Jika sudah, sekarang edit script didalamnya menjadi seperti gambar dibawah ini (sesuaikan ipnya)


3) Tambahkan zona forward dan reverse yang sudah saya tandai warna kuning dan hijau ini untuk domain tersebut. Tambahkan script tersebut dibawah script zone ".' blablabla


4) Buat file zona forward untuk domain tersebut, sesuaikan namanya dan juga path nya sesuaikan dengan apa yang sudah di arahkan di file named.conf tadi


5) Isikan file tersebut dengan script seperti gambar dibawah ini



6) Begitu pula pada zona reversenya sesuaikan namanya dan juga path nya sesuaikan dengan apa yang sudah di arahkan di file named.conf tadi


7) Isikan file tersebut dengan script seperti gambar dibawah ini


8) Jika sudah restart namednya, jika kalian belum pernah menjalakan service named sebelumnya, maka jalankan perintah start.
systemctl restart named

Catatan : Konfigurasi Dns ini belum selesai, kita harus melakukan konfigurasi beberapa tahap lagi, seperti menambahkan port 53\ kedalam firewall, Mengatur Permission, Ownership dan Restore keamanan Selinux terhadap file-file konfigurasi DNS Server, dan konfigurasi lainnya yang bisa kalian lihat caranya di link yang sudah saya cantumkan diatas point no.1. Sengaja disini tidak saya tampilkan semua cara konfigurasi Dns nya, karena takutnya kepanjangan :3.

Verifikasi Client 

1) Atur koneksi pada client tersebut, Pada Preferred DNS server masukan/arahkan dengan ip server kalian. Untuk lebih jelasnya lihat gambar dibawah ini


2) jika sudah coba lakukan pengetesan kepada domain tersebut menggunakan CMD, pastikan mendapat balasan reply dari domain tersebut


3) Sekarang coba akses FTP menggunakan nama domain yang sudah kalian buat pada tahap sebelumnya, maka akan berhasil dan kita bisa mengakses ftp kita dengan nama domain tersebut. 



Penambahan user baru serta mengatur directory untuk user tersebut


Konfigurasi Server

1) Buat userbaru dengan perintah useradd
useradd "nama user"
Pada contoh ini saya menambahkan 2 user baru, jika kalian mau lebih silahkan aja, kagapapa


2) Disini saya ingin menaruh directory untuk user tersebut di directory root "/" atau directory paling luar server centos kita. Maka dari itu pindah dulu ke directory root tersebut, jika sudah buat directory yang nantinya kita akan pakai sebagai directory dari user yang sudah dibuat tadi
cd /
mkdir dimas1
mkdir dimas2 

3) Modifikasi user tersbebut agar terletak di directory yang sudah kita buat sebelumnya dengan perintah chmod. Bisa kalian lihat pada gambar dibawah ini adanya perintah -d yang berarti directory. Jadi, jika didefiniskan perintah dibawah ini berfungsi untuk memodifikasi directory dari user tertentu
usermod -d /dimas1/ dimas1
usermod -d /dimas2/dimas2 

4) Atur permission pada directory tersebut
chmod 777 /dimas1/

5) Lihat apakah permissionnya sudah berubah atau belum
ls -l

6) Edit kembali file proftpd.conf


7) Cari script DefaultRoot dan ubah syntak disampingnya, ubah dari"~" menjadi "/",


8) Restart service proftpdnya
systemctl restart proftpd

 Verifikasi Client 

1) Sekarang coba akses ftp dengan menggunakan cmd pada windows, jika sudah login dengan salah satu user yang sudah dibuat tadi, setelah itu coba cek pada directory mana kita berada dengan perintah pwd


2) Bisa kalian lihat gambar pada point no.1 bahwasannya letak directory usernya sudah berhasil pindah sesuai dengan apa yang sudah kita konfigurasi pada tahap sebelumnya.
Nah, sekarang coba lakukan pengetesan dengan membuat file atau directory, maka tidak akan bisa, mengapa? karena belum diberi akses pada SELinux server centos kita


3) Begitupun pada user ke-2, bakalan tetp gabisa buat file atau directory


Re-Configure Server

1) Untuk memberikan hak akses SELinux pada directory user tersebut, yaitu dengan cara menjalankan perintah seperti berikut
chcon -t public_content_rw_t /dimas1/
chcon -t public_content_rw_t /dimas2/ 

Verifikasi Client

1) Coba login lagi dengan user 1, abis itu buat file atau ga directory, maka akan berhasil karena sudah di beri akses pada SELinux


2) Begitupun dengan user 2, maka akan berhasil


Verifikasi Server

1) Coba lakukan pengecekan pada directory dari kedua user tersebut, dan coba lihat apakah terdapat file yang sudah dibuat tadi pada client
ls /dimas1/
ls /dimas2/ 

Upload & Donwload File in Ftp


Client Windows

Upload

1) Buat file di windows kalian, disini biar ga ribet saya buatnya langsung di desktop aja


2) Buka cmd, karena tadi saya buat filenya di desktop, maka dari itu pindah dulu ke directory desktop, jika sudah akses ftp tersebut, disini saya mengakses sebagai user 1 setelah itu upload file dengan menggunakan perintah put
put "nama file"
Contoh :
 put UploadWindows.txt

Download


1) Pertama buat file dulu di server centos kita, lihat contoh dibawah ini untuk membuat filenya
touch /dimas1/filedimas1.xml

2) Jika sudah, kembali lagi ke client windowsnya, habis itu coba lakukan download file pada ftp dengan menggunakan perintah get
get filedimas1.xml
Karena kita sebelumnya berada di directory desktop, maka file tersebut akan tersimpannya di diectory desktop


Client Linux

Upload

1) Sama seperti pada windows, buat file yang akan di upload terlebih dahulu


2) Buka terminal, karena tadi saya membuat filenya di desktop, maka dari itu pindah dulu ke directory desktop, jika sudah akses ftpnya, disini saya login sebagai user 2, setelah itu upload filenya dengan perintah put
put UploadLinux.html

Download

1) Buat filenya dulu pada server centosnya yang dimana file tersebut nanti akan kita download lewat client linux kita
touch /dimas2/filedimas2.xml

2) Akses kembali ftpnya, setelah itu download file dengan perintah get. Karena disini saya berada di directory desktop, maka filenya akan otomatis tersimpan di directory desktop
get filedimas2.xml

 

Konfigurasi agar Client tidak/bisa melihat directory root server Centos


Sebenarnya secara defaultnya proftpd, kita tidak bisa melihat partisi root server centos kita, untuk pembuktiannya, lihat penjelasan penjelasan dibawah ini

Verifikasi Client

1) Coba sekarang akses ftp menggunakan file explorer yang tersedia pada linux kalian, terserah login pake user 1 atau pake user 2


2) Jika sudah, coba lihat pada gambar dibawah ini, kita sebagai client bisa melihat directory root dari server centos kita, Mengapa demikian? karena settingan default proftpdnya tadi ada yang kita ubah, yaitu pada syntak DefaultRoot pada file proftpd.conf. Secara defaultnya DefaulRoot proftpd yaitu di "~" bukan di "/", karena pada tahap modifikasi directory user tadi kita mengubah DefaultRootnya menjadi "/" maka kita akan bisa melihat directory/partisi root server centos kita.


3) Sekarang akses ftp menggunakan file explorer yang tersedia pada client windows kalian, terserah login dengan user yang mana


4) Jika sudah, Maka kita tidak bisa lihat directory root, Mengapa? ya ini emang nasibnya si windows sepertinya :v. Ini mungkin karena windows tidak bisa membaca file system Fat32 yang digunakan linux, atau mungkin emang settingan defaultnya seperti itu untuk windows, intinya saya belum tahu persis mengapa, jika memang kalian ada masukan bisa kalian tuliskan pada kolom komentar.

 

Konfigurasi Server

1) Sekarang kita konfigurasi agar si client tidak bisa melihat directory root server centos kita. Edit file proftpd.conf yang terletak di directory /etc/
nano /etc/proftpd.conf

2) Nah sekarang kita kembalikan settingan default dari syntak DefaultRoot, ubah dari "/" menjadi "~"



3) Restart service proftpd, agar konfigurasi yang baru berjalan dengan baik
systemctl restart proftpd

Verifikasi Client

1) Akses kembali ftpnya, login dengan user yang mana aja terserah, dan coba lihat maka otomatis kita akan diarahkan ke directory dimana user tersebut berada, dan kita pun tidak dapat melihat directory root dari server centos kita



Sekian, Semoga Bermanfaat...

Comments