GNU/Linux >> Belajar Linux >  >> Linux

Cara:Linux Umum – IPTables secara Umum

Pengantar

IPTables adalah firewall yang sudah diinstal atau dapat diinstal ke salah satu Distribusi Linux kami untuk layanan Cloud kami. IPTables digunakan untuk mengonfigurasi rantai aturan filter paket dan menerapkan rantai aturan bawaan atau yang ditentukan pengguna untuk server Anda. IPTables memiliki komponen utama yang melibatkan Tabel , Target , dan Opsi .

Tabel

Tabel di IPTables digunakan untuk memisahkan paket ke dalam kategori yang cocok. Penyortiran tabel tergantung pada modul yang telah dimuat sistem Anda dan di mana paketnya cocok. Saat ini, ada lima tabel berbeda untuk digunakan. Mereka adalah filter , nat , mangkuk , mentah , dan keamanan . Untuk sebagian besar, penggunaan IPTables dasar hanya akan melibatkan filter meja. Jika Anda melakukan perutean internal atau jaringan yang lebih rumit, Anda akan fokus menggunakan tabel lain juga. Halaman ini hanya akan membahas filter ketik aturan.

filter – Ini adalah tabel dasar seperti yang telah disebutkan dan biasanya merupakan tabel default. Tabel ini terdiri dari rantai aturan ACCEPT, FORWARD, OUTPUT.

nat – Tabel ini digunakan untuk paket yang akan membuat koneksi baru. Seperti merutekan IP publik ke IP pribadi. Ini terdiri dari rantai aturan PREROUTING, POSTROUTING, dan OUTPUT.

mangkuk – Tabel ini digunakan untuk mengubah cara paket ditangani. Ini terdiri dari rantai aturan INPUT, FORWARD, OUTPUT, PREROUTING, dan POSTROUTING.

mentah – Tabel ini digunakan untuk mengonfigurasi pengecualian dari pelacakan koneksi dengan target NOTRACK. Ini terdiri dari PREROUTING dan OUTPUT.

keamanan – Tabel ini untuk aturan MAC (Mandatory Access Control). Terdiri dari INPUT, FORWARD, dan OUTPUT

Target

Target didefinisikan sebagai nilai untuk rantai aturan yang Anda buat. Mereka dapat berisi nilai ACCEPT , HAPUS , ANTRIAN , atau KEMBALIKAN . Nilai-nilai ini memberi tahu aturan bagaimana melanjutkan dengan paket yang cocok dengan aturan.

TERIMA – Ini cukup mudah dan berarti mengizinkan paket melalui ke server Anda.

TURUN – Juga cukup mudah artinya menolak paket ke server Anda.

ANTRIAN – Target ini berarti meneruskan paket ke ruang pengguna sehingga pengguna dapat menentukan apa yang harus dilakukan dengannya.

KEMBALI – Target ini menghentikan pemrosesan rantai saat ini dan memerintahkannya untuk melanjutkan pemrosesan pada aturan berikutnya dari rantai sebelumnya.

Opsi

Ada banyak sekali opsi yang tersedia untuk penggunaan IPTables. Kami akan mencantumkan beberapa yang lebih umum yang akan Anda lihat.

-A, –append – Menambahkan aturan Anda ke rantai.

-L, –list [chain] – Ini akan mencantumkan semua aturan dalam rantai yang Anda tentukan. Jika Anda tidak memasok rantai, itu akan mencantumkan semua aturan.

-F, –flush [rantai] – Ini akan menghapus semua rantai dan aturan dalam rantai yang diberikan. Jika Anda tidak memberikan rantai, itu akan menghapus semua aturan dan rantai yang sedang berjalan.

-h – Ini memberikan output dari semua opsi yang mungkin Anda lakukan.

-p, –protokol protokol – Ini adalah protokol paket. Ini bisa berupa TCP, UDP, UDPlite, ICMP, ESP, AH, SCTP, semua, angka yang setara dengan ini, atau dimulai dengan ! untuk membalikkan pemeriksaan protokol.

-s, –source address[/mask][,…] – Alamat sumber. Dapat berupa IP, rentang IP melalui netmask, nama jaringan, atau nama host.

-d, –alamat tujuan[/mask][,…] – Alamat tujuan. Format yang sama dengan –s.

-m, –cocok cocok – Modul ekstensi yang menguji properti.

