Bagaimana saya bisa mengarahkan lalu lintas keluar ke port 80 menggunakan iptables secara lokal?
19
Saya mencoba untuk mengarahkan ulang porta lokal menggunakan mesin Ubuntu saya iptables. Mirip dengan proxy transparan. Saya ingin menangkap apa pun yang mencoba meninggalkan sistem saya di port 80 dan mengarahkannya ke host dan port jarak jauh.
Dapatkah saya mencapai ini menggunakan fungsi NAT dan pre-routing iptables?
Aturan ini akan ditambahkan ( -A) ke lalu lintas keluar ( OUTPUT).
Kami hanya tertarik pada lalu lintas TCP ( -p tcp).
Kami hanya tertarik pada lalu lintas yang memiliki port tujuan 80 ( --dport 80).
Ketika kami memiliki kecocokan, lompat ke DNAT ( -j DNAT).
Rutekan lalu lintas ini ke beberapa IP @ port 80 server lain ( --to-destination IP:80).
Apa itu DNAT?
DNAT
This target is only valid in the nat table, in the PREROUTING and OUTPUT
chains, and user-defined chains which are only called from those chains.
It specifies that the destination address of the packet should be modified
(and all future packets in this connection will also be mangled), and
rules should cease being examined.
@ pjf - Saya menemukan kedua aturan dan sedang dalam proses memperbarui jawaban saya dengan keduanya. Saya tidak yakin dalam situasi apa Anda berada.
slm
6
Ini dapat dibuat lebih spesifik untuk beroperasi hanya pada lalu lintas ke host tujuan tertentu. Misalnya ketika postfix membuat kesalahan dan mail dalam antrian ingin dikirim ke alamat ip lama.
Tip yang sangat berguna; persis apa yang saya butuhkan. Apakah ada cara untuk menambah nomor port? Katakanlah saya memiliki kisaran 100 port dan ingin meningkatkan semuanya dengan jumlah tertentu.
Zdenek
Tidak yakin apa yang kamu maksud. Bisakah Anda menulis for-loop di Bash?
Felipe Alvarez
Sebuah loop menambahkan 100 aturan iptables akan berfungsi, tetapi akan memperlambatnya. Saya lebih suka untuk bisa mengatakannya untuk meningkatkan banyak port berturut-turut dalam satu aturan.
Zdenek
@ Zdenek Saya tidak tahu apakah itu mungkin dengan iptables. Sudahkah Anda melihat firewalld?
Ini dapat dibuat lebih spesifik untuk beroperasi hanya pada lalu lintas ke host tujuan tertentu. Misalnya ketika postfix membuat kesalahan dan mail dalam antrian ingin dikirim ke alamat ip lama.
sumber
Ini memungkinkan Anda menerjemahkan port ke semua alamat IP. Perbedaan utama di sini adalah tidak adanya alamat IP di
--to-destination
lapangan.sumber
firewalld
?