Страница 1 из 1
Проблемы с SQUID и NATD
Добавлено: 2006-04-28 12:50:55
sashaz
Настроил я прозрачный прокси сервер с C-ICAP + SQUID, прописал фаервол... все как у Вас на сайте написано... Но есть траблы! Во первых, инет жутко тормозит!!! Странички вроде как кешируются и потом если сайт открылся, то все Ок! В нем самом уже все довольно быстро, но стоит перейти на другой!!! Странички часто по тайм ауту не открываеются!!! А ингода наоборот начинает все довольно резво...
И с фаерволом траблы! Не могу настроить НАТ чтобы он входящие порты перебрасывал!
Конфиг так же как у Вас на сервере! И НАТ провильно прописал...
Помогите!!!
Добавлено: 2006-04-28 12:53:33
Alex Keda
чё-то много вопросов...
1. явно с DNS грабли. потому и медленно, и потому таймаут.
2. что перекидываешь? как?
Добавлено: 2006-04-28 13:27:38
sashaz
lissyara писал(а):чё-то много вопросов...
1. явно с DNS грабли. потому и медленно, и потому таймаут.
2. что перекидываешь? как?
В инет хожу через ADSL модем. Прописал IP, шлюз... Вообщем сейчас конфиг выложу...
=======
rc.conf
=======
defaultrouter="80.80.80.201"
hostname="frya.ua.domain.com"
ifconfig_bge0="inet 80.80.80.202 netmask 255.255.255.252"
ifconfig_bge2="inet 192.168.1.200 netmask 255.255.255.0"
gateway_enable="YES"
firewall_enable="YES"
firewall_type="/etc/rc.firewall"
natd_enable="YES"
natd_interface="bge0"
#natd_flags="-m -u"
natd_flags="-f /etc/natd.conf"
=========
тут вырезано за ненадобностью
=========
clamav_clamd_enable="YES"
clamav_freshclam_enable="YES"
spamd_enable="YES"
amavisd_enable="YES"
sshd_enable="YES"
proftpd_enable="YES"
squid_enable="YES"
c_icap_enable="YES"
======
natd.conf
======
same_ports yes
use_sockets yes
redirect_port tcp 192.168.1.1:3389 80.80.80.202:3389
redirect_port tcp 192.168.1.1:5631 80.80.80.202:5631
Добавлено: 2006-04-28 13:43:34
Alex Keda
у тебя опять два вопроса

