Centos 7 настройка прокси

Обновлено: 02.07.2024

В этом руководстве объясняется, как настроить Squid на CentOS 7 и настроить веб-браузеры Firefox и Google Chrome для использования прокси.

Установка Squid на CentOS

Пакет Squid включен в репозитории CentOS 7 по умолчанию. Чтобы установить его, выполните следующую команду от имени пользователя sudo :

После завершения установки запустите и включите службу Squid:

Чтобы убедиться, что установка прошла успешно, введите следующую команду, которая распечатает статус службы:

Настройка Squid

Squid можно настроить, отредактировав файл /etc/squid/squid.conf . Дополнительные файлы с параметрами конфигурации можно включить с помощью директивы «include».

Прежде чем вносить какие-либо изменения, сделайте резервную копию исходного файла конфигурации с помощью команды cp :

Чтобы отредактировать файл, откройте его в текстовом редакторе :

По умолчанию Squid настроен на прослушивание порта 3128 на всех сетевых интерфейсах сервера.

Запуск Squid на всех интерфейсах и на порту по умолчанию должен подойти большинству пользователей.

Вы можете контролировать доступ к серверу Squid, используя списки контроля доступа (ACL).

По умолчанию Squid разрешает доступ только с localhost и localnet.

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

Вместо добавления IP-адресов в основной файл конфигурации мы создадим новый выделенный файл, который будет содержать IP-адреса:

Каждый раз, когда вы вносите изменения в файл конфигурации, вам необходимо перезапустить службу Squid, чтобы изменения вступили в силу:

Squid аутентификация

Мы воспользуемся openssl для генерации паролей и добавим пару username:password в файл /etc/squid/htpasswd с помощью команды tee как показано ниже:

Например, чтобы создать пользователя с именем «mike» и паролем « Pz$lPk76 », вы должны запустить:

Откройте основную конфигурацию и добавьте следующее:

С первыми тремя выделенными строками мы создаем новый ACL с именем authenticated . Последняя выделенная строка разрешает доступ аутентифицированным пользователям.

Перезапустите сервис Squid:

Настройка межсетевого экрана

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

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

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

Fire Fox

Приведенные ниже шаги одинаковы для Windows, macOS и Linux.

В верхнем правом углу щелкните значок гамбургера ☰ чтобы открыть меню Firefox:

Щелкните ссылку ⚙ Preferences .

Прокрутите вниз до раздела « Network Settings » и нажмите кнопку « Settings. .

Откроется новое окно.

Чтобы вернуться к настройкам по умолчанию, перейдите в « Network Settings , выберите переключатель « Use system proxy settings » и сохраните настройки.

Есть также несколько плагинов, которые могут помочь вам настроить параметры прокси-сервера Firefox, например, FoxyProxy .

Гугл Хром

Google Chrome использует системные настройки прокси по умолчанию. Вместо изменения настроек прокси-сервера операционной системы вы можете использовать надстройку, например SwitchyOmega, или запустить браузер Chrome из командной строки.

Чтобы запустить Chrome с новым профилем и подключиться к серверу Squid, используйте следующую команду:

Linux:

macOS:

Windows:

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

Выводы

Вы узнали, как установить squid на CentOS 7 и настроить свой браузер для его использования.

Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.

Подготовка сервера

Настраиваем правило для брандмауэра:

firewall-cmd --permanent --add-port=3128/tcp

firewall-cmd --permanent --add-port=1080/tcp

* 3128 — порт по умолчанию, по которому работает 3proxy в режиме прокси; 1080 — порт по умолчанию для SOCKS.

Установка

Сначала устанавливаем расширенный репозиторий epel:

yum install epel-release

После устанавливаем сам 3proxy:

yum install 3proxy

Для автоматического запуска разрешаем сервис:

systemctl enable 3proxy

И запускаем его:

systemctl start 3proxy

Базовая настройка

Открываем конфигурационный файл 3proxy:

1. Прописываем серверы NS:

nserver 77.88.8.8
nserver 8.8.8.8

* в данном примере, мы используем публичные DNS Яндекса (77.88.8.8) и Google (8.8.8.8). Можно также использовать свои собственные или от провайдера.

2. Задаем IP-адрес внешнего интерфейса:

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

3. Указываем адрес внутреннего интерфейса:

* в случае использования одного интерфейса, внутренний и внешний IP-адреса будут совпадать.

systemctl restart 3proxy

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

Настройка аутентификации

