LinuxForum.Fans
Тема

CentOS7+Squid (помогите запустить)

Автор: Shandor 19 сообщений 4817 просмотров
#389195

Здравствуйте,
Поставил CentOS7 на реальное железо (не виртуализации) Настроил сеть, пользователя для SSH
Ставлю squid - yum install squid

смотрю в /etc/squid/squid.conf (Вижу всего 75 строк. Когда то, ставил на FreeBSD было около 5 тыщ строк - Это вообще нормально ? : ) )
в Конф добавляю строку acl localnet src 192.168.5.0/24
и http_port 192.168.5.251:3128
Если верить всяким статейкам, то этого, в принципе должно быть достаточно

Затем service squid start
Сквид вроде стартует, но по факту не работает

Подскажите пжалста, где, что я не так?
/etc/squid/squid.conf

text
#
# Recommended minimum configuration:
#

# Example rule allowing access from your local networks. # Adapt to list your (internal) IP networks from where browsing # should be allowed 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 192.168.5.0/24 acl localnet src fc00::/7 # RFC 4193 local private network range acl localnet src fe80::/10 # 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 192.168.5.251:3128

# Uncomment and adjust the following to add a disk cache directory. #cache_dir ufs /var/spool/squid 100 16 256

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

# # 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

Сетевой интерфейс

text
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=
IPV6_DEFROUTE=
IPV6_FAILURE_FATAL=no
NAME=enp3s2
UUID=af318c70-f6e0-4f6a-8d16-2ffdc6dad071
ONBOOT=yes
HWADDR=00:11:85:04:14:DF
IPADDR0=192.168.5.251
PREFIX0=24
GATEWAY0=192.168.10.254
DNS1=192.168.10.202
IPV6_PEERDNS=
IPV6_PEERROUTES=
text

[root@localhost network-scripts]# ps -aux | grep squid
root      2760  0.0  0.1  85076  3016 ?        Ss   18:16   0:00 /usr/sbin/squid -f /etc/squid/squid.conf
squid     2762  0.0  0.8  99308 15388 ?        S    18:16   0:00 (squid-1) -f /etc/squid/squid.conf
squid     2763  0.0  0.0  27384  1228 ?        S    18:16   0:00 (logfile-daemon) /var/log/squid/access.log
root      3096  0.0  0.0 112640   936 pts/0    S+   18:57   0:00 grep --color=auto squid
#389196
"Shandor" написал:
Затем service squid start
Сквид вроде стартует, но по факту не работает

