Настройка шлюза на CentOS 7. Centos 7 установка и настройка squid


Установка и настройка прокси-сервера Squid на Centos 7.3

Squid это пожалуй самый распространенный прокси-сервер для Linux. Прокси-сервер позволяет организовывать контролируемый доступ к сети интернет, а также осуществлять мониторинг ресурсов, на которые заходил пользователь. Может быть прозрачным (незаметным) для пользователя или нет, проксировать (пропускать через себя) различные протоколы, авторизовать пользователей через домен или по паролю, использовать списки доступа (ACL) и так далее. Как и большинство демонов Linux установить Squid достаточно несложно. В Centos для этого используется менеджер пакетов yum.

yum install squid

После завершения установки необходимо выполнить настройку squid. Основным файлом настройки являетcя файл /etc/squid/squid.conf. Его можно редактировать обычным текстовым редактором, например Vi, Nano и т.д. Squid имеет достаточно большое количество настроек, они описаны например на официальном сайте. Файл конфигурации работает сверху вниз - т.е то, что описано выше в файле срабатывает первым. Рассмотрим минимально необходимые из них.

  • acl localnet src … и acl localnet src 10.0.0.0/8 - определяют какие сети для squid будут являться локальными. Необходимо оставить одну, остальные закомментировать.
  • acl … ports и acl Safe_ports 21 - определяют какие порты будет контролировать Squid.
  • http_access
  • http_access deny !Safe_ports
  • http_access deny all
  • Правила доступа deny - запрет, allow разрешение
  • Запрещает соединение по всем портам, кроме группы !Safe_ports
  • Запрещает все соединения, кроме тем что были описаны выше. после этих слов не должно быть других описаний правил доступа иначе они не сработают.
  • http_port указывает на каком порту работает прокси-сервер
  • transparent указывает что прокси будет прозрачным.
  • cache_dir ufs /var/spool/squid 4096 32 256 - указывает где будут созданы каталоги под кэш, суммарный размер, и количество каталогов 1 и второго уровня.

Например нижеприведенный листинг файла /etc/squid/squid.conf настроит прозрачный прокси-сервер (сервер который не заметен пользователю, т.е не требует специальной настройки в браузерах).

# # Recommended minimum configuration: # # Example rule allowing access from your local networks. # Adapt to list your (internal) IP networks from where browsing # should be allowed #Здесь указываются какие сети являются локальными #acl localnet src 10.0.0.0/8 # RFC1918 possible internal network #acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network #acl localnet src fc00::/7 # RFC 4193 local private network range #acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines #Настройка безопасных портов - т.е порты которые будут открыты, отдельной #группой идет SSL порт acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https 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 # # Recommended minimum Access Permission configuration: # # Deny requests to certain unsafe ports #Закрыть все порты кроме безопасных и порта SSL http_access deny !Safe_ports # Deny CONNECT to other than secure SSL ports http_access deny CONNECT !SSL_ports # Only allow cachemgr access from localhost #http_access allow localhost manager #http_access deny manager # We strongly recommend the following be uncommented to protect innocent # web applications running on the proxy server who think the only # one who can access services on "localhost" is a local user #http_access deny to_localhost # # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # # Example rule allowing access from your local networks. # Adapt localnet in the ACL section to list your (internal) IP networks # from where browsing should be allowed # Собственно правила фильтрации траффика. разрешены соединения из локальной сети и текущего хоста http_access allow localnet http_access allow localhost # And finally deny all other access to this proxy # Все остальные коннекты запрешены http_access deny all # Squid normally listens to port 3128 #Указывается на каком порту работает прокси и будет ли он прозрачным http_port 3128 transparent # Uncomment and adjust the following to add a disk cache directory. #Задается директория под кеш и ее размер, а также количество вложенных #папок первого и второго уровня. cache_dir ufs /var/spool/squid 100 16 256 # Leave coredumps in the first cache dir #Каталог под дампы ядра Squid (служебный каталог) coredump_dir /var/spool/squid

После того как первоначальная настройка выполнена Squid необходимо проинициализировать командой squid -z. Это создаст структуру папок для кеша.

Убедится что сервис запущен, а также управлять им, можно используя systemctl.

  • systemctl status squid - проверить запущен ли squid
  • systemctl start squid - запустить squid
  • systemctl stop squid - остановить squid
  • systemctl enable squid - добавить squid в автозагрузку

После этого данный сервер можно использовать для фильтрации трафика в вашей сети.

Поделиться в соцсетях:

Спасибо за Вашу оценку! К сожалению, проголосовать не получилось. Попробуйте позже

oblako.kz

Настройка squid — ISPWiki

VMmanager и DCImanager для ускорения установки ОС могут использовать кэширующий прокси-сервер. Такой прокси-сервер кэширует пакеты, скачиваемые с зеркал, с репозиториев ОС. Рассмотрим установку кэширующего прокси-сервера squid.

Установка

Squid должен быть установлен и настроен на мастер-узле кластера.

CentOS 6:

yum install squid chkconfig --add squid

CentOS 7:

yum install squid systemctl enable squid.service

Настройка

Для CentOS настройка выполняется в файле /etc/squid/squid.conf.

После настройки для применения параметров необходимо перезапустить squid командой:

CentOS 6:

service squid reload

CentOS 7:

systemctl restart squid.service

Для того, чтобы IP-адрес прокси-сервера не попал в различные блок-листы, необходимо ограничить доступ к нему, разрешив только нужные IP-адреса виртуальных машин и выделенных серверов.

Разрешенные адреса указываются через acl:

acl install_net src 1.1.1.0/24 acl install_net src 2.2.2.0/24 acl install_net src 1111:2222:3333::4444/64

Далее прописываются правила, разрешающие доступ с указанных сетей и запрещающие со всех остальных:

http_access allow install_net http_access deny all

Для кэширования архивов ядер ОС и других больших файлов необходимо изменить ограничение по умолчанию на максимальный размер кэшируемых файлов:

maximum_object_size 1024 MB

Пример конфигурационного файла, с которым работает VMmanager, для squid версии 3.1:

acl install_net src 10.0.0.0/8 acl install_net src 172.16.0.0/12 acl install_net src 192.168.0.0/16 acl install_net src fc00::/7 acl install_net src fe80::/10   acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https 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 acl manager proto cache_object   http_access allow manager localhost http_access deny manager http_access allow install_net http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost manager http_access deny manager http_access allow localhost http_access deny all   http_port 3128 cache_dir ufs /var/spool/squid 4096 16 256 maximum_object_size 1024 MB   coredump_dir /var/spool/squid refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i /mirrorlist.centos.org/ 1440 20% 10080 refresh_pattern -i /download.ispsystem.com/ 0 20% 30 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern -i repomd.xml 0 0% 0 refresh_pattern -i /repodata\/repomd\.xml/ 5 10% 160 refresh_pattern -i /repodata.+gz/ 0 0% 60 refresh_pattern -i (Packages.gz|Release|Release.gpg)$ 0 10% 60 refresh_pattern -i /vmmgr?/ 0 0% 0 refresh_pattern -i /dcimgr?/ 0 0% 0 refresh_pattern -i /install\.5\.sh/ 0 0% 0 refresh_pattern -i /\.treeinfo/ 0 0% 0 refresh_pattern -i /\w+\.lic/ 0 0% 0 refresh_pattern . 0 20% 4320