По умолчанию, 3proxy настроен на использование логина 3APA3A и пароля 3apa3a. Для редактирования настроек открываем конфигурационный файл:

Находим опцию users и добавляем пользователей:

* в данном примере мы закомментировали пользователей по умолчанию и добавили 2-х новых: dmosk1 с открытым паролем password и dmosk2 с паролем dmosk2 в виде md5 и солью UsbY5l (Для получения хэша пароля можно воспользоваться командой openssl passwd -1 -salt UsbY5l, где в качестве соли можно использовать любую комбинацию).
* обратите внимание, при использовании знака $, строчка пишется в кавычках.

* возможные типы паролей:

  • CL — текстовый пароль
  • CR — зашифрованный пароль (md5)
  • NT — пароль в формате NT.

Чтобы отключить запрос логина, необходимо задать значение для опции auth в none. Однако, опций auth в конфигурационном файле несколько. Нужно найти ту, что отвечает за авторизацию службы proxy:

* в данном примере, мы поменяли auth на none, чтобы отключить запрос пароля.

* возможные варианты для auth:

  • none — без авторизации.
  • iponly — авторизация по IP-адресу клиента.
  • nbname — по Netbios имени.
  • strong — по логину и паролю.

Также можно использовать двойную авторизацию, например:

auth nbname strong

После внесения изменений, перезапускаем службу:

systemctl restart 3proxy

SOCKS

Для прозрачного прохождения пакетов через прокси можно настроить SOCKS5. В конфигурационном файле добавляем:

* запускаем socks на порту 8083.

socks -p8083 -i192.168.1.23 -e111.111.111.111

* запускаем socks на порту 8083; внутренний интерфейс — 192.168.1.23, внешний — 111.111.111.111.

* в данном примере мы настроили 3proxy, который не будет требовать аутентификации, и будет работать в режиме прокси на порту 3128 (порт прокси по умолчанию) и по SOCKS на порту 1080 (порт socks по умолчанию).

Дополнительные настройки

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

Настройка портов и прокси-интерфейсов

При необходимости, можно настроить 3proxy на использование разных интерфейсов на разных портах:

proxy -n -a -p3128 -i192.168.0.23 -e222.222.222.222
proxy -n -a -p8080 -i192.168.1.23 -e111.111.111.111

* 3proxy будет слушать на порту 3128 с внутреннего интерфейса 192.168.0.23 и направлять пакеты в сеть Интернет через внешний интерфейс 222.222.222.222, а также, на порту 8080 для внутреннего и внешнего интерфейсов 192.168.1.23 и 111.111.111.111 соответственно.
* не забываем также настраивать брандмауэр (вначале инструкции мы открывали только 3128 порт).

systemctl restart 3proxy

Ограничение пропускной способности

При необходимости, можно ограничить скорость.

bandlimin 1000000 user1,user3
bandlimin 5000000 user2,user4

* в данном примере пользователям user1 и user3 установлено ограничение в 1000000 бит/сек (1 мбит); для user2 и user4 — 5 мбит/сек.

systemctl restart 3proxy

Ограничения доступа

Можно ограничить доступ и разрешить только для определенных портов, сетей и пользователей.

allow <userlist> <sourcelist> <targetlist> <targetportlist> <commandlist> <weekdays> <timeperiodslist>
deny <userlist> <sourcelist> <targetlist> <targetportlist> <commandlist> <weekdays> <timeperiodslist>

  • userlist — список пользователей через запятую.
  • sourcelist — сети клиентов через запятую.
  • targetlist — сети назначения через запятую.
  • targetportlist — порты назначения через запятую.
  • commandlist — команды, к которым применяется правило.
  • weekdays — в какие дни недели работает правило. 0 - 6 — Пн - Вс, 7 — тоже Вс.
  • timeperiodslist — время, когда работает правило. Указываются диапазоны.

* в данном примере пользователям user1 и user3 установлено ограничение в 1000000 бит/сек (1 мбит); для user2 и user4 — 5 мбит/сек.

Также, ограничить доступ можно по количеству одновременных соединений для каждой службы:

maxconn 700
proxy -n -a -p3128 -i192.168.0.23 -e222.222.222.222
proxy -n -a -p8080 -i192.168.1.23 -e111.111.111.111

* таким образом, мы установим 700 максимальных соединений для прокси на порту 3128 и 700 — для proxy на порту 8080.

Favorite

Добавить в избранное