В CentOS 7 теперь Systemd, так что почитайте документацию по Systemd и разберитесь как запускать unit`ы.

#389197

На счет конфига все правильно, это стандартный конфиг, такой был в 5,6 и теперь в 7-ой ветки. По крайней мере я такой видел всегда).

На счет - squid не работает, видимо тебе надо посмотреть параметры firewalld. Или тупо его выключить на время:

systemctl stop firewalld.service
#389198

И да. Прокси не прозрачный же? Не забыл прописать его в браузере?

#389244

Или просто посмотреть логи сквида, чтобы понять в чём проблема и есть ли проблема со стартом сквида вообще.

#389246
"Shandor" написал:
Сквид вроде стартует, но по факту не работает

Это как? Что в логах? Что в службах?

#389271
Shandor написал:

Поставил CentOS7 на реальное железо (не виртуализации) Настроил сеть, пользователя для SSH
Ставлю squid - yum install squid

Затем service squid start
Сквид вроде стартует, но по факту не работает
....
Подскажите пжалста, где, что я не так?

Задам несколько простых вопросов:
1. Зачем Вам так много acl localnet src? У вас что, несколько локальных сетей к сквиду подключены? Или все-таки одна?
2. Какой физический смысл имеет запись:

text
acl localnet src 192.168.0.0/16
acl localnet src 192.168.5.0/24 

При явно очевидном условии, что первая сеть поглощает полностью вторую...

Но, ладно, это просто мусор, на саму работу сквида влияния не оказывающий.

3. теперь смотрим сюда:

text
http_access allow localhost manager
http_access deny manager

Что за acl такой с именем localhost? И кто такой manager?
Поэтому я бы добавил в Ваш конфиг, в самое его начало определение этих параметров. У меня сделано так:

text
acl manager proto cache_object
acl localhost src 127.0.0.1/32 

Далее, по настройке сетевого интерфейса:

text
IPADDR0=192.168.5.251
PREFIX0=24
GATEWAY0=192.168.10.254
DNS1=192.168.10.202

Вы в этом сильно уверены? Уверены, что хост имеющий адрес 192.168.5.251 в 24-й сети сможет достучаться до 192.168.10.254? У Вас один интерфейс на хосту или, все-таки два?
Далее, чтобы трафик пошел на сквид надо в правилах iptables нарисовать следующее перенаправление:

text
-A PREROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -i br1 -p tcp -m multiport --dports 80,5190 -j REDIRECT --to-ports 3128 

Естественно, адреса и интерфейсы свои подставить.

#389283

Всем спасибо за ответы,
Действительно, я и представления не имел, что - "В CentOS 7 теперь Systemd"
А именно "systemctl stop firewalld.service"
Пытался выключать его по старинке "service iptables stop"

Теперь буду фаервол смотреть.
А еще, есть ли смысл в антивирусе на шлюзе? или достаточно грамотно настроенного iptables?

#389285

Cruiser78

1. Зачем Вам так много acl localnet src? У вас что, несколько локальных сетей к сквиду подключены? Или все-таки одна?
2. Какой физический смысл имеет запись:
acl localnet src 192.168.0.0/16
acl localnet src 192.168.5.0/24

acl localnet src 192.168.0.0/16 По умолчанию уже была прописана в squid.conf

http_access allow localhost manager
http_access deny manager

Что за acl такой с именем localhost? И кто такой manager?

Это тоже было в "голом" squid.conf

GATEWAY0=192.168.10.254
Вы в этом сильно уверены?

Тут да, ошибся, сразу после того как запостил, увидел ошибку.

-A PREROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -i br1 -p tcp -m multiport --dports 80,5190 -j REDIRECT --to-ports 3128

Если будут на сквид стучаться с разных сетей, соответственно, нужно будет для каждой сети отдельная строчка?

Спасибо

#389328
Shandor написал:

-A PREROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -i br1 -p tcp -m multiport --dports 80,5190 -j REDIRECT --to-ports 3128

Если будут на сквид стучаться с разных сетей, соответственно, нужно будет для каждой сети отдельная строчка?
Спасибо

1. Антивирус, тот же clamav поставить желательно. Так как антивирус, подключенный к сквиду контролирут проходящий через него контент. Чего в принципе делать не умеет межсетевой экран. Страницы интернета могут быть вполне себе атакующими. Без анлиза содержания их не прихватить.
2. Достоинство большинства конфигов в линуксе то, что они очень легко читаемы. Определить то и то так и так. Читайте базовый конфиг и включайте голову - зачем там такое написано. И чего именно вы хотите добиться добавлением своей строки. Например, нет никакого смысла в определении дополнительной локальной сети 192.168.5.0/24 если определена сеть 192.168.0.0/16.
3. Последнее - ну переведите на понятный, опять же, язык правило iptables: перед всеми обработками перекинуть на порт 3128 локального хоста трафик, если он приходит с адресов нашей локальной сети через интерфейс, смотрящий в эту локальную сеть и идет на порты http (80, про 5190 - не помню зачем у меня это ссделано) хостов не принадлежащих нашей локальной сети. Если сможете обойтись в своей практике одной строчкой, то зачем писать их две?

#389426

Cruiser78
По поводу

Например, нет никакого смысла в определении дополнительной локальной сети 192.168.5.0/24 если определена сеть 192.168.0.0/16.

Это я понимаю, я говорил, что строчка "затесалась" случайно (сейчас все подчищено)

А по поводу iptables, то в Centos7 уже ж да, firewalld
И опять вопрос, что лучше iptables или firewalld ?

#389432
Shandor написал:
Cruiser78
А по поводу iptables, то в Centos7 уже ж да, firewalld
И опять вопрос, что лучше iptables или firewalld ?

Считайте, что это одно и тоже. Просто firewalld имеет более "развесистый" интерфейс. Ну и по умолчанию firewalld манипулирует понятием "зона", то есть можно разные сети и хосты распихать по разным зонам и иметь для них зональное управление правилами. iptables делает то же самое (фильтрует трафик), но с более лапидарным интерфейсом. Плюс - iptables более древнее произведение и документации для него сильно больше, чем для firewalld. Естественно, и документация на разные программы ориентирована будет больше на применение iptables (даже с примерами, которые можно копипастить). Для firewalld это надо переводить на "новый язык" управления.
Поэтому вопрос что лучше лишен смысла. Они оба делают одно и тоже и одинаково эффективно. iptables, при этом, более привычен. Да и для сервера (где открывается пара-другая портов всего) его возможностей более чем достаточно.

#389503

Помимо этого firewalld применяет изменение правил без перезапуска сервиса, что немаловажно для непрерывной доступности сервера.

#389518
Vascom написал:
Помимо этого firewalld применяет изменение правил без перезапуска сервиса, что немаловажно для непрерывной доступности сервера.

Ну я как-то не замечал ни разу, что после измения правил фильтрации командой "iptables bla-bla-bla" надо перезагружать сам сервис. Так же на лету меняются правила.

#389519

Однако это так.

#389651

Вопрос по firewalld

Есть Сквид, на 3128
Стартую фаервол, и зону с портом 3128
firewall-cmd --zone=public --add-port=3128/tcp

Захожу через браузер, пускает и на http и на https
почему так? если конкретно 443 не прописываю

#389658

Лучше задай этот вопрос отдельной темой в разделе форума "Администрирование и настройка сетей".

#389669

Тогда по Сквиду еще вопрос
Не дает качать файлы, примерно, больше 40мб.
До 40 мб. качаются без проблем. А то, что выше, или не качается вообще или останавливается на разных стадиях закачки.


Конфиг Сквида в самом начале., добавлено, только

text
acl blocked_urls url_regex "/etc/squid/blocked_urls.txt"
http_access deny blocked_urls

Фаервол отключал, та же ерунда.
А в идеале, хотело бы указать, что-бы можно было качать файлы не больше 500мб

#389682
Shandor написал:
Тогда по Сквиду еще вопрос
Не дает качать файлы, примерно, больше 40мб.
До 40 мб. качаются без проблем. А то, что выше, или не качается вообще или останавливается на разных стадиях закачки.


Конфиг Сквида в самом начале., добавлено, только
text
acl blocked_urls url_regex "/etc/squid/blocked_urls.txt"
http_access deny blocked_urls

Фаервол отключал, та же ерунда.
А в идеале, хотело бы указать, что-бы можно было качать файлы не больше 500мб

Гм, похоже, проблема именно в этом хосте (с которого пытался качать)
Sorry

Войдите или зарегистрируйтесь, чтобы ответить.