Хотели бы вы узнать, как установить прозрачный прокси Squid на Ubuntu Linux? В этом уроке мы покажем вам, как установить и настроить прозрачный прокси-сервер, используя программное обеспечение Squid на Ubuntu Linux версии 17.

Список оборудования:

В следующем разделе представлен список оборудования, используемого для создания этого учебника Ubuntu Linux.

Все перечисленные выше аппаратные средства можно найти на веб-сайте Amazon.

Ubuntu Playlist:

На этой странице мы предлагаем быстрый доступ к списку видеороликов, связанных с Ubuntu Linux.

Не забудьте подписаться на наш канал YouTube, названный FKIT.

Учебное пособие по Squid:

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

Учебник - Squid на Ubuntu Linux

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

# dpkg-reconfigure tzdata

Установите пакет Ntpdate и установите правильную дату и время сразу.

# apt-get install ntpdate
# ntpdate pool.ntp.br

В нашем примере команда Ntpdate использовалась для установки правильной даты и времени с использованием бразильского сервера pool.ntp.br

Давайте установим службу NTP.

# apt-get install ntp

NTP - это сервис, который будет поддерживать обновление нашего сервера.

Используйте дату команды, чтобы проверить дату и время, настроенные на вашем Ubuntu Linux.

# date

Если система указала правильную дату и время, это означает, что вы выполнили все шаги правильно.

Используйте следующие команды для установки необходимых пакетов.

# apt-get update
# apt-get install build-essential openssl libssl-dev

Загрузите, скомпилируйте и установите пакет Squid.

# mkdir /downloads
# cd /downloads
# wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.27.tar.gz
# tar -zxvf squid-3.5.27.tar.gz
# cd squid-3.5.27
# ./configure --with-default-user=proxy
# make
# make install

Вот исходный файл конфигурации squid, установленный пакетом Squid.

# vi /usr/local/squid/etc/squid.conf

acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
acl localnet src fc00::/7
acl localnet src fe80::/10

acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all

http_port 3128

coredump_dir /usr/local/squid/var/cache/squid

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

Вот новый файл с нашей конфигурацией.

Измененные директивы выделены жирным шрифтом.

# vi /usr/local/squid/etc/squid.conf

acl localnet src 192.168.0.0/24  # My internal Network

acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all

http_port 3128 intercept   # TRANSPARENT PROXY

coredump_dir /usr/local/squid/var/cache/squid
cache_dir ufs /usr/local/squid/var/cache/squid 1000 16 256  # 1GB as Cache

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

Моя конфигурация просто базовая.

Настоятельно рекомендуется изучить этот файл конфигурации, чтобы улучшить вашу конфигурацию.

Используйте следующую команду для создания необходимых папок кэша.

# chown -R proxy:proxy /usr/local/squid -R
# /usr/local/squid/sbin/squid -z

Используйте следующую команду, чтобы запустить службу Squid.

# /usr/local/squid/sbin/squid -d 10

Если все работает правильно, на экране должны появиться следующие сообщения:

Starting Squid Cache version 3.5.27 for x86_64-pc-linux-gnu...
Service Name: squid
Process ID 19569
Process Roles: worker
With 1024 file descriptors available
Initializing IP Cache...
DNS Socket created at [::], FD 6
DNS Socket created at 0.0.0.0, FD 8
Adding nameserver 172.31.0.2 from /etc/resolv.conf
Adding domain us-west-2.compute.internal from /etc/resolv.conf
Logfile: opening log daemon:/usr/local/squid/var/logs/access.log
Logfile Daemon: opening log /usr/local/squid/var/logs/access.log
Unlinkd pipe opened on FD 14
Store logging disabled
Swap maxSize 1024000 + 262144 KB, estimated 98934 objects
Target number of buckets: 4946
Using 8192 Store buckets
Max Mem size: 262144 KB
Max Swap size: 1024000 KB
Rebuilding storage in /usr/local/squid/var/cache/squid (no log)
Using Least Load store dir selection
Set Current Directory to /usr/local/squid/var/cache/squid
Finished loading MIME types and icons.
HTCP Disabled.
Squid plugin modules loaded: 0
Adaptation support is off.
Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 16 flags=9
Done scanning /usr/local/squid/var/cache/squid dir (0 entries)
Finished rebuilding storage from disk.
0 Entries scanned
0 Invalid entries.
0 With invalid flags.
0 Objects loaded.
0 Objects expired.
0 Objects cancelled.
0 Duplicate URLs purged.
0 Swapfile clashes avoided.
Took 0.04 seconds ( 0.00 objects/sec).
Beginning Validation Procedure
Completed Validation Procedure
Validated 0 Entries
store_swap_size = 0.00 KB
storeLateRelease: released 0 objects

Установлено прозрачное прокси-решение.

Теперь вам нужно перенаправить каждое соединение из внутренней сети, пытаясь добраться до веб-сайта HTTP, чтобы принудительно использовать ваш прокси-сервер.

Используйте следующую команду для перенаправления каждого пакета из внутренней сети, пытающегося добраться до веб-сайта HTTP, до TCP-порта 3128 вашего прокси-сервера Squid.

# iptables -t nat -I PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to-port 3128

Чтобы протестировать установку, перейдите на компьютер, расположенный во внутренней сети, и откройте его браузер и попробуйте получить доступ к веб-сайту HTTP.