Hi All!Делаю на cisco и Squid прозрачный прокси. Циска пакеты на машину со сквидом заворачивает, а вот iptables похоже их на порт сквида не отправляет.
[root@watcher log]# tcpdump -i eth1 host 172.19.19.10
tcpdump: listening on eth1
13:21:39.735448 172.19.19.10.1320 > 216.23.176.100.http: S 4048023158:4048023158(0) win 64512 <mss 1260,nop,nop,sackOK> (DF)
13:21:44.697391 172.19.19.10.1321 > opennet.ru.http: S 24003663:24003663(0) win 64512 <mss 1260,nop,nop,sackOK> (DF)
13:21:47.735501 172.19.19.10.1321 > opennet.ru.http: S 24003663:24003663(0) win 64512 <mss 1260,nop,nop,sackOK> (DF)
13:21:53.751199 172.19.19.10.1321 > opennet.ru.http: S 24003663:24003663(0) win 64512 <mss 1260,nop,nop,sackOK> (DF)
а вот на порту 3128 tcpdump от этого хоста ничего не видит :(Правила для iptables:
[root@watcher log]# iptables -L -t nat -v
Chain PREROUTING (policy ACCEPT 8764K packets, 532M bytes)
pkts bytes target prot opt in out source destination
74 3552 REDIRECT tcp -- any any 172.19.19.0/24 !172.16.16.253 multiport dports http,81,82,83,kerberos,8000,8001,8002,webcache,tproxy,https redir ports 3128
0 0 REDIRECT udp -- any any 172.19.19.0/24 !172.16.16.253 multiport dports http,81,82,83,kerberos,8000,8001,8002,webcache,tproxy,https redir ports 3128Chain POSTROUTING (policy ACCEPT 9541K packets, 574M bytes)
pkts bytes target prot opt in out source destination
739 38757 SNAT all -- any eth2 172.16.16.0/24 anywhere to:212.176.41.40Подскажите плз в чем может быть дело?
> 74 3552 REDIRECT tcp --работает же
> any any 172.19.19.0/24
> !172.16.16.253
>multiport dports http,81,82,83,kerberos,8000,8001,8002,webcache,tproxy,https redir ports 3128во первых не жадничать с https точно работать не будет, другие порты тоже лучше не юзать, осбливо если сквид старый, tcpdump тоже не юзать, у сквида же есть логи, там видно будет заорачиваются или нет
>> 74 3552 REDIRECT tcp --
>
>работает же
>
>> any any 172.19.19.0/24
>> !172.16.16.253
>>multiport dports http,81,82,83,kerberos,8000,8001,8002,webcache,tproxy,https redir ports 3128
>
>во первых не жадничать с https точно работать не будет, другие порты
>тоже лучше не юзать, осбливо если сквид старый, tcpdump тоже не
>юзать, у сквида же есть логи, там видно будет заорачиваются или
>нет
положи сюда squid.conf
>>> 74 3552 REDIRECT tcp --
>>
>>работает же
>>
>>> any any 172.19.19.0/24
>>> !172.16.16.253
>>>multiport dports http,81,82,83,kerberos,8000,8001,8002,webcache,tproxy,https redir ports 3128
>>
>>во первых не жадничать с https точно работать не будет, другие порты
>>тоже лучше не юзать, осбливо если сквид старый, tcpdump тоже не
>>юзать, у сквида же есть логи, там видно будет заорачиваются или
>>нет
>
>
>положи сюда squid.conf--skip--
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl our_networks src 172.16.16.0/24 172.17.17.2/32 172.18.18.0/24 172.19.19.0/24
http_access allow manager localhost
http_access deny manager
http_access deny to_localhost
http_access allow our_networks
http_access deny all
http_reply_access allow our_networks
http_reply_access deny all
--skip--
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header onв логах сквида тоже нет запросов от от этого хоста :(
squid/2.5.Stable 1
а почему с hhtps работать не будет?
>>>> 74 3552 REDIRECT tcp --
>>>
>>>работает же
>>>
>>>> any any 172.19.19.0/24
>>>> !172.16.16.253
>>>>multiport dports http,81,82,83,kerberos,8000,8001,8002,webcache,tproxy,https redir ports 3128
>>>
>>>во первых не жадничать с https точно работать не будет, другие порты
>>>тоже лучше не юзать, осбливо если сквид старый, tcpdump тоже не
>>>юзать, у сквида же есть логи, там видно будет заорачиваются или
>>>нет
>>
>>
>>положи сюда squid.conf
>
>--skip--
>acl all src 0.0.0.0/0.0.0.0
>acl manager proto cache_object
>acl localhost src 127.0.0.1/255.255.255.255
>acl to_localhost dst 127.0.0.0/8
>acl our_networks src 172.16.16.0/24 172.17.17.2/32 172.18.18.0/24 172.19.19.0/24
>http_access allow manager localhost
>http_access deny manager
>http_access deny to_localhost
>http_access allow our_networks
>http_access deny all
>http_reply_access allow our_networks
>http_reply_access deny all
>--skip--
>httpd_accel_host virtual
>httpd_accel_port 80
>httpd_accel_with_proxy on
>httpd_accel_uses_host_header on
>
>в логах сквида тоже нет запросов от от этого хоста :(
>squid/2.5.Stable 1
>а почему с hhtps работать не будет?1) запусти squid -d 6 например, и коннекться, и смотри что пишет squid
2) squid должен быть собран с --with-netfilter (что-то типа этого)
3) в squid.conf :
http_port ip_address:3128 transparent
>1) запусти squid -d 6 например, и коннекться, и смотри что пишет
>squid
>2) squid должен быть собран с --with-netfilter (что-то типа этого)
не надо учить странному, это надо для того чтобы ИП адресса менялись, а это в его версии нету, тем более что собирать из исходников глупо
>3) в squid.conf :
>http_port ip_address:3128 transparent
не будет так работать версия другаяPS: у вас наскроен прозрачный прокси только на 80 порт другие разворачивать не стоит, как я уже писал
>>1) запусти squid -d 6 например, и коннекться, и смотри что пишет
>>squid
>>2) squid должен быть собран с --with-netfilter (что-то типа этого)
>не надо учить странному, это надо для того чтобы ИП адресса менялись,
>а это в его версии нету, тем более что собирать из
>исходников глупо
>>3) в squid.conf :
>>http_port ip_address:3128 transparent
>не будет так работать версия другая
>
>PS: у вас наскроен прозрачный прокси только на 80 порт другие разворачивать
>не стоит, как я уже писал
прошу прощения - забыл посмотреть на версию.
>>1) запусти squid -d 6 например, и коннекться, и смотри что пишет
>>squid
>>2) squid должен быть собран с --with-netfilter (что-то типа этого)
>не надо учить странному, это надо для того чтобы ИП адресса менялись,
>а это в его версии нету, тем более что собирать из
>исходников глупо
>>3) в squid.conf :
>>http_port ip_address:3128 transparent
>не будет так работать версия другая
>
>PS: у вас наскроен прозрачный прокси только на 80 порт другие разворачивать
>не стоит, как я уже писал
Оставил в правилах iptables только 80 порт - ничего не изменилось :(( Также tcpdump не видит запросов от этого хоста на порту 3128 и сайты не открываются
>>>1) запусти squid -d 6 например, и коннекться, и смотри что пишет
>>>squid
>>>2) squid должен быть собран с --with-netfilter (что-то типа этого)
>>не надо учить странному, это надо для того чтобы ИП адресса менялись,
>>а это в его версии нету, тем более что собирать из
>>исходников глупо
>>>3) в squid.conf :
>>>http_port ip_address:3128 transparent
>>не будет так работать версия другая
>>
>>PS: у вас наскроен прозрачный прокси только на 80 порт другие разворачивать
>>не стоит, как я уже писал
>Оставил в правилах iptables только 80 порт - ничего не изменилось :((
>Также tcpdump не видит запросов от этого хоста на порту 3128
>и сайты не открываютсяпозор на мою седую голову :-) не долгядел что у вас правило кривое :-)
iptables -t nat -A PREROUTING -s clientIP -p tcp -m tcp --dport 80 -j DNAT --to-destination proxIP:3128
>>>>1) запусти squid -d 6 например, и коннекться, и смотри что пишет
>>>>squid
>>>>2) squid должен быть собран с --with-netfilter (что-то типа этого)
>>>не надо учить странному, это надо для того чтобы ИП адресса менялись,
>>>а это в его версии нету, тем более что собирать из
>>>исходников глупо
>>>>3) в squid.conf :
>>>>http_port ip_address:3128 transparent
>>>не будет так работать версия другая
>>>
>>>PS: у вас наскроен прозрачный прокси только на 80 порт другие разворачивать
>>>не стоит, как я уже писал
>>Оставил в правилах iptables только 80 порт - ничего не изменилось :((
>>Также tcpdump не видит запросов от этого хоста на порту 3128
>>и сайты не открываются
>
>позор на мою седую голову :-) не долгядел что у вас правило
>кривое :-)
>
>
>iptables -t nat -A PREROUTING -s clientIP -p tcp -m tcp --dport
>80 -j DNAT --to-destination proxIP:3128
Не, ничего не меняется :(( Так же нет ничего на порту 3128 :((
>>
>>iptables -t nat -A PREROUTING -s clientIP -p tcp -m tcp --dport
>>80 -j DNAT --to-destination proxIP:3128
>Не, ничего не меняется :(( Так же нет ничего на порту 3128
>:((iptables -L -v -n -t nat
что выдает?
>>>
>>>iptables -t nat -A PREROUTING -s clientIP -p tcp -m tcp --dport
>>>80 -j DNAT --to-destination proxIP:3128
>>Не, ничего не меняется :(( Так же нет ничего на порту 3128
>>:((
>
>iptables -L -v -n -t nat
>что выдает?[root@watcher root]# iptables -L -v -n -t nat
Chain PREROUTING (policy ACCEPT 9046K packets, 551M bytes)
pkts bytes target prot opt in out source destination
19 912 DNAT tcp -- * * 172.19.19.0/24 0.0.0.0/0 tcp dpt:80 to:172.16.16.253:3128Chain POSTROUTING (policy ACCEPT 9918K packets, 596M bytes)
pkts bytes target prot opt in out source destination
778 41205 SNAT all -- * eth2 172.16.16.0/24 0.0.0.0/0 to:212.176.x.xChain OUTPUT (policy ACCEPT 2681K packets, 164M bytes)
pkts bytes target prot opt in out source destination
>Chain PREROUTING (policy ACCEPT 9046K packets, 551M bytes)
> pkts bytes target prot opt in
> out source
>
> destination
> 19 912 DNAT
> tcp -- *
> * 172.19.19.0/24
> 0.0.0.0/0
> tcp dpt:80 to:172.16.16.253:3128так работает же 19 редиректов было, в логах сквида смотрите, если 172.16.16.253 не на этом компе то 3128 вы увидете только на том интрфейсе за которым он живет не раньше
>>Chain PREROUTING (policy ACCEPT 9046K packets, 551M bytes)
>> pkts bytes target prot opt in
>> out source
>>
>> destination
>> 19 912 DNAT
>> tcp -- *
>> * 172.19.19.0/24
>> 0.0.0.0/0
>> tcp dpt:80 to:172.16.16.253:3128
>
>так работает же 19 редиректов было, в логах сквида смотрите, если 172.16.16.253
>не на этом компе то 3128 вы увидете только на том
>интрфейсе за которым он живет не раньше
НЕТУ в логах сквида ничего от хоста 172.19.19.10 :((
172.16.16.253 это адрес прокси, на который циска заворачивает пакеты. И они туда попадают, судя по tcpdump, а вот на порт 3128 того же интерфейса уже нет.
>tcpdump: listening on eth1
REDIRECT делается на 127.0.0.1, а Вы смотрите трафик на адресе из 172 сетки
>>tcpdump: listening on eth1
>REDIRECT делается на 127.0.0.1, а Вы смотрите трафик на адресе из 172
>сетки
На 127.0.0.1 вообще нет никаких пакетов:
# tcpdump -i lo
tcpdump: listening on lo0 packets received by filter
0 packets dropped by kernel
>>>tcpdump: listening on eth1
>>REDIRECT делается на 127.0.0.1, а Вы смотрите трафик на адресе из 172
>>сетки
>На 127.0.0.1 вообще нет никаких пакетов:
># tcpdump -i lo
>tcpdump: listening on lo
>
>0 packets received by filter
>0 packets dropped by kernel
там имеелось ввиду что будет не DNAT а REDIRECT тогда на заглушке должно быть
>>>>tcpdump: listening on eth1
>>>REDIRECT делается на 127.0.0.1, а Вы смотрите трафик на адресе из 172
>>>сетки
>>На 127.0.0.1 вообще нет никаких пакетов:
>># tcpdump -i lo
>>tcpdump: listening on lo
>>
>>0 packets received by filter
>>0 packets dropped by kernel
>там имеелось ввиду что будет не DNAT а REDIRECT тогда на заглушке
>должно быть
дык и проверял при REDIRECT. и при DNAT на всякий случай тоже :) результат одинаково отрицательный
>дык и проверял при REDIRECT. и при DNAT на всякий случай тоже
>:) результат одинаково отрицательный
А может в таблице фильтр запрещено прохождение пакетов?
>>дык и проверял при REDIRECT. и при DNAT на всякий случай тоже
>>:) результат одинаково отрицательный
>А может в таблице фильтр запрещено прохождение пакетов?
Но ведь если явно задать прокси пакеты проходят.# iptables -L -t filter
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:11643
RH-Lokkit-0-50-INPUT all -- anywhere anywhereChain FORWARD (policy ACCEPT)
target prot opt source destination
RH-Lokkit-0-50-INPUT all -- anywhere anywhereChain OUTPUT (policy ACCEPT)
target prot opt source destinationChain RH-Lokkit-0-50-INPUT (2 references)
target prot opt source destination
ACCEPT udp -- adsl-67-117-76-142.dsl.sntc01.pacbell.net anywhere udp spt:ntp dpt:ntp
ACCEPT udp -- mail.solarnet.ru anywhere udp spt:ntp dpt:ntp
ACCEPT udp -- alpha.prao.psn.ru anywhere udp spt:ntp dpt:ntp
ACCEPT tcp -- anywhere anywhere tcp dpt:smtp flags:SYN,RST,ACK/SYN
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh flags:SYN,RST,ACK/SYN
REJECT tcp -- anywhere anywhere tcp dpts:0:1023 flags:SYN,RST,ACK/SYN reject-with icmp-port-unreachable
REJECT tcp -- anywhere anywhere tcp dpt:nfs flags:SYN,RST,ACK/SYN reject-with icmp-port-unreachable
REJECT udp -- anywhere anywhere udp dpts:0:1023 reject-with icmp-port-unreachable
REJECT udp -- anywhere anywhere udp dpt:nfs reject-with icmp-port-unreachable
REJECT tcp -- anywhere anywhere tcp dpts:x11:6009 flags:SYN,RST,ACK/SYN reject-with icmp-port-unreachable
REJECT tcp -- anywhere anywhere tcp dpt:xfs flags:SYN,RST,ACK/SYN reject-with icmp-port-unreachable