![Cara Mengaktifkan Otentikasi Google untuk Penarikan](/f/021c37478296b3a60d1dfeaf321d9f82.jpg?width=100&height=100)
Memperkenalkan Program Sertifikasi Linux Foundation
Anda akan mengingat dari Bagian 1 – Tentang Iptables ini LFCE (Insinyur Bersertifikat Linux Foundation) seri yang kami berikan deskripsi dasar tentang apa itu firewall: mekanisme untuk mengelola paket yang masuk dan keluar dari jaringan. Yang kami maksud dengan "kelola" adalah:
berdasarkan kriteria yang telah ditentukan.
Pada artikel ini kita akan membahas bagaimana menerapkan pemfilteran paket dasar dan cara mengkonfigurasi firewall dengan iptables, sebuah frontend ke netfilter, yang merupakan modul kernel asli yang digunakan untuk firewall.
Harap dicatat bahwa firewall adalah subjek yang luas dan artikel ini tidak dimaksudkan sebagai panduan komprehensif untuk memahami semua yang perlu diketahui tentang itu, melainkan sebagai titik awal untuk studi yang lebih dalam tentang ini tema. Namun, kami akan meninjau kembali subjek di
Bagian 10 dari seri ini ketika kami menjelajahi beberapa kasus penggunaan khusus firewall di Linux.Anda dapat menganggap firewall sebagai bandara internasional tempat pesawat penumpang datang dan pergi hampir 24/7. Berdasarkan beberapa syarat, seperti validitas paspor seseorang, atau negaranya asal (untuk menyebutkan beberapa contoh) dia mungkin, atau mungkin tidak, diizinkan masuk atau keluar dari tempat tertentu negara.
Pada saat yang sama, petugas bandara dapat menginstruksikan orang untuk berpindah dari satu tempat bandara ke tempat lain jika diperlukan, misalnya ketika mereka harus melalui Layanan Pabean.
Kami mungkin menemukan analogi bandara berguna selama sisa tutorial ini. Ingatlah hubungan berikut saat kita melanjutkan:
Pada level rendah, kernel itu sendirilah yang “memutuskan”apa yang harus dilakukan dengan paket berdasarkan aturan yang dikelompokkan dalam rantai, atau kalimat. Rantai ini menentukan tindakan apa yang harus diambil ketika sebuah paket cocok dengan kriteria yang ditentukan oleh mereka.
Tindakan pertama yang diambil oleh iptables akan terdiri dari memutuskan apa yang harus dilakukan dengan sebuah paket:
Kalau-kalau Anda bertanya-tanya mengapa alat ini disebut iptables, itu karena rantai ini diatur dalam tabel, dengan meja filter menjadi yang paling dikenal dan yang digunakan untuk mengimplementasikan pemfilteran paket dengan tiga rantai defaultnya:
1. NS MEMASUKKAN chain menangani paket yang masuk ke jaringan, yang ditujukan untuk program lokal.
2. NS KELUARAN chain digunakan untuk menganalisis paket yang berasal dari jaringan lokal, yang akan dikirim ke luar.
3. NS MAJU chain memproses paket yang harus diteruskan ke tujuan lain (seperti dalam kasus router).
Untuk masing-masing rantai ini ada kebijakan default, yang menentukan apa yang harus dilakukan secara default ketika paket tidak cocok dengan aturan apa pun dalam rantai. Anda dapat melihat aturan yang dibuat untuk setiap rantai dan kebijakan default dengan menjalankan perintah berikut:
# iptables -L.
Kebijakan yang tersedia adalah sebagai berikut:
Ketika memutuskan kebijakan mana yang akan Anda terapkan, Anda perlu mempertimbangkan pro dan kontra dari setiap pendekatan seperti yang dijelaskan di atas – perhatikan bahwa tidak ada solusi satu ukuran untuk semua.
Untuk menambahkan aturan ke firewall, jalankan perintah iptables sebagai berikut:
# iptables -Sebuah kriteria chain_name -j target.
di mana,
[--protokol | -p] protokol: menentukan protokol yang terlibat dalam aturan. [--sumber-port | -olahraga] pelabuhan:[pelabuhan]: mendefinisikan port (atau jangkauan port) tempat paket berasal. [--pelabuhan tujuan | -dport] port: [port]: mendefinisikan port (atau jangkauan port) yang menjadi tujuan paket. [--sumber | -s] alamat[/masker]: mewakili alamat sumber atau jaringan/masker. [--tujuan | -d] alamat[/masker]: mewakili alamat tujuan atau jaringan/masker. [--negara] negara (didahului oleh -M state): mengelola paket tergantung pada apakah paket tersebut merupakan bagian dari koneksi state, di mana state dapat berupa NEW, ESTABLISHED, RELATED, atau INVALID. [--dalam-antarmuka | -i] antarmuka: menentukan antarmuka input paket. [--out-interface | -o] antarmuka: antarmuka keluaran. [--lompat | -j] sasaran: apa yang harus dilakukan ketika paket cocok dengan aturan.
Mari kita rekatkan semua itu dalam 3 contoh klasik menggunakan lingkungan pengujian berikut untuk dua yang pertama:
Firewall: Debian Wheezy 7.5 Nama host: dev2.gabrielcanepa.com. Alamat IP: 192.168.0.15.
Sumber: CentOS 7 Nama host: dev1.gabrielcanepa.com. Alamat IP: 192.168.0.17.
Dan ini untuk contoh terakhir
Server dan firewall NFSv4: Debian Wheezy 7.5 Nama host: debian. Alamat IP: 192.168.0.10.
Sumber: Debian Wheezy 7.5 Nama host: dev2.gabrielcanepa.com. Alamat IP: 192.168.0.15.
Kami akan mendefinisikan MENJATUHKAN kebijakan terlebih dahulu untuk memasukkan ping ke firewall kami. Artinya, paket icmp akan dijatuhkan secara diam-diam.
# ping -c 3 192.168.0.15.
# iptables -A INPUT --protocol icmp --in-interface eth0 -j DROP.
Sebelum melanjutkan dengan MENOLAK bagian, kami akan menghapus semua aturan dari rantai INPUT untuk memastikan paket kami akan diuji oleh aturan baru ini:
# iptables -F INPUT. # iptables -A INPUT --protocol icmp --in-interface eth0 -j REJECT.
# ping -c 3 192.168.0.15.
Kami akan berurusan dengan KELUARAN rantai saat kami menangani lalu lintas keluar:
# iptables -A OUTPUT --protocol tcp --destination-port 22 --out-interface eth0 --jump REJECT.
Jalankan perintah berikut di server / firewall NFSv4 untuk menutup port 2049 dan 111 untuk semua jenis lalu lintas:
# iptables -F. # iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 2049 -j REJECT. # iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 111 -j REJECT.
Sekarang mari kita buka port tersebut dan lihat apa yang terjadi.
# iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 111 -j TERIMA. # iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 2049 -j TERIMA.
Seperti yang Anda lihat, kami dapat memasang bagian NFSv4 setelah membuka lalu lintas.
Dalam contoh sebelumnya, kami menunjukkan cara menambahkan aturan ke MEMASUKKAN dan KELUARAN rantai. Jika kita ingin memasukkannya sebagai gantinya pada posisi yang telah ditentukan, kita harus menggunakan -SAYA (huruf besar i) alihkan.
Anda perlu ingat bahwa aturan akan dievaluasi satu demi satu, dan evaluasi berhenti (atau melompat) ketika a MENJATUHKAN atau MENERIMA kebijakan cocok. Karena alasan itu, Anda mungkin merasa perlu untuk menaikkan atau menurunkan aturan dalam daftar rantai sesuai kebutuhan.
Kami akan menggunakan contoh sepele untuk menunjukkan ini:
Mari kita tempatkan aturan berikut,
# iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT.
pada posisi 2) dalam rantai INPUT (sehingga memindahkan #2 sebelumnya sebagai #3)
Menggunakan pengaturan di atas, lalu lintas akan diperiksa untuk melihat apakah itu diarahkan ke port 80 sebelum memeriksa port 2049.
Atau, Anda dapat menghapus aturan dan mengubah target aturan yang tersisa menjadi MENOLAK (menggunakan -R mengalihkan):
# iptables -D INPUT 1. # iptables -nL -v --line-numbers. # iptables -R INPUT 2 -i eth0 -s 0/0 -p tcp --dport 2049 -j REJECT. # iptables -R INPUT 1 -p tcp --dport 80 -j REJECT.
Terakhir, namun tidak kalah pentingnya, Anda harus ingat bahwa agar aturan firewall tetap ada, Anda harus menyimpannya ke file dan kemudian pulihkan secara otomatis saat boot (menggunakan metode pilihan pilihan Anda atau yang tersedia untuk Anda distribusi).
Menyimpan aturan firewall:
# iptables-save > /etc/iptables/rules.v4 [Di Ubuntu] # iptables-save > /etc/sysconfig/iptables [Pada CentOS / OpenSUSE]
Memulihkan aturan:
# iptables-restore < /etc/iptables/rules.v4 [Di Ubuntu] # iptables-restore < /etc/sysconfig/iptables [Pada CentOS / OpenSUSE]
Di sini kita dapat melihat prosedur serupa (menyimpan dan memulihkan aturan firewall dengan tangan) menggunakan file dummy bernama iptables.dump bukan yang default seperti yang ditunjukkan di atas.
# iptables-save > iptables.dump.
Untuk membuat perubahan ini tetap ada di seluruh boot:
Ubuntu: Instal iptables-persisten paket, yang akan memuat aturan yang disimpan di /etc/iptables/rules.v4 mengajukan.
# apt-get install iptables-persistent.
CentOS: Tambahkan 2 baris berikut ke /etc/sysconfig/iptables-config mengajukan.
IPTABLES_SAVE_ON_STOP="ya" IPTABLES_SAVE_ON_RESTART="ya"
BukaSUSE: Daftar port yang diizinkan, protokol, alamat, dan sebagainya (dipisahkan dengan koma) di /etc/sysconfig/SuSEfirewall2.
Untuk informasi lebih lanjut, lihat file itu sendiri, yang banyak dikomentari.
Contoh yang diberikan dalam artikel ini, meskipun tidak mencakup semua lonceng dan peluit dari iptables, melayani tujuan menggambarkan cara mengaktifkan dan menonaktifkan lalu lintas masuk atau keluar lalu lintas.
Bagi Anda yang penggemar firewall, perlu diingat bahwa kami akan meninjau kembali topik ini dengan aplikasi yang lebih spesifik di Bagian 10 ini LFCE seri.
Jangan ragu untuk memberi tahu saya jika Anda memiliki pertanyaan atau komentar.