Автор Тема: как пробится клиентом к openfire из-за NAT [решено]  (Прочитано 6547 раз)

Оффлайн NickM

  • Участник
  • *
  • Сообщений: 949
Приветствую!
Подскажите кто в теме, как настроить шлюз Alt Linux Server для возможности подключения джаббер клиента к серверу openfire из интернета
Имеется:
локалка 192.168.100.0/24
модем со стат.айпи 192.168.1.1- проброшены порты 5222,5223
шлюз  сетевая 192.168.1.2(eth1) - соединена с модемом
         сетевая 192.168.100.222(eth0) - соединена с локалкой
сервер openfire 192.168.100.221

Сервер в локалке работает, хотелось бы подключить пару десятков клиентов извне.
С текущими настройками добавил в FORWARD
Цитировать
-p tcp -m multiport --dports 5223 -j LOG --log-level INFO --log-prefix ":f"

в итоге в логе вижу, но толку от этого мало, :(
Цитировать
Aug  9 15:22:04 kernel: [1314395.104655] :fIN=eth1 OUT=eth0 SRC=109.187.158.128 DST=192.168.100.221 LEN=52 TOS=0x00 PREC=0x00 TTL=60 ID=42770 DF PROTO=TCP SPT=16554 DPT=5223 WINDOW=5840 RES=0x00 SYN URGP=0
Aug  9 15:22:19 kernel: [1314410.464474] :fIN=eth1 OUT=eth0 SRC=109.187.158.128 DST=192.168.100.221 LEN=52 TOS=0x00 PREC=0x00 TTL=60 ID=7636 DF PROTO=TCP SPT=16555 DPT=5223 WINDOW=5840 RES=0x00 SYN URGP=0

« Последнее редактирование: 13.08.2012 13:39:11 от NickM »

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Хм.. Может вы забыли про правила DNAT на шлюзе?
PS Что и как у вас сейчас настроено и работает ?

Оффлайн NickM

  • Участник
  • *
  • Сообщений: 949
grep "^[^#]" ./PREROUTING

-i eth0 -p tcp --dport 777 -j REDIRECT --to-port 3128
-i venet0 -p tcp --dport 777 -j REDIRECT --to-port 3128
-i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
-i venet0 -p tcp --dport 80 -j REDIRECT --to-port 3128
-i venet0 -p tcp --dport 443 -j REDIRECT --to-port 3128
-i eth0 -p tcp --dport 70 -j REDIRECT --to-port 3128
-i eth1 -p tcp --dport 5222 -j DNAT --to-destination 192.168.100.221
-i eth1 -p tcp --dport 5223 -j DNAT --to-destination 192.168.100.221

grep "^[^#]" ./FORWARD
-p tcp -m multiport --dports 5222,5223 -j LOG --log-level INFO --log-prefix ":f "
-p tcp -d 192.168.100.221 --dport 5222 -j ACCEPT
-p tcp -d 192.168.100.221 --dport 5223 -j ACCEPT
-p tcp -s 192.168.100.221 -j ACCEPT
-P ACCEPT
-f -j DROP
-m state --state ESTABLISHED,RELATED -j ACCEPT
-j ULOG --ulog-nlgroup 1 --ulog-cprange 48 --ulog-qthreshold 50 --ulog-prefix "fcount"
-i eth1 -d 192.168.1.0/24 -j ACCEPT
-m physdev --physdev-is-bridged -j ACCEPT
-i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
-i eth1 -j DROP

grep "^[^#]" ./POSTROUTING
-o eth1 -j MASQUERADE


Оффлайн NickM

  • Участник
  • *
  • Сообщений: 949
Настроен и работает, уже не первый год, openfire в локальной сети. Обзавелся стат.адресом и решил впустить несколько человек извне. Для чего открыл порты на модеме(5222,5223). Вписал указанные выше правила в iptables и все, застопорился. т.к. не могу понять причину почему клиенты извне не пробываются. Сейчас думаю, что надо логи на самом openfire пособирать(он развернут тоже на Alt Linux), глянуть приходят ли к нему пакеты от DNAT шлюза.
« Последнее редактирование: 09.08.2012 14:56:28 от NickM »

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
По совпадению тоже имеется домашний jabber сервер, который доступен извне (правда используется ejabberd). Буду дома -- гляну, что там в правилах прописывал. Единственно, что ejabberd настроен на самом шлюзе, а не на отдельной машине в сети (слишком жирно держать отдельную машину под это дело).

Оффлайн NickM

  • Участник
  • *
  • Сообщений: 949
Единственно, что ejabberd настроен на самом шлюзе, а не на отдельной машине в сети (слишком жирно держать отдельную машину под это дело).

Да, Мне кажется этот вариант проще, но так уж сложилось, что шлюз это "старенький пень два", который раздает интернет и прикрутить ему jabber сервер нету возможности. А openfire крутится в виртуальной машине Alt Linux на сервере который не сильно напрягается выделять ему 256-512мб оперативной памяти.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Да, Мне кажется этот вариант проще, но так уж сложилось, что шлюз это "старенький пень два", который раздает интернет и прикрутить ему jabber сервер нету возможности. А openfire крутится в виртуальной машине Alt Linux на сервере который не сильно напрягается выделять ему 256-512мб оперативной памяти.
Ну, у меня не на много лучше. Селерон 1300/512. Хватает и на жабер и на веб-сервер и на transmission в режиме демон. Реально памяти хватило бы 256 метров, но решил сразу воткнуть по максимуму с прицелом на будущие дополнительные сервисы.

Оффлайн NickM

  • Участник
  • *
  • Сообщений: 949
пока попытки тщетны, вот лог цепочки INPUT с сервера openfire. Видно, что входящее соединение есть, но дальше по цепочкам тишина. Смущает в логе вот это
Цитировать
OUT= MAC=08:00:27:a4:4a:65:00:80:48:3b:23:25:08:00

#tail -1 /var/log/messages | grep -i 5222
Aug 11 09:41:59 jserver kernel: [1014919.850452] :i IN=eth0 OUT= MAC=08:00:27:a4:4a:65:00:80:48:3b:23:25:08:00 SRC=109.187.150.152 DST=192.168.100.221 LEN=40 TOS=0x00 PREC=0x00 TTL=123 ID=12902 DF PROTO=TCP SPT=24051 DPT=5222 WINDOW=64658 RES=0x00 ACK URGP=0