Ubuntu Server | Установка и настройка прокси сервера SQUID

Следующим пунктом в серии статей посвященных установке и настройке Ubuntu сервера, мы рассмотрим установку прокси сервера SQUID. Пользу прокси сервера, может не оценить только плохой сисадмин. Удобное управление настройками прокси, позволит как закрывать доступы к определенным сайтам, так и блокировать целые списки IP серверов. Для установки прокси сервера, будет использован сервер на Ubuntu 11.10. Подробное описание установки и настройки сервера было описано в предыдущих статьях.

Установка кэширующего прокси сервера SQUID

Логинимся на сервере с правами суперпользователя

su -

устанавливаем squid

apt-get install squid

после установки открываем файл /etc/squid/squid.conf и приступаем к настройке

nano /etc/squid/squid.conf

Так как мы будем настраивать прозрачный прокси (на клиентских машинах нам не нужно будет указывать в настройках прокси сервер), в строке http_port 3128, допишем transparent

http_port 3128 transparent

раскоментируем строку, указывающую путь к кэшу и настроим как показано ниже

cache_dir ufs /var/spool/squid 4096 32 256

указываем настройки сети в которой будет работать прокси, для этого раскоментируем строку в которой указана ваша подсеть

#acl localnet src 10.0.0.0/24 # RFC1918 possible internal network 
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network 
acl localnet src 192.168.10.0/24 # RFC1918 possible internal network

разрешаем доступ к прокси из внутренней сети

http_access allow localnet

указываем лимит использования памяти

memory_pools on
memory_pools_limit 50 MB

50 мб. вполне достаточно

в случае возникновения ошибок, чтобы видеть их на русском языке, указываете следующее

error_directory /usr/share/squid/errors/Russian-koi8-r

сохраняем файл, закрываем, перестраиваем кэш

/usr/sbin/squid -z

перезапускаем squid

/etc/init.d/squid restart

Готово! Чтобы проверить, нужно указать в настройках браузера клиентского компьютера, прокси 192.168.10.1 и порт 3128. Если все работает нормально, движемся далее…

Так как мы настраиваем прозрачный прокси, чтобы не бегать к каждой машине и не указывать прокси вручную, нам следует завернуть весь трафик из сети на прокси сервер. Для этого открываем /etc/rc.local

nano /etc/rc.local

и вносим следующее

iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.10.0/24 -p tcp -m multiport —dport 80,8080 -j DNAT —to 192.168.10.1:3128

таким образом весь трафик с 80 и 8080 портов будет автоматически направлен через прокси сервер. Для проверки, перезапускаем сеть

sudo /etc/init.d/networking restart

убираем на клиентской машине галочку с прокси сервера, обновляем страницу и убеждаемся что все работает.

А так же вы можете посмотреть другие статьи из этой серии:

1. Установка Ubuntu Server, первоначальная настройка

2. Установка и настройка DHCP сервера на Ubuntu Server

3. Установка и настройка DNS сервера на Ubuntu Server

4. Установка и настройка прокси сервера SQUID

5. Настройка контент-фильтра Dansguardian для работы с SQUID

6. Установка и настройка почтового сервера

7. Установка и настройка FTP сервера

8. Установка и настройка WEB сервера

9. Настройка управления сервером через вэб интерфейс (WEBMIN)

  • Тарас

    после добавления правила в rc.local, все равно трафик не заворачивается…..ubuntu server 12/04

    • Иван

      Что именно прописывал? Не допустил ли ошибки?

  • Тарас

    полностью как в статье, только сеть внутреняя 192.168.0.0\24 и айпи сервера 192.168.0.3
    проверил до единой буквы… ну если убираю прокси , и оставляю шлюзом 0.3…. страницы в броузере не открываются

    • Иван

      скопируй в коммент полностью строку перенаправления, я гляну

      • Тарас

        строку скопировать не получается, подключен через putty к компу… через буфер не идет, хотя в ту сторону нормально…..
        убегать надо срочно, есть возможность оставить асю\скайп , завтра подергаю…
        буду очень благодарен, пытаюсь поднять сервак….

        • Иван

          отправил на почту

          • Тарас

            GNU nano 2.2.6 Файл: /etc/rc.local

            iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.0.0/24 -p tcp -m multiport —-dport 80,8080 -j DNAT —to 192.168.0.3:3128
            exit 0

  • Иван

    Попробуй вот этот код вставь:
    iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.0.0/24 -p tcp -m multiport -dport 80,8080 -j DNAT —to 192.168.0.3:3128

    • Тарас

      попробывать смогу только завтра, т.к. если там отвалиться инет уже не смогу вернуть настройки…., извини за дремучесть, а в чем разница ? в одинарном дефисе ? согласно ману перед дпорт и too должен быть двойной дефис, да и на одинарный ошибка выдавалась…

      • Тарас

        еще вопрос, может быть это связано с тем , что днс тоже как-то криво настроилось…. и при проверки перенаправления я юзаю другой днс(рабочий на данный момент 100%) ?
        короче, на клиентской машине при проверке такие настройки

        192.168.0.100
        255.255.255.255.0
        192.168.0.3 шлюз
        192.168.0.1 днс

    • Тарас

      попробывал, не работает….

      • Иван

        Вечером будет доступ к серверу, я еще раз все проверю и отвечу тебе

        • Тарас

          спасибо, и последний вопрос…. пытаюсь по статье настраивать и ДНС, но чтот тоже не получается…. , возможно ли это из-за того, что я вообще не настраивал DHCP(он мне не нужен, и яэтот пункт пропустил) ?

          нагуглил инфу, что днс в 12.04 отличается от 11.10… вот и думаю в какую сторону копать…. ставить dhcp или разбираться для начала в различиях

          • Иван

            да, различия могут быть, но на сколько они принципиальны сказать не могу

  • Костя

    такая же проблема прописал в rc.local iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.121.0/24 -p tcp -m multiport —dport 80,8080 -j DNAT —to 192.168.121.121:3128 траф не заворачиваеться….

  • Вячеслав

    Та же беда…

    iptables -t nat -A PREROUTING -i eth1 ! -d 10.10.0.0/24 -p tcp -m multiport -dport 80,8080 -j DNAT —to 10.10.0.1:3128

    не работает

    Ubuntu server 13.04

  • Аноним

    И не будет работать. Думать на тему, чем x.y.0.k/24 отличается от x.y.(1-254).k/24 при указании сети, но не единичного адреса.

  • Ирина

    Меня тоже интересует эта проблема. Трафик не заворачивается, кто-нибудь нашел в чем нюанс?