Форум русскоязычного сообщества Ubuntu


Автор Тема: iptables, избитая тема, не получается перенаправление портов  (Прочитано 7476 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Млин. Точно перестанет он так работать.. Надо подумать...

Оффлайн emmanuil

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
:) Да, перестал, попробовал еще раз. Все что на 80 порту перестало работать.

ЗЫ: Спасибо тебе большое, что возишься со мной!

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Вот, придумал:
iptables -t nat -N RED
iptables -t nat -A RED -p tcp --dport 80 -j REDIRECT --to 8080
iptables -t nat -A PREROUTING -i ppp0 -j RED
iptables -t nat -A PREROUTING -i eth0 -j RED
iptables -t nat -A OUTPUT -o lo -j RED

Дело в том, что при отлове пакетов в OUTPUT нам надо ловить именно те пакеты, которые напраленны только на этот же сервер, а в первом варианте попадали все исходящие, в т.ч. что и в инет направлены. Но адреса 192.168.0.0 мы не может юзать, т.к. их просто нет на интерфейсах, а на ppp адрес динамический. Так что ловить надо будет на интерфейсе lo
« Последнее редактирование: 23 Января 2011, 13:00:33 от Mam(O)n »

Оффлайн emmanuil

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
 :'(  Не работает...

# Generated by iptables-save v1.4.4 on Sun Jan 23 15:27:58 2011
*filter
:INPUT ACCEPT [893:158048]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [940:107743]
COMMIT
# Completed on Sun Jan 23 15:27:58 2011
# Generated by iptables-save v1.4.4 on Sun Jan 23 15:27:58 2011
*nat
:PREROUTING ACCEPT [33:1234]
:OUTPUT ACCEPT [341:21138]
:POSTROUTING ACCEPT [344:21318]
:RED - [0:0]
-A PREROUTING -i ppp0 -j RED
-A PREROUTING -i eth0 -j RED
-A OUTPUT -o lo -j RED
-A RED -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
COMMIT
# Completed on Sun Jan 23 15:27:58 2011
# Generated by iptables-save v1.4.4 on Sun Jan 23 15:27:58 2011
*mangle
:PREROUTING ACCEPT [915:158676]
:INPUT ACCEPT [893:158048]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [940:107743]
:POSTROUTING ACCEPT [953:109459]
COMMIT
# Completed on Sun Jan 23 15:27:58 2011

Все ли правильно сконфигурировал?

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Всё правильно. Расскажи, как проверяешь? Желательно примером с wget.

Оффлайн emmanuil

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Вообще просто в браузере ввожу.
Вот через wget:
vladimir@MIR:~$ wget http://192.168.1.101:80
--2011-01-23 15:37:10--  http://192.168.1.101/
Устанавливается соединение с 192.168.1.101:80... ошибка: В соединении отказано.
vladimir@MIR:~$ wget http://192.168.1.101:8080
--2011-01-23 15:36:58--  http://192.168.1.101:8080/
Устанавливается соединение с 192.168.1.101:8080... соединились.
Запрос HTTP послан, ожидание ответа... 200 OK
Длина: 5212 (5,1K) [text/html]
Saving to: «index.html»

100%[=============================================================================================================================>] 5 212       --.-K/s   в 0s       

2011-01-23 15:36:58 (376 MB/s) - «index.html» saved [5212/5212]

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Устанавливается соединение с 192.168.1.101:8080... соединились.
Я вот не пойму, у тебя же, судя по ifconfig, нет этого адреса 192.168.1.101. Так куда же ты тогда попадаешь интересно?

Пользователь решил продолжить мысль 23 Января 2011, 12:49:44:
В любом случае, стучаться тебе надо только на те адреса, что есть в выводе ifconfig
« Последнее редактирование: 23 Января 2011, 12:49:44 от Mam(O)n »

Оффлайн emmanuil

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Так их нет наверное потому что адреса управляются network manager'ом?
В файле /etc/network/interfaces нет ни одного. Я эти адреса добавил через network manager. Может в этом дело?
Перенаправление не работает из-за того что адресов нет в /etc/network/interfaces?

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Так их нет наверное потому что адреса управляются network manager'ом?
Да. Используй те адреса, что есть в выводе ifconfig.

Оффлайн emmanuil

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
 :D ЗАРАБОТАЛО!!!
ОГРОМНОЕ СПАСИБО!!!
БОЛЬШОЕ БОЛЬШОЕ БОЛЬШОЕ СПАСИБО!!!  ;)
Я просто гласфиш развернул на 127.0.0.1:8080 и теперь со всех адресов 127.0.0.1, 192.168.1.100,  192.168.1.101 по 80 порту получаю то что нужно.
Теперь вот что я хочу. Чтобы был включен брандмауэр и разрешал входящие тока на 80 порт и определенный адрес. Как на порт сделать знаю, а вот с адресом были проблемы, так как не знаю как там задать локальный адрес. С текущим настройками iptables безопасно?
Есть два адреса на машине 100 и 101. На 101 хотел бы гласфишь. Запрос из интернет на какой адрес попадает? И от этого адреса перенаправить на гласфиш. И чтобы из вне был доступ только на один адрес и 80 порт, чтобы безопаснее было. Много хочу. :)
Буду эксперементировать. Если можешь подсказать, то буду примного благодарен. Ты и так мне очень помог!
Если не будет получаться, напишу сюда или тему новую создам.

Пользователь решил продолжить мысль 23 Января 2011, 13:26:27:
Не нашел как тут плюсовать можно. Похоже никак. :)
« Последнее редактирование: 23 Января 2011, 13:26:27 от emmanuil »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Я просто гласфиш развернул на 127.0.0.1:8080
И теперь он будет доступен только локально. Адрес 0.0.0.0 - универсальный вариант.

На 101 хотел бы гласфишь. Запрос из интернет на какой адрес попадает?
На такой адрес он вообще попасть не сможет, это "серый" адрес. А вот тот, что на ppp0 интерфейсе, вполне может принимать запросы из инета.


Оффлайн emmanuil

  • Автор темы
  • Новичок
  • *
  • Сообщений: 23
    • Просмотр профиля
Цитировать
На такой адрес он вообще попасть не сможет, это "серый" адрес. А вот тот, что на ppp0 интерфейсе, вполне может принимать запросы из инета
Так тот адрес динамический я не могу на него гласфиш развернуть. Сейчас из нета есть доступ на страницу сервера, я через анонимайзер пробовал.
Раньше из инета доступ был, я через апач пробовал переадресацию делать, но там стили съезжали и вообще лишняя прослойка. апач слушал 101 по 80 порту.
Наверное есть способ адресовывать запросы из вне на внутренние адреса?

Пользователь решил продолжить мысль 23 Января 2011, 14:06:05:
То есть запрос пришел на сетевуху, а оттуда направляется на локальный 101 например.
« Последнее редактирование: 23 Января 2011, 14:06:05 от emmanuil »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Так тот адрес динамический я не могу на него гласфиш развернуть.
По этому я и говорю, указывай в http-listener Address: 0.0.0.0, так он будет слушать любой адрес.

 

Страница сгенерирована за 0.033 секунд. Запросов: 25.