Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» SQUID (только под *nix)

Автор: Ruza
Дата сообщения: 20.09.2008 21:41
tankistua

Цитата:
да ты не понял

Я то понял... Теоретическая возможность работать через HTTP Connect существует, но сам никогда не проверял... Вот и стало интересно как это реализовано у Stritch

Автор: YuraGGG
Дата сообщения: 21.09.2008 18:56
Здравствуйте!
Помогите пожалуйста разобраться.
Ниже предоставляю конфигурацию Squid2.6STABLE6

http_port 3128
icp_port 0
hierarchy_stoplist cgi-bin ? chat
acl QUERY urlpath_regex cgi-bin \? chat
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
cache_mem 512 MB
maximum_object_size 16384 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 8 KB
cache_dir ufs /usr/local/squid/cache 1024 16 256
access_log /usr/local/squid/logs/access.log squid
cache_log /usr/local/squid/logs/cache.log
cache_store_log /usr/local/squid/logs/store.log
ftp_user www@
refresh_pattern ^ftp:        1440    20%    10080
refresh_pattern ^gopher:    1440    0%    1440
refresh_pattern .        0    20%    4320
negative_ttl 2 minutes
positive_dns_ttl 6 hours
negative_dns_ttl 5 minute
client_lifetime 540 minutes
acl all src 0.0.0.0/0.0.0.0
acl usernet src 10.10.0.0/255.255.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
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 CONNECT method CONNECT
http_access allow usernet
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
http_reply_access allow all
icp_access allow usernet
forwarded_for on
client_db on
coredump_dir /var/spool/squid

В консоли набираю команды:
squid -z
squid

В браузери прописываю: ІР сервера и порт 3128

Уже две недели переписываю конфигурацию, ничего не получаеться.

Подскажите что я делаю не так.

Заранее спс.
Автор: Ruza
Дата сообщения: 21.09.2008 20:48
А что именно не получается то?
/usr/local/squid/logs/cache.log - вот это покажи (только последнюю сессю запуска)
/usr/local/squid/logs/access.log - и это тоже
Автор: Palza
Дата сообщения: 21.09.2008 22:28
Насколько я понимаю, squid не может фильтровать контент по содержимому страниц?
Автор: tankistua
Дата сообщения: 21.09.2008 23:10
нет - html он еще не научился парсить
Автор: Stritch
Дата сообщения: 22.09.2008 08:43
сомтрю тут уже дискусия образовалась....расказываю ...стоит FreeBSD 6.2 Stable ....причем какая то чи урезанная чи недоделаная......короче снес все нафиг...поставил 7,0.....и натроил все с нуля.....а то что-то желания разгребаться в том что там стоит нет никакого....как посмотрел в rc.firewall-чуть не офигел......короч поставил все с нуля и позакрывал то что ненужно.....теперь усе нормально работает.....

Добавлено:
Ruza
По поводу работы через hhtp connect.....если ты имееш ввиду то что acl-ами закрывать доступ по пользователям в инет не трогая другое-то там проблем нет....кстати сквид прозрачный стоял и стоит.....еще есть вопросик...кеш я отключил в сквиде(из соображений "нефиг лишний раз винт загружать работой")...нужно ли или все таки включить? в том случае что ты написал у меня рубануло на IP адресе усе проги типа The Bat. Thanderbird....я то опнимаю что эти вещи нуно в файере отрубать но как уже писал rc/firewall там ужасно настроен.....теперь настроен нормально....но и твой метод помог.....как настраивали сквид раньше я сам не понял...
Автор: YuraGGG
Дата сообщения: 22.09.2008 09:11
А что именно не получается то?:
Браузер вместо страницы Google показывает фразу "Невозможно отобразить страницу..."


cache.log:
2008/09/22 09:07:48| Starting Squid Cache version 2.6.STABLE6 for i686-redhat-linux-gnu...
2008/09/22 09:07:48| Process ID 31048
2008/09/22 09:07:48| With 1024 file descriptors available
2008/09/22 09:07:48| Using epoll for the IO loop
2008/09/22 09:07:48| Performing DNS Tests...
2008/09/22 09:07:48| Successful DNS name lookup tests...
2008/09/22 09:07:48| DNS Socket created at 0.0.0.0, port 32773, FD 5
2008/09/22 09:07:48| Adding nameserver 194.44.214.40 from /etc/resolv.conf
2008/09/22 09:07:48| Adding nameserver 10.10.102.5 from /etc/resolv.conf
2008/09/22 09:07:48| Adding domain localdomain from /etc/resolv.conf
2008/09/22 09:07:48| User-Agent logging is disabled.
2008/09/22 09:07:48| Referer logging is disabled.
2008/09/22 09:07:48| Unlinkd pipe opened on FD 10
2008/09/22 09:07:48| Swap maxSize 1048576 KB, estimated 80659 objects
2008/09/22 09:07:48| Target number of buckets: 4032
2008/09/22 09:07:48| Using 8192 Store buckets
2008/09/22 09:07:48| Max Mem size: 524288 KB
2008/09/22 09:07:48| Max Swap size: 1048576 KB
2008/09/22 09:07:48| Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
2008/09/22 09:07:48| Rebuilding storage in /usr/local/squid/cache (DIRTY)
2008/09/22 09:07:48| Using Least Load store dir selection
2008/09/22 09:07:48| Set Current Directory to /var/spool/squid
2008/09/22 09:07:48| Loaded Icons.
2008/09/22 09:07:48| Accepting proxy HTTP connections at 0.0.0.0, port 3128, FD 12.
2008/09/22 09:07:48| WCCP Disabled.
2008/09/22 09:07:48| Ready to serve requests.
2008/09/22 09:07:48| Done reading /usr/local/squid/cache swaplog (0 entries)
2008/09/22 09:07:48| Finished rebuilding storage from disk.
2008/09/22 09:07:48| 0 Entries scanned
2008/09/22 09:07:48| 0 Invalid entries.
2008/09/22 09:07:48| 0 With invalid flags.
2008/09/22 09:07:48| 0 Objects loaded.
2008/09/22 09:07:48| 0 Objects expired.
2008/09/22 09:07:48| 0 Objects cancelled.
2008/09/22 09:07:48| 0 Duplicate URLs purged.
2008/09/22 09:07:48| 0 Swapfile clashes avoided.
2008/09/22 09:07:48| Took 0.6 seconds ( 0.0 objects/sec).
2008/09/22 09:07:48| Beginning Validation Procedure
2008/09/22 09:07:48| Completed Validation Procedure
2008/09/22 09:07:48| Validated 0 Entries
2008/09/22 09:07:48| store_swap_size = 0k
2008/09/22 09:07:49| storeLateRelease: released 0 objects


access.log: - пустой
Автор: Ruza
Дата сообщения: 22.09.2008 09:31
Palza
http://dansguardian.org/ - нормально фильтрует.
Stritch

Цитата:
нужно ли или все таки включить?

Это твоё личное дело тут насколько я понял убеждать тут безполезно...
Цитата:
http://forum.ru-board.com/topic.cgi?forum=8&topic=0372&start=920#7
и ниже.


Цитата:
как настраивали сквид раньше я сам не понял...

Кинь старые конфиги squid и rc.firewall если не секрет.

Добавлено:
YuraGGG
Вроде всё нормально...
Глянь ещё и squid.out
Автор: YuraGGG
Дата сообщения: 22.09.2008 13:43
squid.out:

squid: ERROR: Could not read pid file
/var/run/squid.pid: (13) Permission denied

набрал команду :chown -R squid:squid /var/ran/

и все заработало благодарю за помощь.

Автор: Ruza
Дата сообщения: 22.09.2008 14:32
YuraGGG

Цитата:
набрал команду :chown -R squid:squid /var/ran/

ИМХО я бы не рискнул так кардинально...
скорее уж chmod 777 /var/run
Автор: YuraGGG
Дата сообщения: 22.09.2008 14:50
Ввсю жизнь так не будет, это только чтобы найти в чем проблума. Дальше буду разбираться почему Squid Could not read pid file
Автор: Loafer
Дата сообщения: 22.09.2008 17:32
YuraGGG
1. user и group из конфига сквида покажи
2. удали вообще этот пид один раз сам вручную
убей все процессы сквида
и пусть он его сам создаст
проверь
Автор: Teo
Дата сообщения: 24.09.2008 10:36
YuraGGG
поставь strace
Автор: YuraGGG
Дата сообщения: 24.09.2008 16:30
1)cache_effective_user nobody
cache_effective_group nobody
если ты это имел в виду

2)pid файл автоматически удаляется при остановке Squida, и автоматически создается при его запуске.

Поискав информацию в интернете нашел форум, где было написано следующее:

Though the correct fix for this is to simply fix the RC script not to start squid as a limited user. But to let squid do the down-scaling properly itself. Without it you will also later encounter problems when kernel denies access to the ICMP and ARP protocols for the non-root user. Note to RedHat developers: I added default-user option to let you fix your RC scripts without patching squid. Please use it and correct these issues.

После такой информации было принято решение переставить ось с RedHat на Debian, где Squid заработал без проблем.
Автор: Teo
Дата сообщения: 25.09.2008 11:19

Цитата:
После такой информации было принято решение переставить ось с RedHat на Debian, где Squid заработал без проблем.

радикально....
Автор: Ruza
Дата сообщения: 25.09.2008 12:04

Цитата:
радикально....

Точно... Век живи век учись. Оказывается на RedHat не работает...
Мож я чего то пропустил... Или не предупредил меня никто, когда я его настраивал.
Автор: nickykh
Дата сообщения: 26.09.2008 15:20
здравствуйте!
есть сервер с ip1 + еще несколько айпи ip2 ip3
и есть такая проблема, при использовании ip2 или ip3 в настройках прокси (в браузере) ip определяется как ip1
как сделать так, чтобы определялся тот адрес к которому подключаешься
Автор: Ruza
Дата сообщения: 26.09.2008 23:44
nickykh
Привет. Ты это о чём? Мы тут немного squid разбираем и к сожалению ни фига не телепаты...
Автор: nickykh
Дата сообщения: 27.09.2008 00:09
о_О

я о сквиде...
есть сервер на нем стоит сквид... 7айпи адресов
вот если в настройках прокси (браузера) ставишь любой из этих айпи адресов, то во всех случаешь мой айпи определяется одинаково...

во и вопрос в чем может быть проблема? как это исправить, чтобы если я в настройках вводу ип2, то он бы и определялся как ип2
Автор: Ruza
Дата сообщения: 27.09.2008 00:22
nickykh
Хм... А рассвет уже всё заметнее... Телепатия что то сбоит, но сдаётся мне что то не ладно в Датском королевстве.
Вот к примеру 7 ИП это внутренних что ли? Или внешних?
Если первое, то толку от выбора?
Если второе, то скажи ка, друг любезный, а шлюз по умолчанию какой? Либо настройки многоадресной маршрутизации приведи. И нафик в настройках браузера вставлять внешний ИП?
Да и желателен (что бы не сказать необходим) конфиг squid.
Автор: One Of Us
Дата сообщения: 28.09.2008 09:53
Доброго времени.Прошу совета по организаци построения схемы выхода в интернет.В настоящий момент имеется - "дорогой" 2Мбитный канал наружу (РРРоЕ)+SQUID3.06 Stable+NCSA auth +SAMS1.03 платформа - Debian Etch 4.0r3. Число клиентов ~90.В ближайшее время будет подключен "дешевый" спутниковый линк на 128Кбит (HeliosNet)-
(запрос-по земле, ответ через спутник-не симметирчный).Т.е. интересует, как кто реализовывал балансинг ассиметричных каналов в интернет на платформе squid.
Прочитал на opennet использование связки squid+ipvs+keepalived - но насколько понял, keepalived требует от squid-a режим transparent proxy, который несовместим с любой авторизацией вообще.Для меня это неприемлимо-авторизация нужна для учета трафика через SAMS.Поэтому прошу совета - как при существующей авторизации (AD/NCSA - неважно) в SQUID создать эффективную схему балансинга внешних каналов (скажем - 70% отдать на спутник , 30% - на быстрый канал , пропорцию загрузки каналов менять в динамике)?
Автор: Ruza
Дата сообщения: 28.09.2008 10:38
One Of Us
Хм... статья интересная - зачитался, надо будет потыкать свой тестовый.


