Назад | Перейти на главную страницу

Постоянная переадресация портов iptables?

Мне нужно установить правило для доступа к моему веб-серверу (который работает на порту 7000) через порт 80:

ptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 7000

Пока это работает отлично.

Но если я перезагружу сервер, правило исчезнет. Что нужно сделать, чтобы сделать это правило постоянным?

Элиас

Какой дистрибутив GNU / Linux вы используете?

Для Debian / Ubuntu простое решение - добавить вызов iptables к подключению post-up в /etc/network/interfaces как это:

# The primary network interface
auto eth0
iface eth0 inet dhcp
post-up iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 7000

В системах на базе Red Hat / Fedora:

service iptables save

И убедитесь, что iptables служба настроена на запуск при загрузке: chkconfig iptables on

Обычно вы добавляете команды iptables в сценарий запуска сети, чтобы он запускался при запуске сетевого подключения.

Необходимые изменения файлов различаются от дистрибутива к дистрибутиву.

Если вы используете Ubuntu (и, возможно, это верно и для Debian, и для других), вы можете использовать команды iptables-save и iptables-restore чтобы сохранить конфигурацию при перезагрузке.


Для Gentoo

вы можете добавить эту строку в /etc/conf.d/local.start

Вместо того, чтобы повторно вызывать iptables, я предлагаю следующие шаги:

[1] Настройте iptables по своему вкусу (блоки, антиспуф, редиректы и т. Д.)

[2] Сохраните конфигурацию iptables:

    iptables-save > /etc/my-iptables.conf

(Или используйте имя по своему вкусу)

[3] Создайте сценарий (например, /etc/my-iptables-init.sh), содержащий эти строки:

    #!/bin/bash
    iptrest="<location_of_iptables-restore>"
    cat="/bin/cat"
    conf="/etc/my-iptables.conf"
    #
    $cat $conf | $iptrest

(Некоторые говорят, что iptables-restore < /etc/my-iptables.con иногда не работает)

[4] Вызовите этот сценарий из ... откуда угодно. Может быть / etc / network / interfaces или (я предпочитаю) /etc/rc.local