GNU/Linux >> Belajar Linux >  >> Linux

Batasi Akses Ke Server Linux Menggunakan Pembungkus TCP

Pembungkus TCP adalah sistem ACL (Access Control List) berbasis host open source, yang digunakan untuk membatasi layanan jaringan TCP berdasarkan nama host, alamat IP, alamat jaringan, dan sebagainya. Ini memutuskan host mana yang diizinkan untuk mengakses layanan jaringan tertentu. TCP Wrapper dikembangkan oleh seorang programmer dan fisikawan Belanda Wietse Zweitze Venema pada tahun 1990 di Universitas Teknologi Eindhoven. Dia memeliharanya sampai tahun 1995, dan kemudian merilisnya di bawah Lisensi BSD pada tahun 2001. Dalam panduan singkat ini, saya akan menjelaskan cara membatasi akses ke server Linux menggunakan TCP Wrapper.

Perlu diketahui bahwa TCP Wrapper bukan pengganti lengkap untuk firewall yang dikonfigurasi dengan benar . Ini hanyalah tambahan yang berharga untuk meningkatkan keamanan server Linux Anda. Disarankan untuk menggunakannya bersama dengan firewall yang dikonfigurasi sepenuhnya serta mekanisme dan alat keamanan lainnya.

Instal Pembungkus TCP

TCP Wrappers tersedia di repositori resmi sebagian besar sistem operasi Linux.

Tergantung pada distribusi Linux yang Anda gunakan, Ini dapat diinstal seperti yang ditunjukkan di bawah ini.

Pada sistem berbasis Arch:

$ sudo pacman -S tcp_wrappers

Pada sistem berbasis YUM:

$ sudo yum install tcp_wrappers

Pada sistem berbasis APT:

$ sudo apt-get install tcp_wrappers

Pada sistem SUSE/openSUSE:

$ sudo zypper in tcp_wrappers

Batasi Akses ke Server Linux Menggunakan TCP Wrapper

Konfigurasi

TCP Wrappers mengimplementasikan kontrol akses dengan bantuan dua file konfigurasi:/etc/hosts.allow dan /etc/hosts.deny . Kedua file daftar kontrol akses ini memutuskan apakah klien tertentu diizinkan untuk mengakses server Linux Anda atau tidak.

File /etc/hosts.allow

File ini berisi daftar host atau jaringan yang diizinkan atau tidak diizinkan. Artinya, kita dapat mengizinkan atau menolak koneksi ke layanan jaringan dengan mendefinisikan aturan akses dalam file ini.

File /etc/hosts.deny

File ini berisi daftar host atau jaringan yang tidak diizinkan untuk mengakses server Linux Anda. Aturan akses dalam file ini juga dapat diatur di /etc/hosts.allow dengan 'deny' pilihan.

Sintaks umum untuk mendefinisikan aturan akses adalah:

daemon_list : client_list : option : option ...

Dimana,

  • daftar_daemon - Nama layanan jaringan seperti SSH, FTP, Portmap dll.
  • daftar_klien - Daftar nama host, alamat IP, atau alamat jaringan yang valid yang dipisahkan koma.
  • opsi - Tindakan opsional yang menentukan sesuatu yang harus dilakukan setiap kali aturan cocok.

Sintaksnya sama untuk kedua file.

Aturan yang perlu diingat

Sebelum menggunakan TCP Wrapper, Anda perlu mengetahui aturan penting berikut. Harap diperhatikan bahwa TCP Wrapper hanya berkonsultasi dengan dua file ini (hosts.allow dan hosts.deny).

  • Aturan akses di file /etc/hosts.allow diterapkan terlebih dahulu. Mereka lebih diutamakan daripada aturan di file /etc/hosts.deny. Oleh karena itu, jika akses ke layanan diizinkan di /etc/hosts.allow file, dan aturan yang menolak akses ke layanan yang sama di /etc/hosts.deny diabaikan.
  • Hanya satu aturan per layanan yang diizinkan di kedua file (hosts.allow dan hosts.deny).
  • Urutan aturan sangat penting. Hanya aturan pencocokan pertama untuk layanan tertentu yang akan diperhitungkan. Hal yang sama berlaku untuk kedua file.
  • Jika tidak ada aturan yang cocok untuk layanan di salah satu file atau jika tidak ada file, maka akses ke layanan akan diberikan ke semua host jarak jauh.
  • Setiap perubahan pada salah satu file akan langsung berlaku tanpa memulai ulang layanan jaringan.

Pendekatan yang disarankan untuk mengamankan server Anda

Umumnya, praktik terbaik untuk mengamankan server Linux adalah memblokir semua koneksi yang masuk, dan hanya mengizinkan beberapa host atau jaringan tertentu. Untuk melakukannya, edit /etc/hosts.deny berkas:

