Для того чтобы клиенты могли прозрачно открывать порты на шлюзе, был разработан набор протоколв Universal Plug and Play (UPnP), например для того чтобы можно было раздавать торренты.

Для раздачи торррентов например, нужно разрешить соединения внутрь сети. Для этого можно пробросить разные порты на разные машины, и в случае добавления клиентов/машин это придется делать вручную. Это не самый удобный спопосб, но можно использовать UPnP который будет сам пробрасывать нужные порты через iptables.

Установка:

sudo apt-get install linux-igd -y

Настраиваем:

cat /etc/default/linux-igd
# External interface name. If undefined then upnpd will not be started.
EXTIFACE=ppp0

# Internal interface name. If undefined then upnpd will not be started.
INTIFACE=eth0

Добавляем правила в iptables:

iptables -N UPNP

iptables -A FORWARD -j UPNP

iptables-save > /etc/iptables.up.rules

(04.01.13 замечание от RUSUA: имхо,четыре команды,написанные выше - бред! Спасибо,один из юзеров обратился за помощью и  указал сюда. Первая строчка создает таблицу с именем UPNP, а вторая форвардит весь трафик туда. Бред! Третья сохраняет правила фаервола в файл. Короче вторая строчка недописана явно.Работать врят ли будет.Пропускайте.Вот что значит тупо скопипиздить статью у кого то)

Запускаем upnpd

/etc/init.d/linux-igd start

Перезапускаем, например, торрент клиент с включенным UPnP и видим появившиеся правила в iptables:

-A FORWARD -d 192.168.1.106/32 -p tcp -m tcp --dport 51413 -j ACCEPT
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 51413 -j DNAT --to-destination 192.168.1.106:51413

На этом всё.

Update 28.07.2014: Спасибо юзеру Stealch за уместное замечание в комментариях:

Не забудте отредактировать файл /etc/upnpd.conf — в самом конце есть строка:
upnp_log_filename = «»;
необходимо указать путь к лог-файлу, например как это сделал я:
upnp_log_filename = «/var/log/upnpd.log»;
иначе получите ошибку при старте и демон не запустится.

4 комментария

  1. avatar Виктор:

    Обыскался по Гуглу.

    svr:~# iptables -N UPNP
    svr:~# iptables -N UPNP iptables -A FORWARD -j UPNP

    Bad argument `iptables'
    Try `iptables -h' or 'iptables --help' for more information.

  2. Извиняюсь,ошибку форматирования в вордпрессе не заметил.
    Там должно быть так:
    iptables -N UPNP
    iptables -A FORWARD -j UPNP

    И если честно,то не уверен что вторая команда правильна.В плане того что она работать будет.Если что,пропустите вторую команду.Либо попробуйте,будет выдавать ошибку в аргументах - ставьте саму linux-igd без дополнительных манипуляций с iptables.Благодаря вам вот увидел то,что было тупо скопипиздено для себя из инета)

  3. Не забудте отредактировать файл /etc/upnpd.conf - в самом конце есть строка:
    upnp_log_filename = "";
    необходимо указать путь к лог-файлу, например как это сделал я:
    upnp_log_filename = "/var/log/upnpd.log";
    иначе получите ошибку при старте и демон не запустится.

Добавить комментарий

%d такие блоггеры, как: