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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Тормозит редирект на прокси сервер  (Прочитано 1651 раз)

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

Оффлайн serega1576

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Добрый день уважаемые.
Раньше не работало перенаправление http/https трафика на прокси сервер.
Если в настройках браузера не стояла галочка исп-ть прокси сервер, то в инет вообще не зайти.
Прописав вручную проксик, инет начинает работать.
В скрипт задающий правила IPTABLES добавил следующее:
$IPTABLES -t nat -A PREROUTING -d ! 192.168.0.0/16 -p tcp --dport 80 -j REDIRECT --to-port 3128Правило срабатывает, но оооооочееень долго.
Страничку может открыть только раза с третьего-четвертого...
Тут же иду на клиенте в св-ва браузера, указываю вручную проксик, сохр. настройки.
Все, странички открываются с ПЕРВОГО раза и быстро.
Подскажите, может я выбрал не самое удачное правила редиректа?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Тормозит редирект на прокси сервер
« Ответ #1 : 26 Марта 2014, 09:02:23 »
У Вас не с перенаправлением проблемы, а с DNS-сервером.
Сравните на клиенте
time nslookup ya.ru
time nslookup ya.ru 8.8.8.8
Синтаксис от оси не зависит.

А отсюда предположения (а больше ничего не остаётся):
Вариант 1. не настроен nat (в том числе косяуи с mtu)
2. не настроен локальный dns-репитер (или тупит не по-детски)

Может и ещё есть варианты, но угадывать нет желания.
Хотите больше помощи? Показывайте всю диагностику шлюза: интерфейсы, маршруты, правила, доп.плюшки

Оффлайн serega1576

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Тормозит редирект на прокси сервер
« Ответ #2 : 26 Марта 2014, 10:41:01 »
DNS поднят локальный на винде. В настройке шлюза, в resolv.conf указан единственный dns - это 8.8.8.8
Конфиг iptables:

IPTABLES="/sbin/iptables"

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
#######################################
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 >  /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh3
echo 0 >/proc/sys/net/ipv4/tcp_ecn
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
#######################################
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -I FORWARD 1 -t mangle  -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$IPTABLES -I OUTPUT 1 -t mangle  -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A INPUT -p icmp -j ACCEPT
$IPTABLES -A INPUT -d 224.0.0.0/8 -j DROP
$IPTABLES -A INPUT -i eth1 -j ACCEPT
$IPTABLES -A INPUT -p udp -s 192.168.20.8 -j ACCEPT
$IPTABLES -A INPUT -p udp -s 192.168.28.1 -j ACCEPT
$IPTABLES -A INPUT -p udp -s 192.168.29.1 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 192.168.20.1 --dport 3128 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 192.168.28.1 --dport 3128 -j ACCEPT
#Полный доступ к инету
$IPTABLES -A FORWARD -s 192.168.27.38 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.27.29 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.27.21 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.27.12 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.27.15 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.27.4 -j ACCEPT


#===========Полный полный инет.
#Исключаем из редиректа на проксю опр. ip, соот-но идем в инет мимо прокси и без его ограничений
$IPTABLES -t nat -A PREROUTING -p tcp -s 192.168.27.12 --dport 80 -j ACCEPT
#=============================================================================================

$IPTABLES -t nat -A PREROUTING -d ХХХХ -p tcp --dport 6070 -j DNAT --to-destination 192.168.27.3:6070
$IPTABLES -A FORWARD -d 192.168.27.3 -p tcp --dport 6070 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.27.3 -p tcp --sport 6070 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 5001 -j ACCEPT
#$IPTABLES -A INPUT -i tun+ -p tcp --dport 5001 -j ACCEPT

for ssh_client in 94.25.125.102 192.168.27.0/24 192.168.20.0/23 192.168.0.0/16 0.0.0.0/0
 do
  $IPTABLES -A INPUT -p tcp -s ${ssh_client} --dport 22 -j ACCEPT
 done

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.57.0/24 -d 192.168.27.0/24 -j ACCEPT
$IPTABLES -A FORWARD -d 192.168.57.0/24 -s 192.168.27.0/24 -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

for dc  in 192.168.20.6 192.168.29.3 192.168.28.4 192.168.2.3 192.168.3.4 192.168.0.99 192.168.7.6 192.168.27.4
do
    $IPTABLES -A FORWARD -s ${dc} -d  192.168.0.0/16 -j ACCEPT
    $IPTABLES -A FORWARD -d ${dc} -s  192.168.0.0/16 -j ACCEPT
done


#Yandex================
$IPTABLES -A FORWARD -s 192.168.27.0/24 -d 213.180.193.0/24 -j ACCEPT
#=========================
#===========Заворачиваем все ip на проксю==========================================================
#$IPTABLES -t nat -A PREROUTING -d ! 192.168.0.0/16 -p tcp --dport 80 -j REDIRECT --to-port 3128
#==================================================================================================
$IPTABLES -A FORWARD -p tcp -s 192.168.27.0/24 -m multiport --dports 443,22 -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.27.0/24 -j REJECT
$IPTABLES -t nat -A POSTROUTING -s 192.168.27.0/16 -d 192.168.0.0/16 -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -s 192.168.27.0/16 -d 10.0.6.0/24 -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -s 192.168.27.0/16 -j SNAT --to-source ХХХХ

Интерфейсы:
auto lo
iface lo inet loopback
    up /etc/init.d/netfilter

auto eth1
iface eth1 inet static
        address 192.168.27.1
        netmask 255.255.255.0

auto eth2
iface eth2 inet static
        address хх.ххх.хх.хх
        netmask 255.255.255.252
        gateway хх.ххх.хх.хх

auto tun_irk
iface tun_irk inet static
        address 192.168.27.1
        netmask 255.255.255.255
        pointopoint 192.168.28.1
        pre-up ip tunnel add tun_irk mode gre local ХХХХ remote ХХХХ ttl 255
        up ifconfig tun_irk 192.168.27.1 netmask 255.255.255.255 mtu 1280 up
        up ip route add 192.168.28.0/24 dev tun_irk
        up ip route add 192.168.31.0/24 dev tun_irk
        up ip route add 192.168.32.0/24 dev tun_irk
        up ip route add 192.168.2.0/24 dev tun_irk
        post-down ip tunnel del tun_irk

auto tun_brt
iface tun_brt inet static
        address 192.168.27.1
        netmask 255.255.255.255
        pointopoint 192.168.29.1
        pre-up ip tunnel add tun_brt mode gre local ХХХХ remote ХХХХ ttl 255
        up ifconfig tun_brt 192.168.27.1 netmask 255.255.255.255 mtu 1280 up
        up ip route add 192.168.29.0/24 dev tun_brt
        post-down ip tunnel del tun_brt





Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Тормозит редирект на прокси сервер
« Ответ #3 : 26 Марта 2014, 10:52:26 »
Про работу DNS ответили завуалированной фразой, когда спрашивал конкретику.
Вместо правил netfilter выложили какой-то скрипт, в котором происходят странные вещи типа
$IPTABLES -t nat -A POSTROUTING -s 192.168.27.0/16 -d 192.168.0.0/16 -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -s 192.168.27.0/16 -d 10.0.6.0/24 -j ACCEPT
По проблеме не мешают, конечно, но ... можете объяснить их назначение?

Оффлайн serega1576

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Тормозит редирект на прокси сервер
« Ответ #4 : 26 Марта 2014, 11:32:32 »
Данный скрипт задает правила iptables при запуске системы.
Что дают эти строки кода, я не знаю. Шлюз был поднят очень давно, кто только там не правил...
Где можно посмотреть настройки или логи днс репитера?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Тормозит редирект на прокси сервер
« Ответ #5 : 26 Марта 2014, 11:41:34 »
Я понимаю что делает данный скрипт, но для решения проблемы его содержимое мало подходит.
К тому же, раз шлюз "кто только там не правил", что там ещё может в netfilter грузится Вам подлинно неизвестно. Помогут только реально загруженные правила. (намекаю: iptables-save)

DNS-сервер, как Вы сами сказали, у Вас на Windowsх и решать его проблемы здесь будет высокоуровневым оффтопом.

Вы всё-таки покажете выхлоп команд запроса к DNS?

Оффлайн serega1576

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Тормозит редирект на прокси сервер
« Ответ #6 : 27 Марта 2014, 06:01:49 »
У Вас не с перенаправлением проблемы, а с DNS-сервером.
Сравните на клиенте
time nslookup ya.ru
time nslookup ya.ru 8.8.8.8
Синтаксис от оси не зависит.

