Как я настраивал прозрачный прокси в Linux Ubuntu Server. Часть 2

В предыдущей статье я начал описывать как я настраивал прозрачный прокси на Linux Ubuntu Server и остановился на том, что в локальной сети есть интернет для всех пользователей, у кого в настройках сетевой карты прописан шлюз по умолчанию равным Ip-адресу нашего Linux-сервера. При таком положении вещей мы имеем в локальной сети удобный интернет в плане работы почтовых программ, различных обновлений для программ и операционной системы, то есть работаем в интернете как будто бы у нас прямое подключение к интернету, но есть один минус. Такой интернет не контролируется. Если надо какому-нибудь пользователю отключить интернет или установить максимальную скорость, а то и вообще запретить скачивать mp3 или avi файлы, то мы это сделать не сможем. И тут на помощь к нам приходит прозрачный прокси сервер. Я поставил пожалуй самый популярный кэширующий прокси — Squid.

Итак, устанавливаем Squid3:

apt-get install squid3

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

nano /etc/squid3/squid.conf

Указываем порт прокси, а так же признак прозрачности:

http_port 3128 transparent

Кэш:

cache_dir ufs /var/spool/squid3 8192 32 256

Далее создаем access листы, delay pools, разбиваем пользователей на группы, в общем производим настройку Squid. Затем сохраняем конфиг, строим кэш:

 /usr/sbin/squid3 -z

и перезапускаем службу:

/etc/init.d/squid3 restart

После этого на клиентском компьютере можно попробовать прописать в настройках браузера параметры прокси (адрес 192.168.5.104 порт 3128) и проверить работоспособность прокси. Теперь осталось настроить прозрачную работу прокси-сервера, чтобы http трафик заворачивался на Squid автоматически, без прописывания прокси на клиенте.

Для этого в файле /etc/nat дописываем в конец:

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

и перезапускаем сеть:

/etc/init.d/networking restart

Теперь на компьютерах пользователей можно убирать настройки прокси и работать в интернете как будто в локальной сети прямой интернет. Конечно же это будет работать только для тех пользователей, которым в настройках Squid дан доступ на http протокол.

замечание

Выяснилось, что работа с ftp через прозрачный прокси Squid была не совсем корректна. Соединиться с сервером получалось, а вот передача файлов обрывалась с ошибкой передачи данных. Что только не пробовал. И устанавливал пассивный режим — не работает. Помогли настройки Squid‘а:

ftp_passive on
ftp_telnet_protocol on

А так же в автозапуск в файл /etc/rc.local добавлена команда:

modprobe modprobe ip_nat_ftp; modprobe nf_conntrack_ftp

После этого всё работает как часы.
Для составления статьи помогли ресурсы:

Как я настраивал прозрачный прокси в Linux Ubuntu Server. Часть 2: 1 комментарий

  1. Итак, устанавливаем Squid3:

    apt-get install squid3

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

    nano /etc/squid3/squid.conf

    Указываем порт прокси, а так же признак прозрачности:

    http_port 3128 transparent

    Кэш:

    cache_dir ufs /var/spool/squid3 8192 32 256

    Далее создаем access листы, delay pools, разбиваем пользователей на группы, в общем производим настройку Squid. Затем сохраняем конфиг, строим кэш:

    /usr/sbin/squid3 -z

    и перезапускаем службу:

    /etc/init.d/squid3 restart
    забыл добавить строчку раскоментировать #http_access allow localnet (уберем # в начале строки).

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *