Tautan ke dokumentasi resmi dan yang direkomendasikan ada di situs Web Netfilter.
Ini bukan subjek baru, sumber daya tidak terbatas .
Kebanyakan perintah dasar cukup intuitif dan dapat dengan mudah menjadi referensi ke halaman manual .
netfilter, yang merupakan teknologi tingkat kernel yang memungkinkan penyaringan paket, cukup maju. Ada tabel tambahan yang bisa memotong paket, menerjemahkan paket, dan sebaliknya mempengaruhi perutean. The iptables
utilitas adalah alat userland untuk berinteraksi dengan netfilter. Jika Anda ingin mempelajari tentang fungsionalitas tingkat lanjut, saya sarankan Anda merujuk dokumentasi yang disebutkan di atas. Untuk pengantar fungsionalitas dasar, silakan baca lebih lanjut.
Untuk membuat daftar semua aturan yang ada:
iptables -L -n
-n
mencegah iptables dari penyelesaian ips, yang menghasilkan output lebih cepat.
Tabel default adalah filter
tabel, yang digunakan untuk menerapkan aturan firewall dasar ke tiga rantai. Tiga rantai default di filter
meja yang INPUT
, OUTPUT
, dan FORWARD
.
Rantai sebagian besar cukup jelas. Rantai INPUT memengaruhi paket yang masuk, rantai OUTPUT memengaruhi paket yang dibuat secara lokal, dan akhirnya FORWARD untuk semua paket yang merutekan melalui sistem.
Di antara target yang bisa Anda tentukan, Anda bisa DROP
paket, artinya abaikan saja dan tidak merespons. Anda dapat REJECT
paket, di mana respons icmp akan dikirim ke sumber penolakan. Akhirnya, Anda bisa ACCEPT
, yang memungkinkan paket untuk melanjutkan routing.
Seringkali dengan firewall eksternal menghadap ke pilihan default akan DROP
bertentangan REJECT
, karena mengurangi jejak jaringan Anda di Internet. Misalnya, IP yang membatasi layanan untuk host tertentu akan memiliki visibilitas yang lebih rendah DROP
.
Catatan, -A
berarti ditambahkan ke akhir rantai. Jika Anda ingin memasukkan ke atas, Anda dapat menggunakan -I
. Semua aturan diproses dari atas ke bawah. -D
untuk dihapus.
Untuk DROP
paket masuk yang berasal dari 192.168.235.235
:
iptables -A INPUT -s 192.168.235.235 -j DROP
Ini melompat ke DROP
target untuk semua protokol yang berasal dari IP itu.
Menerima:
iptables -A INPUT -s 192.168.235.235 -j ACCEPT
Untuk mencegah akses ke IP itu dari server atau jaringan lokal Anda:
iptables -A OUTPUT -d 192.168.235.235 -j DROP
Anda dapat menentukan -p
protokol, -s
sumber paket, -d
tujuan paket, port tujuan --dport
, port sumber --sport
, dan banyak flag lainnya yang akan mempengaruhi bagaimana paket diperlakukan oleh aturan.
Jika INPUT
kebijakan default Anda adalah DROP
dan Anda ingin mengizinkan semua orang di 192.168.123.0/24
subnet untuk mengakses SSH di server Anda, berikut adalah contohnya:
iptables -A INPUT -s 192.168.123.0/24 -p tcp --dport 22 -j ACCEPT
Itu benar, Anda dapat menggunakan notasi CIDR juga!
Secara umum, kebijakan default terbaik adalah DROP
untuk semua rantai. Setiap rantai memiliki kebijakan default, yang ditentukan oleh -P
bendera. Meskipun kebijakan Anda disetel ke default DROP
, masih disarankan untuk memiliki entri akhir dalam rantai untuk menjadi DROP
juga.
Misalnya, untuk mengubah kebijakan ke DROP
rantai INPUT, FORWARD, dan OUTPUT:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
Hati-hati , jika Anda menetapkan kebijakan default DROP untuk INPUT pada sistem jarak jauh tanpa terlebih dahulu mengizinkan diri Anda mengakses SSH, Anda dapat mencegah diri Anda mengakses sistem. Jika pada sistem jarak jauh, Anda bisa menentukan crontab sementara untuk menghapus semua aturan setiap 5 menit sebagai failafe.
Untuk menghapus semua aturan dan mengizinkan semua lalu lintas:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -X
iptables -F
Catatan, -X
hapus semua rantai yang dibuat. -F
siram semua aturan.
Ada alat asli untuk menyimpan dan mengembalikan aturan. Khususnya, iptables-save
dan iptables-restore
. Sebagian besar distribusi Linux modern memiliki save
dan restore
berfungsi dalam file init iptables yang disediakan dengan sistem.
Ada praktik terbaik firewall lainnya, seperti menjatuhkan paket yang salah bentuk dan jenis lalu lintas yang tidak diinginkan lainnya. Ini adalah salah satu keuntungan menggunakan utilitas ujung depan seperti Shorewall , karena akan menerapkan banyak kebijakan ini secara default. Namun demikian, saya setuju dengan pendekatan Anda dan lebih memilih untuk mempertahankan aturan saya sendiri secara langsung juga, dan praktik terbaik yang sama ini dapat diterapkan tanpa ujung depan.