Cara Mengamankan Layanan Jaringan Menggunakan Pembungkus TCP Di Linux

Cara Mengamankan Layanan Jaringan Menggunakan Pembungkus TCP Di Linux

Dalam artikel ini kami akan menjelaskan apa itu pembungkus TCP dan bagaimana mengkonfigurasinya untuk membatasi akses ke layanan jaringan yang berjalan di server Linux. Namun, sebelum kita mulai, kita harus mengklarifikasi bahwa penggunaan pembungkus TCP tidak menghilangkan kebutuhan untuk firewall yang dikonfigurasi dengan benar.

Dalam hal ini, Anda dapat menganggap alat ini sebagai daftar kontrol akses berbasis host, dan bukan sebagai tindakan keamanan utama untuk sistem Anda. Dengan menggunakan pembungkus firewall dan TCP, alih -alih menyukai satu di atas yang lain, Anda akan memastikan bahwa server Anda tidak dibiarkan dengan satu titik kegagalan pun.

Memahami host.Izinkan dan host.membantah

Saat permintaan jaringan mencapai server Anda, pembungkus TCP menggunakan tuan rumah.mengizinkan Dan tuan rumah.membantah (dalam urutan itu) untuk menentukan apakah klien harus diizinkan menggunakan layanan yang diberikan.

Secara default, file -file ini kosong, semua dikomentari, atau tidak ada. Dengan demikian, semuanya diperbolehkan melalui lapisan pembungkus TCP dan sistem Anda dibiarkan bergantung pada firewall untuk perlindungan penuh. Karena ini tidak diinginkan, karena alasan kami menyatakan dalam pendahuluan, pastikan kedua file ada:

# ls -l /etc /hosts.Izinkan /etc /host.membantah 

Sintaks kedua file adalah sama:

 : [:::…] 

Di mana,

  1. jasa adalah daftar layanan yang dipisahkan koma yang harus diterapkan oleh aturan saat ini.
  2. Klien mewakili daftar nama host yang dipisahkan koma atau alamat IP yang dipengaruhi oleh aturan. Wildcard berikut diterima:
    1. SEMUA cocok dengan segalanya. Berlaku untuk klien dan layanan.
    2. LOKAL mencocokkan host tanpa periode di dalamnya Fqdn, seperti localhost.
    3. DIKETAHUI menunjukkan situasi di mana nama host, alamat host, atau pengguna diketahui.
    4. TIDAK DIKENAL adalah kebalikan dari DIKETAHUI.
    5. Paranoid menyebabkan koneksi akan dijatuhkan jika pencarian DNS terbalik (pertama -tama pada alamat IP untuk menentukan nama host, kemudian pada nama host untuk mendapatkan alamat IP) mengembalikan alamat yang berbeda dalam setiap kasus.
  3. Akhirnya, daftar opsional dari tindakan yang dipisahkan usus besar menunjukkan apa yang harus terjadi ketika aturan yang diberikan dipicu.

Anda mungkin ingin mengingat bahwa aturan yang memungkinkan akses ke layanan tertentu /etc/host.mengizinkan diutamakan daripada peraturan /etc/host.membantah melarangnya. Selain itu, jika dua aturan berlaku untuk layanan yang sama, hanya yang pertama yang akan diperhitungkan.

Sayangnya, tidak semua layanan jaringan mendukung penggunaan pembungkus TCP. Untuk menentukan apakah layanan yang diberikan mendukung mereka, lakukan:

# ldd/path/to/biner | grep libwrap 

Jika perintah di atas mengembalikan output, itu bisa dibungkus TCP. Contohnya adalah sshd Dan vsftpd, Seperti yang ditunjukkan di sini:

Temukan layanan yang didukung dalam pembungkus TCP

Cara menggunakan pembungkus TCP untuk membatasi akses ke layanan

Saat Anda mengedit /etc/host.mengizinkan Dan /etc/host.membantah, Pastikan Anda menambahkan garis baru dengan menekan Memasuki Setelah garis non-kosong terakhir.

Untuk mengizinkan akses SSH dan FTP hanya 192.168.0.102 Dan localhost dan menyangkal semua yang lain, tambahkan dua baris ini /etc/host.membantah:

sshd, vsftpd: semua: semua: semua 

dan baris berikut /etc/host.mengizinkan:

SSHD, VSFTPD: 192.168.0.102, lokal 
Pembungkus TCP - Host.menyangkal file
# # host.Tolak file ini berisi aturan akses yang digunakan untuk # menyangkal koneksi ke layanan jaringan yang menggunakan # pustaka tcp_wrappers atau yang telah # dimulai melalui xinetd yang diaktifkan tcp_wrappers. # # Aturan dalam file ini juga dapat diatur di # /etc /hosts.Izinkan dengan opsi 'tolak' sebagai gantinya. # # Lihat 'Man 5 HOSTS_OPTIONS' dan 'MAN 5 HOSTS_ACCESS' # Untuk informasi tentang sintaks aturan. # Lihat 'Man TCPD' untuk informasi di tcp_wrappers # sshd, vsftpd: semua: semua: semua 
Pembungkus TCP - Host.Izinkan file
# # host.Izinkan file ini berisi aturan akses yang digunakan untuk # mengizinkan atau menolak koneksi ke layanan jaringan yang # baik menggunakan pustaka tcp_wrappers atau yang telah dimulai melalui xinetd yang diaktifkan oleh tcp_wrappers. # # Lihat 'Man 5 HOSTS_OPTIONS' dan 'MAN 5 HOSTS_ACCESS' # Untuk informasi tentang sintaks aturan. # Lihat 'Man TCPD' untuk informasi di tcp_wrappers # SSHD, VSFTPD: 192.168.0.102, lokal 

Perubahan ini terjadi segera tanpa perlu restart.

Pada gambar berikut Anda dapat melihat efek menghapus kata tersebut LOKAL Dari baris terakhir: server FTP tidak tersedia untuk localhost. Setelah kami menambahkan wildcard kembali, layanan tersedia lagi.

Verifikasi akses FTP

Untuk mengizinkan semua layanan menjadi host di mana namanya berisi contoh.com, Tambahkan baris ini tuan rumah.mengizinkan:

SEMUA : .contoh.com 

dan untuk menolak akses ke VSFTPD ke mesin di 10.0.1.0/24, Tambahkan baris ini tuan rumah.membantah:

VSFTPD: 10.0.1. 

Pada dua contoh terakhir, perhatikan dot Di awal dan akhir daftar klien. Itu digunakan untuk menunjukkan "semua host dan / atau klien di mana nama atau IP berisi string itu".

Apakah artikel ini bermanfaat bagi Anda? Apakah Anda memiliki pertanyaan atau komentar? Jangan ragu untuk memberi kami catatan menggunakan formulir komentar di bawah ini.