Главное меню » Операционная система CentOS » Как включить настройки прокси для команды Yum в CentOS 7

(2 оценок, среднее: 3,50 из 5)

Когда доступ к серверу возможен только через прокси-серверы, вам необходимо настроить yum на использование прокси-сервера, чтобы вы могли установить пакет RPM или обновить установленные пакеты ОС.
Чтобы настроить прокси-сервер, чтобы системный пользователь мог получить доступ и использовать команды yum, достаточно легко и прямо к задаче точки, и для ее настройки не требуется более 5 минут. Давайте начнем.

Настройка параметров прокси-сервера

Отредактируйте файл конфигурации «/etc/yum.conf» yum и укажите параметры прокси-сервера в главном разделе, например:

Обязательно используйте надежный пароль для пароля прокси. Используйте пароль, который не совпадает с другим паролем системного пользователя, особенно с паролем пользователя root.

Обратите внимание, что все пользователи должны иметь доступ для чтения к файлу /etc/yum.conf, чтобы они могли подключаться к прокси-серверу с этими данными при использовании команд yum.

Включить прокси-доступ только для определенного пользователя системы

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

Если пользователь использует оболочку bash по умолчанию, профиль пользователя должен быть установлен в файле

Если для прокси-сервера требуется имя пользователя и пароль, отредактируйте профиль оболочки пользователя и добавьте имя пользователя и пароль в URL-адрес прокси-сервера:

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

Чтобы проверить правильность настройки прокси-сервера, запустите некоторую команду yum, например, попробуйте использовать:

Вывод этой команды покажет вам список с подробными сведениями о всех доступных пакетах с именем dovecot:

Поздравления. Вы успешно настроили прокси-сервер для команды yum на CentOS 7.


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


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

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

Обычно компьютер выполняющий роль программного шлюза имеет в своей конфигурации два сетевых адаптера. Первый сетевой адаптер подключается к сети Интернет, а второй включается в сетевой "switch" (hub). Туда же в "switch" подключают сетевые адаптеры компьютеров, которым нужно дать доступ в сеть Интернет.

Наш шлюз будет состоять из следующего программного обеспечения:

  • CentOS - операционная система уровня предприятия
  • Squid - кэширующий прокси сервер
  • SquidGuard - фильтр для блокировки сайтов (аналоги rejik + DBL или DansGuardian)
  • iptables - стандартная утилита для управления фаерволом Linux
  • HTB.init - шейпер трафика

Перечисленные компоненты роутера будут установлены на новую операционную систему CentOS 7 x64.

Краткое содержание записки:

1. Исходные данные

2. Отключаем и удаляем NetworkManager

3. Настройка сетевых адаптеров

4. Установка и базовая настройка Squid

5. Установка и настройка SquidGuard

6. Установка анализатора логов Sarg

7. Настройка firewall

9. Установка и настройка шейпера HTB.init

10. Установка и настройка кэширующего DNS сервера

11. Проверка Интернет доступа

12. Установка и настройка DHCP сервера

Этап установки операционной системы сознательно - пропущен, так как он стандартен, и в основном требует от пользователя обычных нажатий кнопок - Далее/Далее/Готово. Хотя лучше конечно установить второй жесткий диск и потратить немного времени на настройку программного рейд массив во время установки операционной системы. Мало ли, один жесткий диск может выйти из строя. А если он сломается, на устранение такой проблемы потребуется много времени. Простои в работе офиса могут снизить прибыль и навредить репутации компании.

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

1. Исходные данные

Здесь описаны данные которые понадобятся при настройке в моих примерах. Как и говорилось выше, сервер имеет два установленных сетевых адаптера.

Первый адаптер выйдет в интернет, его сетевые настройки:

  • Названия интерфейса в ОС: enp0s3
  • IP-адрес адаптера: 217.15.172.50
  • Маска сети: 255.255.255.248
  • Адрес шлюза: 217.15.172.49
  • IP адреса DNS серверов: 217.15.150.1 и 217.15.150.1

Второй адаптер подключен в локальную сеть через SWITCH (HUB):

  • Названия интерфейса в ОС: enp0s8
  • IP-адрес адаптера: 10.168.50.2
  • Маска сети: 255.255.255.0

Какие клиенты будут у шлюза:

  • Ноутбуки с работающими адаптерами в режиме DHCP клиента
  • Стационарные компьютеры с сетевыми картами получающими IP адреса автоматически
  • Разные смартфоны, планшеты
  • Сервера со статическими IP адресами