Цитата:
но насколько понял, keepalived требует от squid-a режим transparent proxy,

Ну а насколько я понял статью, то ты немного не дочитал... ИМХО

Цитата:
#Данный режим прокси
# требуется для корректного прохождения запросов
# на доступность каналов от keepalived.

Так что на первый взгляд будет достаточно внесения ещё одного разрешительного правила ДО правила разрешения авторизованных пользователей и 2-х acl - типа:

acl users proxy_auth REQUIRED
acl HZ src (IP с которого keepalived шлёт запросы)
acl HZ2 url_path httр://yandex.ru/white.html (адрес проверки keepalived'ом)
....
....
http_access allow HZ HZ2
http_access allow users
http_access deny all

По идее статьи должно работать. При этом тестовый запрос пройдёт без авторизации.
Но надо тестировать...
З.Ы. Сама статья: http://www.opennet.ru/base/net/squid_ipvs_keepalived.txt.html
Автор: One Of Us
Дата сообщения: 28.09.2008 14:21
Ruza

Спасибо за объяснение.Очевидно, автор метода использует режим transparent в squid-e для простоты доступа оного к контрольным "эталонным" сайтам.Я как то сразу не вник в эту простую суть.-)
Я собираюсь реализовывать схему из одного управлящего хоста с IPVS+keepalived и двух сквидов, чтобы не править код ядра.Мне важно было получить оценку - правилен такой подход ( в плане балансинга) _вообще_ , или же существует еще более элегантное решение.
Автор: Ruza
Дата сообщения: 28.09.2008 18:24
One Of Us
По мне так элегантнее пропатчить ядро. И не получать геммор с 2-мя squid'ами
Автор: One Of Us
Дата сообщения: 29.09.2008 05:31
Ruza


По мне так элегантнее пропатчить ядро. И не получать геммор с 2-мя squid'ами

А в чем заключается геморрой связки двух сквидов ? .-)

Автор: Ruza
Дата сообщения: 29.09.2008 09:20
One Of Us
Два конфига, две пачки логов, дополнительная кучка процессов, подсчёт трафика по двум логам...
Да и dansguardian тоже надо что то переделывать - пока не разбирался.
Автор: BONDBIG
Дата сообщения: 29.09.2008 09:59
SAMS вроде умеет управлять несколькими сквидами из одного интерфейса.
Сам использую кластер из 2-х проксей - никакого особого геммороя не испытываю. Трафик не считаю давно уже, правда, но раньше решал проблему закидыванием логов в мускульную базу.
Автор: One Of Us
Дата сообщения: 29.09.2008 16:50
Ruza

Два конфига, две пачки логов, дополнительная кучка процессов, подсчёт трафика по двум логам...

Всё это решается выносом базы учета трафика, как у же было сказано выше.И как правило , все это легко апдейтится как по пакетам, там и по релизам.Скажем так, это вопрос больше идеологии админа, нежели технический.С железом сейчас ни у кого напряга нет.

BONDBIG

