1

Тема: FreeBSD 8.2 + squid 2.7 + SAMS 1.0.5 проблема....

Доброго времени суток!Столкнулся с проблемой, с которой никак не могу справиться. Сам в BSD новичок! Требуется настроить корпоративный прокси. Сейчас все работает, кроме Squid и SAMS. Лог Squid не пишется....

Добавлено: 12-05-2012 16:25:43

Вот что имеется

rc.conf

# -- sysinstall generated deltas -- # Sat Apr 28 16:44:13 2012
# Created: Sat Apr 28 16:44:13 2012
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
# -- sysinstall generated deltas -- # Sat Apr 28 12:51:30 2012
ifconfig_alc0="inet 192.168.1.34  netmask 255.255.255.0"
hostname="press.ru"
sshd_enable="YES"
gateway_enable="YES"
#Внешка
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="NO"    # if you want to enable nat for your local network, otherwise NO
ppp_profile="name_of_service_provider"
#MySQL
mysql_enable="YES"
#Apache
apache22_enable="YES"
#DNS
named_enable="YES"
named_program="/usr/sbin/named"
named_flags="-u bind -c /etc/namedb/named.conf"
#Файрвол
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_nat_enable="YES"
firewall_nat_interface="tun0"
#firewall_type="OPEN"
#ProFTPD
proftpd_enable="YES"
proftpd_flags=""
#Webmin
webmin_enable="YES"
#SQUID
squid_enable="YES"
#SAMS
sams_enable="YES"
#Отключаем проверку диска(ов) в фоне
fsck_y_enable="YES"
background_fsck="NO"
#Настраиваем синхронизацию времени
ntpdate_enable="YES"
ntpd_enable="YES"
#Русская консоль
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
scrnmap="koi8-r2cp866"
keymap="ru.koi8-r"

squid.conf:

# ....пропущено.....
#Recommended minimum configuration per scheme:
auth_param basic program /usr/local/libexec/squid/ncsa_auth \
    /usr/local/etc/squid/ncsa.sams
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
# ....пропущено.....
# Squid normally listens to port 3128
http_port 3128
# ....пропущено.....
# Не обязательный параметр
#  TAG: forwarded_for   on|off
forwarded_for off
# ....пропущено....


rc.firewall

# для начала вводим переменные - для нашего же удобства, чтобы не 
# вводить по сотне раз одно и то же, а потом искать почему не работает,
# и в итоге выяснять, что ошибся IP адресом в одном из правил
FwCMD="/sbin/ipfw"      # собственно где лежит бинарник ipfw
LanOut="tun0"           # внешний интерфейс
LanIn="alc0"            # внутренний интерфейс
IpOut="xxx.xxx.xxx.xxx" # внешний IP адрес машины
IpIn="192.168.1.34"     # внутренний IP машины
#IpIn="192.168.1.100"   # внутренний IP машины
NetMask="24"            # маска сети (если она разная для внешней 
                        # и внутренней сети - придётся вводить ещё 
                        # одну переменную, но самое забавное, что 
                        # можно и забить - оставить 24 - всё будет 
                        # работать, по крайней мере я пробовал - 
                        # работаало на 4-х машинах, в разных сетях, 
                        # с разными масками - настоящими разными! но - 
                        # это неправильно.)