Что нам нужно от шлюза:

  • Фильтрация трафика
  • Запрет на использование некоторых сайтов
  • Распределение канала
  • Статистика по посещению сайтов
  • Проброс RDP порта 3389 на терминальный сервер

2. Отключаем и удаляем NetworkManager

Вспомогательная утилита операционной системы под названием NetworkManager (NM) облегчает настройку сетевых соединений на пользовательском компьютере, но на сервере от ее работы возникают не понятные глюки. Чтобы лишний раз не тратить время на борьбу с NM, удалите утилиту по следующей инструкции:

Открываем файл /etc/sysconfig/network для включения сети:

В записке не используется selinux, он отключен:

Находим и меняем значение:

3. Настройка сетевых адаптеров

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


Видим что есть два не настроенных адаптера enp0s3 и enp0s8. Чтобы настроить интерфейсы потребуется изменить содержимое двух одноименных файлов лежащих в каталоге /etc/sysconfig/network-scripts/

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

ifcfg-enp0s3 ifdown-post ifup-bnep ifup-routes

ifcfg-enp0s8 ifdown-ppp ifup-eth ifup-sit

ifcfg-lo ifdown-routes ifup-ippp ifup-Team

ifdown ifdown-sit ifup-ipv6 ifup-TeamPort

ifdown-bnep ifdown-Team ifup-isdn ifup-tunnel

ifdown-eth ifdown-TeamPort ifup-plip ifup-wireless

ifdown-ippp ifdown-tunnel ifup-plusb init.ipv6-global

ifdown-ipv6 ifup ifup-post network-functions

ifdown-isdn ifup-aliases ifup-ppp network-functions-ipv6

Как видим все на месте, два адаптера помечены жирным шрифтом.

Первый адаптер ifcfg-enp0s3

Открываем первый файл /etc/sysconfig/network-scripts/ifcfg-enp0s3

Настраиваем его - дописываем или меняем сетевые реквизиты:

HWADDR=08:00:27:DF:58:83

TYPE=Ethernet

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=no

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

NAME=enp0s3

UUID=9825ca5b-d916-4514-b3ac-fdc7964c8362

ONBOOT=yes

IPADDR=217.15.172.50

NETMASK=255.255.255.248

GATEWAY=217.15.172.49

Жирным шрифтом помечены изменения которые были внесены мною. Здесь дописаны такие основные параметры как:

  • IP адрес компьютера
  • указан признак статического адреса для хоста
  • маска сети
  • адрес шлюза

Теперь укажем адреса DNS серверов.

В файл /etc/resolv.conf вписываем IP адрес DNS сервера провайдера:

nameserver 217.15.150.1 //указываем первичный DNS провайдера

nameserver 217.15.150.2 //указываем вторичный DNS провайдера

Примечание: В новой версии CentOS 7 x64, после отключения NetworkManager, иногда нужно за место "nameserver <IP server>" прописывать "DNS1=<IP server>"

После изменения сетевых настроек, перезапустим сетевую службы:

Теперь можно проверить наличие интернета на сервере простым "пингом":

Второй адаптер ifcfg-enp0s8

Открываем второй файл /etc/sysconfig/network-scripts/ifcfg-enp0s8

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

HWADDR=06:10:27:DF:18:83

TYPE=Ethernet

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=no

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

NAME=enp0s8

UUID=6825ca5b-j916-4514-b3ac-аdc7964c8367

ONBOOT=yes

IPADDR=10.168.50.2

NETMASK=255.255.255.0

Разрешим пересылку пакетов через наш шлюз:

Применим новую настройку без перезагрузки:

Заодно перезапустим сетевую службу:

4. Установка и базовая настройка Squid

В этом разделе установим Squid и настроим его для работы в прозрачном режиме.

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

Находим строчку в файле:

Меняем ее значение на:

И добавляем к этой строчке строку:

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

Блокировка потокового Video/Audio в Squid, чтобы пользователи не смогли просматривать онлайн видео и слушать аудио с сайтов.

Открываем файл /etc/squid/squid.conf и добавляем в конец файла:

Файл /etc/squid/users.txt содержит диапазон компьютеров: Файл /etc/squid/vip-users.txt содержит IP адреса начальства:

Дополнительные настройки, добавляем в конец файла:

5. Установка и настройка SquidGuard

