Squid + PF

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
tray.irk
сержант
Сообщения: 266
Зарегистрирован: 2008-10-22 8:21:36
Откуда: Иркутск
Контактная информация:

Squid + PF

Непрочитанное сообщение tray.irk » 2015-04-13 17:21:30

Столкнулся с проблемой ... необходимо поставить прозрачный прокси используя при этом PF.
Все вроде бы настроил ... но сквид через некоторое время вылетает с ошибкой ... и простая команда /usr/local/etc/rc.d/squid restart или stop
не тормозит его :(

В логах cache.log

Код: Выделить всё

.....
2015/04/13 21:59:59| pinger: Initialising ICMP pinger ...
2015/04/13 21:59:59| pinger: ICMP socket opened.
2015/04/13 22:00:00 kid1| storeLateRelease: released 0 objects
2015/04/13 22:00:23| Current Directory is /var/run/squid
[b]FATAL: Received Segment Violation...dying.[/b]
2015/04/13 22:00:23 kid1| Closing HTTP port 0.0.0.0:3128
2015/04/13 22:00:23 kid1| storeDirWriteCleanLogs: Starting...
2015/04/13 22:00:23 kid1|   Finished.  Wrote 148 entries.
2015/04/13 22:00:23 kid1|   Took 0.00 seconds (564885.50 entries/sec).
CPU Usage: 0.085 seconds = 0.042 user + 0.042 sys
Maximum Resident Size: 256960 KB
Page faults with physical i/o: 0
.....

Код: Выделить всё

root@srv:/usr/ports/www/squid/files# squid -v
Squid Cache: Version 3.4.12
configure options:  '--with-default-user=squid' '--bindir=/usr/local/sbin' '--sbindir=/usr/local/sbin' '--datadir=/usr/local/etc/squid' '--libexecdir=/usr/local/libexec/squid' '--localstatedir=/var' '--sysconfdir=/usr/local/etc/squid' '--with-logdir=/var/log/squid' '--with-pidfile=/var/run/squid/squid.pid' '--with-swapdir=/var/squid/cache' '--enable-auth' '--enable-build-info' '--enable-loadable-modules' '--enable-removal-policies=lru heap' '--disable-epoll' '--disable-linux-netfilter' '--disable-linux-tproxy' '--disable-translation' '--disable-arch-native' '--enable-eui' '--enable-cache-digests' '--enable-delay-pools' '--disable-internal-dns' '--disable-ecap' '--disable-esi' '--disable-follow-x-forwarded-for' '--enable-htcp' '--disable-icap-client' '--enable-icmp' '--enable-ident-lookups' '--disable-ipv6' '--enable-kqueue' '--without-large-files' '--disable-http-violations' '--without-nettle' '--enable-snmp' '--disable-ssl' '--disable-ssl-crtd' '--disable-stacktraces' '--disable-ipf-transparent' '--disable-ipfw-transparent' '--enable-pf-transparent' '--with-nat-devpf' '--disable-forw-via-db' '--enable-wccp' '--enable-wccpv2' '--enable-auth-basic=DB MSNT MSNT-multi-domain NCSA PAM POP3 RADIUS fake getpwnam NIS' '--enable-auth-digest=file' '--enable-external-acl-helpers=file_userip time_quota unix_group' '--enable-auth-negotiate=kerberos wrapper' '--enable-auth-ntlm=fake smb_lm' '--enable-storeio=ufs aufs diskd' '--enable-disk-io=AIO Blocking IpcIo Mmapped DiskThreads DiskDaemon' '--enable-log-daemon-helpers=file' '--enable-url-rewrite-helpers=fake' '--enable-storeid-rewrite-helpers=file' '--prefix=/usr/local' '--mandir=/usr/local/man' '--infodir=/usr/local/info/' '--build=amd64-portbld-freebsd10.1' 'build_alias=amd64-portbld-freebsd10.1' 'CC=cc' 'CFLAGS=-O2 -pipe  -fstack-protector -fno-strict-aliasing' 'LDFLAGS= -pthread -fstack-protector' 'LIBS=' 'CPPFLAGS=' 'CXX=c++' 'CXXFLAGS=-O2 -pipe -fstack-protector -fno-strict-aliasing  -Wno-unused-private-field' 'CPP=cpp' --enable-ltdl-convenience

Код: Выделить всё

visible_hostname srv.octi.org

acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
#acl localnet src       # RFC 4193 local private network range
#acl localnet src      # RFC 4291 link-local (directly plugged) machines

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

#
# Recommended minimum Access Permission configuration:
#
# Deny requests to certain unsafe ports
http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager

# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#

# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost

# And finally deny all other access to this proxy
http_access deny all

# Squid normally listens to port 3128
http_port 3128
# http_port 127.0.0.1:3129 intercept
# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /var/squid_cache 100 16 256

# Leave coredumps in the first cache dir
# coredump_dir /var/squid/cache

#
# Add any of your own refresh_pattern entries above these.
#
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320

Код: Выделить всё

ext_ingeo_if = "em0" # Игнео
ext_if = "bge0" # Интернет
int_if = "bge1" # Локалка
localnet = "10.239.14.0/24" # задаём всю локальную сеть

set skip on lo0 # пропускаем все на локальной петле
set loginterface $ext_if # указываем интерфейс с которого снимаем логи
set block-policy return #политика блокировния
scrub in all # вычищаем все фрагментированные пакеты

rdr on $int_if inet proto tcp from $localnet to any port 80 -> 127.0.0.1 port 3129

nat on $ext_if from $int_if:network to any -> ($ext_if) # нат в интернет
nat on $ext_ingeo_if from $int_if:network to any -> ($ext_ingeo_if) # нат в ингео

pass in quick inet proto icmp all icmp-type echoreq # разрешить пинг
pass out quick inet proto icmp all icmp-type echoreq # разрешить пинг

pass in quick on $ext_if proto tcp to port 22 # разрешить ssh из интернета
pass in quick on $ext_if proto tcp to port 1723 # разрешить VPN из интернета
pass in quick on $ext_if proto udp to port 1723 # разрешить VPN из интернета

pass on $ext_if all
#block in on $ext_if all # блокируем весь входящий трафик на внешнем интерфейсе

# разрешения из внутренней сети в инет
#pass out quick on $ext_if proto tcp to port 20
#pass out quick on $ext_if proto tcp to port 21
#pass out quick on $ext_if proto tcp to port 22
#pass out quick on $ext_if proto tcp to port 25
#pass out quick on $ext_if proto tcp to port 53
#pass out quick on $ext_if proto tcp to port 80
#pass out quick on $ext_if proto tcp to port 443

#block out on $ext_if

pass on $int_if all # пропускаем все внутри сети

HELP!!!!!!! :st:
так же прошу помощи по нормальной настройки PF ... так как совсем недавно перешел с IPFW ...

Отправлено спустя 13 минут 56 секунд:
Интересует что это за ошибка?
FATAL: Received Segment Violation...dying.
и как с ней бороться
Последний раз редактировалось f_andrey 2015-04-13 18:38:35, всего редактировалось 1 раз.
Причина: Автору. пожалуйста, выбирайте соответствующий раздел форума.
Числа не управляют миром, но могут показать как управляется мир

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

logout_90
мл. сержант
Сообщения: 72
Зарегистрирован: 2014-01-27 5:36:26

Squid + PF

Непрочитанное сообщение logout_90 » 2015-04-13 17:35:18

О, а чой это редирект на порт 3129, а слушает сквид порт 3128? И сквид ведь сейчас не в транспарент режиме у тебя...
Есть сквиду разрешения на директорию /var/run/squid ? Попробуй кэш убить нафиг и создать заново. Или в порядке локализации проблемы, вырубить кэширование и посмотреть, упадет или нет?

Отправлено спустя 2 минуты 35 секунд:
Хотя, здесь http://forum.lissyara.su/viewtopic.php?t=10578 говорят, что это из-за фаервола

Аватара пользователя
tray.irk
сержант
Сообщения: 266
Зарегистрирован: 2008-10-22 8:21:36
Откуда: Иркутск
Контактная информация:

Squid + PF

Непрочитанное сообщение tray.irk » 2015-04-13 18:11:36

сквид слушал на 3129 прозрачный поток ... а на 3128 простой .... может трабла и в фаерволе .... только где? Вроде все открыто ...
Кеш удалял ... создавал по новой ... ситуация не изменилась :(

Отправлено спустя 1 минуту 24 секунды:
Честно говоря первый раз с таким сталкиваюсь ... сколько раз ставил скивда ... все было нормально, а тут на те ... единственное отличие это то что в кафестве фаервола используется PF ... пришлось поставить именно его ... так как через IPFW не смогу завернуть 2 ната
Числа не управляют миром, но могут показать как управляется мир

logout_90
мл. сержант
Сообщения: 72
Зарегистрирован: 2014-01-27 5:36:26

Squid + PF

Непрочитанное сообщение logout_90 » 2015-04-13 18:53:27

Мож ipfw не вырублен? или DEFAULT_TO_ACCEPT не выставлено? И ipfw блочит чего нить. Конечно, это только в том случае, если до PF использовался ipfw. Может стоит оставить на PF только разрешающие правила и редирект? Если сервер не боевой, конечно.
Для того,чтобы завернуть 2 ната через ipfw можно юзать ROUTETABLES=2 (ну или сколько надо).
Затем

Код: Выделить всё

nat 1 config log if *interface1* reset same_ports
nat 2 config log if *interface2* reset same_ports
Ну и затем заворачивать трафик который надо в нат1 или нат2.

Аватара пользователя
tray.irk
сержант
Сообщения: 266
Зарегистрирован: 2008-10-22 8:21:36
Откуда: Иркутск
Контактная информация:

Squid + PF

Непрочитанное сообщение tray.irk » 2015-04-14 8:49:19

Ipfw выключен и точно не работает. Может конфиг пф переделать как то? Можете пример скинуть?
Числа не управляют миром, но могут показать как управляется мир

Аватара пользователя
tray.irk
сержант
Сообщения: 266
Зарегистрирован: 2008-10-22 8:21:36
Откуда: Иркутск
Контактная информация:

Squid + PF

Непрочитанное сообщение tray.irk » 2015-04-14 16:03:48

Воообщем проблема не в фаерволе ... судя по всему косяк какой то к сквиде .... но просто без свякого прозрачного проксирования не может остановиться ....

Код: Выделить всё

root@p:~# /usr/local/etc/rc.d/squid stop
route: writing to routing socket: File exists
add net 193.203.112.112: gateway 192.168.133.53 fib 0: route already in table
Stopping squid.
Waiting for PIDS: 1090.
root@p:~# ps ax | grep squid
1088  -  Ss    0:00,00 /usr/local/sbin/squid -f /usr/local/etc/squid/squid.conf
1272  -  S     0:00,09 (squid-1) -f /usr/local/etc/squid/squid.conf (squid)
1274  -  S     0:00,01 (logfile-daemon) /var/log/squid/access.log (log_file_daemon)
1278  0  S+    0:00,00 grep squid

Числа не управляют миром, но могут показать как управляется мир

Аватара пользователя
Witt
мл. сержант
Сообщения: 73
Зарегистрирован: 2010-01-12 14:01:48

Squid + PF

Непрочитанное сообщение Witt » 2015-04-22 23:18:45

Должно быть transprent, иначе нифига он не прозрачный, и не будет работать, даже если ты траффик pf'ом завернёшь на него.