SAMS вроде умеет управлять несколькими сквидами из одного интерфейса
Не вроде.Умеет.
Автор: Ruza
Дата сообщения: 29.09.2008 22:26
BONDBIG
One Of Us

Цитата:
Всё это решается выносом базы учета трафика, как у же было сказано выше.И как правило , все это легко апдейтится как по пакетам, там и по релизам.

О! Спасибо конечно... Но я это знаю. И кстати про ведение логов в mysql я не спрашивал


Цитата:
Скажем так, это вопрос больше идеологии админа, нежели технический.С железом сейчас ни у кого напряга нет.

Полностью согласен. Так что тут полностью на откуп админа.
Мне всё равно ядро пересобирать приходится так что одним патчем больше, одним меньше я и не замечу.
Кстати на счёт патчей - по приведённой автором статьи ссылке есть 2 патча одного автора:
[more=Первый...]diff --git a/net/ipv4/ipvs/ip_vs_core.c b/net/ipv4/ipvs/ip_vs_core.c
--- a/net/ipv4/ipvs/ip_vs_core.c
+++ b/net/ipv4/ipvs/ip_vs_core.c
@@ -1080,7 +1080,7 @@ static struct nf_hook_ops ip_vs_out_ops
    .hook        = ip_vs_out,
    .owner        = THIS_MODULE,
    .pf        = PF_INET,
-    .hooknum = NF_IP_FORWARD,
+    .hooknum = NF_IP_LOCAL_OUT,
    .priority = 100,
};

diff --git a/net/ipv4/ipvs/ip_vs_ctl.c b/net/ipv4/ipvs/ip_vs_ctl.c
--- a/net/ipv4/ipvs/ip_vs_ctl.c
+++ b/net/ipv4/ipvs/ip_vs_ctl.c
@@ -670,12 +670,6 @@ __ip_vs_update_dest(struct ip_vs_service
    atomic_set(&dest->weight, udest->weight);
    conn_flags = udest->conn_flags | IP_VS_CONN_F_INACTIVE;

-    /* check if local node and update the flags */
-    if (inet_addr_type(udest->addr) == RTN_LOCAL) {
-        conn_flags = (conn_flags & ~IP_VS_CONN_F_FWD_MASK)
-            | IP_VS_CONN_F_LOCALNODE;
-    }
-
    /* set the IP_VS_CONN_F_NOOUTPUT flag if not masquerading/NAT */
    if ((conn_flags & IP_VS_CONN_F_FWD_MASK) != 0) {
        conn_flags |= IP_VS_CONN_F_NOOUTPUT;
diff --git a/net/ipv4/ipvs/ip_vs_xmit.c b/net/ipv4/ipvs/ip_vs_xmit.c
--- a/net/ipv4/ipvs/ip_vs_xmit.c
+++ b/net/ipv4/ipvs/ip_vs_xmit.c
@@ -260,10 +260,6 @@ ip_vs_nat_xmit(struct sk_buff *skb, stru
    if (skb_cow(skb, rt->u.dst.dev->hard_header_len))
        goto tx_error_put;

-    /* drop old route */
-    dst_release(skb->dst);
-    skb->dst = &rt->u.dst;
-
    /* mangle the packet */
    if (pp->dnat_handler && !pp->dnat_handler(&skb, pp, cp))
        goto tx_error;
@@ -279,10 +275,8 @@ ip_vs_nat_xmit(struct sk_buff *skb, stru
    /* Another hack: avoid icmp_send in ip_fragment */
    skb->local_df = 1;

-    IP_VS_XMIT(skb, rt);
-
    LeaveFunction(10);
-    return NF_STOLEN;
+    return NF_ACCEPT;

tx_error_icmp:
    dst_link_failure(skb);
[/more]
[more=Второй...]diff --git a/net/ipv4/ipvs/ip_vs_core.c b/net/ipv4/ipvs/ip_vs_core.c
--- a/net/ipv4/ipvs/ip_vs_core.c
+++ b/net/ipv4/ipvs/ip_vs_core.c
@@ -1084,6 +1084,15 @@ static struct nf_hook_ops ip_vs_out_ops
.priority = 100,
};

+/* change source only for local VS/NAT */
+static struct nf_hook_ops ip_vs_local_out_ops = {
+ .hook = ip_vs_out,
+ .owner = THIS_MODULE,
+ .pf = PF_INET,
+ .hooknum = NF_IP_LOCAL_OUT,
+ .priority = 100,
+};
+
/* After packet filtering (but before ip_vs_out_icmp), catch icmp
destined for 0.0.0.0/0, which is for incoming IPVS connections */
static struct nf_hook_ops ip_vs_forward_icmp_ops = {
@@ -1142,10 +1151,15 @@ static int __init ip_vs_init(void)
IP_VS_ERR("can't register out hook.\n");
goto cleanup_inops;
}
+ ret = nf_register_hook(&ip_vs_local_out_ops);
+ if (ret < 0) {
+ IP_VS_ERR("can't register local out hook.\n");
+ goto cleanup_outops;
+ }
ret = nf_register_hook(&ip_vs_post_routing_ops);
if (ret < 0) {
IP_VS_ERR("can't register post_routing hook.\n");
- goto cleanup_outops;
+ goto cleanup_localoutops;
}
ret = nf_register_hook(&ip_vs_forward_icmp_ops);
if (ret < 0) {
@@ -1158,6 +1172,8 @@ static int __init ip_vs_init(void)

cleanup_postroutingops:
nf_unregister_hook(&ip_vs_post_routing_ops);
+ cleanup_localoutops:
+ nf_unregister_hook(&ip_vs_local_out_ops);
cleanup_outops:
nf_unregister_hook(&ip_vs_out_ops);
cleanup_inops:
@@ -1179,6 +1195,7 @@ static void __exit ip_vs_cleanup(void)
nf_unregister_hook(&ip_vs_post_routing_ops);
nf_unregister_hook(&ip_vs_out_ops);
nf_unregister_hook(&ip_vs_in_ops);
+ nf_unregister_hook(&ip_vs_local_out_ops);
ip_vs_conn_cleanup();
ip_vs_app_cleanup();
ip_vs_protocol_cleanup();
diff --git a/net/ipv4/ipvs/ip_vs_ctl.c b/net/ipv4/ipvs/ip_vs_ctl.c
--- a/net/ipv4/ipvs/ip_vs_ctl.c
+++ b/net/ipv4/ipvs/ip_vs_ctl.c
@@ -672,8 +672,17 @@ __ip_vs_update_dest(struct ip_vs_service

/* check if local node and update the flags */
if (inet_addr_type(udest->addr) == RTN_LOCAL) {
- conn_flags = (conn_flags & ~IP_VS_CONN_F_FWD_MASK)
- | IP_VS_CONN_F_LOCALNODE;
+ if ((conn_flags & IP_VS_CONN_F_FWD_MASK) == IP_VS_CONN_F_MASQ) {
+ if (dest->port == dest->vport) {
+ conn_flags = (conn_flags &
+ ~IP_VS_CONN_F_FWD_MASK) |
+ IP_VS_CONN_F_LOCALNODE;
+ }
+ }
+ else {
+ conn_flags = (conn_flags & ~IP_VS_CONN_F_FWD_MASK)
+ | IP_VS_CONN_F_LOCALNODE;
+ }
}

/* set the IP_VS_CONN_F_NOOUTPUT flag if not masquerading/NAT */
[/more]
Надо бы оба проверить...
Автор: YuraGGG
Дата сообщения: 01.10.2008 13:52
Хочу спросить об LDAP авторизацие.

Платформа Debian
SQUID 2.6.STABLE5

c чего начать?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687

Предыдущая тема: Неполадки в работе DHCP сервера


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.