LinuxForum.Fans
Тема

Proxy-server

Автор: lohi1234567 13 сообщений 4606 просмотров
#121613

доброго время суток.
есть дебиан(консоль) на нем есть интеренет через pppoe.
нужно настроить прозрачную проксю + 2 компа чтобы имели прямое соединение (ходили в обход прокси)
собственно на самом компе инет есть
на клиентах гетвей прописан как у сервака на eth0

text

eth0      Link encap:Ethernet  HWaddr хх:хх:хх:хх:хх:хх  
          inet addr:192.168.0.102  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: ХХ Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10771 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8022 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5982824 (5.7 MiB)  TX bytes:2694981 (2.5 MiB)
          Interrupt:11 Base address:0xd400 

eth1 Link encap:Ethernet HWaddr хх:хх:хх:хх:хх:хх inet6 addr: ХХ Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6077 errors:0 dropped:503 overruns:0 frame:0 TX packets:10527 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2622432 (2.5 MiB) TX bytes:6098885 (5.8 MiB) Interrupt:10 Base address:0xd000

lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1040 (1.0 KiB) TX bytes:1040 (1.0 KiB)

ppp0 Link encap:Point-to-Point Protocol inet addr:yy.yy.yy.222 P-t-P:zzz.zzz.zzz.zzz Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 RX packets:5245 errors:0 dropped:0 overruns:0 frame:0 TX packets:10484 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:2391102 (2.2 MiB) TX bytes:5862407 (5.5 MiB)

eth0 - local
eth1 - internet


прописывал как тут:http://www.ivankristianto.com/os/ubuntu/howto-install-and-configure-squid-as-transparent-proxy/648/
и так пробовал

text

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

сквид.конф

text
visible_hostname proxy
http_port 3128 transparent

cache_dir null /null cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log none

acl all src 0.0.0.0/0.0.0.0 acl localhost src 192.168.0.102

acl SSL_ports port 443 acl SSL_ports port 8443 # SSL acl SSL_ports port 5190 acl Safe_ports port 80 # http acl Safe_ports port 5190 # icq acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 8443 # https acl Safe_ports port 1025-65535 # unregistered ports acl CONNECT method CONNECT

http_access deny !Safe_ports http_access deny CONNECT !SSL_ports

acl lan src 192.168.0.0/24 acl banners url_regex "/etc/squid/banners.acl" http_access deny banners

http_access allow lan http_access deny all

одним словом, помогите..

#121651

Во первых что не работае. Если не работает логи в студию.
А на щот того что компы должны ходит через проксю, а 2 мимо прокси верно ли я понял. Ну для этого покажыте свои правила iptables и

[console]iptables -L[/console]

#121656

на данный момент правила пусты
попытки:
iptables -t nat -A PREROUTING -i eth0 -p tcp -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
и вот этот скрипт

text

# squid server IP
SQUID_SERVER="192.168.0.102"
# Interface connected to Internet
INTERNET="eth1"
# Interface connected to LAN
LAN_IN="eth0"
# Squid port
SQUID_PORT="3128"
 
# DO NOT MODIFY BELOW
# Clean old firewall
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
# Load IPTABLES modules for NAT and IP conntrack support
modprobe ip_conntrack
modprobe ip_conntrack_ftp
# For win xp ftp client
#modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
# Setting default filter policy
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
# Unlimited access to loop back
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Allow UDP, DNS and Passive FTP
iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT
# set this system as a router for Rest of LAN
iptables --table nat --append POSTROUTING --out-interface $INTERNET -j MASQUERADE
iptables --append FORWARD --in-interface $LAN_IN -j ACCEPT
# unlimited access to LAN
iptables -A INPUT -i $LAN_IN -j ACCEPT
iptables -A OUTPUT -o $LAN_IN -j ACCEPT
# DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy
iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT
# if it is same system
iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT
# DROP everything and Log it
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP

не принесли результату

проблема собственно и состоит скорее всего в том чтобы написать правило правильно о заворачивании на сквид

#121713
lohi1234567 написал:
на данный момент правила пусты
попытки:
iptables -t nat -A PREROUTING -i eth0 -p tcp -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
и вот этот скрипт
text

# squid server IP
SQUID_SERVER="192.168.0.102"
# Interface connected to Internet
INTERNET="eth1"
# Interface connected to LAN
LAN_IN="eth0"
# Squid port
SQUID_PORT="3128"
 
# DO NOT MODIFY BELOW
# Clean old firewall
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
# Load IPTABLES modules for NAT and IP conntrack support
modprobe ip_conntrack
modprobe ip_conntrack_ftp
# For win xp ftp client
#modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
# Setting default filter policy
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
# Unlimited access to loop back
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Allow UDP, DNS and Passive FTP
iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT
# set this system as a router for Rest of LAN
iptables --table nat --append POSTROUTING --out-interface $INTERNET -j MASQUERADE
iptables --append FORWARD --in-interface $LAN_IN -j ACCEPT
# unlimited access to LAN
iptables -A INPUT -i $LAN_IN -j ACCEPT
iptables -A OUTPUT -o $LAN_IN -j ACCEPT
# DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy
iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT
# if it is same system
iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT
# DROP everything and Log it
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP

не принесли результату

проблема собственно и состоит скорее всего в том чтобы написать правило правильно о заворачивании на сквид

Если у тебя в iptables будут вот эти правила

text
iptables -P INPUT DROP
iptables -A INPUT -j DROP

То трафик даже не попадёт в таблицу nat. Ты сначала просто поставь так

[console]iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
[/console]

Потом вот это
[console]iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128[/console]
И тогда попробуй.

#122541

сделано как написано, никаких рузультатов ((
может для решения проблемы нужны какието логи...
какие еще варианты?

#122546

А можно глупый вопрос зачем вам прокcи (для каких целей)?

#122547
Kettler написал:
А можно глупый вопрос зачем вам прокcи (для каких целей)?

можно, есть некое количество пользователей между которыми нужно разделить канал с определенными ограничениями

#122550

если надо делить скорость tc будет проще

#122919

А ты эти рпавила применил
[console]
iptables -X
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
[/console]
Заметь кроме этих правил больше никаких не должно быть. Запусти сквид и попробуй в браузере на другом компе что то открыть. И покажы лог сквида.

#123889

ввел ненаписанные команды
в браузере прописую проксю
логи:

Показать

1296572704.456 835 192.168.0.200 TCP_MISS/200 8580 GET http://linuxforum.ru/viewtopic.php?id=10377 - DIRECT/188.120.241.125 text/html
1296572704.501 236 192.168.0.200 TCP_REFRESH_HIT/304 354 GET http://linuxforum.ru/style/Oxygen/Oxygen.css - DIRECT/188.120.241.125 -
1296572704.560 201 192.168.0.200 TCP_REFRESH_HIT/304 354 GET http://linuxforum.ru/style/Oxygen/Oxygen_cs.css - DIRECT/188.120.241.125 -
1296572704.571 204 192.168.0.200 TCP_REFRESH_HIT/304 354 GET http://linuxforum.ru/include/js/common.js - DIRECT/188.120.241.125 -
1296572704.578 201 192.168.0.200 TCP_REFRESH_HIT/304 353 GET http://linuxforum.ru/include/js/board.js - DIRECT/188.120.241.125 -
1296572704.588 205 192.168.0.200 TCP_REFRESH_HIT/304 353 GET http://linuxforum.ru/include/js/bbcode.js - DIRECT/188.120.241.125 -
1296572704.590 204 192.168.0.200 TCP_REFRESH_HIT/304 354 GET http://linuxforum.ru/include/js/ajax_post_edit.js - DIRECT/188.120.241.125 -
1296572704.705 115 192.168.0.200 TCP_REFRESH_HIT/304 354 GET http://linuxforum.ru/img/linuxforum_winter.jpg - DIRECT/188.120.241.125 -
1296572704.712 105 192.168.0.200 TCP_REFRESH_HIT/304 354 GET http://linuxforum.ru/img/avatars/767.jpg - DIRECT/188.120.241.125 -
1296572704.717 96 192.168.0.200 TCP_REFRESH_HIT/304 354 GET http://linuxforum.ru/img/avatars/11719.jpg - DIRECT/188.120.241.125 -
1296572704.747 106 192.168.0.200 TCP_REFRESH_HIT/304 353 GET http://linuxforum.ru/style/Oxygen/feed-icon.png - DIRECT/188.120.241.125 -
1296572704.777 141 192.168.0.200 TCP_MISS/200 1214 GET http://d4.ce.ba.a0.top.mail.ru/counter?id=713972;t=57 - DIRECT/94.100.185.26 image/gif
1296572704.845 223 192.168.0.200 TCP_MISS/200 568 GET http://counter.yadro.ru/hit?t18.11;rhttp%3A//linuxforum.ru/viewforum.php%3Fid%3D6;s1280*800*24;uhttp%3A//linuxforum.ru/viewtopic.php%3Fid%3D10377;hProxy-server%20%28%u0421%u0442%u0440%u0430%u043D%u0438%u0446%u0430%201%29%20%u2014%20Debian%20GNU/Linux%20%u2014%20LinuxForum%20%u2014%20%u0424%u043E%u0440%u0443%u043C%20%u043E%20Linux;0.035425161189826304 - DIRECT/88.212.196.66 image/gif

чистю логи
прописую шлюз поумолчянию в сетевых настройка винды
выключаю проксю с браузера

результат: чистые логи :(
может я както нитак прописую?

#124111

а в сквиде включена прозрачная прокся?

#124117

так попробуй так
[console]iptables -X
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT[/console]

text
visible_hostname proxy
http_port 3128

cache_dir null /null cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log none

acl all src 0.0.0.0/24 acl localhost src 192.168.0.102

acl SSL_ports port 443 acl SSL_ports port 8443 # SSL acl SSL_ports port 5190 acl Safe_ports port 80 # http acl Safe_ports port 5190 # icq acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 8443 # https acl Safe_ports port 1025-65535 # unregistered ports acl CONNECT method CONNECT

http_access deny !Safe_ports http_access deny CONNECT !SSL_ports

acl lan src 192.168.0.0/24 acl banners url_regex "/etc/squid/banners.acl" http_access deny banners

http_access allow lan http_access deny all

И настрой браузер тестового компа на проксю. Заметь тут будет не прозрачное проксирование.
Да ещё кроме access.log выложы cache.log после старта сквида

#124123

0-192.168.0.1-сервер с инетом, 192.168.0.3-комп который должен идти мимо прокси, 192.168.1.1-адрес на сетевой где есть инет
1-заворачивание всех на прокси кроме 192.168.0.3:

text

iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 -d ! 192.168.0.3 --dport 80 -j REDIRECT --to-port 3128

2-нат(обход прокси) для 192.168.0.3

text

echo "1" >  /proc/sys/net/ipv4/ip_forward #включаем
iptables -t nat -A POSTROUTING -d 192.168.0.3 -j SNAT --to-source 192.168.1.1

3-настройка прокси для прозрачного проксирования:

text

http_port       3128    transparent

Надо сказать что прокси прозрачно не будет обрабатывать https.
Ну и соответственно шлюзом по умолчанию должен быть 192.168.0.1 + для нормальной работы прозрачного прокси должен быть доступ к какому-либо dns-серверу.
Итого:
получается скрипт вида:

text

#очищаем все правила
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
#включаем NAT
echo "1" >  /proc/sys/net/ipv4/ip_forward 
#на прокси
iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 -d ! 192.168.0.3 --dport 80 -j REDIRECT --to-port 3128
#мимо прокси
iptables -t nat -A POSTROUTING -d 192.168.0.3 -j SNAT --to-source 192.168.1.1

PS походу наврал с натом. Как я понимаю адрес не статический для интернета?
Вот статья хорошая http://linuxforum.ru/viewtopic.php?id=228

Войдите или зарегистрируйтесь, чтобы ответить.