Биллинговая система Nodeny
24 Июня 2024, 13:41:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Как прикрутить Squid часть 2  (Прочитано 6019 раз)
podavan
NoDeny
Пользователь
*

Карма: 5
Offline Offline

Сообщений: 79


Quilibet fortunae suae faber


Просмотр профиля
« : 09 Июля 2010, 15:27:44 »

Озадачился тоде прикрутить сквид, т.к. помимо прозрачного прокси, хотел ещё и нарезать часть правил для некоторых пользователей (блокировать по адресу)
почитал вот это
http://forum.nodeny.com.ua/index.php?topic=72.0
сделал, как там было описано:
сначала исправил nofire.pl:
Код:
 [root@test /var]# ee /usr/local/nodeny/nofire.pl
 #--------закоментим
 # $NumIpfw=$End_num_ipfw;
 # &SetIpfwRule(qq{deny ip from any to any});
 # ---------------начало, меняем------------
 $NumIpfw=$End_num_ipfw-3;
 &SetIpfwRule(qq{divert 1 ip from table(0) to any});
 &SetIpfwRule(qq{fwd 127.0.0.1,3128 tcp from table(0) to any dst-port 80});
 &SetIpfwRule(qq{allow ip from table(0) to any});
 &SetIpfwRule(qq{deny ip from any to any});
 # --------------------------------конец------
 $NumIpfw=$Start_num2_ipfw;

 $n1=$NumIpfw+10;
 $n2=$NumIpfw+400;

 &SetIpfwRule(qq{pipe tablearg ip from table(126) to table(127)});      # альтернативное направление -> клиент
 &SetIpfwRule(qq{skipto $n1 ip from not table(2) to any});              # не от клиента ->
 &SetIpfwRule(qq{pipe tablearg ip from any to table(20)});              # клиент -> клиент
 # -------------------ещё добавление -----------
 &SetIpfwRule(qq{allow ip from any to table(0)});
 # ----------------------конец---------------
потом поменял rc.firewall, как было описано:
Код:
[root@test /etc]# ee /etc/rc.firewall

#!/bin/sh -
f='/sbin/ipfw'

ifOut='em0'

${f} -f flush

${f} add 50 allow tcp from any to me 22
${f} add 51 allow tcp from me 22 to any

${f} add 110 allow ip from any to any via lo0
${f} add 120 skipto 1000 ip from me to any
${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${f} add 160 skipto 2000 ip from any to me

${f} add 170 allow ip from any to any via ${ifOut} out
${f} add 200 allow ip from any to "table(0)" via ${ifOut}

${f} add 300 skipto 4500 ip from any to any in

${f} add 400 skipto 450 ip from any to any recv ${ifOut}
${f} add 420 divert 1 ip from any to any
${f} add 450 divert 2 ip from any to any
${f} add 490 skipto 32500 ip from any to any

${f} add 1000 allow udp from any 53,7723 to any
${f} add 1010 allow tcp from any to any setup keep-state
${f} add 1020 allow udp from any to any keep-state
${f} add 1100 allow ip from any to any

${f} add 2000 check-state
${f} add 2010 allow icmp from any to any
${f} add 2012 allow gre from any to any
${f} add 2020 allow tcp from any to any 80,443
${f} add 2050 deny ip from any to any via ${ifOut}
${f} add 2060 allow udp from any to any 53,7723

${f} add 2100 deny ip from any to any

${f} add 32490 deny ip from any to any
перед этим делом поставил Squid Cache version 3.0.STABLE25
его конф:
Код:
http_port 3128 transparent
icp_port 0
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 128 MB
maximum_object_size 8192 KB
maximum_object_size_in_memory 512 KB
cache_dir ufs /var/squid/cache 5120 64 256
access_log /var/squid/logs/access.log squid
cache_log /var/squid/logs/cache.log
cache_store_log /var/squid/logs/store.log
visible_hostname test.local
#acl all src 0.0.0.0/0.0.0.0
acl loc src 192.168.254.0/24
http_access allow loc
http_access deny all
coredump_dir /var/squid/cache
pid_filename /var/squid/logs/squid.pid
всё это дело крутится на виртуалке, free 8.0
если ставить стандартный фаер, то сквид набирает кеш, надо проверить, клиент забирает ли его
проблема в фаере насколько я понимаю, а где найти не могу, у кого есть варианты?
Записан

«Карма» – это как действие, так и то, что из него следует; это причина и следствие одновременно, потому что каждое действие порождает силу энергии, которая возвращается к нам в виде подобной силы. Карма предполагает действие сознательного выбора.
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #1 : 09 Июля 2010, 16:06:19 »

а ты правильно выкурил вот это?
Цитировать
Обязательно добавляем параметр net.inet.ip.fw.one_pass=0 в файл sysctl.conf
сервер ребутал после этого?
Записан
podavan
NoDeny
Пользователь
*

Карма: 5
Offline Offline

Сообщений: 79


Quilibet fortunae suae faber


Просмотр профиля
« Ответ #2 : 09 Июля 2010, 16:07:47 »

о да, учитель, этот момент вкурил моментально, забыл о нём в посте написать Улыбающийся
собственно сервер ребутал уже не раз), это на виртуалке Улыбающийся
« Последнее редактирование: 09 Июля 2010, 16:10:14 от podavan » Записан

«Карма» – это как действие, так и то, что из него следует; это причина и следствие одновременно, потому что каждое действие порождает силу энергии, которая возвращается к нам в виде подобной силы. Карма предполагает действие сознательного выбора.
podavan
NoDeny
Пользователь
*

Карма: 5
Offline Offline

Сообщений: 79


Quilibet fortunae suae faber


Просмотр профиля
« Ответ #3 : 09 Июля 2010, 16:21:15 »

да, ещё инфа:
сквид слушает, всё как и положено 3128 порт:
Код:
[root@test /home/start]# netstat -an | grep tcp
tcp4       0      0 81.19.70.1.80          192.168.254.3.3961     SYN_RCVD
tcp4       0      0 127.0.0.1.514          127.0.0.1.909          TIME_WAIT
tcp4       0      0 127.0.0.1.514          127.0.0.1.774          TIME_WAIT
tcp4       0     52 192.168.254.1.22       192.168.254.3.3962     ESTABLISHED
tcp4       0      0 127.0.0.1.25           *.*                    LISTEN
tcp4       0      0 127.0.0.1.514          127.0.0.1.632          TIME_WAIT
tcp4       0      0 127.0.0.1.514          127.0.0.1.943          TIME_WAIT
tcp4       0      0 *.22                   *.*                    LISTEN
tcp4       0      0 *.443                  *.*                    LISTEN
tcp4       0      0 *.80                   *.*                    LISTEN
tcp4       0      0 127.0.0.1.514          *.*                    LISTEN
tcp4       0      0 *.3306                 *.*                    LISTEN
tcp4       0      0 *.3128                 *.*                    LISTEN
tcp4       0      0 127.0.0.1.953          *.*                    LISTEN
tcp4       0      0 127.0.0.1.53           *.*                    LISTEN
tcp4       0      0 192.168.254.1.53       *.*                    LISTEN
в логах кеша у него всё ок:
Код:
2010/07/09 18:15:11| Starting Squid Cache version 3.0.STABLE25 for i386-portbld-freebsd8.0...
2010/07/09 18:15:11| Process ID 1203
2010/07/09 18:15:11| With 7232 file descriptors available
2010/07/09 18:15:11| DNS Socket created at 0.0.0.0, port 60959, FD 7
2010/07/09 18:15:11| Adding domain test.local from /etc/resolv.conf
2010/07/09 18:15:11| Adding nameserver 127.0.0.1 from /etc/resolv.conf
2010/07/09 18:15:11| User-Agent logging is disabled.
2010/07/09 18:15:11| Referer logging is disabled.
2010/07/09 18:15:12| Unlinkd pipe opened on FD 12
2010/07/09 18:15:12| Swap maxSize 5242880 + 131072 KB, estimated 413380 objects
2010/07/09 18:15:12| Target number of buckets: 20669
2010/07/09 18:15:12| Using 32768 Store buckets
2010/07/09 18:15:12| Max Mem  size: 131072 KB
2010/07/09 18:15:12| Max Swap size: 5242880 KB
2010/07/09 18:15:12| Version 1 of swap file with LFS support detected...
2010/07/09 18:15:12| Rebuilding storage in /var/squid/cache (DIRTY)
2010/07/09 18:15:12| Using Least Load store dir selection
2010/07/09 18:15:12| Set Current Directory to /var/squid/cache
2010/07/09 18:15:13| Loaded Icons.
2010/07/09 18:15:13| Accepting transparently proxied HTTP connections at 0.0.0.0, port 3128, FD 14.
2010/07/09 18:15:13| HTCP Disabled.
2010/07/09 18:15:13| Ready to serve requests.
2010/07/09 18:15:13| Done reading /var/squid/cache swaplog (839 entries)
2010/07/09 18:15:13| Finished rebuilding storage from disk.
2010/07/09 18:15:13|       839 Entries scanned
2010/07/09 18:15:13|         0 Invalid entries.
2010/07/09 18:15:13|         0 With invalid flags.
2010/07/09 18:15:13|       839 Objects loaded.
2010/07/09 18:15:13|         0 Objects expired.
2010/07/09 18:15:13|         0 Objects cancelled.
2010/07/09 18:15:13|         0 Duplicate URLs purged.
2010/07/09 18:15:13|         0 Swapfile clashes avoided.
2010/07/09 18:15:13|   Took 0.23 seconds (3598.43 objects/sec).
2010/07/09 18:15:13| Beginning Validation Procedure
2010/07/09 18:15:13|   Completed Validation Procedure
2010/07/09 18:15:13|   Validated 1703 Entries
2010/07/09 18:15:13|   store_swap_size = 7138
2010/07/09 18:15:13| storeLateRelease: released 0 objects
в access.log ничего нет
ядро собирал с опциями:
Код:
options         IPFIREWALL
options         IPDIVERT
options         IPFIREWALL_FORWARD
options         DUMMYNET

options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_CDNR
options ALTQ_PRIQ
options ALTQ_NOPCC
options ALTQ_DEBUG

device          pf
device          pflog
device          pfsync
когда собирал сквид, указывал поддержку transparent ipfw
Записан

«Карма» – это как действие, так и то, что из него следует; это причина и следствие одновременно, потому что каждое действие порождает силу энергии, которая возвращается к нам в виде подобной силы. Карма предполагает действие сознательного выбора.
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #4 : 09 Июля 2010, 23:14:17 »

так а что конкретно по мануалу не работает? может опечатался где?
ipfw show в студию.
Записан
podavan
NoDeny
Пользователь
*

Карма: 5
Offline Offline

Сообщений: 79


Quilibet fortunae suae faber


Просмотр профиля
« Ответ #5 : 09 Июля 2010, 23:41:37 »

может и опечатка где, вроде всё смотрел...
конкретно так:
если пишем
Код:
ipfw add 1 allow ip from any to any
то клиент получает инет, иначе у него только срабатывает DNS сервер (определяется ip), со старым (дефолтным фаером) клиент получает инет(nofire.pl оставляем изменённым по твоему Ману), но при этом ведь ему кеш не отдаётся, или я неправ?
ipfw:
Код:
[root@test /home/start]# ipfw show
00050  651  48312 allow tcp from any to me dst-port 22
00051  538 225972 allow tcp from me 22 to any
00110 4388 407096 allow ip from any to any via lo0
00120  168  13793 skipto 1000 ip from me to any
00130    0      0 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17
00160   85  12152 skipto 2000 ip from any to me
00170   55   2896 allow ip from any to any via em0 out
00200   70   3476 allow ip from any to table(0) via em0
00300  614  39571 skipto 4500 ip from any to any in
00400   70   3476 skipto 450 ip from any to any recv em0
00420 1188  57024 divert 1 ip from any to any
00450 1258  60500 divert 2 ip from any to any
00490 1258  60500 skipto 32500 ip from any to any
01000   12   2244 allow udp from any 53,7723 to any
01010    0      0 allow tcp from any to any setup keep-state
01020  175  19509 allow udp from any to any keep-state
01100    2    168 allow ip from any to any
02000    0      0 check-state
02010    8    755 allow icmp from any to any
02012    0      0 allow gre from any to any
02020    0      0 allow tcp from any to any dst-port 80,443
02050   26   1232 deny ip from any to any via em0
02060   30   2037 allow udp from any to any dst-port 53,7723
02100    0      0 deny ip from any to any
05000   55   8364 deny ip from not table(0) to any
05001    0      0 skipto 5010 ip from table(127) to table(126)
05002  559  31207 skipto 5030 ip from any to not table(2)
05003    0      0 deny ip from any to not table(1)
05004    0      0 pipe tablearg ip from table(21) to any
05005    0      0 deny ip from any to any
05010    0      0 pipe tablearg ip from table(127) to any
05030    0      0 deny tcp from table(15) to any dst-port 25
05400  559  31207 pipe tablearg ip from table(11) to any
31997  559  31207 divert 1 ip from table(0) to any
31998  460  22080 fwd 127.0.0.1,3128 tcp from table(0) to any dst-port 80
31999   99   9127 allow ip from table(0) to any
32000    0      0 deny ip from any to any
32490    0      0 deny ip from any to any
33000    0      0 pipe tablearg ip from table(126) to table(127)
33001 1258  60500 skipto 33010 ip from not table(2) to any
33002    0      0 pipe tablearg ip from any to table(20)
33003    0      0 allow ip from any to table(0)
33004    0      0 deny ip from any to any
33400 1258  60500 pipe tablearg ip from any to table(10)
65535 1258  60500 deny ip from any to any
Записан

«Карма» – это как действие, так и то, что из него следует; это причина и следствие одновременно, потому что каждое действие порождает силу энергии, которая возвращается к нам в виде подобной силы. Карма предполагает действие сознательного выбора.
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4783



Просмотр профиля
« Ответ #6 : 10 Июля 2010, 02:42:51 »

Код:
33400 1258  60500 pipe tablearg ip from any to table(10)
65535 1258  60500 deny ip from any to any
не все ты добавил в nofire.pl - после пайпа пакет возвращается в фаер согласно net.inet.ip.fw.one_pass=0
Записан
podavan
NoDeny
Пользователь
*

Карма: 5
Offline Offline

Сообщений: 79


Quilibet fortunae suae faber


Просмотр профиля
« Ответ #7 : 10 Июля 2010, 14:34:22 »

Ага! нашёл!
Всё, закрутилось! про это указывал serojperoj в первом посте, а у Cell я этого не увидел, получается что nofire.pl надо привести к такому виду(врезки в код показаны коментами):
Код:
 # сюда skipto
 $NumIpfw=$n1;
 &SetIpfwRule(qq{pipe tablearg ip from table(127) to any});             # клиент -> альт. направление
 $NumIpfw=$n3;
 &SetIpfwRule(qq{deny tcp from table(15) to any $denied_ports});        # клиент -> запрещенные порты
 $NumIpfw=$n2;
 &SetIpfwRule(qq{pipe tablearg ip from table(11) to any});              # клиент -> мир
 # ---------------------Начало Врезки 1 (Squid)------------
 # $NumIpfw=$End_num_ipfw;
 # &SetIpfwRule(qq{deny ip from any to any});
 $NumIpfw=$End_num_ipfw-3;
 &SetIpfwRule(qq{divert 1 ip from table(0) to any});
 &SetIpfwRule(qq{fwd 127.0.0.1,3128 tcp from table(0) to any dst-port 80});
 &SetIpfwRule(qq{allow ip from table(0) to any});
 &SetIpfwRule(qq{deny ip from any to any});
 # ---------------------Конец Врезки 1  (Squid)------
 $NumIpfw=$Start_num2_ipfw;

 $n1=$NumIpfw+10;
 $n2=$NumIpfw+400;

 &SetIpfwRule(qq{pipe tablearg ip from table(126) to table(127)});      # альтернативное направление -> клиент
 &SetIpfwRule(qq{skipto $n1 ip from not table(2) to any});              # не от клиента ->
 &SetIpfwRule(qq{pipe tablearg ip from any to table(20)});              # клиент -> клиент
 # ---------------------Начало Врезки 2 (Squid) -----------
 &SetIpfwRule(qq{allow ip from any to table(0)});
 # ---------------------Конец Врезки 2  (Squid)---------------
 &SetIpfwRule(qq{deny ip from any to any});
 # $n1 ... $n2 буфер для таблиц направлений
 $NumIpfw=$n2;
 &SetIpfwRule(qq{pipe tablearg ip from any to table(10)});              # мир -> клиент
 # ---------------------Начало Врезки 3 (Squid)------------
 &SetIpfwRule(qq{allow ip from any to table(0)});
 # ---------------------Конец Врезки 3  (Squid)---------------
}
Итого надо было сделать 3 врезки в nofire.pl
теперь и ipfw show показывает правильно
Код:

[root@test /var]# ipfw show
00050  575  37984 allow tcp from any to me dst-port 22
00051  677 398124 allow tcp from me 22 to any
00110 2256 190658 allow ip from any to any via lo0
00120  485 111016 skipto 1000 ip from me to any
00130    0      0 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17
00160  453 370811 skipto 2000 ip from any to me
00170  255  20627 allow ip from any to any via em0 out
00200  295 100371 allow ip from any to table(0) via em0
00300  683 118719 skipto 4500 ip from any to any in
00400  295 100371 skipto 450 ip from any to any recv em0
00420  436 369619 divert 1 ip from any to any
00450  731 469990 divert 2 ip from any to any
00490  731 469990 skipto 32500 ip from any to any
01000   10   1836 allow udp from any 53,7723 to any
01010  847 471734 allow tcp from any to any setup keep-state
01020   62   7048 allow udp from any to any keep-state
01100    0      0 allow ip from any to any
02000    0      0 check-state
02010    0      0 allow icmp from any to any
02012    0      0 allow gre from any to any
02020    0      0 allow tcp from any to any dst-port 80,443
02050    9    598 deny ip from any to any via em0
02060   10    611 allow udp from any to any dst-port 53,7723
02100    0      0 deny ip from any to any
05000    3    210 deny ip from not table(0) to any
05001    0      0 skipto 5010 ip from table(127) to table(126)
05002  593 111669 skipto 5030 ip from any to not table(2)
05003    0      0 deny ip from any to not table(1)
05004    0      0 pipe tablearg ip from table(21) to any
05005    0      0 deny ip from any to any
05010    0      0 pipe tablearg ip from table(127) to any
05030    0      0 deny tcp from table(15) to any dst-port 25
05400  593 111669 pipe tablearg ip from table(11) to any
31997  593 111669 divert 1 ip from table(0) to any
31998  406  96437 fwd 127.0.0.1,3128 tcp from table(0) to any dst-port 80
31999  187  15232 allow ip from table(0) to any
32000    0      0 deny ip from any to any
32490    3    234 deny ip from any to any
33000    0      0 pipe tablearg ip from table(126) to table(127)
33001  623 404795 skipto 33010 ip from not table(2) to any
33002    0      0 pipe tablearg ip from any to table(20)
33003    0      0 allow ip from any to table(0)
33004    0      0 deny ip from any to any
33400  623 404795 pipe tablearg ip from any to table(10)
33401  623 404795 allow ip from any to table(0)
65535    1     40 deny ip from any to any
+ Efendy, serojperoj
Записан

«Карма» – это как действие, так и то, что из него следует; это причина и следствие одновременно, потому что каждое действие порождает силу энергии, которая возвращается к нам в виде подобной силы. Карма предполагает действие сознательного выбора.
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #8 : 10 Июля 2010, 21:44:13 »

Интересное дело, я первый эту тему поднял, первый добился устойчивой работы данной связки, первый внедрил на реальных юзерах и первый кому плюс не достался. Более того, тут меня уже во второй теме пытаются в чем-то обвинить, мне не понятно в чем? Я кому-то что-то обязан был предоставить? Вроде нет. Тот сервер, который я когда-то делал, в настоящее время недоступен и посмотреть что там с файрволом нет никакой возможности.
Хотя ладно.
Забил я на прокси. Тему, думается, можно закрывать.
Записан
podavan
NoDeny
Пользователь
*

Карма: 5
Offline Offline

Сообщений: 79


Quilibet fortunae suae faber


Просмотр профиля
« Ответ #9 : 10 Июля 2010, 21:56:09 »

Никто ни в чём Cell не обвиняет, молодец, хороший парень, что сказать Улыбающийся
я внимательно прочитал первый пост, serojperoj написал, что в описании данным тобой нехватало одной строчки, чтобы всё поднялось, а в итоге вместо дискуссии у вас возник сыр бор Грустный
Однозначно +, каюсь что упустил Улыбающийся
Может дропнуть обе темы, а сделать одну, с полным описанием, как считаешь Cell?
Записан

«Карма» – это как действие, так и то, что из него следует; это причина и следствие одновременно, потому что каждое действие порождает силу энергии, которая возвращается к нам в виде подобной силы. Карма предполагает действие сознательного выбора.
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!