tetap melakukan perutean port dari 80 hingga 8080

23

Saya menggunakan contoh amazon EC2 yang berfungsi via ubuntu. Secara default sesuai batasan keamanan, saya tidak bisa membuang aplikasi saya ke port 80, jadi saya hanya mengikatnya port 8080 dan kemudian mengatur routing redirect dari port 80 ke 8080 melalui perintah berikut:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080

Tetapi saya menemukan bahwa ketika saya reboot server pengaturan ini tidak lagi aktif sampai saya memohon perintah ini lagi.

Jadi pertanyaan saya adalah bagaimana cara mengaktifkan pekerjaan pengalihan port bahkan jika sistem reboot?

Ph0en1x
sumber

Jawaban:

18

Anda dapat menambahkan perintah ini /etc/rc.local, sehingga akan dieksekusi secara otomatis setelah reboot.

nux
sumber
Sudah melakukannya, tapi tetap terima kasih atas jawabannya
Ph0en1x
selamat datang teman saya, itu trik yang bagus
nux
2
Ini berfungsi, tetapi jawaban sebenarnya adalah jawaban @ MeOMy di bawah ini.
Dirk Groeneveld
15

Gunakan perintah iptables-save sebagai gantinya. Aturan firewall tidak boleh masuk ke skrip rc.local. rc.local adalah hal terakhir yang harus dieksekusi. Jika aturan blok telah ditempatkan di rc.local ada kerangka waktu kecil di mana penyerang dapat mengeksploitasi aturan yang tidak ada. Meskipun mungkin tidak masalah dengan situasi ini, tetap saja tidak menjadi kebiasaan buruk yang mungkin menggigit Anda nanti.

MeOMy
sumber
1
berlari "sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080" dan "sudo iptables-save". Tetapi perutean diatur ulang saat reboot. Apakah saya salah paham bagaimana melakukan ini?
gromit190
2
Jawabannya tidak lengkap. iptables-save > some-file-pathmenyimpan aturan, dan kemudian Anda akan mengembalikan mereka melalui iptables-restore < some-file-pathdi rc.local. Atau instal iptables-persistentyang melakukan ini saat boot sebagai layanan.
Thomas Ward
Saya ingin mengerti bagaimana melakukan ini. Lebih spesifik, tolong
gromit190
4

Berikut ini cara dokumentasi ipttable resmi mengajar kami. Lihat disini

Tambahkan dua baris ini di / etc / network / interfaces:
pre-up iptables-restore < /etc/iptables.rules post-down iptables-save > /etc/iptables.rules

Baris "post-down iptables-save> /etc/iptables.rules" akan menyimpan aturan yang akan digunakan pada boot berikutnya.

Stavarengo
sumber
Kudos untuk menggunakan metode yang direkomendasikan secara resmi dan, dalam hal ini, metode paling sederhana, untuk menyelesaikan tugas ini. Saya akan +2 jika saya bisa untuk menggunakan metode KISS.
DeeJayh
0

Saya menemukan serangkaian direktori pada Ubuntu 16.04 /etc/networkyang akan menjalankan skrip pada berbagai waktu selama inisialisasi dan penutupan jaringan:

if-down.d
if-post-down.d  
if-pre-up.d  
if-up.d
interfaces.d

Jadi saya menemukan bahwa saya dapat membuang konfigurasi seperti biasa:

$ sudo sh -c "iptables-save > /etc/iptables.rules"

Kemudian saya membuat file `/etc/network/if-pre-up.d/restore:

#!/bin/sh

iptables-restore < /etc/iptables.rules

... dan menandainya dapat dieksekusi

$ sudo chmod 755 /etc/network/if-pre-up.d/restore
mikebridge
sumber