Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.
Здравствуйте. Имею в подчинении сервер под UbuntuServer. Сетевая в локалку eth0 и сетевая во внешку eth1 ну и ppp0 интерфейс к провайлеру.
Есть некоторый набор правил iptables, которые я собирал по крупицам с разных форумов и статей для выполнения поставленных мне задач. А именно: nat, port-forwarding; Иногда приходится перезапускать исполняемый файл с правилами. После перезапуска сетка в принципе работает стабильно, но вот есть сайты с активным содержимым: например http://www.alfabank.ru/ там есть кнопка Вход в интернет банк, которые не работают. Открывается окно, а контент не подгружается. Я так понимаю, что написаны они на флеше. Эта страничка использует шифрование SSL.
Решается проблема перезапуском сетевых интерфейсов sudo /etc/init.d/networking restart.
А что именно я там должен увидеть или не увидеть???
Начал искать в на просторах всемирной паутины про мою проблему. Все пишут, что типа SQID в прозрачном режиме не умеет работать с SSL. Хотя у меня при перезапуске сети всё нормально работает.
Косячить начинает только после ручного запуска скрипта iptables. Я думаю может в самом скрипте я как-то криво обнуляю и добавляю правила в таблицы и у меня трафик где-то останавливается.
разглядел, что вы используете принудительно прокси-сервер.
да, ничего полезного вы не увидите. из-за прокси-сервера.
проверьте без заворачивания трафика — сохранится ли та же проблема с этим сайтом.
правило
iptables -t nat -A PREROUTING -i eth0 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.10:3128
заворачивает весть трафик идущий на 80 и 8080 порты внутренней сетевой, на прокси сервер squid - это так называемый прозрачный прокси. Т.е. я в настройках на компах в браузерах не прописываю прокси-сервер. В этом правиле нет порта 443 = https т.е. фаервол обрабатывает трафик просто "натя" его. Пробовал дописать в правило 443 порт - появляется ошибка. (текст позднее выложу)
Понимаете, у меня всё отлично работает.... но предположим я захотел сменить правила iptables. Я открываю скриптик... дописываю или изменяю какие то строки... сохраняю... запускаю скрипт. Всё работает также, кроме сайтов с SSL шифрованием. Чтоб они заработали приходится перезапустить сетку. Где кроется проблема и как диагностировать я пока не додумался.
правило
iptables -t nat -A PREROUTING -i eth0 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.10:3128
заворачивает весть трафик идущий на 80 и 8080 порты внутренней сетевой, на прокси сервер squid - это так называемый прозрачный прокси. Т.е. я в настройках на компах в браузерах не прописываю прокси-сервер. В этом правиле нет порта 443 = https т.е. фаервол обрабатывает трафик просто "натя" его. Пробовал дописать в правило 443 порт - появляется ошибка. (текст позднее выложу)
Понимаете, у меня всё отлично работает.... но предположим я захотел сменить правила iptables. Я открываю скриптик... дописываю или изменяю какие то строки... сохраняю... запускаю скрипт. Всё работает также, кроме сайтов с SSL шифрованием. Чтоб они заработали приходится перезапустить сетку. Где кроется проблема и как диагностировать я пока не додумался.
И, конечно же, 192.168.0.10 тоже попадает под это правило и начинает ходить сам в себя?
правило
iptables -t nat -A PREROUTING -i eth0 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.10:3128
заворачивает весть трафик идущий на 80 и 8080 порты внутренней сетевой, на прокси сервер squid - это так называемый прозрачный прокси. Т.е. я в настройках на компах в браузерах не прописываю прокси-сервер. В этом правиле нет порта 443 = https т.е. фаервол обрабатывает трафик просто "натя" его. Пробовал дописать в правило 443 порт - появляется ошибка. (текст позднее выложу)
Понимаете, у меня всё отлично работает.... но предположим я захотел сменить правила iptables. Я открываю скриптик... дописываю или изменяю какие то строки... сохраняю... запускаю скрипт. Всё работает также, кроме сайтов с SSL шифрованием. Чтоб они заработали приходится перезапустить сетку. Где кроется проблема и как диагностировать я пока не додумался.
И, конечно же, 192.168.0.10 тоже попадает под это правило и начинает ходить сам в себя?
Выключил заворачивание трафика на прокси. Проблемы нет. Сайт работает.
на всякий случай уточню. после отключения заворачивания вы перезапускали тот самый скрипт?
если да и перезапуск не вызывает описанной проблемы, то направление раскопок — ваш прокси-сервер.
это со стороны дяди KiWi был немножко стёб. но с проверкой. раз не поняли — печально.
правильный ответ на этот стёб должен был звучать так: 192.168.0.10 — это один из адресов машины, на которой это правило прописано, а локально сгенерированный трафик не попадает в цепочку PREROUTING таблицы nat.
это со стороны дяди KiWi был немножко стёб. но с проверкой. раз не поняли — печально.
правильный ответ на этот стёб должен был звучать так: 192.168.0.10 — это один из адресов машины, на которой это правило прописано, а локально сгенерированный трафик не попадает в цепочку PREROUTING таблицы nat.
Я нигде не увидел, что 192.168.0.10 -- адрес машины, на которой прописываются правила для iptables.
Более того, я нигде не увидел строчки, о том, что трафик с 192.168.0.10 не проходит через машину, на которой настраивается iptables.
В итоге можем иметь:
- роутер с неизвестным адрес и iptables
- прокси-сервер 192.168.0.10, выходящий через этот роутер в интернет
Очевидно, что в таком случае трафик в интернет будет проходить через роутер и DNATом отправится сам на себя.
Более того, я нигде не увидел строчки, о том, что трафик с 192.168.0.10 не проходит через машину, на которой настраивается iptables.
В итоге можем иметь:
- роутер с неизвестным адрес и iptables
- прокси-сервер 192.168.0.10, выходящий через этот роутер в интернет
Очевидно, что в таком случае трафик в интернет будет проходить через роутер и DNATом отправится сам на себя.
Весь трафик из сети проходит через NAT, а трафик 80,8080 портов DNATом отправляется сам на себя. Его принимает прокси- сервер и отправляет в Интернет.
Выключил заворачивание трафика на прокси. Проблемы нет. Сайт работает.
на всякий случай уточню. после отключения заворачивания вы перезапускали тот самый скрипт?
если да и перезапуск не вызывает описанной проблемы, то направление раскопок — ваш прокси-сервер.
Ещё раз проделал эту операцию. Выключил заворачивание трафика на прокси-сервер. Перезапустил сеть. Всё работает как прежде. Перезапустил скрипт. Через браузер в Интернет выходить перестал вообще. Пишет в строке статуса: ожидание ответа от сервера. Пробовал пинговать mail.ru c клиентской машины - пингуется.
Потом вспомнил про замечательное свойство iptables-save. Сохранил правила до запуска скрипта и после запуска скрипта. Нашёл отличия в 1 строку:
такая строка по-моему прописывается системой автоматически при создании PPPoE соединения или когда то ещё. Само собой когда я запускаю свой скрипт руками он очищает все таблицы и цепочки и это правило уже не добавляется. Описание этого правила нашёл в Интернете http://novikovmaxim.livejournal.com/96408.html
такая строка по-моему прописывается системой автоматически при создании PPPoE соединения или когда то ещё. Само собой когда я запускаю свой скрипт руками он очищает все таблицы и цепочки и это правило уже не добавляется. Описание этого правила нашёл в Интернете http://novikovmaxim.livejournal.com/96408.html