$ sudo vi /etc/hosts.deny

Tambahkan baris berikut. Baris ini menolak koneksi ke SEMUA layanan dan SEMUA jaringan.

ALL: ALL

Kemudian, edit /etc/hosts.allow berkas:

$ sudo vi /etc/hosts.allow

dan izinkan host atau jaringan tertentu pilihan Anda.

sshd: 192.168.43.192 192.168.43.193

Selain itu, Anda dapat menentukan nama host yang valid alih-alih alamat IP seperti yang ditunjukkan di bawah ini.

sshd: server1.ostechnix.lan server2.ostechnx.lan

Atau, Anda dapat melakukan hal yang sama dengan mendefinisikan semua aturan (baik yang diizinkan maupun yang ditolak) di file /etc/hosts.allow itu sendiri.

Edit /etc/hosts.allow file dan tambahkan baris berikut.

sshd: 192.168.43.192 192.168.43.193
sshd: ALL: DENY

Anda tidak perlu menentukan aturan apa pun di /etc/hosts.deny berkas.

Sesuai aturan di atas, semua koneksi masuk akan ditolak untuk semua host kecuali dua host 192.168.43.192, 192.168.43.193.

Sekarang, coba SSH ke server Linux Anda dari semua host kecuali host di atas, Anda akan mendapatkan kesalahan berikut.

ssh_exchange_identification: read: Connection reset by peer

Anda dapat memverifikasi ini dari file log server Linux Anda seperti yang ditunjukkan di bawah ini.

$ cat /var/log/secure

Contoh keluaran:

Jun 16 19:40:17 server sshd[15782]: refused connect from 192.168.43.150 (192.168.43.150)

Demikian pula, Anda dapat menentukan aturan untuk layanan lain, misalnya vsftpd, di /etc/hosts.allow file seperti yang ditunjukkan di bawah ini.

vsftpd: 192.168.43.192 
vsftpd: ALL: DENY

Sekali lagi, Anda tidak perlu mendefinisikan aturan apa pun di /etc/hosts.deny mengajukan. Sesuai aturan di atas, host jarak jauh dengan alamat IP 192.168.43.192 diizinkan untuk mengakses server Linux melalui FTP. Semua host lain akan ditolak.

Juga, Anda dapat menentukan aturan akses dalam format yang berbeda di file /etc/hosts.allow seperti yang ditunjukkan di bawah ini.

sshd: 192.168.43.192				#Allow a single host for SSH service
sshd: 192.168.43.0/255.255.255.0		#Allow a /24 prefix for SSH
vsftpd: 192.168.43.192				#Allow a single host for FTP
vsftpd: 192.168.43.0/255.255.255.0	        #Allow a /24 prefix for FTP
vsftpd: server1.ostechnix.lan                   #Allow a single host for FTP

Izinkan semua host kecuali host tertentu

Anda dapat mengizinkan koneksi masuk dari semua host, tetapi tidak dari host tertentu. Katakanlah misalnya, untuk mengizinkan koneksi masuk dari semua host di 192.168.43 subnet, tetapi bukan dari host 192.168.43.192 , tambahkan baris berikut di /etc/hosts.allow berkas.

ALL: 192.168.43. EXCEPT 192.168.43.192

Dalam kasus di atas, Anda tidak perlu menambahkan aturan apa pun di file /etc/hosts.deny.

Atau Anda dapat menentukan nama host alih-alih alamat IP seperti yang ditunjukkan di bawah ini.

ALL: .ostechnix.lan EXCEPT badhost.ostechnix.lan

Untuk detail lebih lanjut, lihat halaman manual.

$ man tcpd

Baca Juga: 

  • Izinkan atau Tolak Akses SSH ke Pengguna atau Grup Tertentu di Linux
  • Batasi Jumlah Login SSH Per Pengguna/Grup/Sistem

Sekali lagi, jangan lupa, TCP Wrapper bukanlah pengganti firewall. Ini harus digunakan bersama dengan firewall dan alat keamanan lainnya.


Linux
  1. Pembungkus TCP

  2. Cara membuat kata sandi acak di linux menggunakan /dev/random

  3. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  1. Linux – Bagaimana Membatasi Akses Internet Untuk Pengguna Tertentu Di Lan Menggunakan Iptables Di Linux?

  2. Linux – Menggabungkan /usr/bin Dan /usr/sbin Ke /bin (gnu/linux)?

  3. Bagaimana /etc/motd Diperbarui?

  1. Mengapa < atau > diperlukan untuk menggunakan /dev/tcp

  2. Di file /etc/hosts/ saya di Linux/OSX, bagaimana cara melakukan subdomain wildcard?

  3. Perbedaan antara /etc/hosts dan /etc/resolv.conf