Cara Memblokir Akses SSH dan FTP ke IP Tertentu dan Rentang Jaringan di Linux


Biasanya kita semua sering menggunakan layanan SSH dan FTP untuk mengakses server jarak jauh dan server pribadi virtual. Sebagai administrator Linux, Anda harus mengetahui cara memblokir akses SSH dan FTP ke IP atau rentang jaringan tertentu di Linux untuk lebih memperketat keamanan.

  1. 25 Tips Memperkuat Keamanan untuk Server Linux
  2. 5 Tips Berguna untuk Mengamankan dan Melindungi Server SSH

Tutorial ini akan menunjukkan cara memblokir akses SSH dan FTP ke alamat IP tertentu dan/atau rentang jaringan di server CentOS 6 dan 7. Panduan ini telah diuji pada versi CentOS 6.x dan 7.x, namun mungkin dapat digunakan pada distribusi Linux lain seperti Debian, Ubuntu, dan SUSE/openSUSE dll.

Kami akan melakukannya dengan dua metode. Metode pertama menggunakan IPTables/firewallD dan metode kedua menggunakan wrapper TCP dengan bantuan hosts.allow dan file hosts.deny.

Lihat panduan berikut untuk mengetahui lebih banyak tentang IPTables dan Firewalld.

  1. Panduan Dasar Tips/Perintah IPTables (Linux Firewall).
  2. Cara Mengatur Firewall Iptables untuk Mengaktifkan Akses Jarak Jauh ke Layanan di Linux
  3. Cara Mengonfigurasi 'FirewallD' di RHEL/CentOS 7 dan Fedora 21
  4. Aturan 'FirewallD' yang Berguna untuk Mengonfigurasi dan Mengelola Firewall di Linux

Sekarang Anda sudah mengetahui apa itu IPTables dan FirewallD serta dasar-dasarnya.

Metode 1: Blokir Akses SSH dan FTP Menggunakan IPTables/FirewallD

Sekarang mari kita lihat cara memblokir akses SSH dan FTP ke IP tertentu (misalnya 192.168.1.100) dan/atau jangkauan jaringan (misalnya 192.168.1.0/24) menggunakan IPtables pada versi RHEL/CentOS/Scientific Linux 6.x dan FirewallD pada CentOS 7.x.

Blokir atau Nonaktifkan Akses SSH

--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport ssh -j REJECT
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport ssh -j REJECT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 22 -j REJECT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 22 -j REJECT

Untuk menerapkan aturan baru, Anda perlu menggunakan perintah berikut.

service iptables save         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

Sekarang, coba SSH server dari host yang diblokir. Harap diingat bahwa di sini 192.168.1.150 adalah host yang diblokir.

ssh 192.168.1.150

Anda akan melihat pesan berikut.

ssh: connect to host 192.168.1.150 port 22: Connection refused

Buka blokir atau Aktifkan Akses SSH

Untuk membuka blokir atau mengaktifkan akses SSH, buka server jarak jauh dan jalankan perintah berikut:

--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport ssh -j ACCEPT
iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport ssh -j ACCEPT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 22 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 22 -j ACCEPT

Simpan perubahan menggunakan berikut ini untuk mengakses server Anda melalui SSH.

service iptables save         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

Blokir atau Nonaktifkan Akses FTP

Biasanya, port default untuk FTP adalah 20 dan 21. Jadi, untuk memblokir semua lalu lintas FTP menggunakan IPTables, jalankan perintah berikut:

--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport 20,21 -j REJECT
iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport 20,21 -j REJECT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 20,21 -j REJECT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 20,21 -j REJECT

Untuk menerapkan aturan baru, Anda perlu menggunakan perintah berikut.

service iptables save         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

Sekarang, coba akses server dari host yang diblokir (192.168.1.100), dengan perintah:

ftp 192.168.1.150

Anda akan mendapatkan pesan kesalahan seperti di bawah ini.

ftp: connect: Connection refused

Buka blokir atau Aktifkan Akses FTP

Untuk membuka blokir dan mengaktifkan kembali akses FTP, jalankan:

--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport 20,21 -j ACCEPT
iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport 20,21 -j ACCEPT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 20,21 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 20,21 -j ACCEPT

Simpan perubahan dengan perintah:

service iptables save         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

Sekarang, coba akses server melalui FTP:

ftp 192.168.1.150

Masukkan nama pengguna dan kata sandi ftp Anda.

Connected to 192.168.1.150.
220 Welcome to TecMint FTP service.
Name (192.168.1.150:sk): tecmint
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

Metode 2: Blokir Akses SSH dan FTP Menggunakan TCP Wrappers

Jika Anda tidak ingin dipusingkan dengan IPTables atau FirewallD, maka TCP wrapper adalah cara yang lebih baik untuk memblokir akses SSH dan FTP ke akses tertentu. IP dan/atau jangkauan jaringan.

OpenSSH dan FTP dikompilasi dengan dukungan pembungkus TCP, yang berarti Anda dapat menentukan host mana yang diizinkan untuk terhubung tanpa menyentuh firewall Anda dalam dua file penting berikut:

  1. /etc/hosts.allow
  2. /etc/hosts.deny

Sesuai dengan namanya, file pertama berisi entri host yang diizinkan, dan file kedua berisi alamat host yang diblokir.

Misalnya, mari kita blokir akses SSH dan FTP ke host yang memiliki alamat IP 192.168.1.100 dan jangkauan jaringan 192.168.1.0. Cara ini sama untuk seri CentOS 6.x dan 7.x. Dan tentu saja ini akan bekerja pada distribusi lain seperti Debian, Ubuntu, SUSE, openSUSE dll.

Buka file /etc/hosts.deny dan tambahkan Alamat IP atau rentang jaringan berikut yang ingin Anda blokir seperti yang ditunjukkan di bawah ini.

##### To block SSH Access #####
sshd: 192.168.1.100
sshd: 192.168.1.0/255.255.255.0

##### To block FTP Access #####
vsftpd: 192.168.1.100
vsftpd: 192.168.1.0/255.255.255.0

Simpan dan keluar dari file.

Sekarang, mulai ulang layanan sshd dan vsftpd untuk menerapkan perubahan baru.

--------------- For SSH Service ---------------
service sshd restart        [On SysVinit]
systemctl restart sshd      [On SystemD]
--------------- For FTP Service ---------------
service vsftpd restart        [On SysVinit]
systemctl restart vsftpd      [On SystemD]

Sekarang, coba SSH server atau dari host yang diblokir.

ssh 192.168.1.150

Anda akan melihat keluaran berikut:

ssh_exchange_identification: read: Connection reset by peer

Sekarang, coba FTP server atau dari host yang diblokir.


ftp 192.168.1.150

Anda akan melihat keluaran berikut:

Connected to 192.168.1.150.
421 Service not available.

Untuk membuka blokir atau mengaktifkan kembali layanan SSH dan FTP, edit file hosts.deny dan beri komentar pada semua baris dan terakhir restart layanan vsftpd dan sshd.

Kesimpulan

Itu saja untuk saat ini. Kesimpulannya, hari ini kita mempelajari cara memblokir alamat IP dan jangkauan jaringan tertentu menggunakan IPTables, FirewallD, dan wrapper TCP. Cara-cara ini cukup mudah dan lugas.

Bahkan, administrator Linux pemula dapat melakukan ini dalam beberapa menit. Jika Anda mengetahui cara lain untuk memblokir akses SSH dan FTP, silakan bagikan di bagian komentar. Dan jangan lupa untuk membagikan artikel kami ke semua jejaring sosial Anda.