Давай с одним каким нить разберёмся.
Код: Выделить всё
ifconfig_bge0="inet 80.80.80.202 netmask 255.255.255.252"
эта вот строка, мне, например, не нравится... бродкаста нет - не факт что сам верно определит... хотя - тогда не работало б вообще...
дай
и найди десять отличий:
Код: Выделить всё
interface rl0
same_ports
unregistered_only
redirect_port tcp 192.168.20.251:80 81
и твой:
Код: Выделить всё
same_ports yes
use_sockets yes
redirect_port tcp 192.168.1.1:3389 80.80.80.202:3389
redirect_port tcp 192.168.1.1:5631 80.80.80.202:5631
P.S. и пользуйся форматированием кода - читать неудобно...
Добавлено: 2006-04-28 13:44:20
Alex Keda
и что даёт команда
например?
Добавлено: 2006-04-28 14:03:43
sashaz
lissyara писал(а):и что даёт команда
например?
С настройками все ОК, проверил
Код: Выделить всё
frya# date && host yahoo.com && date
Fri Apr 28 13:51:44 EEST 2006
yahoo.com has address 216.109.112.135
yahoo.com has address 66.94.234.13
yahoo.com mail is handled by 1 mx3.mail.yahoo.com.
yahoo.com mail is handled by 5 mx4.mail.yahoo.com.
yahoo.com mail is handled by 1 mx1.mail.yahoo.com.
yahoo.com mail is handled by 1 mx2.mail.yahoo.com.
Fri Apr 28 13:51:45 EEST 2006
frya# ifconfig bge0
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=1a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING>
inet 80.80.80.202 netmask 0xfffffffc broadcast 80.80.80.203
ether 00:14:48:21:51:c5
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
Сейчас попробую НАТ исправить...
P.S. Да, кстати, у меня FreeBSD 5.4
Добавлено: 2006-04-28 14:05:27
Alex Keda
умная... бродкаст сама разрулила... мне на 4.11 приходилось руками ставить... но там сеть /28 была...
Добавлено: 2006-04-28 14:11:30
sashaz
И вот кусок фаервола:
Код: Выделить всё
FwCMD="/sbin/ipfw -q " # путь к ipfw
LanOut="bge0" # внешний интерфейс
LanIn="bge2" # внутренний интерфейс
IpOut="80.80.80.202" # внешний IP адрес машины
IpIn="192.168.1.200" # внутренний IP машины
NetMask="24" # маска сети
NetIn="192.168.1.0" # внутренняя сеть
....................................................................
# отправлем всех на squid (в данном случае - прокси прозрачный)
${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn}/${NetMask} to any 80 via ${LanOut}
# пропускаем траффик через трансляцию сетевых адресов (NAT)
${FwCMD} add divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in 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 снаружи (оба правила для пасивного режима)
${FwCMD} add allow tcp from any to ${IpOut} 21 via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut} 40000-65534 via ${LanOut}
# разрешаем некоторые типы ICMP траффика
# (эхо-запрос, эхо-ответ и время жизни пакета истекло)
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
# открываем снаружи 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 порт (POP3)
${FwCMD} add allow tcp from any to ${IpOut} 110 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}
# запрещаем все и всем, что не разрешено!
${FwCMD} add deny ip from any to any
Для НАТА дополнительно я ничего не разрешал... Хотя пробовал прописывать
Код: Выделить всё
# открываем ремот десктоп
${FwCMD} add allow tcp from any to ${IpOut} 3389 via ${LanOut}
но ничего не получилось!
Добавлено: 2006-04-28 14:40:29
sashaz
Вот пробую:
Код: Выделить всё
frya# telnet 80.80.80.202 3389
Trying 80.80.80.202...
telnet: connect to address 80.80.80.202: Connection refused
telnet: Unable to connect to remote host
но при этом
Код: Выделить всё
frya# telnet 192.168.1.1 3389
Trying 192.168.1.1...
Connected to myhost1.kiev.
Escape character is '^]'.
т.е. не резолвит...

Добавлено: 2006-04-28 15:57:16
sashaz
Насчет общих тормозов, то может в этом проблема! Сейчас лазил в инете, а потом все остановилось секунд на 30, даже пинги не проходят... и последние сообщения:
Код: Выделить всё
Apr 28 15:20:36 frya icap: general, SIGPIPE signal received.
Apr 28 15:20:36 frya icap: general, SIGPIPE signal received.
Apr 28 15:45:02 frya icap: general, SIGPIPE signal received.
Что эти сообщения могут значить?
Добавлено: 2006-04-28 16:44:36
sashaz
И вот еще...
Код: Выделить всё
Apr 28 16:07:24 frya icap: general, Object size is 13925802. Bigger than max scannable file size (5242880). Allow it....
И что он хочет? Если файл больше, то чего его сканировать... по идее...
Вот мой конфиг:
Код: Выделить всё
PidFile /var/run/c-icap.pid
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
# set KeepAliveTimeout to -1 for no timeout
KeepAliveTimeout 600
StartServers 10
MaxServers 40
MinSpareThreads 10
MaxSpareThreads 20
ThreadsPerChild 10
MaxRequestsPerChild 0
Port 1344
User squid
Group squid
#ServerAdmin you@your.address # Not implemented yet
#ServerName localhost:1344 # Not implemented yet
TmpDir /var/tmp
MaxMemObject 131072
#ServerLog /usr/local/var/log/server.log
#AccessLog /usr/local/var/log/access.log
#DebugLevel 3
ModulesDir /usr/local/lib/c_icap/
Module logger sys_logger.so
#Module perl_handler perl_handler.so
#sys_logger.Prefix "C-ICAP:"
sys_logger.Prefix "icap"
sys_logger.Facility local1
##Specify wich logger to use......
Logger sys_logger
#Logger file_logger
и т.д.... Увеличил StartServers до 10-ти и MaxServers до 40-ка, так как он ругался что не хватает процессов... А вообще у меня в сети порядка 25-ти машин, хотя в инете лазит меньше половины!
Добавлено: 2006-04-28 19:03:43
Alex Keda
я уже говорил - не надо валить всё в одну тему.... я уже нихрена не понимаю что ты хочешь

давай с одной проблемой разбираться потом с другой.
1. икап. Сколько памяти на машине? Ему явно памяти не хватает.
2. какой проц на машине? Проверка на вирусы - не самая лёгкая задача.
3. http - данные передаются потоком. и икап висит на этом потоке(не совсем так, даже наоборот, поток зарулен на икап, но не важно) он
не знает какой размер файла будет. Поэтому проверяет до максимально разрешённого, а потом перестаёт. Отсюда и ругань. и не ругань это вовсе, а сообщения...
Добавлено: 2006-04-29 10:49:02
sashaz
Ага, значит ICAP тут возможно не при чем, а все дело в SQUID'де...
Машинка хорошая! HP ProLiant D3 по моему... 1Gb оперативки и 3,2Ghz проц.
Я тут выложу конфиг SQUID, может в чем-то ошибка...
Код: Выделить всё
http_port 3128
icp_port 0
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 32 MB
maximum_object_size 8092 KB
maximum_object_size_in_memory 512 KB
cache_dir ufs /usr/local/squid/cache 1024 16 64
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_mgr admin@frya.ua.mydomain.com
visible_hostname frya.ua.mydomain.com
tcp_outgoing_address 80.80.80.202
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
redirect_program /usr/local/etc/squid/redirector.pl
redirect_children 10
icap_enable on
icap_preview_enable on
icap_preview_size 128
icap_send_client_ip on
acl all src 0.0.0.0/0.0.0.0
acl allowed_sites dstdomain "/usr/local/etc/squid/allowed_sites.conf"
acl limited_IP src "/usr/local/etc/squid/limited_IP.conf"
acl localhost src 127.0.0.0/8
acl our_networks src 192.168.1.0/24
#acl denied_sites dstdomain "/usr/local/etc/squid/denied_ext.conf"
#http_access deny denied_sites
http_access allow allowed_sites
http_access deny limited_IP
http_access allow our_networks
http_access allow localhost
http_access deny all
icap_service service_1 reqmod_precache 0 icap://localhost:1344/srv_clamav
icap_service service_2 respmod_precache 1 icap://localhost:1344/srv_clamav
icap_class class_antivirus service_2 service_1
icap_access class_antivirus allow all
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_uses_host_header on
coredump_dir /usr/local/squid/cache
pid_filename /usr/local/squid/logs/squid.pid
Добавлено: 2006-04-29 14:57:37
Alex Keda
без икапа нормально работает?
Добавлено: 2006-05-01 10:32:25
sashaz
lissyara писал(а):без икапа нормально работает?
Еще не успел проверить! Буду в среду или четверг на работе, проверю! И отпишусь!
Добавлено: 2006-05-04 13:52:07
sashaz
Большое спасибо за советы! Со SQUID все нормально! Это у провайдера глюки!
Добавлено: 2006-05-04 14:20:25
Alex Keda
Добавлено: 2006-05-17 10:24:09
sashaz
Кстати со сквидой глюки бывают, но это похоже потому, что провайдер по моему тоже прозрачный прокси использует... Получается Сквида через сквиду!