Проблема, и вправду была в ДНС.
У меня DHCP сервер на винде раздает адреса.
Клиент получает ДНС1 и ДНС2 автоматом.
Серверы ДНС местные, из внутренней сети. 192.168.27.4 и 192.168.28.4.
Если вручную указать ДНСы клиентам, типа - DNS1:192.168.27.4 и DNS2:8.8.8.8, то сайты открываются быстро.
Редирект срабатывает. Нет разницы в скорости.
Получается мои ДНС сервера криво настроены?
Если клиенты, обращаясь к ним, долго открывают сайты.

Пользователь решил продолжить мысль 27 Марта 2014, 06:48:07:
Но работает интернет(без прокси), только на тех клиентах, для которых приписаны след-ие правила на шлюзе:
#Полный доступ к инету
$IPTABLES -A FORWARD -s 192.168.27.38 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.27.29 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.27.21 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.27.12 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.27.15 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.27.4 -j ACCEPT
Если в данном списке нет ip адреса нового клиента, то интернет начинает так же подвисать...
Сайты не пингуются по имени. Даже если вручную прописан второй ДНС - 8.8.8.8
Только добавив новый ip в данное правило, все, сайты начинают резолвится.
Подскажите, что делать?


Пользователь решил продолжить мысль 27 Марта 2014, 07:55:36:
Я понимаю что делает данный скрипт, но для решения проблемы его содержимое мало подходит.
К тому же, раз шлюз "кто только там не правил", что там ещё может в netfilter грузится Вам подлинно неизвестно. Помогут только реально загруженные правила. (намекаю: iptables-save)