NetIn="192.168.1.0"     # Внутренняя сеть
# Сбрасываем все правила:
${FwCMD} -f flush
# Проверяем - соответствует ли пакет динамическим правилам:
${FwCMD} add check-state
# Разрешаем весь траффик по внутреннему интерфейсу (петле)
# Вообще я во многих местах читал что без него может ничё не заработать вообще
# и прочие страшилки. Работает - почта, апач, .... А вот squid - не работает :)
# так что без него и правда - никуда.
${FwCMD} add allow ip from any to any via lo0
# рубим попытки lo0 куда-то лезть и откуда-то лезть на lo0 (вот честно - ни
# одного пакета по этим правилам не зарубилось за всё время... Может в этом
# моё счастье? :))
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any
# Вводим запреты:
# режем частные сети на внешнем интерфейсе - по легенде он у нас 
# смотрит в интернет, а значит пакетам этим браться неоткуда на нём.
# рубим частные сeти
${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}
# рубим автоконфигуреную частную сеть
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}
# рубим фрагментированные icmp
${FwCMD} add deny icmp from any to any frag
# рубим широковещательные icmp на внешнем интерфейсе
${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${LanOut}
# отправляем всех на squid (в данном случае - прокси прозрачный)
${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn}/${NetMask} to any 80 via ${LanOut}
# ядерный NAT
${FwCMD} nat 1 config ip ${IpOut} unreg_only same_ports log \
redirect_port tcp 192.168.1.49:25 25 \
redirect_port tcp 192.168.1.49:143 143 \
redirect_port tcp 192.168.1.49:110 110 \
redirect_port tcp 192.168.1.49:3000 3000 \
redirect_port tcp 192.168.1.198:443 443 \
redirect_port tcp 192.168.1.201:3389 3389
#25,143,110,3000 - mail
#443 - Bank
#3389 - RDP
${FwCMD} add nat 1 all from ${NetIn}/${NetMask} to any
${FwCMD} add nat 1 all from any to ${IpOut}
# рубим траффик к частным сетям через внешний интерфейс
# заметтьте - эти правила отличаются от тех что были выше!
${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 172.16.0.0/12 to any out via ${LanOut}
${FwCMD} add deny ip from 192.168.0.0/16 to any out via ${LanOut}
${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${LanOut}
# рубим автоконфигуреную частную сеть
${FwCMD} add deny ip from 169.254.0.0/16 to any out via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from 224.0.0.0/4 to any out via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from 240.0.0.0/4 to any out via ${LanOut}
# разрешаем все установленные соединения (если они установились - 
# значит по каким-то правилам они проходили.)
${FwCMD} add allow tcp from any to any established
# разрешаем весь исходящий траффик (серверу-то в инет можно? :))
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}
# разрешаем DNS снаружи (нам же надо узнавать IP по именам машин?)
${FwCMD} add allow udp from any 53 to any via ${LanOut}
# разрешаем DNS входящий снаружи - если на этой машине работает named
# и держит какую-то зону. В остальных случаях - не нужно
${FwCMD} add allow udp from any to any 53 via ${LanOut}
# разрешаем UDP (для синхронизации времени - 123 порт)
${FwCMD} add allow udp from any to any 123 via ${LanOut}
# разрешаем ftp снаружи (оба правила - для пасивного режима)
# для узнавания портранджа по которому будет работать, лезем в 
#/usr/home/lissyara/>sysctl net.inet.ip.portrange.first
# net.inet.ip.portrange.first: 49152
# /usr/home/lissyara/>sysctl net.inet.ip.portrange.last
# net.inet.ip.portrange.last: 65535
${FwCMD} add allow tcp from any to ${IpOut} 21 via ${LanOut}
#Можно изгалиться примерно так, если есть желание, но я предпочитаю руками
#${FwCMD} add allow tcp from any to ${IpOut} \
#`sysctl net.inet.ip.portrange.first | awk '{print $2}'`-\
#`sysctl net.inet.ip.portrange.last | awk '{print $2}'` via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut} 50000-50100 via ${LanOut}
# разрешаем некоторые типы ICMP траффика - эхо-запрос, 
# эхо-ответ и время жизни пакета истекло
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
# разрешаем внутренние адреса на внешнем интерфейсе
#${FwCMD} add allow tcp from any to 192.168.1.49 25 via ${LanOut}
#${FwCMD} add allow tcp from any to 192.168.1.49 143 via ${LanOut}
# открываем снаружи 80 порт - если у нас есть WWW сервер на машине
#${FwCMD} add allow tcp from any to ${IpOut} 80 via ${LanOut}
# открываем снаружи 25 порт (SMTP) если на машине крутится почта
${FwCMD} add allow tcp from any to ${IpOut} 25 via ${LanOut}
# открываем снаружи 22 порт - если надо будет ходить на машину по ssh
#${FwCMD} add allow tcp from any to ${IpOut} 22 via ${LanOut}
# открываем снаружи 143 порт(если надо смотреть почту снаружи по IMAP)
${FwCMD} add allow tcp from any to ${IpOut} 143 via ${LanOut}
# открываем снаружи 110 порт(если надо смотреть почту снаружи по POP)
${FwCMD} add allow tcp from any to ${IpOut} 110 via ${LanOut}
# открываем снаружи 443 порт(для Банк-клиента)
${FwCMD} add allow tcp from any to ${IpOut} 443 via ${LanOut}
# открываем снаружи 10000 порт(для Webmin)
#${FwCMD} add allow tcp from any to ${IpOut} 10000 via ${LanOut}
# разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow tcp from any to any via ${LanIn}
# разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow udp from any to any via ${LanIn}
# разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow icmp from any to any via ${LanIn}
# запрещаем всё и всем. Если тип файрволла не open то это правило добавится
# автоматически, но всё-же ну его. Лучше сам. Надёжней.
${FwCMD} add deny ip from any to any

sams.conf

[client]
SQUID_DB=squidlog
SAMS_DB=squidctrl
MYSQLHOSTNAME=localhost
MYSQLUSER=sams
MYSQLPASSWORD=qwerty
MYSQLVERSION=5.1
SQUIDCACHEFILE=access.log
SQUIDROOTDIR=/usr/local/etc/squid
SQUIDLOGDIR=/var/squid/logs
SQUIDCACHEDIR=/var/squid/cache
SAMSPATH=/usr/local
SQUIDPATH=/usr/local/sbin
#SQUIDGUARDLOGPATH=/var/log
#SQUIDGUARDDBPATH=/var/db/squidGuard
RECODECOMMAND=/usr/local/bin/iconv -f KOI8-R -t 866 %finp > %fout
#LDAPSERVER=servername_or_ipadress

Отредактировано PunKHS (12-05-2012 16:34:54)

2

Re: FreeBSD 8.2 + squid 2.7 + SAMS 1.0.5 проблема....

так у вас не написано даже куда писать лог squid'у

3

Re: FreeBSD 8.2 + squid 2.7 + SAMS 1.0.5 проблема....

crash пишет:

так у вас не написано даже куда писать лог squid'у

Извините за глупый вопрос. Этот параметр нужно указывать в squid.conf ? В sams.conf он вроде есть. mc находил log файл. Он существует. Только ничего в него не пишется.

4

Re: FreeBSD 8.2 + squid 2.7 + SAMS 1.0.5 проблема....

В конфиге squida:

 access_log /var/log/squid/access.log squid 

Добавлено: 14-05-2012 11:35:47

PunKHS пишет:

mc находил log файл. Он существует.

А ты уверен что это именно он? там много файлов...а ты говоришь что он пустой..

5

Re: FreeBSD 8.2 + squid 2.7 + SAMS 1.0.5 проблема....

desperadik пишет:

В конфиге squida:

 access_log /var/log/squid/access.log squid 

Добавлено: 14-05-2012 11:35:47

PunKHS пишет:

mc находил log файл. Он существует.

А ты уверен что это именно он? там много файлов...а ты говоришь что он пустой..

Нашел проблему. Неправильно настроен прозрачный squid и ipfw. При "не прозрачном" squid все работает. Борюсь с ipfw

Всем спасибо!