GNU/Linux >> Belajar Linux >  >> Linux

Cara:Pemecahan Masalah IPTables Dasar

Pengantar

Dalam artikel ini, mari kita bahas beberapa langkah dasar yang dapat Anda ambil untuk memecahkan masalah yang mungkin Anda alami dengan membuat aturan iptables Anda melakukan apa yang Anda ingin mereka lakukan.

Prasyarat

Server yang menjalankan CentOS 6.x (atau distribusi Linux apa pun)

iptables diinstal dan dikonfigurasi (untuk konfigurasi dasar, lihat Konfigurasi File IPTables Dasar)

Pemecahan Masalah IPTables Dasar

Satu tambahan yang berguna untuk membuat aturan iptables Anda adalah dengan mengatur logging. Logging menggunakan target khusus di kotak alat iptables yang menyalurkan output pilihan ke file log sistem operasi Anda (dmesg atau systemd).

Pada baris perintah:

sudo iptables -A INPUT -j LOG --log-prefix DROPPED-INGRESS-

Atau, di file /etc/sysconfig/iptables Anda:

Contoh sintaks logging

Mari kita buka sintaksnya:

* ‘-A INPUT ' menambahkan aturan ini ke akhir rantai INPUT. Ingat, urutan aturan itu penting, jadi jika Anda menempatkan aturan ini setelah aturan yang menurunkan atau menolak lalu lintas, aturan itu tidak akan pernah digunakan. Lebih lanjut tentang ini ketika kita membahas --log-prefix di bawah.

* ‘-j LOG ' melompat ke LOG target. Target ini adalah target khusus yang disebut target “non-terminating”. Berbeda dengan target yang paling umum digunakan (seperti ACCEPT , DROP , atau REJECT ), yang ini tidak menghentikan iptables untuk menguraikan aturan lebih lanjut. Jadi, ketika aturan ini dipanggil, ia mencatat paket (dan dapat melakukan opsi tambahan, jika ditentukan dalam opsi yang mengikutinya), dan kemudian terus mengevaluasi aturan dalam rantai yang sama hingga mencapai aturan yang cocok dengan target penghentian atau sampai melewati aturan terakhir dalam rantai dan mengikuti target default.

* ‘--log-prefix DROPPED-INGRESS- ' menambahkan string "DROPPED-INGRESS-" ke setiap entri log. Penambahan ini dapat membantu untuk menyaring atau mencari dalam file log yang panjang. “--log-prefix ” dapat mengambil string hingga 256 karakter. Karena aturan ini adalah aturan terakhir dalam INPUT rantai, ini akan mencatat paket apa pun yang tidak cocok dengan aturan di atas dan ditangani dengan kebijakan default (dalam hal ini, DROP ).

Jika Anda ingin melihat aturan mana yang dipanggil (dan, mungkin sama pentingnya, mana yang tidak), Anda dapat melihat penghitung paket dan lalu lintas Anda. Gunakan '-v ' opsi ke 'iptables ' perintah untuk menampilkan penghitung (dan beberapa informasi tambahan, juga):

sudo iptables -vL INPUT

atau

sudo iptables -nvL INPUT

Output dari salah satu perintah ini akan ditampilkan di kolom sebelah kiri untuk penghitung paket dan byte untuk setiap aturan. ‘-L ' opsi menunjukkan bahwa kami ingin aturan terdaftar (perhatikan bahwa opsi khusus ini dikapitalisasi). ‘-n ' menunjukkan bahwa kami tidak ingin menyelesaikan IP ke nama host mereka (dalam daftar yang lebih panjang, resolusi nama terbalik ini dapat menyebabkan overhead server yang tidak perlu dan membuat pemecahan masalah Anda sangat lambat). Anda dapat menggunakan setiap bendera secara terpisah (-n -v -L , mis.) atau bersama-sama, seperti di atas, tetapi hati-hati:‘L ‘ harus terakhir karena mencari input lebih lanjut dalam bentuk nama rantai yang akan didaftar (jika tidak ada yang ditentukan, defaultnya adalah mencantumkan semua rantai di tabel filter).

iptables -nvL INPUT Keluaran

Perhatikan di sini bahwa saya memiliki satu paket yang mencapai aturan izinkan semua ssh saya dan beberapa yang mengenai izin pertama RELATED/ESTABLISHED aturan (ini akan sesuai dengan sesi ssh saya ke server ini). Saya juga dapat melihat bahwa aturan saya untuk mengizinkan lalu lintas ssh dari kisaran 192.168.50.0/24 tidak memiliki hit. Jadi, misalnya, jika saya memiliki seseorang yang mengatakan bahwa mereka tidak dapat mengakses server ini dari jarak tersebut, saya dapat melihat bahwa upaya mereka bahkan tidak berhasil sampai ke server ini.

Sangat mungkin penghitung byte paket Anda akan berdetak cukup tinggi sehingga nilainya akan disingkat dengan 'K', 'M', atau bahkan 'G' di akhir, masing-masing sesuai dengan 1000, 1.000.000, atau 1.000.000.000. Jika Anda masih ingin melihat jumlah yang tidak disingkat, sertakan '-x ' bendera:

sudo iptables -nvxL INPUT

Jika Anda memilih untuk tidak berurusan dengan jumlah hitungan yang besar, Anda dapat mengatur ulang (nol) hitungan Anda dengan ‘-Z ' perintah (sekali lagi, perhatikan bahwa bendera ini dikapitalisasi). Anda dapat nol hitungan untuk semua rantai, rantai tertentu, atau untuk garis tertentu dalam rantai. Masing-masing:

sudo iptables -Z
sudo iptables -Z INPUT
sudo iptables -Z INPUT 1

Contoh terakhir hanya akan nol penghitung untuk baris nomor 1 di INPUT rantai.

Penghitung juga akan diatur ulang setiap kali Anda memuat ulang iptables (baik dari reboot server atau melakukan sudo service iptables reload). Namun, ini bukanlah cara yang paling ideal untuk menyelesaikan tugas ini.

Anda mungkin juga ingin mendapatkan pemeriksaan yang lebih real-time dari penghitung iptables Anda. Di sinilah 'watch ' perintah berguna. ‘Watch ‘ memungkinkan kita untuk mengulang perintah yang sama dan sering melihat outputnya (defaultnya adalah setiap 2 detik).

sudo watch iptables -nvL INPUT

Sementara ‘watch ' itu sendiri tidak memerlukan akses sudo, jika perintah yang akan Anda tonton melakukannya, Anda dapat menambahkan 'sudo ' ke 'watch ' perintah untuk memiliki hak akses root untuk perintah yang ingin Anda tonton. Juga, jika Anda ingin menyalurkan output yang ditonton melalui sesuatu seperti 'grep ', Anda ingin meletakkan seluruh string perintah dalam tanda kutip tunggal:

sudo watch 'iptables -nvL INPUT | grep tcp'

Untuk keluar dari ‘watch ‘, tekan <Ctrl-C> .

Pelajari lebih lanjut tentang layanan hosting VPS dan server pribadi Virtual kami.


Linux
  1. Cara menghapus aturan iptables

  2. Cara menghapus aturan iptables

  3. Linux – Perutean Melalui Iptables?

  1. CentOS / RHEL 6:Cara Menyimpan Aturan iptables

  2. Cara membuka port di Linux

  3. Bagaimana cara membuat aturan iptables kedaluwarsa?

  1. Pemecahan masalah kumpulan aplikasi dasar

  2. Manajemen firewall iptables dasar

  3. Pemecahan masalah Nginx dasar