Как настроить прокси-сервер squid на CentOS / RHEL 7 |

Как настроить прокси-сервер squid на CentOS / RHEL 7

Мануал

Squid – это веб-прокси-приложение с различными конфигурациями и использованием.

Squid имеет большое количество элементов управления доступом и поддерживает различные протоколы, такие как HTTP, HTTPS, FTP и SSL.

В этом руководстве мы увидим, как использовать Squid в качестве HTTP-прокси.

Настройка

Прокси-сервер может быть программным или аппаратным, например прокси-сервер Bluecoat.

В этом руководстве мы настроим прокси как программное обеспечение на виртуальном устройстве.

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

Настройка для этой статьи:

10.10.10.1.2 - proxy server.
10.10.10.1.3 - Will redirect/cache traffic via the proxy server.

Шаг 1. Установите и включите squid

Установите необходимые пакеты для прокси-сервера squid и включите их при загрузке.

# yum install squid
# systemctl enable squid
# systemctl start squid

Если вы получили следующую ошибку:

Job for squid.service failed because the control process exited with error code. See "systemctl status squid.service" and "journalctl -xe" for details.

Убедитесь, что у вас установлена последняя версия openssl с:

# yum update openssl

После этого можно запустить squid:

# systemctl start squid

Шаг 2. Настройте Squid для прослушивания на обоих портах 3128 и 8080

Отредактируйте файл конфигурации squid /etc/squid/squid.conf и добавьте 2 директивы http_port для портов 3128 и 8080, как показано ниже:

# vim /etc/squid/squid.conf
# Squid normally listens to port 3128
http_port 3128
http_port 8080

Перезапустите сервис squid, чтобы изменения вступили в силу.

# systemctl restart squid

Убедитесь, что Squid запущен:

# ps auxwwf | grep [s]quid
root     15334  0.0  0.0  86028  3796 ?        Ss   08:55   0:00 /usr/sbin/squid -f /etc/squid/squid.conf
squid    15336  0.0  0.2  99676 16740 ?        S    08:55   0:00  \_ (squid-1) -f /etc/squid/squid.conf
squid    15337  0.0  0.0  27388  1216 ?        S    08:55   0:00      \_ (logfile-daemon) /var/log/squid/access.log

Убедитесь, что порты прослушивают сервер, на котором вы установили squid.

# ss -npl | egrep '3128|8080' | grep squid
tcp    LISTEN     0      128      :::8080                 :::*                   users:(("squid",pid=15336,fd=12))
tcp    LISTEN     0      128      :::3128                 :::*                   users:(("squid",pid=15336,fd=11))

Вы можете добавить требуемые правила iptables или для целей тестирования вы можете временно отключить firewalld.

# firewall-cmd --add-port=3128/tcp --permanent
# firewall-cmd --add-port=8080/tcp --permanent

Где,
10.10.10.1.3 – это ip сервера, который будет подключаться к прокси.

Ниже приведены правила iptables, если вы используете iptables.

 -A INPUT -s 10.10.10.1.3/24 -m state --state NEW -m tcp -p tcp --dpport 3128 -j ACCEPT
 -A INPUT -s 10.10.10.1.3/24 -m state --state NEW -m tcp -p tcp --dpport 80808 -j ACCEPT

Шаг 3. Настройте второй сервер для использования squid

# export http_proxy=http://${PROXY_FQDN}:8080

На удаленном сервере, чтобы убедиться, что вы можете подключиться к прокси, вы можете запустить curl на google.com.

# curl -v   http://google.com | head -1
* About to connect() to proxy  10.10.10.1.2 port 8080 (#0)
*   Trying ...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to  10.10.10.1.2 ( 10.10.10.1.2) port 8080 (#0)
> GET http://google.com/ HTTP/1.1
> User-Agent: curl/7.29.0
> Host: google.com
> Accept: */*
> Proxy-Connection: Keep-Alive
> 
< HTTP/1.1 301 Moved Permanently
< Server: AkamaiGHost
< Content-Length: 0
< Location: https://google.com/
< Date: Tue, 15 May 2018 03:46:10 GMT
< X-Cache: TCP_MISS from a117-104-136-128.deploy.akamaitechnologies.com (AkamaiGHost/9.3.0.3-22245996) (-)
< EJ-HOST: ...
< X-Akamai-Request-ID: 19d48d66
< X-Cache: MISS from proxyhostname
< X-Cache-Lookup: MISS from proxyURL:3128
< Via: 1.1 proxyURL (squid/3.5.20)
< Connection: keep-alive

Настройте squid на использование SSL (необязательно, если вы хотите использовать https)

Чтобы принимать трафик https, мы настроим squid с сертификатом сервера.

# mkdir /etc/squid/ssl_cert/
# cd /etc/squid/ssl_cert/
# openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout myCA.pem -out myCA.pem
# /usr/lib64/squid/ssl_crtd -c -s /var/lib/ssl_db
# chown -R squid:squid /var/lib/ssl_db/ /etc/squid/ssl_cert/

Затем мы редактируем конфигурацию squid:

# vim /etc/squid/squid.conf
# for test purposes we allow all
#http_access deny all
http_access allow all
sslcrtd_children 50 startup=5 idle=1
ssl_bump server-first all
http_port 3128
#additional logging
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
# Squid normally listens to port 3128
https_port 3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl_cert/myCA.pem  options=NO_SSLv3

Перезапустите сервер squid и просмотрите файл журнала кеша.

# service squid restart
# tailf /var/log/squid/cache.log
tailf /var/log/squid/cache.log 
2018/05/23 12:57:09 kid1| Max Swap size: 0 KB
2018/05/23 12:57:09 kid1| Using Least Load store dir selection
2018/05/23 12:57:09 kid1| Set Current Directory to /var/spool/squid
2018/05/23 12:57:09 kid1| Finished loading MIME types and icons.
2018/05/23 12:57:09 kid1| HTCP Disabled.
2018/05/23 12:57:09 kid1| Squid plugin modules loaded: 0
2018/05/23 12:57:09 kid1| Adaptation support is off.
2018/05/23 12:57:09 kid1| Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 22 flags=9
2018/05/23 12:57:09 kid1| Accepting NAT intercepted SSL bumped HTTPS Socket connections at local=[::]:3129 remote=[::] FD 23 flags=41

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий