Установка кэширующего WEB сервера Squid на Ubuntu 16.04

squid3
Сегодня установим и настроим кэширующий WEB сервер Squid на Ubuntu 16.04, также разберем настройку NAT на Ubuntu Server.
Squid является кэширующим прокси-сервером для Web-приложений с поддержкой протоколов HTTP, HTTPS, FTP, и т.д. Используя squid, Вы уменьшите пропускную способность и сократите время отклика интернет страниц путем кэширования и повторного использования часто запрашиваемые веб-страницы. Squid работает на большинстве доступных операционных систем, включая Windows, и распространяется под лицензией GNU GPL.

Установка squid на Ubuntu 16.04

Итак, для работы squid установим пакет из репозитория Ubuntu.

sudo apt install squid3

После установки пакета приступим к редактированию конфигурационного файла

Настройка squid на Ubuntu 16.04

Параметры сервера:
• Сеть 192.168.0.0
• Маска 255.255.255.0
• IP-адрес 192.168.0.1
• Порт 3128
Файл конфигурации squid.conf в Ubuntu 16.04 располагается по пути /etc/squid/squid.conf, отредактируйте его в соответствии с моим листингом:

 sudo nano /etc/squid/squid.conf

Пример файла squid.conf

### Разрешаем доступ только из своей сети
acl localnet src 192.168.0.0/24
acl SSL_ports port 443 # SSL
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https skype
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

### HTTP доступ
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 

### Порт и IP адрес прокси-сервера, а также делаем его прозрачным (transparent если не написать то прописываем у клиента прокси-сервер вручную)
http_port 192.168.0.1:3128 transparent 

### Допустимый объем памяти
cache_mem 512 MB 

### Максимальный объем кэшированного объекта в памяти
maximum_object_size_in_memory 512 KB 

### Максимальный и минимальный размер кэшируемого файла
maximum_object_size 60 MB
minimum_object_size 2 KB 

### Директория кэша размер кэша=4Mb Кол-во папок первого уровня=32 и второго=256
cache_dir ufs /var/spool/squid 4096 16 256 

### Делаем прокси анонимным (прячем внутренние IP-адреса)
via off
forwarded_for delete

### Записываем логи и храним их 31 день
access_log daemon:/var/log/squid/access.log squid
logfile_rotate 31

coredump_dir /var/spool/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

Настройка NAT в Ubuntu 16.04

Далее нам надо создать правило iptables, а также включить перенаправление пакетов из одной сетевой карточки в другу и присвоить статический IP адрес карточки которая смотрит в локальную сеть.

Первое: смотрим какие у нас есть интерфейсы командой ifconfig -a. У меня на Ubuntu Server 16.04 в локальную сеть смотрит интерфейс с названием enp0s8, а в интернет enp0s3. Присвоим интерфейсу enp0s8 статический IP адрес, а также заранее укажем путь для запуска скрипта с правилами iptables. Для этого откроим в редакторе файл interfaces:

sudo nano /etc/network/interfaces

Отредактируем его в соответствии с моим листингом:

auto lo
iface lo inet loopback

auto enp0s8
iface enp0s8 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255

post-up /etc/nat   # Запись для запуска NAT

Второе: создадим правило iptables и включить перенаправление пакетов. Для этого в Директории /etc создадим файл с именем nat

sudo touch /etc/nat

Откроем его для редактирования

sudo nano /etc/nat

добавим в него следующий листинг

Пример файл NAT для перенаправления трафика через Squid

#!/bin/sh
# Включаем форвардинг (перенаправление) пакетов 
echo 1 > /proc/sys/net/ipv4/ip_forward

# Разрешаем трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT

# Разрешаем трафик на enp0s3 -интерфейсе
iptables -A INPUT -i enp0s3 -j ACCEPT

# Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT

# Включаем NAT
iptables -t nat -A POSTROUTING -o enp0s3 -s 192.168.0.0/24 -j MASQUERADE

# Разрешаем ответы из внешней сети
iptables -A FORWARD -i enp0s3 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i enp0s3 -o enp0s8 -j REJECT

# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i enp0s8 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128

Дальше остается только перезагрузить компьютер и все должно заработать.

sudo reboot

Для проверке все ли работает на машине_2 (у меня на Windows_7) подключенной к интерфейсу enp0s8 сервера, надо вручную прописать IP адрес из Вашей сети в моем случае я прописываю из сети 192.168.0.0 (например 192.168.0.2) и проверяю есть ли на машине_2 интернет.
На этом все!

Видео урок по установке squid

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Установка кэширующего WEB сервера Squid на Ubuntu 16.04
Пожалуйста оцените эту статью

8 комментариев

  1. SYSadminАвтор 11.11.2017
  2. SYSadminАвтор 11.11.2017
  3. Алексей 11.11.2017
  4. SYSadminАвтор 25.09.2017
  5. Дмитрий 25.09.2017
  6. dog 04.07.2017
  7. SYSadminАвтор 22.02.2017
  8. Петр 22.02.2017

Добавить комментарий

Меню

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: