Menyiapkan firewall yang bagus adalah langkah penting untuk mengamankan sistem operasi modern apa pun. Sebagian besar distribusi Linux dikirimkan dengan beberapa alat firewall berbeda yang dapat kita gunakan untuk mengonfigurasi firewall kita. Dalam panduan ini, kita akan membahas firewall iptables.
Iptables adalah firewall standar yang disertakan dalam sebagian besar distribusi Linux secara default (varian modern yang disebut nftables akan mulai menggantinya). Ini sebenarnya ujung depan dari kait netfilter tingkat kernel yang dapat memanipulasi tumpukan jaringan Linux. Ini bekerja dengan mencocokkan setiap paket yang melintasi antarmuka jaringan terhadap seperangkat aturan untuk memutuskan apa yang harus dilakukan.
Pertama, Anda harus menyadari bahwa perintah iptables harus dijalankan dengan hak akses root. Ini berarti Anda harus masuk sebagai root, menggunakan
su
atau sudo -i
untuk
mendapatkan shell root, atau mendahului semua perintah sudo
. Kami akan
menggunakan sudo
dalam panduan ini
karena itu adalah metode yang disukai pada sistem Ubuntu.Titik awal yang baik adalah untuk membuat daftar aturan saat ini yang dikonfigurasi untuk iptables. Anda dapat melakukannya dengan
-L
bendera:Kita dapat melihat output dalam format yang mencerminkan perintah yang diperlukan untuk mengaktifkan setiap aturan dan kebijakan dengan menggunakan
-S
flag:sudo iptables
diikuti
oleh setiap baris dalam output. (Bergantung pada konfigurasi, mungkin
sebenarnya sedikit lebih rumit jika kita terhubung jarak jauh sehingga kita
tidak melembagakan kebijakan penurunan standar sebelum aturan dibuat untuk
menangkap dan mengizinkan koneksi kita saat ini.)Jika Anda lakukan memiliki aturan di tempat dan ingin memo mereka dan mulai dari awal, Anda dapat menyiram aturan saat ini dengan mengetik:
Sekali lagi, kebijakan default penting di sini, karena, sementara semua aturan dihapus dari rantai Anda, kebijakan default tidak akan berubah dengan perintah ini. Itu berarti bahwa jika Anda terhubung dari jarak jauh, Anda harus memastikan bahwa kebijakan default pada rantai INPUT dan OUTPUT Anda disetel ke ACCEPT sebelum menyiram aturan Anda. Anda dapat melakukan ini dengan mengetik:
Anda kemudian dapat mengubah kebijakan penurunan standar kembali ke DROP setelah Anda membuat aturan yang secara eksplisit mengizinkan koneksi Anda. Kita akan membahas bagaimana melakukannya sebentar lagi.
Kami akan mulai membangun kebijakan firewall kami. Seperti yang kami katakan di atas, kami akan bekerja dengan rantai INPUT karena itu adalah saluran yang akan dikirim lalu lintas masuk. Kita akan mulai dengan aturan yang telah kita bicarakan sedikit di atas: aturan yang secara eksplisit menerima koneksi SSH Anda saat ini.
Aturan lengkap yang kita butuhkan adalah ini:
Kita dapat melihat perubahan jika kita mendaftar aturan:
Kami ingin menjaga dua port tetap terbuka secara spesifik. Kami ingin tetap membuka port SSH kami (kami akan menganggap dalam panduan ini bahwa ini adalah default 22. Jika Anda telah mengubah ini dalam konfigurasi SSH Anda, ubah nilainya di sini). Kami juga akan menganggap bahwa komputer ini menjalankan server web pada port default 80. Jika ini bukan masalahnya, Anda tidak perlu menambahkan aturan itu.
Dua baris yang akan kita gunakan untuk menambahkan aturan ini adalah:
Jadi jika satu layanan ingin berkomunikasi dengan layanan lain yang mendengarkan koneksi pada port 4555, ia dapat mengirim paket ke port 4555 dari perangkat loopback. Kami ingin jenis perilaku ini diizinkan, karena sangat penting untuk operasi yang benar dari banyak program.
Aturan yang perlu kita tambahkan adalah ini:
Untuk melihat aturan kami saat ini, kami harus menggunakan
-S
bendera. Ini karena
-L
flag tidak
menyertakan beberapa informasi, seperti antarmuka yang terikat aturan, yang
merupakan bagian penting dari aturan yang baru saja kita tambahkan:Ada dua cara berbeda yang dapat kita lakukan ini, dengan beberapa perbedaan yang cukup penting.
Cara pertama yang dapat kami lakukan adalah memodifikasi kebijakan default rantai INPUT kami. Kita dapat melakukan ini dengan mengetik:
Ini akan menangkap setiap paket yang jatuh melalui rantai INPUT kami, dan menjatuhkannya. Inilah yang kami sebut kebijakan penurunan standar. Salah satu implikasi dari jenis desain ini adalah bahwa ia jatuh kembali pada menjatuhkan paket jika aturannya memerah.
Jika Anda mengubah kebijakan default untuk rantai INPUT di atas, Anda dapat mengaturnya kembali untuk mengikuti dengan mengetik:
Sekarang, Anda bisa menambahkan aturan ke bagian bawah rantai yang akan menjatuhkan paket yang tersisa:
Hasil dalam kondisi operasi normal persis sama dengan kebijakan penurunan standar. Aturan ini berfungsi dengan mencocokkan setiap paket yang tersisa yang mencapainya. Ini mencegah suatu paket agar tidak terus- menerus menjatuhkan seluruh rantai untuk mencapai kebijakan default.
Tentu saja, ini juga berarti bahwa aturan apa pun bahwa aturan tambahan apa pun yang ingin Anda tambahkan ke akhir rantai harus ditambahkan sebelum aturan penurunan. Anda dapat melakukan ini dengan menghapus sementara aturan drop:
Atau, Anda dapat memasukkan aturan yang Anda butuhkan di akhir rantai (tetapi sebelum jatuhkan) dengan menentukan nomor baris. Untuk menyisipkan aturan di nomor baris 4, Anda bisa mengetik:
Jika Anda mengalami kesulitan mengetahui nomor baris mana setiap aturan, Anda dapat memberi tahu iptables untuk memberi nomor aturan dengan mengetik:
Secara default, aturan yang Anda tambahkan ke iptables bersifat sementara. Ini berarti bahwa ketika Anda me-restart server Anda, aturan iptables Anda akan hilang.
Ada beberapa cara untuk melakukan ini, tetapi cara termudah adalah dengan
iptables-persistent
paket.
Anda dapat mengunduh ini dari repositori default Ubuntu:Selama instalasi, Anda akan ditanya apakah Anda ingin menyimpan aturan Anda saat ini untuk dimuat secara otomatis. Jika Anda senang dengan konfigurasi Anda saat ini (dan Anda telah menguji kemampuan Anda untuk membuat koneksi SSH independen, Anda dapat memilih untuk menyimpan aturan Anda saat ini.
Setelah instalasi selesai, Anda akan memiliki layanan baru yang disebut
iptables-persistent
yang
dikonfigurasi untuk dijalankan saat boot. Layanan ini akan memuat dalam aturan
Anda dan menerapkannya ketika server dimulai.Jika Anda pernah memperbarui firewall Anda dan ingin mempertahankan perubahan, Anda harus menyimpan aturan iptables Anda agar tetap ada.
Simpan aturan firewall Anda dengan perintah ini:
Anda sekarang harus memiliki titik awal yang baik untuk mengembangkan firewall yang memenuhi kebutuhan Anda. Ada banyak utilitas firewall lain dan beberapa yang mungkin lebih mudah, tetapi
iptables
merupakan alat pembelajaran yang baik, jika
hanya karena memperlihatkan beberapa struktur netfilter yang mendasarinya dan
karena ia hadir dalam begitu banyak sistem.
Tidak ada komentar:
Posting Komentar