Примеры конфигурационных файлов с минимальными и дополнительными возможностями смотрите в документации Squid: Configuring Squid.

Раздел, на котором находится директория из параметра cache_dir должна иметь достаточно свободного места (не менее 10 ГБайт). При установке squid директория /var/spool/squid создается автоматически, однако, если перезапуск службы завершается с ошибкой, имеет смысл проверить вывод команды systemctl status squid.service. Может возникнуть ошибка:

squid[21524]: Failed to make swap directory /var/spool/squid: (13) Permission denied

В таком случае создайте директорию:

mkdir /var/spool/squid chown -R squid:squid /var/spool/squid

Проверка

Для проверки работы скачайте какой-либо файл через прокси с помощью wget.

Например:

http_proxy=http://127.1.1.1:3128/ wget -O /dev/null http://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz

Затем проверьте лог squid. В СentOS — /var/log/squid/access.log. Должна присутствовать запись следующего вида:

1381394282.324 12352 1.1.1.1 TCP_MISS/200 52127893 GET http://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz - DIRECT/2001:6c8:130:800::4 application/x-gzip

При повторном скачивании файла, TCP_MISS должно замениться на TCP_HIT или TCP_HIT_MEM:

1381394328.563 235 1.1.1.1 TCP_HIT/200 52127902 GET http://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz - NONE/- application/x-gzip

Настройка VMmanager