Вывод iptables-save:
# iptables-save
# Generated by iptables-save v1.4.2 on Thu Mar 27 11:51:15 2014
*nat
:PREROUTING ACCEPT [4102:282781]
:OUTPUT ACCEPT [2862:188464]
:POSTROUTING ACCEPT [2801:178145]
-A PREROUTING -s 192.168.27.12/32 -p tcp -m tcp --dport 80 -j ACCEPT
-A PREROUTING -d 91.185.35.42/32 -p tcp -m tcp --dport 6070 -j DNAT --to-destination 192.168.27.3:6070
-A PREROUTING -s 192.168.27.0/24 -d ! 192.168.0.0/16 -p tcp -m multiport --dports 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT --to-ports 3128
-A POSTROUTING -s 192.168.0.0/16 -d 192.168.0.0/16 -j ACCEPT
-A POSTROUTING -s 192.168.0.0/16 -d 10.0.6.0/24 -j ACCEPT
-A POSTROUTING -s 192.168.0.0/16 -j SNAT --to-source 91.185.35.42
COMMIT
# Completed on Thu Mar 27 11:51:15 2014
# Generated by iptables-save v1.4.2 on Thu Mar 27 11:51:15 2014
*mangle
:PREROUTING ACCEPT [214837:123974245]
:INPUT ACCEPT [6993595:5222559022]
:FORWARD ACCEPT [5145145:2738017759]
:OUTPUT ACCEPT [122211:117562654]
:POSTROUTING ACCEPT [11504623:7983998519]
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A OUTPUT -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Thu Mar 27 11:51:15 2014
# Generated by iptables-save v1.4.2 on Thu Mar 27 11:51:15 2014
*filter
:INPUT DROP [251:17205]
:FORWARD DROP [1:71]
:OUTPUT ACCEPT [122213:117563702]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -p icmp -j ACCEPT
-A INPUT -d 224.0.0.0/8 -j DROP
-A INPUT -i eth1 -j ACCEPT
-A INPUT -s 94.25.125.102/32 -j ACCEPT
-A INPUT -s 91.229.188.2/32 -j ACCEPT
-A INPUT -s 95.167.59.174/32 -j ACCEPT
-A INPUT -s 90.188.61.209/32 -j ACCEPT
-A INPUT -s 91.189.160.186/32 -j ACCEPT
-A INPUT -s 195.206.56.74/32 -j ACCEPT
-A INPUT -s 192.168.20.8/32 -p udp -j ACCEPT
-A INPUT -s 192.168.28.1/32 -p udp -j ACCEPT
-A INPUT -s 192.168.29.1/32 -p udp -j ACCEPT
-A INPUT -s 192.168.20.1/32 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -s 192.168.28.1/32 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -s 94.25.125.102/32 -p ah -j ACCEPT
-A INPUT -s 94.25.125.102/32 -p gre -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5001 -j ACCEPT
-A INPUT -s 94.25.125.102/32 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.27.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.20.0/23 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.0.0/16 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.20.9/32 -d 192.168.27.1/32 -p tcp -m tcp --dport 10050 -j ACCEPT
-A FORWARD -d 192.168.27.8/32 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -s 192.168.27.38/32 -j ACCEPT
-A FORWARD -s 192.168.27.29/32 -j ACCEPT
-A FORWARD -s 192.168.27.21/32 -j ACCEPT
-A FORWARD -s 192.168.27.12/32 -j ACCEPT
-A FORWARD -s 192.168.27.15/32 -j ACCEPT
-A FORWARD -s 192.168.27.4/32 -j ACCEPT
-A FORWARD -d 192.168.27.3/32 -p tcp -m tcp --dport 6070 -j ACCEPT
-A FORWARD -s 192.168.27.3/32 -p tcp -m tcp --sport 6070 -j ACCEPT
-A FORWARD -s 192.168.57.0/24 -d 192.168.27.0/24 -j ACCEPT
-A FORWARD -s 192.168.27.0/24 -d 192.168.57.0/24 -j ACCEPT
-A FORWARD -s 192.168.27.0/24 -d 192.168.0.0/16 -j ACCEPT
-A FORWARD -s 192.168.57.0/24 -d 192.168.0.0/16 -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -d 192.168.27.0/24 -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -d 192.168.57.0/24 -j ACCEPT
-A FORWARD -s 192.168.20.6/32 -d 192.168.0.0/16 -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -d 192.168.20.6/32 -j ACCEPT
-A FORWARD -s 192.168.29.3/32 -d 192.168.0.0/16 -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -d 192.168.29.3/32 -j ACCEPT
-A FORWARD -s 192.168.28.4/32 -d 192.168.0.0/16 -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -d 192.168.28.4/32 -j ACCEPT
-A FORWARD -s 192.168.2.3/32 -d 192.168.0.0/16 -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -d 192.168.2.3/32 -j ACCEPT
-A FORWARD -s 192.168.3.4/32 -d 192.168.0.0/16 -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -d 192.168.3.4/32 -j ACCEPT
-A FORWARD -s 192.168.0.99/32 -d 192.168.0.0/16 -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -d 192.168.0.99/32 -j ACCEPT
-A FORWARD -s 192.168.7.6/32 -d 192.168.0.0/16 -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -d 192.168.7.6/32 -j ACCEPT
-A FORWARD -s 192.168.27.4/32 -d 192.168.0.0/16 -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -d 192.168.27.4/32 -j ACCEPT
-A FORWARD -s 192.168.27.0/24 -d 188.128.119.16/28 -j ACCEPT
-A FORWARD -s 192.168.57.0/24 -d 188.128.119.16/28 -j ACCEPT
-A FORWARD -s 192.168.27.0/24 -d 91.229.188.0/23 -j ACCEPT
-A FORWARD -s 192.168.57.0/24 -d 91.229.188.0/23 -j ACCEPT
-A FORWARD -s 192.168.57.0/24 -d 10.0.6.0/24 -j ACCEPT
-A FORWARD -s 10.0.6.0/24 -d 192.168.57.0/24 -j ACCEPT
-A FORWARD -s 192.168.27.0/24 -d 10.0.6.0/24 -j ACCEPT
-A FORWARD -s 10.0.6.0/24 -d 192.168.27.0/24 -j ACCEPT
-A FORWARD -s 192.168.27.0/24 -d 213.180.193.0/24 -j ACCEPT
-A FORWARD -s 192.168.27.0/24 -d 91.106.200.0/24 -j ACCEPT
-A FORWARD -s 192.168.27.0/24 -d 91.106.203.0/24 -j ACCEPT
-A FORWARD -s 192.168.27.0/24 -p tcp -m multiport --dports 443,22 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.27.0/24 -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Thu Mar 27 11:51:15 2014


Пользователь решил продолжить мысль 27 Марта 2014, 08:43:52:
Прописал на шлюзе разрешение для ДНС сервера провайдера:
$IPTABLES -A FORWARD -s 192.168.27.0/24 -d 195.206.40.0/24 -j ACCEPTВ настройках местного ДНС сервера на Windows Server, указал 1й ДНС - местный, второй - провайдера.
Теперь, клиент, получив настройки днсов спокойно ходит по сайтам как нужно.
Редирект срабатывает. Сайты открываются.
Всем спасибо за помощь! :)
« Последнее редактирование: 27 Марта 2014, 08:43:52 от serega1576 »

 

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