Обычно после установки SquidGuard, идет его настройка по следующим шагам:

  • Настраивается прокси сервер Squid для работы с SquidGuard
  • Качается база в которой содержаться www и IP адреса для блокировки нежелательный сайтов
  • В SquidGuard указываются IP адреса компьютеров кому надо запрещать доступ
  • А также в SquidGuard указывают что требуется блокировать: порно, рекламу, онлайн видео и т.д.

Скачаем пакет фильтра SquidGuard (SG) и установим его:

К сожалению лежащий в репозитории Epel пакет SquidGuard оказался не рабочим, во время старта всегда вываливался в "Segmentation Fault". Поэтому установил пакет от предыдущей ОС. Как починят этот пакет, можно будет его ставить.

Настроим прокси сервер Squid для работы с SquidGuard, откроем файл /etc/squid/squid.conf

Создаем два каталога, первый для хранения базы, второй для хранения логов:

Ставим владельца на созданные каталоги, пусть им будет пользователь squid:

  • Указываем время работы бана
  • Указываем IP адреса кому блокировать сайты, открываем файл /etc/squid/squidguard.conf:

Ставим время работы фильтра, открываем файл /etc/squid/squidguard.conf:

Указываем IP адреса кому блокировать сайты, открываем файл /etc/squid/squidguard.conf:

Качаем списки доступа, по этим спискам будут блокироваться нежелательные сайты и IP адреса:

Скажу от себя: списки работают, но некоторые сайты не блокируются.

После распаковки появится каталог /var/squidGuard/BL со содержимым:

BL/anonvpn/urls

BL/anonvpn/domains

BL/adv/

BL/adv/urls

BL/adv/domains

BL/global_usage

BL/religion/

BL/religion/urls

BL/religion/domains

BL/sex/

BL/sex/education/

* * * * * *

Каждый подкаталог - это категория для блокировки, например нам нужно заблокировать рекламу, не проблема, используем подкаталог adv (advertising). Аналогично с подкаталогом porn (porngraphy).

Категории - они же подкаталоги содержать в себе два файла основных файла:

В первом файле содержаться www адреса для блокировки, а второй файл несет в себе IP адреса.

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

Настраиваем SquidGuard для блокировки сайтов, открываем файл /etc/squid/squidguard.conf:

Здесь я захотел блокировать рекламу, контент для взрослых и онлайн кинотеатры. Если вам нужно что-то еще заблокировать, посмотрите внутренность каталога /var/squidGuard/BL/, может там есть подходящая вам категория.

Для того чтобы squidGuard мог использовать черные списки, запустите конвертацию командой:

Создаем дополнительный каталог для логов:

Если сайты не блокируются, смотрите логи в каталогах: /var/log/squid и /var/log/sguidGuard

6. Установка анализатора логов Sarg

Здесь много разных настроек, подправим его под наши нужды:

Откроем файл sarg.conf:

В этом файле добавляем строчку:

Эта настройка открывает доступ к отчетам анализатора для всех ПК.

Запустим и поместим веб сервер Apache в автозагрузку:

Запустим Sarg в тестовом режиме:


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


Выбираем IP адрес, по которому хотим увидеть отчет.



Можно увидеть график, если щелкнуть пиктограмму графика:


7. Настройка Firewall

Настройка фаерволла должна идти по следующей последовательности:

1. Чистка всех цепочек

2. Закрыть все и вся (DROP).

3. Пропускать все уже инициированные и их дочерние соединения.

4. Разрешить локальные соединения.

6. Пишем что открыть, пробросить и другие свои дополнительные правила и т. п.

Предварительно отключаем Firewalld и устанавливаем iptables:

Можно сразу поменять порт SSH с 22 на 1234 в целях безопасности, открываем файл /etc/ssh/sshd_config:

Находим строку под номером 17

Создаем файл с правилами фаерволла:

iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 10.168.50.50:3389 iptables -t nat -A POSTROUTING -p tcp -d 10.168.50.50 --dport 3389

Даем права на запуск файла (исполняемый файл):

Запускаем скрипт c командами iptables и замещаем им текущие правила фаерволла:

Примечание: В моих правилах, устройствам выходящим в Интернет - доступны все порты.

Открываем файл /etc/sysconfig/firewall.sh и вносим туда блокировку неугодных сайтов:

