Перейти к содержимому


Ads
Фотография
- - - - -

Пробросить порт. Помогите.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 MDP

MDP

    Небожитель

  • Небожитель
  • PipPipPipPipPip
  • 5 808 сообщений

Отправлено 11.02.2015, 11:41

Заморочился я с домашним FTP сервером, раньше был на роутере сделан, но чет не особо устроил меня он, тем более есть NAS c почтовиком, FTP и web.

Решил замутить всё на NASе.

 

Начну с FTP.

 

Дано роутер - 192.168.1.1

NAS - 192.168.1.2

Нужно из внешней сети, при обращении по портам 20 и 21, что-бы перенаправлялось на NAS.

 

Как правильно сделать проброс?

 

iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 20 -j DNAT --to-destination 192.168.1.2:20
iptables -I FORWARD -i ppp0 -d 192.168.1.2 -p tcp -m tcp --dport 20 -j ACCEPT
 
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 21 -j DNAT --to-destination 192.168.1.2:21
iptables -I FORWARD -i ppp0 -d 192.168.1.2 -p tcp -m tcp --dport 21 -j ACCEPT

 

Для web и майла по аналогии.


Сообщение отредактировал MDP: 11.02.2015, 12:01


#2 BaRoN

BaRoN

    Ламо

  • Почетный житель
  • PipPipPipPip
  • 2 035 сообщений

Отправлено 11.02.2015, 12:50

Для веб - я так делал (IP - статика)
iptables -t nat -A PREROUTING -d IP/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80

Для динамического IP, наверное, действительно надо
iptables -t nat -A PREROUTING -i ppp0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80

А вот с FTP всё веселее. Я полагаю, для active mode надо пробросить 20 и 21 порты, и вставить модули conntrack и ftp_conntrack
А для passive mode - попробуй залезть в настройки FTP-сервера, зафиксировать набор портов для Passive mode (например, 30100-30200) и дописать ещё одно правило, что-то вроде

iptables -t nat -A PREROUTING -d IP/32 -p tcp -m tcp --dport 30100:30200 -j DNAT --to-destination 192.168.1.2

Искренне свой, Я! =) [Старый блог] [ Место работы ] [ Jabber: ruslanbalkin@gmail.com ] [ Telegram ] [baron.su] [ Twitter ].


#3 MDP

MDP

    Небожитель

  • Небожитель
  • PipPipPipPipPip
  • 5 808 сообщений

Отправлено 11.02.2015, 13:14

...опс..я попутал с портами, конечно-же пассивный режим.

 

Я так понял 

ptables -t nat -A PREROUTING -i ppp0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80

Это разрешает из внешней сетки к web серверу по 80 порту....а обратно как?  

от web-сервера во внешку пойдет? ...или они по умолчанию все открыты?

 

...я чет немного ещё недопонимаю для FTP пробросить 20 порт недостаточно разве?


Сообщение отредактировал MDP: 11.02.2015, 13:24


#4 BaRoN

BaRoN

    Ламо

  • Почетный житель
  • PipPipPipPip
  • 2 035 сообщений

Отправлено 11.02.2015, 17:39

...опс..я попутал с портами, конечно-же пассивный режим.
 
Я так понял 
ptables -t nat -A PREROUTING -i ppp0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80
Это разрешает из внешней сетки к web серверу по 80 порту....а обратно как?  
от web-сервера во внешку пойдет? ...или они по умолчанию все открыты?
 
...я чет немного ещё недопонимаю для FTP пробросить 20 порт недостаточно разве?

Без понятия, наверное обычный MASQUERADE помогает, я даже не задумывался над этим. У меня включен MASQUERADE для всех компьютеров в локалке, и на FORWARD стоит policy ACCEPT. Наверное, поэтому работает.

Для FTP недостаточно, это лютый адЪ и израи́ль (20 и 21 порты, но этого маловато будет, conntrack и conntrack_ftp в ядре не просто так smile.png), но в принципе всегда есть альтернатива в виде SCP/SFTP (не путать с FTPS). Если "на той стороне" линукс и на него можно войти через OpenSSH, можно просто прокинуть 22 порт (ssh) и ходить по SCP/SFTP.

Лучше просто поэкспериментировать, тем более что вроде всё выглядит правильно, если не работает - то не хватает какой-то мелкой ерунды. Точно сказать какой - не могу, потому что никогда FTP подобным образом наружу не прокидывал. SFTP/WWW/POP3 - обычный DNAT.

Искренне свой, Я! =) [Старый блог] [ Место работы ] [ Jabber: ruslanbalkin@gmail.com ] [ Telegram ] [baron.su] [ Twitter ].


#5 qwerqwer

qwerqwer

    Житель

  • Житель
  • 203 сообщений

Отправлено 26.02.2015, 09:30

...опс..я попутал с портами, конечно-же пассивный режим.

 

Я так понял 

ptables -t nat -A PREROUTING -i ppp0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80

Это разрешает из внешней сетки к web серверу по 80 порту....а обратно как?  

 

...я чет немного ещё недопонимаю для FTP пробросить 20 порт недостаточно разве?

Для пассивного режима по моему нужно подключить

 

/sbin/modprobe ip_nat_ftp

/sbin/modprobe ip_conntrack_ftp

/sbin/modprobe ip_conntrack_irc

 

 

 

 

от web-сервера во внешку пойдет? ...или они по умолчанию все открыты?

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

 

ну это

echo "1" > /proc/sys/net/ipv4/ip_forward

у тебя наверное сделано.


Сообщение отредактировал qwerqwer: 26.02.2015, 09:33


#6 Spirit

Spirit

    нигилист

  • Небожитель
  • PipPipPipPipPipPip
  • 13 022 сообщений

Отправлено 27.03.2015, 23:23

от web-сервера во внешку пойдет?

Если найдёт маршрут, то пойдёт. Если нет, то надо делать SNAT на POSTROUTING на шлюзе. Но в первом случае, как я понимаю, тоже надо делать SNAT, только уже наружу, чтоб обратный адрес нормальный был.

Сообщение отредактировал Spirit: 27.03.2015, 23:24

Вор - не правительство, в пустой карман не полезет.




Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей