1

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

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

конфиги:

+ открыть спойлер

ifconfig:

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)

скрипт:

#!/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

[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

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

2 (23.10.2012 09:20:27 отредактировано XliN)

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

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

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

3 (23.10.2012 09:29:19 отредактировано maxim.k)

XliN пишет:
iptables -t nat -A PREROUTING -i eth1 -s 192.168.223.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128 

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


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

4

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

5

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

cat squid.conf | sed '/^#/d;/^$/d'
Trouble  in WINDOWS reboot, trouble in UNIX be root.

6 (23.10.2012 10:24:07 отредактировано maxim.k)

kisil пишет:

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

cat squid.conf | sed '/^#/d;/^$/d'

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

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

+ открыть спойлер
/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

7

maxim.k пишет:

acl localnet src 192.168.223.0/24

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

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

8

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

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

9 (23.10.2012 10:41:07 отредактировано maxim.k)

XliN пишет:
maxim.k пишет:

acl localnet src 192.168.223.0/24

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

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

10

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

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 и резать скорость канала.

  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
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
MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

11

XliN пишет:

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


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

12

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

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

13

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

Trouble  in WINDOWS reboot, trouble in UNIX be root.

14 (24.10.2012 07:03:53 отредактировано maxim.k)

kisil пишет:

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


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

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

15

maxim.k пишет:
kisil пишет:

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


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

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

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

Trouble  in WINDOWS reboot, trouble in UNIX be root.

16 (24.10.2012 11:17:04 отредактировано maxim.k)

kisil пишет:

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

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

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

17

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

Trouble  in WINDOWS reboot, trouble in UNIX be root.