Panduan ini akan membincangkan cara mengkonfigurasi dan menggunakan peraturan iptables pada sistem Ubuntu untuk mengamankan rangkaian anda. Sama ada anda pengguna Linux pemula atau pentadbir sistem berpengalaman, dari panduan ini, dan dalam satu atau lain cara, anda akan mempelajari sesuatu yang berguna mengenai iptables.
Iptables sudah terpasang di Ubuntu dan sebilangan besar pengedaran berasaskan Debian. Ubuntu juga membungkus firewall GUFW, alternatif grafik yang boleh anda gunakan untuk bekerja dengan iptables.
NOTA: Untuk menggunakan dan mengkonfigurasi iptables, anda memerlukan hak istimewa sudo pada sistem anda. Anda boleh mengetahui lebih lanjut mengenai sudo dari tutorial berikut.
Sekarang anda tahu apa itu Iptables, mari kita selami!
Cara Menggunakan iptables untuk Mengurus Trafik IPv4?
Untuk menggunakan Iptables untuk rangkaian dan pengurusan trafik IPv4, anda perlu memahami perkara berikut:
Perintah Iptables
Iptables menawarkan pilihan pilihan yang membolehkan anda menyesuaikan dan menyesuaikan peraturan iptables anda. Mari kita bincangkan beberapa parameter ini dan lihat apa yang dilakukannya.
NOTA: Anda boleh mengkonfigurasi sekumpulan peraturan yang menguruskan subset tertentu, yang dikenali sebagai rantai iptables.
Parameter Iptables
Sebelum kita mula membuat dan mengkonfigurasi peraturan iptables, marilah kita terlebih dahulu memahami asas-asas iptables, seperti sintaks umum dan argumen lalai.
Pertimbangkan arahan di bawah:
sudo iptables -I INPUT -s 192.168.0.24-j HABISPerintah di atas memberitahu iptables untuk membuat peraturan dalam rantai. Peraturan menjatuhkan semua paket dari alamat IP 192.168.0.24.
Mari kita periksa perintah, baris demi baris, untuk memahaminya dengan lebih baik.
- Perintah pertama iptables memanggil utiliti baris perintah iptables.
- Seterusnya ialah argumen -I digunakan untuk penyisipan. Argumen penyisipan menambah peraturan pada awal rantai iptables dan dengan itu diberi keutamaan yang lebih tinggi. Untuk menambahkan peraturan pada nombor tertentu dalam rantai, gunakan argumen -I diikuti dengan nombor di mana peraturan tersebut harus diberikan.
- Argumen -s membantu menentukan sumbernya. Oleh itu, kami menggunakan argumen -s diikuti dengan alamat IP.
- Parameter -j dengan iptables menentukan lompatan ke sasaran tertentu. Pilihan ini menetapkan tindakan yang akan dilakukan oleh Iptables setelah ada paket yang sepadan. Iptables menawarkan empat sasaran utama secara lalai, antaranya: MENERIMA, MENGHILANG, MENGEJUTKAN, dan MENGHORMATI.
Iptables menawarkan pilihan parameter yang boleh anda gunakan untuk mengkonfigurasi pelbagai peraturan. Pelbagai parameter yang dapat anda gunakan untuk mengkonfigurasi peraturan iptables meliputi:
Parameter peraturan Iptables | Penerangan |
---|---|
-s-sumber | Tentukan sumbernya, yang dapat berupa alamat, nama host, atau nama rangkaian. |
-p -protokol | Menentukan protokol sambungan; contohnya, TCP, UDP, dll. |
-d-penentuan | Menentukan tujuan, yang boleh berupa alamat, nama rangkaian, atau nama host. |
-j -jump | Menetapkan tindakan yang akan dilakukan oleh iptables setelah menemui sebungkus. |
-antara muka o-out | Menetapkan antara muka di mana iptable menghantar paket. |
-antara muka i -in | Menetapkan antara muka yang digunakan untuk membuat paket rangkaian. |
-c -set-pembilang | Membolehkan pentadbir menetapkan bait dan pembilang paket untuk peraturan yang ditentukan. |
-rantaian g -goto | Parameter menetapkan bahawa pemprosesan harus diteruskan dalam rantai set pengguna setelah kembali. |
-f -fragmen | Memberitahu iptables untuk menerapkan peraturan hanya pada pecahan kedua dan seterusnya dari pecahan paket. |
Pilihan Iptables
Perintah iptables menyokong pelbagai pilihan. Beberapa perkara biasa termasuk:
Pilihan | Penerangan |
---|---|
-A -menambah | Menambah peraturan di hujung rantai yang ditentukan |
-D-hapus | Mengeluarkan peraturan dari rantai yang ditentukan |
-F -flush | Membuang semua peraturan, satu demi satu |
-L-senarai | Menunjukkan semua peraturan dalam rantai yang ditentukan |
-Saya-masukkan | Memasukkan peraturan ke dalam rantai yang ditentukan (diteruskan sebagai nombor, apabila tidak ada nombor yang ditentukan; peraturan akan ditambahkan di bahagian atas) |
-C-semak | Pertanyaan untuk pemadanan peraturan; keperluan dalam peraturan yang ditentukan |
-v -verbose | Memaparkan lebih banyak maklumat apabila digunakan dengan parameter -L |
-N-rantai baru | Menambah rangkaian pengguna baru |
-X -hapus-rantai | Mengeluarkan rantai yang ditentukan pengguna tertentu |
Jadual Iptables
Kernel Linux mempunyai jadual lalai yang menempatkan sekumpulan peraturan yang berkaitan. Jadual lalai ini mempunyai sekumpulan rantai lalai, tetapi pengguna dapat menyesuaikan aturan dengan menambahkan aturan yang ditentukan pengguna.
NOTA: Jadual lalai akan sangat bergantung pada konfigurasi Kernel anda dan modul yang dipasang.
Berikut adalah jadual iptables lalai:
Jadual Penapis
Jadual penapis adalah jadual lalai yang mengandungi rantai yang digunakan untuk penyaringan paket rangkaian. Beberapa rantai lalai dalam jadual ini termasuk:
Rantai | Penerangan |
---|---|
Masukan | Iptables menggunakan rantai ini untuk sebarang paket masuk ke sistem, i.e., paket pergi ke soket rangkaian tempatan. |
Pengeluaran | Iptables menggunakan rantai output untuk paket yang dihasilkan secara tempatan, i.e., paket keluar dari sistem. |
Ke hadapan | Rantai ini adalah apa yang digunakan oleh Iptables untuk paket yang diarahkan atau diteruskan melalui sistem. |
2: Jadual NAT
NAT atau Network Address Table adalah peranti penghala yang digunakan untuk mengubah sumber dan menargetkan alamat IP dalam paket rangkaian. Penggunaan utama jadual NAT adalah menghubungkan dua rangkaian dalam rangkaian alamat peribadi dengan rangkaian awam.
NAT dikembangkan untuk menyokong penyamaran alamat IP sebenar, yang memungkinkan alamat IP peribadi dari menjangkau rangkaian luar. Ini membantu melindungi perincian mengenai rangkaian dalaman daripada didedahkan di rangkaian awam.
Jadual NAT digunakan apabila paket memulakan sambungan baru.
Iptables mempunyai jadual lalai untuk pengalamatan NAT. Jadual ini mempunyai tiga rantai utama:
Rantai | Penerangan |
---|---|
PENYEDIAAN | Membolehkan pengubahsuaian maklumat paket sebelum tiba di rantai INPUT-digunakan untuk paket masuk |
PENGELUARAN | Dicadangkan untuk paket yang dibuat secara tempatan, i.e., sebelum routing rangkaian berlaku |
POSTROUTING | Membolehkan pengubahsuaian paket keluar- Paket meninggalkan rantai OUTPUT |
Gambar rajah di bawah menunjukkan gambaran keseluruhan tahap tinggi proses ini.
Gunakan arahan di bawah untuk melihat jadual Routing NAT anda.
iptables -t nat -n -v -L3: Jadual Mangle
Meja mangle terutama digunakan untuk pengubahsuaian khas paket. Secara sederhana, ia digunakan untuk mengubah tajuk IP paket rangkaian. Pengubahsuaian paket boleh merangkumi mengubah nilai TTL paket, mengubah jaringan yang sah untuk paket, dll.
Jadual mengandungi rantai lalai berikut:
Rantai | Penerangan |
---|---|
PENYEDIAAN | Ditempah untuk paket masuk |
POSTROUTING | Digunakan untuk paket keluar |
INPUT | Digunakan untuk paket yang masuk terus ke pelayan |
PENGELUARAN | Digunakan untuk paket tempatan |
Ke hadapan | Dicadangkan untuk paket yang disalurkan melalui sistem |
4: Jadual Mentah
Tujuan utama jadual mentah adalah untuk mengkonfigurasi pengecualian untuk paket yang tidak dimaksudkan untuk dikendalikan oleh sistem penjejakan. Jadual mentah menetapkan tanda NOTRACK pada paket, mendorong ciri conntrack untuk mengabaikan paket.
Conntrack adalah fitur jaringan kernel Linux yang memungkinkan kernel Linux untuk melacak semua sambungan jaringan, memungkinkan kernel untuk mengidentifikasi paket yang membentuk aliran jaringan.
Meja mentah mempunyai dua rantai utama:
Rantai | Penerangan |
---|---|
PENYEDIAAN | Dicadangkan untuk paket yang diterima oleh antara muka rangkaian |
PENGELUARAN | Dipesan untuk paket yang dimulakan oleh proses tempatan |
5: Jadual Keselamatan
Penggunaan utama jadual ini adalah menetapkan mekanisme keselamatan Peningkatan Keselamatan dalaman untuk Linux (SELinux) yang menandakan pada paket. Tanda keselamatan boleh digunakan setiap sambungan atau paket.
Ini digunakan untuk peraturan Pengawalan Akses Mandatori dan merupakan tabel kedua yang diakses setelah tabel saringan. Ia menawarkan rantai lalai berikut:
Rantai | Penerangan |
---|---|
INPUT | Dicadangkan untuk paket masuk ke sistem |
PENGELUARAN | Digunakan untuk paket buatan tempatan |
KE DEPAN | Digunakan untuk paket yang disalurkan melalui sistem |
Setelah melihat Iptables lalai, mari kita melangkah lebih jauh dan membincangkan cara bekerja dengan peraturan iptables.
Cara Bekerja dengan Peraturan iptables?
Peraturan Iptables diterapkan dalam urutan menaik. Ini bermaksud bahawa peraturan pertama dalam kumpulan tertentu diterapkan terlebih dahulu, diikuti oleh aturan kedua, kemudian ketiga, dan seterusnya, hingga yang terakhir.
Oleh kerana fungsi ini, iptables menghalang anda untuk menambah peraturan dalam satu set menggunakan parameter -A; anda mesti menggunakan -I, diikuti dengan nombor atau dengan mengosongkannya untuk ditambahkan ke bahagian atas senarai.
Memaparkan Iptables
Untuk melihat iptables anda, gunakan perintah iptables -L -v untuk IPv4 dan ip6tables -L -v untuk IPv6.
Memasukkan Peraturan
Untuk memasukkan peraturan dalam satu set, anda mesti meletakkannya dalam urutan yang tepat, dengan mematuhi peraturan yang digunakan oleh rantai yang sama. Anda boleh melihat senarai peraturan iptables anda dengan arahan seperti yang dibincangkan di atas:
sudo iptables -L -vSebagai contoh, untuk memasukkan peraturan yang membenarkan sambungan masuk ke port 9001 melalui TCP, kita perlu menentukan nombor peraturan ke rantai INPUT yang mematuhi peraturan lalu lintas untuk web.
sudo iptables -I INPUT 1 -p TCP --dport 9001 -m state --state BARU -j MENERIMASebaik sahaja anda melihat iptables semasa, anda akan melihat peraturan baru dalam set.
sudo iptables -L -v
Mengganti Peraturan
Fungsi ganti berfungsi sama untuk memasukkan, namun, ia menggunakan perintah iptables -R. Sebagai contoh, untuk mengubah peraturan di atas dan menetapkan port 9001 untuk ditolak, kami:
sudo iptables -R INPUT 1 -p TCP --dport 9001 -m state --state BARU -j REJECTMemadamkan Peraturan
Untuk memadam peraturan, kami memberikan nombor peraturan. Sebagai contoh, untuk menghapus peraturan di atas, kita dapat menentukan sebagai:
sudo iptables -D INPUT 1Di kebanyakan distro Linux, iptables kosong untuk IPv4 dan IPv6. Oleh itu, jika anda belum menambahkan peraturan baru, anda akan mendapat output yang serupa dengan yang ditunjukkan di bawah. Itu berisiko kerana ini bermaksud sistem membenarkan semua lalu lintas masuk, keluar, dan diarahkan.
Mari kita ketahui cara mengkonfigurasi iptables:
Cara Mengkonfigurasi iptables?
Terdapat banyak cara untuk mengkonfigurasi peraturan iptables. Bahagian ini menggunakan contoh untuk menunjukkan kepada anda cara menetapkan peraturan menggunakan alamat dan port IP.
Menyekat dan Membolehkan Lalu Lintas oleh Pelabuhan
Anda boleh menggunakan port tertentu untuk menyekat atau membenarkan semua lalu lintas di antara muka rangkaian. Pertimbangkan contoh berikut:
sudo iptables -A INPUT -j ACCEPT -p TCP -destination-port 1001 -i wlan0Perintah di atas membenarkan lalu lintas di port 1001 TCP pada antara muka wlan0.
sudo iptables -A INPUT -j DROP -p TCP -destination-port 1001 -i wlan0Perintah ini melakukan kebalikan dari perintah di atas kerana ia menyekat semua lalu lintas di port 1001 di wlan0.
Berikut adalah pemeriksaan rapi arahan:
- Argumen pertama (-A) menambah peraturan baru di hujung rantai jadual.
- Argumen INPUT menambahkan peraturan yang ditentukan pada jadual.
- Argumen DROP menetapkan tindakan yang akan dilakukan sebagai ACCEPT dan DROP, masing-masing. Ini bermaksud bahawa setelah satu paket dipadankan, ia akan dijatuhkan.
- -p menentukan protokol seperti TCP dan membenarkan lalu lintas pada protokol lain lulus.
- -destinasi-pelabuhan menetapkan peraturan untuk menerima atau menurunkan semua lalu lintas yang ditujukan untuk pelabuhan 1001.
- -i
memberitahu iptables untuk menerapkan peraturan untuk lalu lintas yang datang di antara muka wlan0.
NOTA: Iptables tidak memahami alias antara muka rangkaian. Oleh itu, dalam sistem dengan lebih daripada satu antara muka Maya, anda perlu menentukan alamat tujuan secara manual dan eksplisit.
Sebagai contoh:
sudo iptables -A INPUT -j DROP -p TCP -destination-port 1001 -i wlan0 -d 192.168.0.24Alamat IP senarai putih & senarai hitam
Anda boleh membuat peraturan firewall menggunakan iptables. Salah satu contohnya adalah dengan menghentikan semua lalu lintas dan membenarkan lalu lintas rangkaian dari alamat IP eksplisit sahaja.
Contoh:
iptables -SATU INPUT -m -state DILAYAN, BERKAITAN -j MENERIMAiptables -A INPUT -i komen lo -m --komentar "Benarkan sambungan loopback" -j MENERIMA
iptables -A INPUT -p icmp -m komen --komentar "Benarkan Ping berfungsi seperti yang diharapkan" -j
TERIMA
iptables -A INPUT -s 192.168.0.1/24 -j TERIMAiptables -A INPUT -s 192.168.0.0 -j TERIMA
iptables -P INPUT DROP
iptables -P KEHADIRAN HUJUNG
Baris pertama menetapkan peraturan untuk membenarkan semua alamat IP sumber di 192.168.0.Subnet 1/24. Anda juga boleh menggunakan alamat IP CIDR atau individu. Dalam perintah berikut, kami menetapkan peraturan untuk membolehkan semua lalu lintas disambungkan ke sambungan yang ada. Dalam arahan terakhir, kami menetapkan polisi untuk INPUT dan FORWARD untuk menjatuhkan semua.
Menggunakan iptables di IPv6
Perintah Iptables hanya berfungsi di IPv4. Untuk menggunakan iptables di IPv6, anda harus menggunakan perintah ip6tables. Ip6tables menggunakan jadual mentah, penapis, keselamatan, dan mangle. Sintaks umum untuk ip6tables mirip dengan iptables, dan ia juga menyokong pilihan iptables yang sepadan seperti append, delete, dll.
Pertimbangkan untuk menggunakan halaman manual ip6tables untuk maklumat lebih lanjut.
Contoh Set Peraturan iptables Untuk Keselamatan Rangkaian
Membuat peraturan firewall yang sesuai bergantung terutamanya pada perkhidmatan yang dijalankan pada sistem dan port yang digunakan. Walau bagaimanapun, berikut adalah beberapa peraturan konfigurasi rangkaian asas yang boleh anda gunakan untuk mengamankan sistem anda:
1: Benarkan lalu lintas antara muka Loopback dan tolak semua loopback yang berasal dari antara muka lain
iptables -A INPUT -i lo -j MENERIMA (Anda juga boleh menggunakan ip6tables)iptables -PASARAN ! -i-127.0.0.0 -j REJECT (ip6tabel juga berlaku)
2: Menolak semua permintaan ping
iptables -A INPUT -p icmp -m state --state BARU --icmp-type 8 -j REJECT3: Benarkan sambungan SSH
iptables -A INPUT -p tcp --dport 22 -m state --state BARU -j MENERIMAIni adalah contoh arahan yang boleh anda gunakan untuk mengamankan sistem anda. Walau bagaimanapun, konfigurasi akan sangat bergantung pada apa atau siapa yang anda mahu mengakses pelbagai perkhidmatan.
AWAS: Sekiranya anda lebih suka menonaktifkan IPv6 sepenuhnya, pastikan untuk melepaskan talian kerana ini akan melambatkan proses kemas kini:
didahului :: ffff: 0: 0/96 100 terdapat di / etc / gai.pengesahan .
Ini kerana pengurus pakej APT menyelesaikan domain cermin di IPv6 kerana kemas kini apt-get.
Cara Menggunakan Peraturan iptables?
Untuk menggunakan iptables anda di Ubuntu atau sistem berasaskan Debian lain, mulailah dengan membuat dua fail, ip4 dan ip6, untuk alamat IP masing-masing.
Dalam kedua-dua fail tersebut, tambahkan aturan yang ingin Anda tetapkan dalam aturan yang sesuai-aturan IPv4 ke file ip4 dan peraturan IPv6 ke file ip6.
Seterusnya, kita perlu mengimport peraturan menggunakan perintah:
sudo iptables-restore < /tmp/ip4 (replace filename for IPv6)Kemudian, anda boleh mengesahkan apakah peraturan tersebut berlaku menggunakan perintah:
sudo iptables -L -vPanduan berterusan iptables
Ubuntu, dan pengedaran berasaskan Debian biasa, dilengkapi dengan pakej berterusan iptables yang membolehkan anda menerapkan peraturan firewall dengan mudah semasa reboot. Pakej ini menyediakan fail yang boleh anda gunakan untuk menetapkan peraturan untuk IPv4 atau IPv6 dan dapat digunakan secara automatik semasa boot.
Anda juga boleh menggunakan peraturan firewall menggunakan UFW atau GUFW. Pertimbangkan tutorial berikut untuk mempelajari cara menggunakan UFW.
Cara Memasang iptables-berterusan?
Pastikan anda memasang iptables-persistent pada sistem anda. Gunakan dpkg untuk memeriksa apakah pakej anda sudah dipasang.
Sekiranya tidak, gunakan arahan berikut:
sudo apt-get install iptables-berterusan
Anda akan diminta dua kali untuk menyimpan kedua-dua peraturan IPv4 dan IPv6 semasa anda. Klik Ya untuk menyimpan kedua-dua peraturan.
Klik ya untuk menyimpan IPv6.
Setelah pemasangan selesai, sahkan bahawa anda mempunyai subdirektori iptables, seperti yang ditunjukkan dalam gambar di bawah.
Sekarang anda boleh menggunakan peraturan.v4 dan peraturan.v6 untuk menambahkan peraturan iptables, dan ia akan diterapkan secara automatik oleh iptables-persistent. Failnya adalah fail teks ringkas yang dapat anda edit dengan mudah menggunakan penyunting teks pilihan anda.
Kesimpulannya
Dalam tutorial ini, kami telah membahas asas-asas iptables. Bermula dengan bekerja dengan iptables, perintah asas, jadual iptables lalai, dan parameter.
Dari apa yang anda pelajari, anda seharusnya dapat menggunakan iptables untuk membuat peraturan firewall yang membantu melindungi sistem anda.