iptables -I FORWARD -s 10.168.50.0/24 -p tcp -m string --algo bm --string ".youtube.com" -j DROP iptables -I FORWARD -s 10.168.50.0/24 -p tcp -m string --algo bm --string ".facebook.com" -j DROP iptables -I FORWARD -s 10.168.50.0/24 -p tcp -m string --algo bm --string ".vk.com" -j DROP iptables -I FORWARD -s 10.168.50.0/24 -p tcp -m string --algo bm --string ".my.mail.ru" -j DROP iptables -I FORWARD -s 10.168.50.0/24 -p tcp -m string --algo bm --string ".odnoklassniki.ru" -j DROP iptables -I FORWARD -s 10.168.50.0/24 -p tcp -m string --algo bm --string ".vkontakte.ru" -j DROP

iptables -I FORWARD -s 10.168.50.50/24 -p tcp -j ACCEPT

9. Установка и настройка шейпера HTB.init


Интернет в данном примере поступает от ADSL модема.

Наша задача решить с помощью шейпера следующее:

  • разделение входящей и исходящей скорости канала поровну между машинами локальной сети

Скрипт HTB.init задействует утилиту tc составляя правила с помощью нее и дисциплины htb. Почему используют скрипт HTB.init для контроля скорости трафика? Потому что с помощью него наглядно и легко можно динамически управлять пропускной способностью канала. Что и нужно обычному пользователю, такому как я :)

Вся идеология этого шейпера строится на классах. Описание классов производится с помощью простых текстовых файлов. Все правила по ограничению скорости лежать в них, эти файлы находятся в папке /etc/sysconfig/htb/

Поставьте его в автозагрузку:

Создайте каталог для конфигурации:

Перейдите в каталог конфигурации htb.init:

Сперва настроим входящею скорость для компьютеров локальной сети.

Создадим корневой файл enp0s8:

В нем впишем текст:

Здесь строчка DEFAULT=20 задает параметр по которому будет учитываться трафик не попадающий ни под одно правило шейпера.

Здесь мы указали скорость нашего адаптера локальной сети.

Здесь запятая говорит нам, что нужно шейпить исходящею скорость (исходящий порт - source port). Без запятой, шейпится входящая скорость (порт назначения - destination port).


Как видно из картинки, скорость почти соответствует нашим настройкам. На этом же скрине, уже исходящая скорость тоже распределена. Настройки исходящей скорости смотрите внизу.

Теперь скрин из Download Master:


Здесь у нас почти 8Мбит = 940Кбайт

Теперь надо порезать исходящею скорость

Создадим корневой файл enp0s3:

В нем впишем текст:

ИТОГО: Мы дали компьютерам локальной сети 10.168.50.0/24 исходящею скорость в 1Мбит, скорость эта делиться поровну между компьютерами локальной сети, если качает только один ПК, ему дается весь 1Мбит.

При этом мы не трогаем входящею и исходящею скорость самого интернет шлюза в локальную сеть и обратно. Смысла резать локальную скорость - нет.

Последний шаг - запуск системы контроля трафика с помощью следующей команды:

При запуске HTB выйдет окошко с ошибкой:

find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.

Так как ошибка не критичная, и не влияет на работу скрипт, на нее можно не обращать внимания.

Если вы еще не поставили демон в автозагрузку:

Иногда нужно чистить кэш HTB.Init:

10. Установка и настройка кэширующего DNS сервера

Установим пакет Bind, который позволит добавить функцию кэширующего DNS сервера на наш шлюз:

Поставим его в автозагрузку:

Настроим его, откроем файл /etc/named.conf и изменим содержимое:

Запускаем службу named:

11. Проверка Интернет доступа

Проверим работу шлюза, для этого возьмем свободный компьютер с установленной Windows XP в нашей локальной сети. В настройках сетевой карты пропишем:

IP адрес - 10.168.50.20

Адрес шлюза - 10.168.50.2

DNS сервер - 10.168.50.2 или DNS провайдера - 8.8.8.8

Адрес DNS сервера берем нашего шлюза или провайдерский.


12. Установка и настройка DHCP сервера

Чтобы не настраивать всем компьютерам сетевые платы, установим DHCP сервер, который будет автоматически проставляь нужные IP адреса:

Создаем конфигурационный файл /etc/dhcp/dhcpd.conf

Запускаем серверную службу DHCP:

Ставим службу в автозагрузку:

13. Создаем общею папку

Давайте создадим две общие папки на нашем шлюзе, чтобы хранить в них разные дистрибутивы программ и отсканированные документы. Эти папки будут видны Windows машинам по сети.

Читайте также: