понедельник, 29 сентября 2014 г.

nat and iptables (DNAT)

Немного про iptables и nat. Нет, не будем-с копировать с других форумов всякую мелочь, а только важное.
Короч, такая тема. Нужно пробросить порт 21 из вне на одну сетевую тачку. Допустим провайдер дает нам статический ойпи, 215.2178.124.23, а нужная нам машина имеет внутренний ойпи  192.168.66.77
Все мелкие нюансы по настройке и установки iptables должны быть заведомо проделаны. Короч, все работает и запихиваем в сосоль это вот:
(если чо, от рута, иначе sosnooley)

#  iptables -t nat -A PREROUTING -d 215.2178.124.23/32 -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.66.77:21

Внезапно захотелось чтобы трафик на данный порт шуровал по udp? да нефиг делать! Короч, те же яйца, только в профиль:

# iptables -t nat -A PREROUTING -d 215.2178.124.23/32 -p udp -m udp --dport 21 -j DNAT --to-destination 192.168.66.77:21


В завершении статьи хотелось бы добавить, если ты случайно упоролся и понял. что открыл не те порты, не сцы! Их можно сагануть, т.е. удалить. Я не сразу вкурил чо как, но вот готовое решение. В общем, если нужно удалить проброс порта на определенную мащину, значит пришло время удалять правило nat. Нет, нельзя так просто взять и удалить. Для начала надо узнать номер правила. Смотрим выхлоп:

# iptables -L -t nat --line-numbers

Я слишком ленив, чтобы копаться во всех правилах, поэтому взял грепнул по нужном ойпи. Короч вот чо вышло:

# iptables -L -t nat --line-numbers | grep -i 192.168.66.77

Как и полагается, в выхлопе найдены все правила связанные с этим адресом. Ну так вот, слева будут цифры, это и есть номер правила, которое нужно дропнуть.

# iptables -t nat PREROUTING 15

И самое важное, сохраняйся чувак, играя с iptables, ты играешь с огнем, рискуешь потерять работу, и ехать на хостинг править вручну. Я сегодня чуть уже не собирал свои манатки, посему надо делать так:

# service iptables save

А тут самый сок, надо же провирить как оно стартанет в случае ребута пердоликса. Короч, скрестив пальцы ждем-с

# service iptables restart

Если не накосячил и тебе повезло, то радуйся жизни. А если iptables умер при запуске, то езжай и правь вручную.
Удачи!

Комментариев нет:

Отправить комментарий