зберігаються маршрутизація портів від 80 до 8080


23

Я використовую екземпляр amazon EC2, який працює через ubuntu. За замовчуванням згідно з обмеженнями безпеки я не можу прив’язати свою програму до порту 80, тому я просто прив’язую її до порту 8080, а потім встановлюю перенаправлення маршрутизації з порту 80 на 8080 за допомогою наступної команди:

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

Але я виявив, що коли я перезавантажую сервер, ці налаштування більше не активні, доки я знову запускаю цю команду.

Отже, моє питання полягає в тому, як увімкнути роботу переадресації порту, навіть якщо система перезавантажена?

Відповіді:


18

Ви можете додати цю команду до /etc/rc.local, тому вона буде виконуватися автоматично після перезавантаження.


Вже зробив це, але все ж дякую за відповідь
Ph0en1x

Ласкаво просимо, мій друг, ось хороший трюк
nux

2
Це працює, але справжня відповідь - відповідь @ MeOMy нижче.
Дірк Гроневельд,

15

Використовуйте команду iptables-save. Правила брандмауера ніколи не повинні входити в сценарій rc.local. rc.local - це останнє, що потрібно виконати. Якщо правило блоку було розміщено в rc.local, є невеликий часовий проміжок, коли зловмисник може використовувати правило, яке не існує. Хоча це, мабуть, не має значення для цієї ситуації, все ж краще не потрапляти в шкідливу звичку, яка може вас кусати пізніше.


1
ran "sudo iptables -t nat -A ПЕРЕДАЧА -p tcp --dport 80 -j ПОВЕРНЕННЯ - до 8080" та "sudo iptables-save". Але маршрутизація була скинута при перезавантаженні. Я неправильно зрозумів, як це зробити?
gromit190

2
Відповідь неповна. iptables-save > some-file-pathзберігає правила, і тоді ви б відновити їх з допомогою iptables-restore < some-file-pathв rc.local. Або встановіть, iptables-persistentщо робить це під час завантаження як послугу.
Thomas Ward

Я хотів би зрозуміти, як це зробити. Будьте більш конкретними, будь ласка
gromit190

4

Ось як нас навчає офіційна документація ipttable. Дивіться тут

Додайте ці два рядки в / etc / network / interface:
pre-up iptables-restore < /etc/iptables.rules post-down iptables-save > /etc/iptables.rules

Рядок "post-down iptables-save> /etc/iptables.rules" збереже правила, які будуть використані при наступному завантаженні.


Кудо для використання офіційно рекомендованого методу і, в цьому випадку, найпростішого методу для виконання цього завдання. Я б +2, якби міг за використання методу KISS.
DeeJayh

0

Я виявив набір каталогів на Ubuntu 16.04, в /etc/networkякому будуть запущені сценарії в різний час під час ініціалізації та відключення мережі:

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

Тож я виявив, що можу скинути конфігурацію як завжди:

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

Потім я створив файл `/etc/network/if-pre-up.d/restore:

#!/bin/sh

iptables-restore < /etc/iptables.rules

... і позначив його виконуваним

$ sudo chmod 755 /etc/network/if-pre-up.d/restore
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.