LinuxForum.Fans
Тема

sams + squid

Автор: maxim_k 17 сообщений 6026 просмотров
#281576

Привет всем, помогите решить проблему.
суть такова, настроил шлюз, установил sams, squid
вроде все запускается работает. подключаюсь к web-интерфейсу sams'a
реконфигурация конфига squid проходит нормально, служба запущена.
заворачиваю весь трафик на squid: #$IPT -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128

интернет у пользователей перестает работать. :(

конфиги:

Показать
ifconfig:
text

ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0d:87:3e:16:10
          inet addr:192.168.11.100  Bcast:192.168.11.255  Mask:255.255.255.0
          inet6 addr: fe80::20d:87ff:fe3e:1610/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:174090 errors:0 dropped:0 overruns:0 frame:0
          TX packets:216315 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:115483145 (110.1 MiB)  TX bytes:36012741 (34.3 MiB)
          Interrupt:11 Base address:0xe800

eth1 Link encap:Ethernet HWaddr 00:23:cd:b2:d7:15 inet addr:192.168.223.254 Bcast:192.168.223.255 Mask:255.255.255.0 inet6 addr: fe80::223:cdff:feb2:d715/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:234292 errors:0 dropped:0 overruns:0 frame:0 TX packets:175333 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:38623441 (36.8 MiB) TX bytes:115535796 (110.1 MiB) Interrupt:12 Base address:0x8000

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:136 errors:0 dropped:0 overruns:0 frame:0 TX packets:136 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:14718 (14.3 KiB) TX bytes:14718 (14.3 KiB)

скрипт:

text
#!/bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/ip_dynaddr

#Подгрузка модулей modprobe iptable_nat modprobe ip_conntrack_ftp modprobe ip_nat_ftp

#Объявление переменных export WAN=eth0 export LAN=eth1 export LAN_IP_RANGE=192.168.223.0/24 export IPT="iptables"

$IPT -P INPUT ACCEPT $IPT -P OUTPUT ACCEPT $IPT -P FORWARD ACCEPT

$IPT -F $IPT -F -t nat $IPT -F -t mangle $IPT -X $IPT -t nat -X $IPT -t mangle -X

$IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP

$IPT -A INPUT -i lo -j ACCEPT $IPT -A INPUT -i $WAN -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT $IPT -A OUTPUT -o $WAN -j ACCEPT

$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT $IPT -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

$IPT -A FORWARD -i $WAN -o $LAN -j ACCEPT

$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

$IPT -A INPUT -m state --state INVALID -j DROP $IPT -A FORWARD -m state --state INVALID -j DROP

$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP $IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

$IPT -A FORWARD -i $LAN -o $WAN -j REJECT

$IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE -j MASQUERADE

#ДЛЯ SSH $IPT -N SSHDROP $IPT -A INPUT -p tcp --dport 22 -m state --state NEW -j SSHDROP $IPT -A SSHDROP -m recent --set --name SSH $IPT -A SSHDROP -m recent --update --seconds 300 --hitcount 10 --name SSH -j LOG --log-level info --log-prefix "SSH DROP: " $IPT -A SSHDROP -m recent --update --seconds 300 --hitcount 10 --name SSH -j DROP

#Для FTP $IPT -A INPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT $IPT -A INPUT -p tcp --dport 22 -j ACCEPT

#Для DNS $IPT -A INPUT -m state --state NEW -p tcp -m tcp --dport 53 -j ACCEPT $IPT -A OUTPUT -m state --state NEW -p tcp -m tcp --dport 53 -j ACCEPT $IPT -A INPUT -m state --state NEW -p udp -m udp --dport 53 -j ACCEPT $IPT -A OUTPUT -m state --state NEW -p udp -m udp --dport 53 -j ACCEPT

#Для web $IPT -A INPUT -i $LAN -p tcp -s $LAN_IP_RANGE --dport 80 -j ACCEPT

#Для перенаправления на squid [b]$IPT -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128[/b]

#ВЫВОД ИНФО $IPT -L -v -t nat

#Сохраняем конфигурацю iptables iptables-save > /etc/ip_rulles.lst

sams

text
[client]
SQUID_DB=squidlog
SAMS_DB=squidctrl
MYSQLHOSTNAME=localhost
MYSQLUSER=******
MYSQLPASSWORD=********
MYSQLVERSION=5.1
SQUIDCACHEFILE=access.log
SQUIDROOTDIR=/etc/squid
SQUIDLOGDIR=/var/log/squid
SQUIDCACHEFILE=access.log
SQUIDPATH=/usr/sbin/squid
SQUIDCACHEDIR=/var/log/squid
SAMSPATH=/usr
SQUIDGUARDLOGPATH=/var/log
SQUIDGUARDDBPATH=/etc/squid
RECODECOMMAND=iconv -f UTF-8 -t 866 %finp > %fout
LDAPSERVER=
LDAPBASEDN=
LDAPUSER=
LDAPUSERPASSWD=
LDAPUSERSGROUP=
REJIKPATH=
SHUTDOWNCOMMAND=shutdown -h now
CACHENUM=0

не знаю сквид выложить ? он же большой с кучей комментариев ?

#281579
text
iptables -t nat -A PREROUTING -i eth1 -s 192.168.223.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128 

Ну и в настройках браузера убрать прописанный прокси.

#281582
XliN написал:
text
iptables -t nat -A PREROUTING -i eth1 -s 192.168.223.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128 

Ну и в настройках браузера убрать прописанный прокси.

не помогло :( если меняю с eth1 на eth0 тогда интернет работает, но самс трафик не считает :(
в настройках браузера нет прописанных прокси ни у кого... пользователей 20

#281586

сейчас картина такая, что все пользователи ходят через этот шлюз в инет. я решил, как то это дело ограничить, установил sams. но ничего не изменилось :) т.е. трафик он не считает, пользователей не блочит... я подумал, что проблема решится, если завернуть трафик на squid. squid работает как прозрачный прокси... не знаю, что еще добавить, но кто может помочь или подсказать из за чего самс работает в режиме "мебель", прошу откликнуться.

#281588

Всётаки покажыте конфиг сквида после такой конструкции

text
cat squid.conf | sed '/^#/d;/^$/d'
#281592
kisil написал:
Всётаки покажыте конфиг сквида после такой конструкции
text
cat squid.conf | sed '/^#/d;/^$/d'

Вы знаете, если я кое где вроде разобрался с iptables, но сейчас я в тупике :(

конфиг сквида:

Показать
text

/etc/squid# cat squid.conf | sed '/^#/d;/^$/d'
 auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/ncsa.sams
 auth_param basic children 5
 auth_param basic realm Squid proxy-caching web server
 auth_param basic credentialsttl 2 hours
acl _sams_508639753313f src "/etc/squid/508639753313f.sams"
acl _sams_508639753313f_time time MTWHFAS 00:00-23:59
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 192.168.223.0/24       # RFC1918 possible internal network
acl blacklist dstdomain .yandex.ru
acl SSL_ports port 443          # https
acl SSL_ports port 563          # snews
acl SSL_ports port 873          # rsync
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl Safe_ports port 901         # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow _sams_508639753313f  _sams_508639753313f_time
 http_access allow localnet
 http_access deny all
 http_access deny blacklist
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
 cache_dir ufs /var/spool/squid 4096 32 256
access_log /var/log/squid/access.log squid
 pid_filename /var/run/squid.pid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Packages(.gz)*)$       0       20%     2880
refresh_pattern .               0       20%     4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
delay_pools 1
delay_class 1 2
delay_access 1 allow _sams_508639753313f
delay_access 1 deny all
delay_parameters 1 524288/524288 524288/524288
 error_directory /usr/share/squid/errors/Russian-koi8-r
hosts_file /etc/hosts
 memory_pools on
 memory_pools_limit 50 MB
coredump_dir /var/spool/squid
redirect_program /usr/bin/squidGuard

#281594
"maxim.k" написал:
acl localnet src 192.168.223.0/24

Вот тут ты всем разрешаешь идти в инет.

#281595

acl _sams_508639753313f src "/etc/squid/508639753313f.sams"
acl _sams_508639753313f_time time MTWHFAS 00:00-23:59

не пойму вот это что такое, меняю строки в конфиги сквида, например 508639753313f на что нибудь другое например ncsa.sams, после рестарта squid'a опять все по старому... :(

#281596
XliN написал:
[quote="maxim.k"]acl localnet src 192.168.223.0/24

Вот тут ты всем разрешаешь идти в инет.[/quote]

ок, за комментировал все равно все в инете :(, самс так же не считает трафик... не пойму, что то со squid'om не так я думаю. может быть поделитесь раб. конфигами у кого такая связка работает ?

#281599

Выкинь самс. Рули все через iptables. Кого надо, того и выпускай.

text
NUMBERS_PRIV="192.168.3.88 192.168.1.127 192.168.2.253"

for number_priv in `echo $NUMBERS_PRIV` do iptables -A FORWARD -s $number_priv -o $inet -j ACCEPT iptables -A FORWARD -i $inet -d $number_priv -j ACCEPT done

Если еще и пометить то можно на них накатить шейпер TC и резать скорость канала.

text
  iptables -t mangle -A FORWARD -s $number_priv -o $inet -j MARK --set-mark 90
  iptables -t mangle -A FORWARD -i $inet -d $number_priv -j MARK --set-mark 90
text
NUMBERS_VLAN="eth0"
for number_vl in `echo $NUMBERS_VLAN`
do
echo $number_vl

tc qdisc del dev $number_vl root tc qdisc add dev $number_vl root handle 1: htb

tc class add dev $number_vl parent 1: classid 1:1 htb rate 100Mbit

tc class add dev $number_vl parent 1:1 classid 1:100 htb rate 100Mbit ceil 100Mbit burst 15k tc class add dev $number_vl parent 1:1 classid 1:90 htb rate 1Mbit ceil 15Mbit burst 15k

tc qdisc add dev $number_vl parent 1:100 handle 100: sfq perturb 10 tc qdisc add dev $number_vl parent 1:90 handle 90: sfq perturb 10

tc filter add dev $number_vl parent 1:0 protocol ip prio 1 handle 100 fw classid 1:100 tc filter add dev $number_vl parent 1:0 protocol ip prio 2 handle 90 fw classid 1:90

#281601
XliN написал:
Выкинь самс. Рули все через iptables. Кого надо, того и выпускай.

возможно, а как быть со статистикой ?

#281631

Кто нибудь настраивал sams + squid (в режиме прозрачный прокси) ?

только авторизация на sams'e по IP ?

#281653

Если используетса прозрачний прокси то авторизации не может быть. Если будет по айпи то ставь кальмара не прозрачным прокси удаляй правыло которое заворачивает трафик с 80 порта на 3128. А логирование тебе какое нужно то что в самсе???

#281864
kisil написал:
Если используетса прозрачний прокси то авторизации не может быть. Если будет по айпи то ставь кальмара не прозрачным прокси удаляй правыло которое заворачивает трафик с 80 порта на 3128. А логирование тебе какое нужно то что в самсе???

совершенно верно, я думал за авторизацию отвечает программа самс. подсчет трафика делает тоже самс по логам из squid, ну а раздача инета уже на плечах того скрипта, что в (1) стоит. а как на самом деле ?

У многих же работают шлюзы, как у кого устроенно ? поделитесь опытом, интересует авторизация + сбор статистики. Скорее больше всего интересует "хороший" сбор статистики... *HELP*

#281876
maxim.k написал:
[quote=kisil]Если используетса прозрачний прокси то авторизации не может быть. Если будет по айпи то ставь кальмара не прозрачным прокси удаляй правыло которое заворачивает трафик с 80 порта на 3128. А логирование тебе какое нужно то что в самсе???

совершенно верно, я думал за авторизацию отвечает программа самс. подсчет трафика делает тоже самс по логам из squid, ну а раздача инета уже на плечах того скрипта, что в (1) стоит. а как на самом деле ?

У многих же работают шлюзы, как у кого устроенно ? поделитесь опытом, интересует авторизация + сбор статистики. Скорее больше всего интересует "хороший" сбор статистики... *HELP*[/quote]
Ну хорошый сбор статистики можно организовать с помощью тогоже sarg или, лично я пользуюсь, lightsquid. Статистика последнего занимает просто меньше места. У меня авторизацыя настроена по МАС+Айпи, что бы кто хитрый не дадумалса назначить айпи. А мак у нас в сети менять не умеют. Всё ето настроено без будь каких гуевых штук. Пареметры доступа рулит SquidGuard, скорость сам сквид. Всё. Так у меня работает уже гдето 4 года.

#281894
kisil написал:

Ну хорошый сбор статистики можно организовать с помощью тогоже sarg или, лично я пользуюсь, lightsquid. Статистика последнего занимает просто меньше места. У меня авторизацыя настроена по МАС+Айпи, что бы кто хитрый не дадумалса назначить айпи. А мак у нас в сети менять не умеют. Всё ето настроено без будь каких гуевых штук. Пареметры доступа рулит SquidGuard, скорость сам сквид. Всё. Так у меня работает уже гдето 4 года.

у меня сам Linux настроен в режиме шлюза, т.е. как таково squid там не нужен. разрешить доступ нужным айпи я могу и через iptables. а вот собрать статистику проблема.
то что вы описали наверно работает, увас на прокси сервере ?
у меня же сами логи у сквида (access.log) пустой. Скорее всего я чего то не понимаю, но как настроить тот же sarg or lightsquid, что бы он у меня собирал статистику и ее можно было, как то анализировать... Х-ов кстати на шлюзе нет.

я думаю с установкой самс, я убиваю все зайцев, но с ним не все так просто, не смог разобраться :( почему то не собирает он статистику...

#281896

Наскоко я помню при использовании самса access.log сквида и будет пустой, он сливает записи в базу. Это если я правильно помню. Если вы можете рулить доступом с помощью iptables, то прикрутите тут логирование. Посмотрите сюда у меня кроме статистики сквида ещё и общая статистика собираетса с интерфейса с помощью trafstat, можете заюзать тот же Ulog

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