Немного про 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. Нет, нельзя так просто взять и удалить. Для начала надо узнать номер правила. Смотрим выхлоп:
Короч, такая тема. Нужно пробросить порт 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 умер при запуске, то езжай и правь вручную.
Удачи!