- unixforum.org
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
- Re: [решено] Проброс портов на iptables
unixforum.org
Здравствуйте!
Вроде проблема то банальная. Но что-то я не доделал. Прочитал несколько статей, в которых всё весьма понятно написано, и у людей всё работает. А у меня не хочет.
Имеем локалку 192.168.199.0/24
Имеем фтп-сервер proftpd с адресом 192.168.199.101
Имеем наипростейший интернет-шлюз с внутренним адресом 192.168.199.150 (он является шлюзом для фтп-сервера) и внешним белым адресом ххх.ххх.ххх.ххх
Хочу сделать банальную вещь — доступ к фтп-серверу извне. Т.е. хочу пробросить 21-ый порт со шлюза на фтп-сервер.
Сделал следующее:
в файл sysctl.conf прописал
nat :OUTPUT ACCEPT [0:0] :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] # это чтоб сам фтп-сервер имел выход наружу к репозиториям -A POSTROUTING -p tcp -m tcp -m multiport -s 192.168.199.101 -o eth0 -j SNAT --to-source ххх.ххх.ххх.ххх --dports 80,8080,21 # А вот этими правилами я пытаюсь сделать проброс портов извне к фтп-серверу. -A PREROUTING -p tcp -m tcp -d ххх.ххх.ххх.ххх --dport 21 -j DNAT --to-destination 192.168.199.101:21 -A PREROUTING -p tcp -m tcp -d ххх.ххх.ххх.ххх --dport 49152:65534 -j DNAT --to-destination 192.168.199.101:49152-65534 COMMIT *filter :FORWARD ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT # Eth1 -- это сетевуха, смотрящая в локалку. -A INPUT -i eth1 -j ACCEPT # форвардинг пока специально открыл для всех -A FORWARD -i lo -j ACCEPT -A FORWARD -i eth1 -j ACCEPT -A FORWARD -o eth0 -j ACCEPT -A FORWARD -m state --state ESTABLISHED -j ACCEPT -A FORWARD -m state -s 127.0.0.1 --state RELATED -j ACCEPT -A INPUT -m state --state ESTABLISHED -j ACCEPT -A INPUT -m state -s 127.0.0.1 --state RELATED -j ACCEPT -A FORWARD -j DROP -A INPUT -j DROP COMMIT *mangle :FORWARD ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :PREROUTING ACCEPT [0:0]
arkhnchul Сообщения: 2284 Статус: Толчковый инженер ОС: Debian, Fedora Контактная информация:
Re: [решено] Проброс портов на iptables
Сообщение arkhnchul » 12.11.2011 19:27
-A POSTROUTING -p tcp -m tcp -m multiport -s 192.168.199.101 -o eth0 -j SNAT —to-source ххх.ххх.ххх.ххх —dports 80,8080,21
-A PREROUTING -p tcp -m tcp -d ххх.ххх.ххх.ххх —dport 49152:65534 -j DNAT —to-destination 192.168.199.101:49152-65534
-A POSTROUTING -p tcp -m multiport --dports 80,8080,21 -s 192.168.199.101 -o eth0 -j MASQUERADE
technotrance Сообщения: 280 ОС: Fedora, FreeBSD, CentOS, Debian Контактная информация:
Re: [решено] Проброс портов на iptables
arkhnchul Сообщения: 2284 Статус: Толчковый инженер ОС: Debian, Fedora Контактная информация:
Re: [решено] Проброс портов на iptables
Сообщение arkhnchul » 13.11.2011 13:39
так гораздо проще с тем же результатом, если надо просто пустить машинку в сеть. SNAT имхо стоит применять только при каких-нибудь нестандартных извращениях, или если ресурсов совсем куку.
technotrance Сообщения: 280 ОС: Fedora, FreeBSD, CentOS, Debian Контактная информация:
Re: [решено] Проброс портов на iptables
Не помогло с маскарадом. Я думаю, тут дело вовсе не в SNAT и не в MASQUERADE.
Да и сами правила с DNAT правильные. Может какой модуль ещё надо включить?
technotrance Сообщения: 280 ОС: Fedora, FreeBSD, CentOS, Debian Контактная информация:
Re: [решено] Проброс портов на iptables
-A FORWARD -p tcp -m tcp -m state -i eth0 --dport 21 --state NEW,ESTABLISHED,RELATED -j ACCEPT -A FORWARD -p tcp -m tcp -m state -i eth0 --dport 49152:65534 --state NEW,ESTABLISHED,RELATED -j ACCEPT
Re: [решено] Проброс портов на iptables
Сообщение bormant » 14.11.2011 09:44
. до тех пор, пока не потребуется пассивный режим для доступа к этому ftp.
Если потребуется, нужно будет разрешить вход с порта 20 (ftp-data) по образу и подобию 21 (ftp).
Bizdelnick Модератор Сообщения: 20384 Статус: nulla salus bello ОС: Debian GNU/Linux
Re: [решено] Проброс портов на iptables
Сообщение Bizdelnick » 14.11.2011 10:35
. до тех пор, пока не потребуется пассивный режим для доступа к этому ftp.
Если потребуется, нужно будет разрешить вход с порта 20 (ftp-data) по образу и подобию 21 (ftp).
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: [решено] Проброс портов на iptables
Сообщение flank’er » 14.11.2011 12:44
Пассивный FTP действует противоположным образом. Клиент посылает запрос серверу на получение данных, а сервер возвращает клиенту IP адрес и номер порта для подключения. Клиент подключает свой 20-й порт (FTP-data) к указанному порту сервера и получает запрошенные данные.
Bizdelnick Модератор Сообщения: 20384 Статус: nulla salus bello ОС: Debian GNU/Linux
Re: [решено] Проброс портов на iptables
Сообщение Bizdelnick » 14.11.2011 15:13
-A PREROUTING -p tcp -m tcp -d ххх.ххх.ххх.ххх --dport 49152:65534 -j DNAT --to-destination 192.168.199.101:49152-65534 -A FORWARD -p tcp -m tcp -m state -i eth0 --dport 49152:65534 --state NEW,ESTABLISHED,RELATED -j ACCEPT
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: [решено] Проброс портов на iptables
Сообщение bormant » 14.11.2011 16:58
Если правильно путаю, то по 2.6.19 модули звались ip_*, далее nf_*. Поэтому либо так, либо иначе, проверить несложно:
/sbin/modprobe -l | grep _ftp$
-A FORWARD -p tcp -m tcp -m state -i eth0 —dport 49152:65534 —state NEW,ESTABLISHED,RELATED -j ACCEPT
Более чем достаточно. Более — потому как не только запрошенные ftp сервером соединения пропускает (для чего и были пляски с модулями), но и незапрошенные тоже. Если не пользоваться nf_conntrack_ftp, то другого выхода не будет. Но была попытка пользоваться, тогда можно быть чуть безопаснее, убрав NEW.
От —sport 20 толку немного, согласен, от целенаправленной атаки это не сильно поможет, ибо атакующий волен задать исходящий порт любым, в т.ч. и 20.
Bizdelnick Модератор Сообщения: 20384 Статус: nulla salus bello ОС: Debian GNU/Linux
Re: [решено] Проброс портов на iptables
Сообщение Bizdelnick » 14.11.2011 17:33
-A FORWARD -p tcp -m tcp -m state -i eth0 —dport 49152:65534 —state NEW,ESTABLISHED,RELATED -j ACCEPT
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
technotrance Сообщения: 280 ОС: Fedora, FreeBSD, CentOS, Debian Контактная информация:
Re: [решено] Проброс портов на iptables
-A FORWARD -p tcp -m tcp -m state -i eth0 —dport 49152:65534 —state NEW,ESTABLISHED,RELATED -j ACCEPT
Более чем достаточно. Более — потому как не только запрошенные ftp сервером соединения пропускает (для чего и были пляски с модулями), но и незапрошенные тоже. Если не пользоваться nf_conntrack_ftp, то другого выхода не будет. Но была попытка пользоваться, тогда можно быть чуть безопаснее, убрав NEW.
Re: [решено] Проброс портов на iptables
Сообщение demsl » 15.05.2013 14:32
# iptables -t nat -A PREROUTING -p tcp -d IP.OUT.IP.OUT —dport 4444 -j DNAT —to-destination 192.168.0.55:80
# iptables -A FORWARD -i eth0 -d 192.168.0.55 -p tcp —dport 80 -j ACCEPT
в итоге в сохранённых правилах iptables получилось 4 строчки:
-A PREROUTING -i eth0 -p tcp -m tcp —dport 4444 -j DNAT —to-destination 192.168.0.55:80
-A PREROUTING -d IP.OUT.IP.OUT/32 -p tcp -m tcp —dport 4444 -j DNAT —to-destination 192.168.0.55:80
-A FORWARD -d 192.168.0.55/32 -p tcp -m tcp —dport 80 -j ACCEPT
-A FORWARD -d 192.168.0.55/32 -i eth0 -p tcp -m tcp —dport 80 -j ACCEPT
всё работает, только вопрос: это так и должно быть 4 строчки в результате?
Re: [решено] Проброс портов на iptables
Сообщение DaemonTux » 16.05.2013 03:17
# iptables -t nat -A PREROUTING -p tcp -d IP.OUT.IP.OUT —dport 4444 -j DNAT —to-destination 192.168.0.55:80
# iptables -A FORWARD -i eth0 -d 192.168.0.55 -p tcp —dport 80 -j ACCEPT
в итоге в сохранённых правилах iptables получилось 4 строчки:
-A PREROUTING -i eth0 -p tcp -m tcp —dport 4444 -j DNAT —to-destination 192.168.0.55:80
-A PREROUTING -d IP.OUT.IP.OUT/32 -p tcp -m tcp —dport 4444 -j DNAT —to-destination 192.168.0.55:80
-A FORWARD -d 192.168.0.55/32 -p tcp -m tcp —dport 80 -j ACCEPT
-A FORWARD -d 192.168.0.55/32 -i eth0 -p tcp -m tcp —dport 80 -j ACCEPT
всё работает, только вопрос: это так и должно быть 4 строчки в результате?
Re: [решено] Проброс портов на iptables
Сообщение demsl » 16.05.2013 17:22
*nat :PREROUTING ACCEPT [111:10242] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [30:1818] -A PREROUTING -i eth0 -p tcp -m tcp —dport 4444 -j DNAT —to-destination 192.168.0.55:80 -A PREROUTING -d IP.OUT.IP.OUT/32 -p tcp -m tcp —dport 4444 -j DNAT —to-destination 192.168.0.55:80 -A POSTROUTING -j MASQUERADE COMMIT *filter :INPUT ACCEPT [47:4786] :FORWARD ACCEPT [129:8736] :OUTPUT ACCEPT [248:29207] -A INPUT -m conntrack —ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -i lo0 -j ACCEPT -A INPUT -p tcp -m tcp —tcp-flags FIN,SYN,RST,ACK SYN -m limit —limit 1/sec -j ACCEPT -A INPUT -p tcp -m tcp —tcp-flags FIN,SYN,RST,ACK SYN -j DROP -A INPUT -i eth0 -p tcp -m tcp -j DROP -A FORWARD -s 192.168.0.0/24 -i eth0 -o eth1 -m conntrack —ctstate NEW -j ACCEPT -A FORWARD -m conntrack —ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -d 192.168.0.55/32 -p tcp -m tcp —dport 80 -j ACCEPT -A FORWARD -d 192.168.0.55/32 -i eth0 -p tcp -m tcp —dport 80 -j ACCEPT -A OUTPUT -o lo -j ACCEPT COMMIT *mangle :PREROUTING ACCEPT [3862:2076016] :INPUT ACCEPT [334:28739] :FORWARD ACCEPT [3498:2040674] :OUTPUT ACCEPT [297:32179] :POSTROUTING ACCEPT [3795:2072853] -A FORWARD -o ppp0 -p tcp -m tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1400:65495 -j TCPMSS —clamp-mss-t o-pmtu -A FORWARD -o ppp0 -p tcp -m tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1400:65495 -j TCPMSS —clamp-mss-t o-pmtu -A FORWARD -o ppp0 -p tcp -m tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1400:65495 -j TCPMSS —clamp-mss-t o-pmtu -A FORWARD -o ppp0 -p tcp -m tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1400:65495 -j TCPMSS —clamp-mss-t o-pmtu -A FORWARD -o ppp0 -p tcp -m tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1400:65495 -j TCPMSS —clamp-mss-t o-pmtu -A FORWARD -o ppp0 -p tcp -m tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1400:65495 -j TCPMSS —clamp-mss-t o-pmtu COMMIT
Re: [решено] Проброс портов на iptables
Сообщение DaemonTux » 17.05.2013 03:04
Да у вас батенька бардак ipables.
1. зачем у вас в мангл куча однотипных правил?
2. в filter политика forward и output стоит и так accept
3. если вы хотели ограничить OUTPUT то почему у вас там только правило для lo.
Перечитайтайте iptables tutorial и снесите все правила и настройте наконец iptables нормально.
Советую избрать вкачестве политик в fillter DROP. Первыми пунктами разрешить уже установленные соединения. А потом разрешить конкретные порты и интерфейсы.
Re: [решено] Проброс портов на iptables
Сообщение demsl » 17.05.2013 09:43
я их не прописывал, это pppoe видимо создаёт. советуете удалить дубли?
настройка правил меня пока устраивает, мне просто было интересно, почему 2 введённых правила отображаются 4мя строчками в сэйве)
upd
кстати, обманул. не всё гладко работает: соединение проходит на 80й порт машины в локалке, а авторизация на странице не срабатывает. при этом, если заходить из локалки — проблем с авторизацией нет
я так понимаю, нужны ещё правила POSTROUTING и OUTPUT для нормальной работы? подскажите плз, кто разбирается
Re: [решено] Проброс портов на iptables
Сообщение DaemonTux » 17.05.2013 16:23
я их не прописывал, это pppoe видимо создаёт. советуете удалить дубли?
настройка правил меня пока устраивает
А вы однако оригинал. Зачем держать дверь закрытой если стен все равно нет?
Ксати что за дистр используете?
кстати, обманул. не всё гладко работает: соединение проходит на 80й порт машины в локалке, а авторизация на странице не срабатывает. при этом, если заходить из локалки — проблем с авторизацией нет
я так понимаю, нужны ещё правила POSTROUTING и OUTPUT для нормальной работы? подскажите плз, кто разбирается
Попробуйте осилить документацию чтобы разбираться для чего нужны различные цыпочки. У мну есть подозрение что вы используете не для того.
У вас машина для чего используется шлюз, сервер или десктоп? И разберитесь в том кто или что добавляет правила. Для начала просто удалите все правила и запустите pppoe, добавилось ли что нибудь.
Если хотите советов в настройке схему сети в студию. И кстати через что вы поднимете pppoe?