Apakah tabel mangle di iptables?

28

Saya menggunakan aturan iptable untuk memfilter & memanipulasi paket di server Ubuntu saya. tapi aku tidak bisa mengerti tabel mangle.

Mengutip dari tutorial iptables ini :

Tabel ini seharusnya seperti yang telah kita perhatikan terutama digunakan untuk paket mangling. Dengan kata lain, Anda dapat dengan bebas menggunakan pencocokan mangle dll yang dapat digunakan untuk mengubah bidang TOS (Jenis Layanan) dan sebagainya.

Anda sangat disarankan untuk tidak menggunakan tabel ini untuk penyaringan apa pun; DNAT, SNAT atau Masquerading juga tidak akan berfungsi dalam tabel ini.

Adakah yang bisa menjelaskan kepada saya meja mangle, dan memberikan beberapa contoh untuk memahami kapan saya harus menggunakannya?

piring
sumber
6
The iptables(8)halaman manual memiliki semua informasi yang Anda inginkan, termasuk beberapa contoh yang bagus dari penggunaan tabel mangle.
Michael Hampton

Jawaban:

23

Lebih jauh ke jawaban yang baik lainnya, saya baru-baru ini harus menggunakan tabel mangle untuk menyesuaikan perbedaan MTU (unit transmisi maksimum) yang disebabkan oleh lalu lintas yang dibawa melalui PPPoE, PPP, dan ATM, yang masing-masing menambahkan overhead yang mengurangi muatan yang tersedia untuk IP dari 1.500 byte frame Ethernet yang biasa.

Sistem pada setiap ujung pipa, seperti biasa, akan memiliki MTU pada standar reguler 1500 dan jadi mereka akan mencoba mengirim frame IP yang besar. Karena ukuran muatan aktual yang tersedia lebih kecil, ini akan menyebabkan fragmentasi paket, kecuali bahwa seringkali pengirim akan meminta agar paket tidak terfragmentasi, dan dengan demikian paket-paket tersebut akhirnya akan jatuh seluruhnya.

Dalam dunia yang ideal, jalur penemuan MTU akan memungkinkan titik akhir untuk menyesuaikan MTU mereka sesuai kebutuhan, tetapi penemuan ini tergantung pada ICMP, dan jaringan di luar kendali saya sering dikonfigurasi untuk menjatuhkan ICMP karena alasan keamanan.

Satu-satunya pilihan adalah menggunakan paket mangling di router saya untuk memodifikasi paket TCP SYN untuk menurunkan ukuran segmen maksimum pada lapisan transport:

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452

Hal semacam ini berantakan dan idealnya harus dihindari, tetapi saya tidak punya pilihan lain dan ini memang menyelesaikan masalah.

Semoga contoh-contoh ini membantu, dan juga halaman manual.

Kevin
sumber
23

Saya baru-baru ini menemukan penjelasan yang bagus di sini . Ini pada dasarnya digunakan untuk mengatur header spesifik untuk paket IP untuk mempengaruhi keputusan routing yang dibuat lebih jauh. Jika ada, opsi TTL mungkin yang paling menarik:

Target TTL digunakan untuk mengubah bidang TTL (Time To Live) dari paket. Kami dapat memberitahu paket hanya memiliki TTL tertentu dan sebagainya. Salah satu alasan bagus untuk hal ini adalah kita tidak ingin memberikan diri kita sendiri kepada Penyedia Layanan Internet yang ingin tahu. Beberapa Penyedia Layanan Internet tidak suka pengguna yang menjalankan banyak komputer dalam satu koneksi tunggal, dan ada beberapa Penyedia Layanan Internet yang diketahui mencari host tunggal yang menghasilkan nilai TTL yang berbeda, dan menganggap ini sebagai salah satu dari banyak tanda banyak komputer yang terhubung ke satu. koneksi.

Target lainnya adalah TOS, MARK, SECMARK, CONNSECMARK.

BubuIIC
sumber
4
Mangle juga digunakan dalam QOS untuk menangani penandaan paket atau dalam distribusi data untuk mendistribusikan paket ke rute yang berbeda.
TomTom
8

Sebagai noob iptables, saya akan mengatakan: Tabel mangle memungkinkan untuk memodifikasi beberapa entri khusus di header paket. (seperti: Jenis Layanan, Waktu Untuk Hidup) (juga memungkinkan untuk menetapkan tanda khusus dan tanda konteks keamanan)

iptablesnoob
sumber
2

Ada penyelaman yang dalam tetapi tidak terlalu sulit untuk memahami tutorial tentang iptables di sini .

Tabel mangle digunakan untuk mengubah header IP paket dengan berbagai cara. Misalnya, Anda dapat menyesuaikan nilai TTL (Time to Live) dari suatu paket, baik memperpanjang atau memperpendek jumlah hop jaringan yang valid yang dapat dipertahankan oleh paket tersebut. Header IP lainnya dapat diubah dengan cara yang serupa.

Tabel ini juga dapat menempatkan "tanda" kernel internal pada paket untuk diproses lebih lanjut di tabel lain dan oleh alat jaringan lain. Tanda ini tidak menyentuh paket yang sebenarnya, tetapi menambahkan tanda pada representasi kernel dari paket tersebut.

Banyak membantu saya, karena juga menjelaskan dengan jelas bagaimana semua bagian saling cocok dan berinteraksi satu sama lain.

rbennell
sumber