–dport[s] [port# ][,…] – Port yang Anda cari. –dports digunakan untuk menentukan lebih dari satu yang dipisahkan dengan koma. Saat menggunakan –dports pastikan untuk mengatur -m sebagai multiport. Untuk menentukan rentang port, gunakan :seperti 1000:1100 yang akan menjadi port 1000-1100.

-j, –jump target – Ini adalah opsi yang memungkinkan Anda menentukan target untuk aturan Anda.

-i, –in-interface name – Menentukan antarmuka tempat paket harus diterima.

-o, –out-interface name – Menentukan antarmuka yang akan ditinggalkan paket.

-v, –verbose – Itu membuat perintah daftar menampilkan nama antarmuka, opsi aturan, dan topeng apa pun. Juga menunjukkan penghitung paket dan byte.

Penggunaan dan Contoh

Di sini kami akan menunjukkan beberapa penggunaan dasar dan contoh. Aturan IPTables tipikal akan cenderung mengikuti format ini. Pastikan semua aturan Anda selesai di atas COMMIT karena ini digunakan untuk mengakhiri tabel. Aturan untuk tabel lain akan mengikuti akhir COMMIT mereka sendiri.

Untuk mengizinkan lalu lintas yang ditetapkan:

-INPUT -m cocok –status ESTABLISHED,TERKAIT -j MENERIMA

Dalam penggunaan ini akan menjadi:

-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

Untuk mengizinkan port tertentu.

-A INPUT -p protokol -m cocok –port pelabuhan -j TERIMA

Dalam penggunaan, contohnya adalah:

-MASUKKAN -p tcp -m tcp –dport 80 -j TERIMA

Atau

-A INPUT -p tcp -m multiport –dports 80.443 -j ACCEPT

Ini akan memungkinkan lalu lintas web melalui port 80 (dalam contoh kedua, port 443 juga.) Tidak hanya itu yang dapat Anda lakukan. Anda juga dapat menambahkan yang berikut seperti pada contoh di bawah ini.

-A INPUT -s IPADDR -p tcp -m tcp –dport 22 -j TERIMA

Ini hanya mengizinkan alamat IP (IPADDR ) yang Anda tentukan melalui port 22 (ssh.) Anda dapat menggunakan segala bentuk alamat IP yang diizinkan oleh opsi -s.

-A INPUT -p tcp -m tcp –dport 22 -j DROP

Mengikuti langkah dengan contoh di atas, ini akan menghapus semua dan semua lalu lintas TCP yang berjalan ke port SSH Anda. Ini adalah aturan praktis yang baik untuk selalu memiliki aturan DROP di bagian paling bawah daftar aturan ACCEPT Anda dalam rantai. Misalnya:

-MASUKKAN … -j TERIMA

-MASUKKAN … -j TERIMA

-MASUKKAN … -j TERIMA

-INPUT … -j DROP

-MAJU … -j TERIMA

-MAJU … -j TERIMA

-MAJU … -j TERIMA

-MAJU … -j DROP

-KELUARAN … -j TERIMA

-KELUARAN … -j TERIMA

-KELUARAN … -j TERIMA

-A OUTPUT ... -j DROP

Anda juga dapat menentukan target (seperti ACCEPT atau DROP) di bagian atas IPTables Anda untuk perilaku default. Saat ini adalah pemasangan baru IPTables, Anda selalu melihat perilaku default (didefinisikan di bagian atas yang mencantumkan INPUT, FORWARD, dan OUTPUT) sebagai ACCEPT. Aturan praktis yang baik untuk keamanan adalah mengubahnya menjadi DROP dan hanya membuat aturan untuk port atau lalu lintas yang ingin Anda izinkan. Ubah saja jika Anda yakin telah membuat pengecualian yang Anda butuhkan.

Juga di bagian atas tabel, Anda dapat menentukan target Anda sendiri. Katakanlah Anda memiliki yang berikut ini di bagian atas IPTables Anda:

*filter

:INPUT DROP [0:0]

:TERUS MENERUS [0:0]

:OUTPUT DROP [0:0]

BERKOMITMEN

Sekarang, karena kita telah memblokir semuanya, mari kita mulai dengan menambahkan target kita sendiri seperti:

*filter

:INPUT DROP [0:0]

:TERUS MENERUS [0:0]

:OUTPUT DROP [0:0]

:APP – [0:0]

:TargetBaru Saya – [0:0]

BERKOMITMEN

Sekarang Anda dapat membuat rantai aturan jenis khusus seperti di bawah ini.

*filter

:INPUT DROP [0:0]

:TERUS MENERUS [0:0]

:OUTPUT DROP [0:0]

:APP – [0:0]

:TargetBaru Saya – [0:0]

-A APLIKASI -p tcp -m multiport –dports 30:40,50:80 -j TERIMA

-A INPUT -s IPADDR -j TargetBaru Saya

-A MyNewTarget -j APLIKASI

BERKOMITMEN

Sekarang apa yang telah kita lakukan di atas adalah membuat target baru, APP dan MyNewTarget dan menetapkan opsi dan target kepada mereka. Apa yang dilakukan aturan terakhir (di atas COMMIT), adalah jika koneksi berasal dari IP sumber Anda dan mencoba mencapai port 30-40 atau 50-80, izinkan! Semuanya ditentukan dalam rantai di atas. Tingkat penyesuaian ini tidak benar-benar diperlukan kecuali Anda menggunakan banyak host atau menggunakan port yang Anda ulangi dan ingin lebih banyak steno atau "jalan pintas" untuk menulis aturan. Misalnya, setiap aturan baru yang Anda perlukan berasal dari IP sumber tersebut, Anda sekarang dapat menggunakan MyNewTarget.

Secara keseluruhan, IPTables menyediakan banyak penyesuaian aturan dan memungkinkan Anda untuk menangani bagaimana server Anda menangani lalu lintas masuk, keluar, dan internal. Beberapa aturan dapat membingungkan dan sulit untuk diikuti, tetapi tidak diragukan lagi kegunaan yang mereka berikan untuk stabilitas server.


Linux
  1. Bagaimana saya menggunakan cron di Linux

  2. Cara memblokir alamat IP di server Linux

  3. Linux – Perutean Melalui Iptables?

  1. Cara menginstal Python di Linux

  2. Cara menginstal Java di Linux

  3. Linux IPTables:Cara Menambahkan Aturan Firewall (Dengan Contoh Izinkan SSH)

  1. Cara menggunakan BusyBox di Linux

  2. Cara memblokir alamat IP di server Linux

  3. Cara membuka port di Linux