Два варианта настройки:

  1. Адрес и порт кэширующего прокси-сервера указать в разделе "Политики" (подробно о разделе "Политики" описано в статье "Настройка_политик_панели_управления) в полях "HTTP proxy для IPv4" и при необходимости использования IPv6 — "HTTP proxy для IPv6";
  2. Адрес и порт кэширующего прокси-сервера указать в конфигурационном файле в параметрах "HTTPProxyv4" и при необходимости использования IPv6 — "HTTPProxyv6".
Например: HTTPProxyv4 http://127.1.1.1.1:3128/ HTTPProxyv6 http://[1111:2222:3333::4444]:3128/

Настройка DCImanager

Два варианта настройки:

  1. Адрес и порт кэширующего прокси-сервера указать в разделе "Настройки" -> "Глобальные настройки" в полях "Прокси-сервер IPv4" и при необходимости использования IPv6 — "Прокси-сервер IPv6";
  2. Адрес и порт кэширующего прокси-сервера указать в конфигурационном файле в параметрах "HTTPProxyv4" и при необходимости использования IPv6 — "HTTPProxyv6".
Например: HTTPProxyv4 http://127.1.1.1.1:3128/ HTTPProxyv6 http://[1111:2222:3333::4444]:3128/

Важно: Указывать необходимо реальные IP адреса, к которым виртуальная машина или выделенный сервер смогут подключиться. Если прокси-сервер расположен на том же узле, что и VMmanager, нельзя указывать loopback-адрес в качестве параметра HTTPProxyv4 или HTTPProxyv6, так как доступ к этому IP должен быть с любого из узлов кластера.

«......»

Эта форма — не обращение в поддержку.Мы не можем идентифицировать вас и ответить на ваше сообщение.

doc.ispsystem.ru

Установка и настройка связки VuurMuur+Squid+SAMS на CentOS 5.5

Данный тандем поможет организовать:

  • общий доступ в Интернет
  • учет трафика HTTP/FTP
  • защиту от внешних угроз путем настройки фаервола
  • кеширование HTTP трафика для быстрой загрузки часто используемых страниц
  • запреты на посещение сайтов (например сайт одноглазников)

Эта записка будет полезна начинающим "Линуксоидам", потому что "Хард Линуксоиды" предпочитают написания правил IPtables своими руками, что на самом деле изначально правильно. Но начинающим тяжело разбираться с правилами, поэтому данная записка ориентирована именно на зеленных пингвинов

Связка состоит из следующих звеньев:

1. VuurMuur  -это мощный Firewall-менеджер, представляющий собой надстройку над Iptables для Linux. Vuurmuur обладает простым и легким для изучения интерфейсом настройки, позволяющим создавать и простые, и сложные конфигурации.

Конфигурация может быть полностью произведена при помощи графического интерфейса на базе ncurses, который позволяет обеспечить удаленное администрирование через SSH или консоль.

Vuurmuur поддерживает формирование трафика, обладает мощными функциями мониторинга, которые позволяют администратору следить за логами, соединениями и трафиком в режиме реального времени.

2. Squid - программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS

3. SAMS - это система для управления доступа пользователей через прокси сервер к ресурсам интернет. Она идеально подходит для использования как в частных фирмах так и в государственных учреждениях. Всю работу по проксированию, пере направлению запросов, кэшированию и авторизации берет на себя proxy-сервер Squid, а SAMS занимается учетом трафика и управлением пользователями

 

Задача: Дать доступ в Интернет локальной сети из 10 компьютеров.

 

Кроме доступа вы можете в будущем поставить запреты на посещения не желательных сайтов и лимиты по трафику.

 

Раз объем всю установку и настройку на шаги:

1. Установка SQUID

2. Установка не достающих пакетов

3. Установка SAMS

4. Настройка SAMS

5. Проверка работы SAMS и SQUID

6. Установка и настройка VuurMuur

7. Установка и настройка BIND для организации кэширующего DNS сервера

8. Настройка прозрачного прокси и проверка доступности Интернета на клиентском компьютере

Приступим!

1. Установка SQUID

Установим Squid:

yum install squid -y

 

2. Установка не достающих пакетов

Установим не достающие пакеты:

yum install php mysql php-mysql mysql-server php-gd php-ldap -y

 

3. Установка SAMS

Скачаем SAMS:

wget http://www.nixdev.net/release/sams/packages/CentOS_5/i386/sams-1.0.5-91.1.i386.rpm

 

Установим его:

rpm -i  sams-1.0.5-91.1.i386.rpm

 

Рекомендуется включить Safe_Mode чтобы разрешить SAMS обращение к системным фукнциям:

/etc/php.ini -> safe_mode = on

 

Убрать пароль samspasswd в /etc/sams.conf (MYSQLPASSWORD - поле должно быть пустым.):

/etc/sams.conf -> MSQLPASSWORD =

/etc/squid/squid.conf -> visible_hostname proxy.server

Включим автозагрузку сервисов:

chkconfig --level 35 squid on

chkconfig --level 35 mysql on

chkconfig --level 35 httpd on

chkconfig --level 35 sams on

 

Запустим необходимые сервисы :

service httpd start

service mysqld start

service squid start

 

4. Настройка SAMS

Зайдем в Веб Интерфейс набрав в браузере:

http://127.0.0.1/sams

 

Теперь SAMS должен создать себе базу. Соглашаемся на все.

Запустим демон SAMS:

service sams start

Введем в браузере http://127.0.0.1/sams

По умолчанию логин  - admin

и

пароль: qwerty

 

В меню SAMS -> SAMS Administration:

1. Укажем авторизацию по IP  (Identifying pattern of the user )

2. Редиректор встроенный в SQUID (Redirector)

3. Сохранять логи SQUID в базе данных (Insert SQUID logs in database)

Создадим новый шаблон шелкнув в правом фрейме

SAMS -> User Tamplates  -> Add Template

Назовем его User_Template

user_access_to_squid - ставим IP (авторизация по IP)

 

Добавим пользователя

и лимит трафика

Осталось реконфигурировать SQUID для работы с новыми настройками:

 

5. Проверка работы SAMS и SQUID

Осталось проверить есть ли Интернет на компьютере с IP адресом 10.168.50.10

Для этого надо присвоить сетевому адаптеру IP адрес 10.168.50.10 с маской 255.255.255.0

А также настроить браузер для работы со SQUID

Главная задача решена, у пользователей появился Интернет.

 

6. Установка и настройка VuurMuur

Осталось решить вопрос безопасности нашего сервера, для этого нам нужно установить и сконфигурировать VuurMuur.

Устанавливаем не дастающие библиотеки:

yum install automake autoconf autoconf gcc gettext gettext-devel libtool which gcc-c++ ncurses-devel -y

wget ftp://ftp.vuurmuur.org/releases/0.7/Vuurmuur-0.7.tar.gz

tar xvfz Vuurmuur-0.7.tar.gz

cd Vuurmuur-0.7

./install.sh --install --defaults

После этой команды надстройка будет уставновлена, чтобы запускать ее как сервис скопируйте скрипт из папка "/usr/share/vuurmuur/scripts/vuurmuur-initd.sh" в папку "/etc/init.d/" командой:

cp /usr/share/vuurmuur/scripts/vuurmuur-initd.sh /etc/init.d/

chkconfig vuurmuur-initd.sh --add

chkconfig vuurmuur-initd.sh on

После подправим права на файл,

chmod 755 /etc/init.d/vuurmuur-initd.sh

Перезагрузим компьютер:

reboot

Также можно установить скрипт Logograte от VuurMuur:

cp /usr/share/vuurmuur/scripts/vuurmuur-logrotate /etc/logrotate.d/

Запустим  конфигуратор:

vuurmuur_conf

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

Интерфейсы

Сетевая карта смотрящая в Интернет

Interfaces -> нажимаем кнопку Ins (новый) -> Вводим имя, WAN - > Далее активируем пробелом, вводим IP адрес (реальный IP, например 192.168.1.2) и обозначение интерфейса в системе (eth0)

Сетевая карта смотрящая в локалку

Interfaces -> нажимаем кнопку Ins (новый) -> Вводим имя, LAN - > Далее активируем пробелом, вводим IP адрес (Локальный IP, например 10.168.50.2) и обозначение интерфейса в системе (eth2)

Зоны

Интернет зона (0.0.0.0/0.0.0.0)

Zones -> inet -> Здесь видим зону Интернет internet 0.0.0.0/0.0.0.0

Нажмем кнопку E (edit), а потом кнопку F6. В открывшемся окне выбираем сетевой карту WAN которую мы добавили в начале.

Локальная зона (10.168.50.0/255.255.255.0)

Zones -> lan -> Здесь мы не видим ни одной зоны, пусто. Добавляем зону локальной сети, например 10.168.50.0/255.255.255.0

После нажимаем кнопку F6 и выбираем сетевую карту которая смотрит в локалку LAN.

Правила

Настроим правила.

Заходим в меню Rules -> Нажимаем клавишу Ins (добавить). Последовательно добавляем следующие правила:

action (действие)

service (cервис)

from (откуда)

to (куда)

accept

http

Firewall

Internet.inet

accept

dns

Firewall

Internet.inet

accept

squid-pro

localNet.lan

Firewall

Сохраним все настройки, зайдя в меню:

Apply Changes -> OK

Запустим службу VuurMuur:

/etc/init.d/vuurmuur-initd.sh start

Все на этом установка завершена...

На этом этапе можно было закончить!

Но я все таки напишу про настройку кеширующего DNS сервера, а также как настроить режим прозрачного прокси.

 

7. Установка и настройка BIND для организации кэширующего DNS сервера

Запускаем Terminal (черный экран) который находится в меню: Applications -> Accessories -> Terminal.

Вводим следующие команды:

yum install bind -y

rndc-confgen

Меняем настройки конфигурационного файла BIND:

gedit /etc/named.conf

Изменяем и вставляем недостающие настройки:

listen-on { 127.0.0.1; 10.168.50.2; }; # IP адрес сетевой карты подключенной в локальную сеть, где должен слушать named

allow-query { 127.0.0.1; 10.168.50.0/24; }; # Адрес хоста/локальной сети кому разрешено обращаться

forwarders{123.123.123.123; 8.8.8.8; 8.8.4.4.;}; #dns адреса провайдера и google dns

Сохраняем файлик.

Теперь проверим работу DNS сервера,  введя команду:

service named startДобавим службу named (он же Bind) в автозагрузку:

chkconfig   --level 35 named on

 

8. Настройка прозрачного прокси и проверка доступности Интернета на клиентском компьютере

Настроим VuurMuur как показано на рисунке:

action (действие)

service (cервис)

from (откуда)

to (куда)

accept

dns

localNet.lan

Firewall

Redirect http LocalNet.Lan firewall(any)
Accept http firewall internet.inet
Accept dns firewall internet.inet

Redirect делаем с порта 80 на порт 3128 (Squid)

Кто хочет ходит без авторизации в Инет, включите режим работы прокси прозрачный :

/etc/squid/squid.conf -> http_port 3128 transparent

На всякий случай перезагрузим шлюз:

reboot

Теперь осталось настроить сетевой адаптер клиентского компьютера:

В браузере убрать галочку -> Использовать прокси сервер.

Проверить Интернет.

_____________

29.11.2011

Выяснилось что проект SAMS остался без разработчика.

http://www.opennet.ru/opennews/art.shtml?num=31851

yvision.kz

Установка прозрачного прокси сервера Squid на CentOS 5.5

Источник: http://metalcandy.ru/how-to-forge-centos/219-transperity-proxy-squid-on-centos?showall=1

Конечно Squid популярный с открытом кодом GPL прокси сервер. Он имеет множество применений, от ускорения веб-сервера путем кеширования на неоднократные просьбы, кеширование запросов доменных имён, а блокирование сетевых ресурсов. Squid в первую очередь предназначена для работы в Linux / Unix-подобных систем. Squid это высокопроизводительный прокси-сервер кеширования для веб-клиентов, поддержка FTP, Gopher, HTTP и объектов данных. В отличие от традиционных программ кеширования, Squid обрабатывает все запросы в одном, не блокирование, I / O инициативе процесса. Squid хранит метаданные и особенно горячие запросы сохраняются в оперативной памяти, кеш DNS поиск, поддерживает неблокирующий DNS поиска, и реализует отрицательное кеширование отказавших запросов. Установим и настроим прозрачный прокси сервера Squid на CentOS / RHEL 5.

1. Установка Squid

Используем терминальную консоль введём команду: yum install squid Loading "installonlyn" plugin Setting up Install Process Setting up repositories Reading repository metadata in from local files Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Package squid.i386 7:2.6.STABLE6-4.el5 set to be updated --> Running transaction check Dependencies Resolved ============================================================================= Package                 Arch       Version          Repository        Size ============================================================================= Installing: squid                   i386       7:2.6.STABLE6-4.el5  updates           1.2 M Transaction Summary ============================================================================= Install      1 Package(s) Update       0 Package(s) Remove       0 Package(s) Total download size: 1.2 M Is this ok [y/N]: y Downloading Packages: Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: squid                        ######################### [1/1] Installed: squid.i386 7:2.6.STABLE6-4.el5 Complete!

2. Настройка Squid

Настройка прозрачного прокси сервера Squid без аутентификации. Запретим скачивать файлы с определенными расширениями, закроем большую часть баннеров и прочую рекламу, запретим доступ к некоторым сайтам. Эти правила буду действительны для основной части пользователей интернета. И будет создана группа с полным доступом ко всем ресурсам сети интернет. Squid конфигурационный файл находится в /etc/squid/squid.conf. Отредактируйте файл: vi /etc/squid/squid.conf # ACCESS CONTROLS # ----------------------------------------------------------------------------- #  TAG: acl acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 acl Safe_ports port 80            # http acl Safe_ports port 21            # ftp acl Safe_ports port 443           # https 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 # TAG: http_access http_access allow manager localhost http_access deny manager http_access deny CONNECT !SSL_ports # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS acl our_networks src 192.168.0.0/24 acl full-access src 192.168.0.100-192.168.0.103 acl full-access src 192.168.0.2 acl bad_url url_regex "/etc/squid/acl/bad_url.domain" acl upload url_regex "/etc/squid/acl/upload.domain" acl filetypes urlpath_regex -i "/etc/squid/acl/filetypes.acl" acl banners url_regex "/etc/squid/acl/ads.acl" http_access deny banners !full-access http_access deny filetypes !full-access http_access deny upload !full-access  http_access deny bad_url !full-access http_access allow our_networks http_access allow full-access #  TAG: http_reply_access icp_access allow all   # NETWORK OPTIONS # ----------------------------------------------------------------------------- # TAG: http_port http_port 3128 transparent # TAG: hierarchy_stoplist hierarchy_stoplist cgi-bin ?   # DISK CACHE OPTIONS # ----------------------------------------------------------------------------- # TAG: cache_replacement_policy cache_dir ufs /var/spool/squid 40000 16 256 # TAG: maximum_object_size         (bytes) maximum_object_size 50 MB # TAG: cache_swap_low     (percent, 0-100) # TAG: cache_swap_high    (percent, 0-100) cache_swap_low 90 cache_swap_high 95   # LOGFILE OPTIONS # ----------------------------------------------------------------------------- #  TAG: access_log access_log /var/log/squid/access.log squid # OPTIONS FOR TUNING THE CACHE # ----------------------------------------------------------------------------- # TAG: cache acl QUERY urlpath_regex cgi-bin \? # TAG: refresh_pattern refresh_pattern ^ftp:             1440     20%      10080 refresh_pattern ^gopher: 1440     0%       1440 refresh_pattern .                 0        20%      4320 # TAG: store_avg_object_size       (kbytes) store_avg_object_size 70 MB # HTTP OPTIONS # ----------------------------------------------------------------------------- #  TAG: broken_vary_encoding acl apache rep_header Server ^Apache cache deny QUERY broken_vary_encoding allow apache Сохраните и закройте файл конфигурации Squid. Создадим директорию и файлы в которых буду хранится правила который буду блокировать сетевые ресурсы. cd /etc/squid/  mkdir acl cd /etc/squid/acl/   vi bad_url.domain vi upload.domain vi filetypes.acl vi ads.acl Запустите Squid прокси сервер: chkconfig squid on /etc/init.d/squid start init_cache_dir /var/spool/squid... Starting squid: .       [  OK  ] Проверка порта 3128: netstat -tulpn | grep 3128 tcp        0      0 0.0.0.0:3128                0.0.0.0:*                   LISTEN      20653/(squid) Откройте TCP порт 3128

3. Настройка Iptables

Проверти брандмауэр iptables на наличие открытых портов и настройте его для работы как шлюз для прокси сервера Squid. Отредактируйте /etc/sysconfig/iptables: vi /etc/sysconfig/iptables Настройка snat и переброс порта 80 через 3128 для прозрачного прокси сервера, добавив в таблицу *nat строки: -A POSTROUTING -o eth0 -j SNAT --to-source IP адрес интернет соединения -A PREROUTING -p tcp -m tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to-port 3128 Открыть порт 3128 добавив в таблицу *filter строки:  -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3128 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 3128 -j ACCEPT Перезапустите iptables: /etc/init.d/iptables restart Flushing firewall rules:                                   [  OK  ] Setting chains to policy ACCEPT: filter                    [  OK  ] Unloading iptables modules:                                [  OK  ] Applying iptables firewall rules:                          [  OK  ] Loading additional iptables modules: ip_conntrack_netbios_n[  OK  ]

4. Проверка работы Squid

Сервер установлен и запущен протестируем его на клиентской машине с ip адресом к примеру 192.168.0.37 и откроем к примеру www.yandex.ru и www.vkontakte.ru

Не увидим баннеры и яндекс директ, ну и яндекс фотки т.к. заблокирован под домен foto.yandex.ru

Не увидим интернет ресурс vkontakte.ru т.к. он тоже заблокирован.

Примеры файлов

/adv/.*\.gif$ /[Aa]ds/.*\.gif$ /[Aa]d[Pp]ix/ /[Aa]d[Ss]erver /[Aa][Dd]/.*\.[GgJj][IiPp][FfGg]$ /[Bb]annerads/ /adbanner.*\.[GgJj][IiPp][FfGg]$ /images/ad/ /reklame/

hroost-sysadmin.blogspot.com

Настройка шлюза для локальной сети на CentOS 7

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

Введение

В нашем распоряжении будет следующий сервер для настройки шлюза:

# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core)

Использовался образ minimal для установки CentOS 7. Если вы еще не выполнили установку, рекомендую воспользоваться моим материалом на эту тему. На сервере две сетевые карты eth0 и eth2:

  • eth0 подключена к интернету
  • eth2 подключена к локальной сети вместе с компьютерами

В данной статье мы выполним необходимые предварительные настройки на сервере, включим nat, настроим firewall и установим средство мониторинга сетевой активности.

Если у вас недостаточно опыта и вы не чувствуете в себе сил разобраться с настройкой шлюза самому с помощью консоли сервера — попробуйте дистрибутив на основе centos для организации шлюза и прокси сервера в локальной сети — clearos. С его помощью можно через браузер настроить весь необходимый функционал. В отдельной статье я подробно рассказал о настройке clearos.

Предварительная настройка сервера

Любую настройку сервера я рекомендую начинать с обновления:

# yum -y update

После этого я устанавливаю mc, так как привык к нему и постоянно пользуюсь:

# yum -y install mc

Дальше отключаем selinux. Находим файл /etc/sysconfig/selinux и редактируем его:

# mcedit /etc/sysconfig/selinux

Приводим строку с соответствующим параметром к следующему виду:

SELINUX=disabled

Чтобы применить изменения, перезагружаем сервер:

# reboot

Более подробно о базовой настройке сервера CentOS 7 читайте отдельно. Мы же двигаемся дальше.

Теперь настроим сеть. Я очень подробно рассмотрел вопрос настройки сети в CentOS 7 в своем отдельном материале. Рекомендую с ним ознакомиться. Здесь же я кратко выполню необходимые команды, без пояснений.

Сначала удаляем NetworkManager. Он нам не понадобится, выполним все настройки вручную. Иногда он может вызывать непонятные ошибки, я предпочитаю им не пользоваться:

# systemctl stop NetworkManager.service # systemctl disable NetworkManager.service

Теперь включаем классическую службу сети в CentOS 7:

# systemctl enable network.service

Настраиваем сетевые интерфейсы:

# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0 HWADDR=00:15:5D:01:0F:06 TYPE="Ethernet" BOOTPROTO="dhcp" DEFROUTE="yes" PEERDNS="yes" PEERROUTES="yes" NAME="eth0" UUID="4e65030c-da90-4fb8-bde4-028424fe3710" ONBOOT="yes" # mcedit /etc/sysconfig/network-scripts/ifcfg-eth2 DEVICE=eth2 HWADDR=00:15:5d:01:0f:12 TYPE=Ethernet ONBOOT=yes IPADDR=192.168.10.1 NETMASK=255.255.255.0

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

# systemctl restart network.service

Смотрим, что получилось:

# ip a

Вы настраивайте сеть в зависимости от своих условий. Если внешний адаптер получает настройки не по dhcp, как у меня, а в статике, то не забудьте настроить шлюз по-умолчанию и dns сервер. Как это сделать написано в моей статье о сетевых параметрах, ссылку на которую я приводил выше.

Прежде чем двигаться дальше, убедитесь, что вы все верно настроили — на сервере работает интернет, компьютеры из локальной сети пингуют сервер по адресу на eth2.

Включаем маршрутизацию, firewall и nat

Чтобы сервер мог маршрутизировать пакеты между сетевыми адаптерами, необходимо выполнить следующую настройку. Находим файл /etc/sysctl.conf и вставляем туда строку:

# mcedit /etc/sysctl.conf net.ipv4.ip_forward = 1

Чтобы заработала настройка, выполняем команду:

# sysctl -p

Теперь приступаем к самому главному — настройке фаерволла. Опять же отсылаю вас к своему материалу, где я очень подробно рассмотрел вопрос настройки iptables в CentOS 7. Там же приведен готовый скрипт для iptables. Так что выполняем все необходимые действия без пояснений.

Отключаем firewalld:

# systemctl stop firewalld # systemctl disable firewalld

Устанавливаем службы iptables:

# yum -y install iptables-services

Скачиваем скрипт с правилами iptables.sh. Данные правила включают NAT, закрывают доступ к серверу снаружи, разрешают пинги, разрешают всем пользователям локальной сети доступ в интернет. Дополнительный функционал отключен. В скрипте подробно описаны все правила. Вам необходимо только заменить в начале переменные на свои. В моем случае это будет выглядеть так:

# Внешний интерфейс export WAN=eth0 export WAN_IP=192.168.1.25 # Локальная сеть export LAN1=eth2 export LAN1_IP_RANGE=192.168.10.1/24

Помещаем отредактированный скрипт в /etc/iptables.sh и делаем его исполняемым:

# chmod 0740 /etc/iptables.sh

Запускаем iptables:

# systemctl start iptables.service

Добавляем их в автозагрузку:

# systemctl enable iptables.service

Выполняем скрипт с правилами:

# /etc/iptables.sh

Проверяем установленные правила:

# iptables -L -v -n

Если у вас то же самое, значит вы все сделали правильно.

По сути наш шлюз уже готов и может обслуживать клиентов. Но не работает одна важна служба, без которой нормальной работы с интернетом не получится. Нам нужно настроить кэширущий dns сервер для клиентов локальной сети. Можно пойти по простому и очень простому пути. Простой путь это выполнить простейшую настройку dns сервера bind. Как это сделать у меня опять же подробно написано отдельно — настройка Bind 9 в CentOS 7. Рекомендую ознакомиться, там рассмотрены интересные нюансы настройки.

Очень простой путь это установить dnsmasq, который помимо dns сервера включает в себя еще и dhcp сервер, который нам может пригодиться.

Установка и настройка dnsmasq в CentOS 7

С большой долей вероятности dnsmasq у вас уже установлен. Проверить это можно следующей командой:

# rpm -qa | grep dnsmasq dnsmasq-2.66-14.el7_1.x86_64

Если вывод такой же, значит пакет уже стоит. Если нет, то устанавливаем dnsmasq командой:

# yum -y install dnsmasq

Редактируем файл конфигурации /etc/dnsmasq.conf и приводим его к очень простому виду:

# mcedit /etc/dnsmasq.conf domain-needed bogus-priv interface=eth2 dhcp-range=192.168.10.50,192.168.10.150,24h

Запускаем dnsmasq:

# systemctl start dnsmasq

Либо перезапускаем, если он был у вас запущен:

# systemctl restart dnsmasq

Добавляем dnsmasq в автозагрузку:

# systemctl enable dnsmasq

Я редактировал конфиг, когда у меня уже был установлен и запущен dnsmasq. И он то ли завис, то ли просто затупил, но я не мог его перезагрузить или остановить с помощью systemctl. Пришлось перезагрузить сервер. После этого все нормально заработало. Клиент на windows получил сетевые настройки. Информация об этом появилась в логе /var/log/messages. Я проверил на клиенте интернет, все было в порядке, он работал.

На этом настройка завершена, шлюзом под CentOS 7 можно пользоваться.

Анализ сетевой активности на шлюзе в linux

В данной конфигурации шлюз может успешно функционировать. Но иногда хочется посмотреть, а что вообще на нем происходит. Например, кто-то занимает весь канал, интернет тормозит, а мы как слепые котята сидим и не видим ничего. Нужно какое-то средство для просмотра загрузки сети на шлюзе. И такое средство есть — программа iftop.

Она отсутствует в стандартном репозитории CentOS 7. Для ее установки необходимо подключить репозиторий epel:

# yum -y install epel-release

Устанавливаем iftop на CentOS 7:

# yum -y install iftop

Теперь мы можем смотреть загрузку сети на шлюзе в режиме реального времени. Чтобы увидеть сетевую активность, достаточно запустить iftop:

# iftop

По-умолчанию она слушает интерфейс eth0. Это внешний интерфейс шлюза, на нем все подключения будут отображены от имени самого шлюза и определить, кто же в сети занимает канал мы не сможем. Чтобы это увидеть, необходимо запустить просмотр сетевой активности на локальном интерфейсе. Сделать это не сложно, достаточно запустить iftop с параметром:

# iftop -i eth2 -P

Теперь уже гораздо интереснее. Я еще добавил параметр -P, который отображает порты, по которым проходят соединения. Посмотрим, кто больше всех загружает канал интернета:

В моем случае это пользователь с ip 192.168.10.98, на котором я запустил проверку скорости интернета с серверов Яндекса.

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

Заключение

С помощью бесплатного дистрибутива Linux мы смогли за считанные минуты настроить шлюз для организации доступа в интернет компьютеров из локальной сети. У меня ушло минут 10 на настройку шлюза по этой инструкции. Если вы делаете это первый раз, то конечно у вас уйдет гораздо больше времени. Нужно будет разобраться в нюансах, к тому же я дал много ссылок на дополнительный материал.

Давайте разберемся в том, что мы сделали:

  1. Выполнили предварительную настройку сервера, подготовили его к работе.
  2. Включили маршрутизацию.
  3. Настроили firewall.
  4. Включили NAT.
  5. Установили и настроили dnsmasq для организации служб dns и dhcp.
  6. Проанализировали сетевую активность шлюза, узнали кто загружает канал интернета.

Это минимально необходимый функционал для организации работы шлюза на CentOS 7. Следующим этапом может быть настройка прокси сервера, шейпера траффика, настройка 2-х и более провайдеров и много другое. Что-то из этого я рассмотрю в своих будущих статьях.

Помогла статья? Есть возможность отблагодарить автора

Дополнительные материалы по CentOS

Настройки системы Настройка программных комплексов Настройка отдельных программ Разное
Рекомендую полезные материалы по CentOS:
  • Установка
  • Базовая настройка
  • Настройка времени
  • Настройка сети
  • Настройка репозиториев
  • Настройка iptables
Установка CentOS 7 в конфигурации minimal или netinstall с загрузочной флешки или по сети на диск или raid раздел. Базовая настройка CentOS 7 для работы с любым функционалом. Приведены практические советы по улучшению безопасности и удобства администрирования. Как установить точное время на сервере CentOS, настроить часовой пояс, синхронизировать время с помощью ntpdate и ntpd и другое. Подробное описание настройки сети в CentOS 7 - задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др. Рассмотрены основные моменты настройки iptables в Centos 7 - установка, добавление правил, проброс портов, nat, логирование и д.р.
 
  • Прокси сервер
  • Шлюз
  • Asterisk
  • Asterisk+Freepbx
  • Сервер VPN
  • Web сервер Apache
  • Web сервер Nginx
  • Почтовый сервер
Подробное описание настройки прокси сервера на базе CentOS 7 со связкой squid+AD+sams2, реализован запрет доступа по url и группам пользователей. Описание установки и настройки asterisk - популярной современной sip атс. Описан расширенный функционал, покрывающий большинство потребностей стандартного офиса в современной телефонии. Установка и настройка высокопроизводительного web сервера на базе nginx и php fpm. В качестве кэша используется APC.
 
  • Zabbix
  • Phpmyadmin
  • Webmin
  • Ruby
  • Обновление php
  • Vsftpd
  • Bind
  • Unison
  • Observium
  • Syslog-NG
Подробное описание установки или обновления php 7 на CentOS 7. Рассмотрен вариант отката обновления и возврата на php 5.6 или 5.4. Настройка DNS сервера BIND (Named) в CentOS 7. Рассмотрены наиболее популярные конфигурации, в том числе подробное логирование. Настройка сервера для централизованного сбора логов с удаленных устройств и серверов с помощью программы syslog-ng.
  • Настройка ssl в Apache
  • Бэкап с помощью rsync

serveradmin.ru

Установка squid+sams+ntlm на centos 6.4 по шагам / Хабр

Добрый день господа, думаю, я не открою Америку рассказывая про проект SAMS (Squid Accaunt Management System), статьи о нем достаточно распространены, в том числе и на Хабрахабре. Однако хотя я не расскажу вам много нового, но надеюсь, расскажу немного полезного. Первая причина написания статьи — помочь собратьям эникейщикам (админам небольших организаций) вроде меня, получить еще одно удобное, а самое главное бесплатное средство администрирования. Вторая причина в том, что попытавшись установить данное средство у себя, по различным HowTo я обнаружил, что они либо не полные, либо устарели и человеку знакомому с линуксом поверхностно (как я) получить что либо более менее работоспособное по ним невозможно, поэтому получив результат, решил поделиться с новичками.
Задачи
Итак, данное пошаговое HowTo ставит свой целью привести вас к собственному прозрачному прокси-серверу на CentOS 6.4 i386 который позволяет аутентифицировать пользователей через Active Directory. При этом данный сервер будет иметь удобный веб-интерфейс, и самое главное, он бесплатен (кого я этим хочу удивить в топике никсов?).
Немного о SAMS
Лучше всего, конечно же, прочитать официальный ресурс sams.perm.ru. Для меня SAMS это удобная считалка трафика и лог серфинга пользователей с красивым веб-интерфейсом. Но все же о плюсах и минусах (а они, разумеется, есть) SAMS и стоит ли его использовать судить только вам.
Сложности при установке
Основная проблема в установке SAMS то, что стабильная первая версия (а в настоящий момент энтузиасты продолжают разработку SAMS2, надеюсь, у них все получится) давненько не обновлялась поэтому требует установки старых библиотек не из стандартных репозиториев. “Какая глупость!” — скажете вы и будете не совсем правы, ибо как я уже говорил статья, прежде всего, новичкам совсем не знакомым с линуксом. Так же одной из проблем стало то, что HowTo по установке на CentOS(выбор ОС не тема данной статьи, так сложилось) я не нашел.
Подготовка к установке
Разумеется прежде всего необходимо скачать образ CentOS 6.4 (последний на данный момент) по ссылке isoredirect.centos.org/centos/6/isos/i386. Далее все стандартно записываем диск и производим установку в минимальной конфигурации на наш будущий шлюз. В процессе установки необходимо сделать следующее:
  1. Ввести имя нашего сервера.
  2. Настроить сеть (удобнее это сделать здесь в графическом интерфейсе, чем потом править файлы конфигурации, хотя это дело привычки).
  3. Установить параметры времени.
  4. Установить пароль суперпользователя root.
Настройка ОС
После перезагрузки заходим в систему под суперпользователем. Дальнейшие действия я произвожу от его имени.
  1. Если забыли или неправильно настроили сеть, то правим конфигурацию сетевых интерфейсов ifcfg-eth0, ifcfg-eth2 (у нас же шлюз так что интерфейсов, очевидно, не менее двух) vi /etc/sysconfig/network-scripts/ifcfg-eth0 Пример конфигурационного файла:DEVICE=«eth0» BOOTPROTO=none NM_CONTROLLED=«yes» ONBOOT=«yes» TYPE=«Ethernet» UUID=«57fb7ee8-e3da-4719-b5ec-d27e16fe0677» HWADDR=6C:62:6D:B7:F0:A3 IPADDR=192.168.0.86 PREFIX=24 GATEWAY=192.168.0.3 DNS1=192.168.0.2 DNS2=192.168.0.3 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME=«System eth0»
  2. Установка программ первой необходимости:yum install mc nano wget ntp -y
  3. Настройка синхронизации времени. В качестве серверов времени указываем контроллеры домена:ntpdate ntpserver vi /etc/ntp.conf Пример конфигурационного файла:server 192.168.0.1
  4. останавливаем iptables:service iptables stop chkconfig iptables off
  5. Обновляем систему:yum makecache && yum -y update
  6. Отключаем selinux. В файле /etc/sysconfig/selinux поставить vi /etc/sysconfig/selinux SELINUX=disabled
  7. Перезагрузить сервер командой:shutdown -r now
Установка требуемых библиотек
  1. Теперь добавим репозиторий CentOS 5:rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm
  2. И установим оттуда libmysqlclient15:yum install libmysqlclient15 --enablerepo=webtatic
  3. В некоторых случаях требуется для каких-либо старых скриптов понижение версии PHP 5.3.3 до версии 5.2.17. Для проведения установки наиболее оптимально воспользоваться репозиторием Atomic. Установка производилась на свежепоставленный сервер, ниже приведен порядок действий.
  4. Подключите репозиторий Atomicwget http://www.atomicorp.com/installers/atomic sh atomic
  5. И принять лицензию скрипта установки (нажать enter)
  6. Далее следует отключить в подключенных стандартных репозиториях системы возможность установки пакетов содержащих файлы PHP. Воспользуйтесь редактором и отредактируйте файл /etc/yum.repos.d/CentOS-Base.repo внеся изменения (добавив exclude=php*) в указанные секцииvi /etc/yum.repos.d/CentOS-Base.repo [base] exclude=php* [updates] exclude=php*
  7. После чего сохраните файл (:wq) и удалите пакеты установленного PHP 5.3.3 выполнив команду в shellyum remove php*
  8. После того как будет удален PHP (также по зависимостям удалится phpmyadmin и squirrelmail) необходимо будет провести установку нужной версии и сопутствующих расширений командамиyum install php-5.2.17 php-mcrypt-5.2.17 php-gd-5.2.17 php-mbstring-5.2.17 php-pdo-5.2.17 php-mysql-5.2.17
  9. Убедитесь, что все необходимые расширения установлены и нет ошибокphp -m
  10. Затем установите обратно PhpMyAdmin и squirrelmailyum install phpmyadmin yum install squirrelmail
  11. Верните файлы конфигурации на местоmv /etc/phpMyAdmin/config.inc.php.rpmsave /etc/phpMyAdmin/config.inc.php mv /etc/squirrelmail/config.php.rpmsave /etc/squirrelmail/config.php mv /etc/httpd/conf.d/squirrelmail.conf.rpmsave /etc/httpd/conf.d/squirrelmail.conf
  12. После чего следует отключить возможность автоматической установки расширений PHP из репозитория atomic для избежания незапланнированной смены версии PHP при установке какого-либо программного обеспечения — отредактируйте файл /etc/yum.repos.d/atomic.repo также как редактировали файлы других репозиториевvi /etc/yum.repos.d/atomic.repo [atomic] exclude=php*
  13. И в завершение следует перезапустить веб-сервер Apache командой/etc/init.d/httpd restart Если потребуется установить какие-либо расширения PHP дополнительно наиболее простой способ ставить из через rpm скачав сhttp://www2.atomicorp.com/channels/atomic/centos/6/i386/RPMS/
Установка и настройка SAMS
  1. Установка ПО:yum install pcre-devel squid mysql-server mysql-devel gd-devel gcc make samba-server samba-client samba bind-utils –y
  2. Добавляем необходимое в автозагрузку:chkconfig mysqld on && chkconfig httpd on && chkconfig squid on
  3. Cоздаем темповую директорию для сборки SAMS:mkdir -p /usr/src/sams cd /usr/src/sams
  4. Качаем STABLE версию SAMS (Документация по SAMS):wget http://nixdev.net/release/sams/sams-1.0.5.tar.bz2 если не работает ссылка, то можно попробовать wget http://sams.perm.ru/index.php\?option=com_doqment\&task=files.download\&cid=12 Распаковываем архив и устанавливаемtar xf sams-1.0.5.tar.bz2 cd sams-1.0.5 ./configure && make && make install chkconfig sams on cd / && rm -fr /usr/src/sams Альтернативный способ установки:Качаем STABLE версию SAMS (Документация по SAMS), собранный пакет для CentOS (сам добавляет веб-директорию для apache)wget http://www.nixdev.net/release/sams/packages/CentOS_5/i386/sams-1.0.5-91.1.i386.rpm yum localinstall –nogpgcheck sams-1.0.5-91.1.i386.rpm chkconfig sams on cd / && rm -fr /usr/src/sams
  5. Далее настраиваем Apache, добавляем в /etc/httpd/conf.d/sams.confvi /etc/httpd/conf.d/sams.conf Alias /sams /usr/local/share/sams <Directory /usr/local/share/sams/> Order Allow,Deny Allow from all Deny from nonevi /etc/httpd/conf/httpd.conf раскомментируем и указываем для переменной ServerName указываем имя нашего шлюза ServerName Proxy-???? Если неудобно использовать редактор vi, то можно воспользоваться редактором nano или воспользоваться фаловым менеджером Midnight Commander, команда mc (Редактирование файла F4). Чтобы выйти из программы vi набрать :w q или просто :x! Если надо выйти без сохранения, набрать :q!(nano /etc/httpd/conf.d/sams.conf)
  6. После того, как был добавлен sams.conf необходимо перезапустить Apache:service httpd restart
  7. Следом редактируем /etc/sams.conf, в котором меняем всего две записи:vi /etc/sams.conf MYSQLPASSWORD= «ПАРОЛЬ» #(Для пользователя SAMS) MYSQLVERSION=5.0 #(Мы используем 5 версию MySQL сервера, при значении 4.0 возможны проблемы) Так же закомментируйте все, что связано с squidguard, ldap и rejik (если не планируете использовать)
  8. Далее на очереди MySQL, запускаем сервер и делаем все то, что предложит скрипт первого запуска, то есть задаем пароль root и после инсталляционную настройку сервера:/usr/bin/mysql_secure_installation service mysqld start
  9. Создаем MySQL пользователя sams и даем ему права на необходимые таблицы:mysql -u root -p Ввести «ПАРОЛЬ» для root в mysqlGRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY «ПАРОЛЬ» WITH GRANT OPTION; GRANT ALL ON squidlog.* TO sams@localhost IDENTIFIED BY «ПАРОЛЬ» WITH GRANT OPTION; flush privileges; quit
  10. Чтобы скрипты создания баз выполнились на mysql 5 необходимо их отредактировать#Заменяем везде TYPE=MyISAM на ENGINE=MyISAM /usr/local/share/sams/data/sams_db.sql /usr/local/share/sams/data/squid_db.sql
  11. Вливаем дампы SAMS в базу:mysql -u root -p < /usr/local/share/sams/data/sams_db.sql mysql -u root -p < /usr/local/share/sams/data/squid_db.sql
  12. Настала очередь Squid, собираем squid swap, и уже после запускаем прокси-сервер.vi /etc/squid/squid.conf найти и отредактировать следующие строкиvisible_hostname Proxy-???? при отсутствии добавить строкиredirect_program /usr/local/bin/samsredir redirect_children 5 auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp #NTLM аутентификатор auth_param ntlm children 150 #(Количество одновременно сидящих в инете пользователей!) auth_param ntlm keep_alive on auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic auth_param basic children 20 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 8 hours Перезапускаемся и стартуем squidsquid –z reboot service squid start
  13. C версии 1.0 SAMS работает в safe_mode php. Настриваем php для работы в режиме safe modevi /etc/php.ini содержание файлаsafe_mode = On safe_mode_exec_dir = "/usr/local/share/sams/bin" disable_functions = # если он не пустой, убираем из него запрет вызова функций phpinfo system shell_exec exec
  14. Ну и в самом конце запускаем SAMS:service sams start
Ввод шлюза в домен
  1. Редактируем файл (добавляем список контроллеров своего домена)vi /etc/samba/lmhosts «IP_адрес_DC1» «Сетевое_имя_DC1» #(например: 192.168.100.8 serverDC01) «IP_адрес_DC2» «Сетевое_имя_DC2»
  2. Редактируем файл конфигурации самбаvi /etc/samba/smb.conf [global] workgroup = «Имя_Домена» #(например: serverDC01) realm = «FQDN_домена» #(например: serverDC01.firma.ru) server string = Samba Server Version %v

    netbios name = Proxy-???? #имя шлюза

    interfaces = lo eth0 «IP_адрес_интерфейса + маска» #(например: 192.168.10.1/24) hosts allow = 127. 192.168.

    winbind separator = \\ winbind use default domain = yes winbind uid = 10000-20000 winbind gid = 10000-20000 winbind enum users = yes winbind enum groups = yes template homedir = /home/winnt/%D/%U template shell = /bin/bash max log size = 50 security = domain password server = «IP_адрес_DC1» «IP_адрес_DC1» #(например:192.168.100.8 192.168.100.10 обязательно через пробел) encrypt passwords = yes

  3. Перестартовать сервис и ввести в доменservice smb restart net join –w «Имя_Домена» –S «Сетевое_имя_DC» –I «IP_адрес_DC» –U «Имя_пользователя_с_ правами_введения_в_домен»
  4. Перезапустить службы и проверить отклик от доменаservice smb restart
  5. service winbind startwbinfo –t wbinfo –p wbinfo -u Если все в порядке, добавляем в автозагрузкуchkconfig smb on && chkconfig winbind on
  6. Добавляем примерно в середине правил разрешающие правила для iptables firewall в /etc/sysconfig/iptables и перезапустить его:vi /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 3128 -j ACCEPT Альтернатива: -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT #правило для 80 порта на http -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT #правило для 3128 порта проксиservice iptables restart Если, по каким-то причинам, необходимо отключить firewall, то надо набрать:chkconfig iptables off chkconfig ip6tables off
Настройка SAMS
  1. В браузере зайти на страницу Proxy-????/sams (либо по ip-адресу)
  2. Логин: admin Пароль: qwerty Нужно изменить пароль.
  3. Далее я решил не утомлять уважаемых читателей многочисленными картинками и очевидными подробностями окончательной настройки через web-интерфейс, тем более что эту работу за меня уже сделали (в том числе тут habrahabr.ru/post/130335).
Заключение
Осознавая, что в тексте много букоф и что нельзя объять необъятное, заканчиваю данную статью. Надеюсь, что данное руководство будет вам полезным.Мои благодарности

Большое спасибо Лихоманову Антону, Коростылеву Александру, Порошину Константину и Клюшенкову Ивану чьими руководствами я пользовался.

habr.com

Установка и настройка squid-прокси в os centos [Colobridge WIKI]

Задача:

Установка и настройка squid-прокси в OS CentOS

Решение:

Ставим squid:

yum install -y squid Запускаем: /etc/init.d/squid start Устанавливаем в автозагрузку: /sbin/chkconfig --levels 345 squid on Проверяем: ps -ef | grep squid root 8883 1 0 Jul27 ? 00:00:00 squid -f /etc/squid/squid.conf chkconfig --list | grep squid squid 0:off 1:off 2:off 3:on 4:on 5:on 6:off Настраиваем IPTABLES vim /etc/sysconfig/iptables ... -A INPUT -m tcp -p tcp --source 1.1.1.1/32 --dport 3128 -j ACCEPT ... Где 1.1.1.1 - Ваш публичный IP Перезагружаем IPTABLES: /etc/init.d/iptables restart По умолчанию SQUID работает на порту 3128

Конифигурируем Squid

В нашем случае нет списков доступа, нет HTTPS так что вся настройка сводится к правка одного единственного конфига:

vim /etc/squid/squid.conf acl my_network src 1.2.2.33/32 ::1 < <--- тут my_network это название условно для Вашей сети сети acl allon_network src 77.72.128.144/32 ::1 <<--- еще одна доверенная сеть #rulles to be anonymouse via off forwarded_for off follow_x_forwarded_for deny all #another visible_hostname pidaras.com httpd_suppress_version_string on request_header_access Allow allow all <<---Все эти правила важны request_header_access Authorization allow all request_header_access WWW-Authenticate allow all request_header_access Proxy-Authorization allow all request_header_access Proxy-Authenticate allow all request_header_access Cache-Control allow all request_header_access Content-Encoding allow all request_header_access Content-Length allow all request_header_access Content-Type allow all request_header_access Date allow all request_header_access Expires allow all request_header_access Host allow all request_header_access If-Modified-Since allow all request_header_access Last-Modified allow all request_header_access Location allow all request_header_access Pragma allow all request_header_access Accept allow all request_header_access Accept-Charset allow all request_header_access Accept-Encoding allow all request_header_access Accept-Language allow all request_header_access Content-Language allow all request_header_access Mime-Version allow all request_header_access Retry-After allow all request_header_access Title allow all request_header_access Connection allow all request_header_access Proxy-Connection allow all request_header_access All deny all acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl localnet src fc00::/7 # RFC 4193 local private network range acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https 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 access_log none all <<=== Отключение логов cache_store_log none <<=== Отключение логов cache deny all <<=== Никакого кеша maximum_object_size 0 KB <<=== Отключение кеша minimum_object_size 0 KB <<=== Отключение кеша http_access allow my_network <<=== SQUID доступен только для доверенных сетей http_access allow allon_network <<=== SQUID доступен только для доверенных сетей #http_access deny manager http_port 3128 <<=== это порт hierarchy_stoplist cgi-bin ? #cache_dir ufs /var/spool/squid 100 16 256 <<=== Отключение кеша 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

Можете точно так настроить конфиг вашего проксика и примите изменения:

squid -k reconfigure Теперь, нужно научить браузер ходить в Интернет только через прокси машину:

Firefox → Options → Advanced → Network → Settings

Смотрите также:

Актуальность: 2015/12/22 13:52

wiki.colobridge.net