место в рейтинге
  • 1090900
  • 686
  • 86
Нравится блог?
Подписывайтесь!

Установка Traffpro Free 1.3.8 на CentOS 6.4

В этой записке вы узнаете как организовать общий доступ в Интернет для локальной сети с учетом трафика и авторизацией по MAC и IP адресу клиента.

Речь в этой записке пойдет о Traffpro, полезной программе для организации шлюзов в Интернет с учетом трафика.

Данная программа имеет следующие плюсы:

  • Учет трафика самого сервера и клиентов
  • Блокировка клиента по квоте
  • Простая установка
  • Удобный веб интерфейс
  • Авторизация по MAC и IP
  • Блокировка сайтов второго уровня
  • Продвинутая блокировка сайтов с помощью Squid

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

1. Установка операционной системы CentOS 6.4 x32

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

3. Установка зависимостей

4. Отключение встроенной цепочки iptables

5. Отключаем SELINUX

6. Настройка кэширующего DNS

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

8. Профилактика базы

9. Блокировка сайтов через ipset

 

Для установки TraffPro сервер должен иметь два сетевых адаптера. Если это не так, установите адаптеры и начинайте установку.

Также вы можете нарастить функционал шлюза, установив шейпер трафика, прокси сервер Squid и DHCP.

Шейпер трафика позволит ограничить скорость доступа в Интернет по определенным протоколам. На роль  шейпера прекрасно подходит HTB.init (http://habrahabr.ru/post/60095/).

DHCP сервер - будет автоматически конфигурировать клиентские сетевые платы. Настройка DHCP проста, в Интернете полно информации по этой теме (http://www.server-world.info/en/note?os=CentOS_6&p=dhcp)

TraffPro FAQ - http://traffpro.ru/faq/faq.html#faq

 

1. Установка операционной системы CentOS 6.4 x32

Прежде чем приступить установите на ваш сервер операционную систему CentOS 6 x32, образ ISO этой операционной системы вы можете найти на следующих ресурсах:

http://mirror.yandex.ru/centos/6.4/isos/i386/CentOS-6.4-i386-bin-DVD1.iso

Для тех кто хочет установить x64 разрядную операционную систему:

http://mirror.yandex.ru/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-bin-DVD1.iso

 

Примечание: Операционная система CentOS постоянно обновляется, часто меняются версии, это связанно с обновлением пакетов и ядра самой ОС. Поэтому ссылки которые я Вам даю могут не работать в будущем. Но можно очень просто скачать новую версию зайдя по ссылке (например для x32 ОС):

http://mirror.yandex.ru/centos/

Мы увидим вот такое окно:

Красным кружком обведена текущая версия операционной системы которая доступна для скачивания, то есть это получается "свежак" который доступен и актуален на сегодняшний день. В будущем за место версии 6.4 будет версия 6.5 и выше, так как я уже выше писал - это происходит из за обновленния программ дистрибутива ОС.

Запишите на DVD диск скачанный ISO образ и потом вставьте его в DVD привод вашего сервера. Запустите Ваш сервер, ниже я написал про установку CentOS.

В этом окошке, выберите первый пункт- "Установка или обновление существующей системы"


Здесь установщик предлагает нам проверить читаемость DVD диска. Уверенно нажимаем кнопку "Skip"


Здесь жмем кнопку "Next" (Далее)


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


Раскладка клавиатуры, выбераем U.S. English или Russian, кому как удобно.


Здесь нам задают вопрос, на какой диск производится установка.

Мы устанавливаем систему на обычный SATA диск, поэтому выберем "Basic Storage Device", в противном случае выберите "Specialized Storage Device" если у вас SCSI контроллер.


Так как у нас новый 160 Гигабайтный  диск, для его использования требуется произвести разметку (форматирование) диска. В этом окне установщик нас предупреждает что диск не имеет фаловой системы или разделов. Или вероятно там NTFS  раздел, который Linux не понимает. Вообщем нажимаем кнопку "Yes, discard any data".


Здесь мы задаем имя хоста (компьютера), нажмите "Next" чтобы продолжить.


Настройки часового пояса, выберите ваш часовой пояс и нажмите "Next"


Пароль супер пользователя (Администратора), введите в этом окне Ваш пароль два раза.

Запомните его, при установке TraffPro он нам понадобится.


Здесь установщик нам предлагается создать разделы и с последующим форматированием их.

По умолчанию предлагается режим "Replace Existing Linux System (s)"

Нас это  не устраивает, по документации к TraffPro жесткий диск должен быть разделен на разделы c нужным количеством места. Внизу написано какие разделы и их объем требуются для нормальной работы TraffPro.

Напомню, в нашем новом сервере  имеется 160 Гб жесткий диск, разбивка при этом будет такой:

Раздел Пояснения
/ корневой раздел, обычно под этот раздел выделяют 20 Гбайт, в нем хранятся системные файлы (160 - 20 = 140 Гб)
/home этот раздел содержит пользовательские данные, внутри него находятся папки “Desktop” (Рабочий стол), “Documents” (Документы) и т.д. Советую вам выделить 10 Гбайт дискового места под него, в случае если туда не копировать видео/аудио файлы. Мы отдадим 10 Гб на этот раздел (140 - 10 = 130 Гб). Для сервера этого хватает выше крыше. В конце концов это не пользовательский компьютер.
/swap этот раздел содержит в себе файл подкачки. При объеме ОЗУ 1 Гбайт,  размер раздела должен быть 2 Гб. Если на сервере 2 Гб ОЗУ, то соответственно под раздел Swap можно отдать 4 Гбайт дискового места (130 - 2 = 128 Гб)
/var главный и важный раздел, в этот раздел пишутся логи, в нем находятся базы данных MySQL и закаченные RPM пакеты  и т.д. Этот раздел активно используется установленными программами. Исходя из этого, выделяем под этот раздел все оставшееся место на диске, а точнее  128 Гбайта пространства.
 

В соответствии с этими комментариями, разобьем наш жесткий диск.


В этом окне нам надо будет создать требуемые разделы.

Для создания первого корневого раздела (/), нажмите на кнопке "Create"


Выбераем "Standart Partition" и нажимаем "Create"

В этом окне указываем какой раздел нам нужно создать на диске, в нашем случае это корневой раздел который обозначается символом слэш  "/".

Выставляем:

Mount Type: /

File System Type: Ext4

Size (MB): 20000  (20 гбайт)

Вся информация о создаваемом разделе указана, нажмите кнопку "OK" для создания раздела.

Аналогичным образом создайте другие разделы:

Раздел /home

Mount Type: /home

File System Type: Ext4

Size (MB): 10000  (10 гбайт)

Раздел swap

File System Type: Swap

Size (MB): 2000  (20 гбайт)

Mount Type: /var

File System Type: Ext4

Size (MB):

Additional Size Options: Fill To Maximum Alowable Size

Все разделы созданы, итоговое окно с нашими разделами:


Нажмите на кнопке "Next" чтобы продолжить.


Тут нас пугают что на диске есть таблица разделов типа MSDOS и что все данные будут уничтожены. Нас это не интересует, нажимаем на кнопке "Format"


Нажимаем по кнопке "Write changes to disk" для форматирования.


Здесь устанавливается загрузчик, нажимаем "Next"


Выберем тип установки, я выбрал режим "Minimal Desktop" с графическим окружением.

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

Если у вас слабый сервер, рекомендуется выберать "Minimal".


Процесс установки CentOS.


Поздравительное окно, установка завершена!

Нажимаем на кнопке "Reboot" и перезагружаем компьютер.

Загрузка CentOS.


У нас уже установлена CentOS, но для нормальной работы надо еще настроить не которые системные настройки. Это оконо говорит нам об этом. Нажимаем кнопку "Forward"

Соглашаемся с лиценионным соглашением. Нажимаем "Forward".


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


Настройка даты и времени. Нажимаем "Forward"


Для запуска "Kdump" (механизма дампа при крахе ядра) требуется 2 Гб оперативной памяти, у нас на сервере всего 1 Гб ОЗУ, запус "kdump" не возможен, о чем символизирует окно с ошибкой. Нас это не интересует, нажимаем "Forward"

Настройка завершена, нажмите кнопку "Finish"


Окно выбора учетной записи. По умолчанию операционная система предлагает вход простому пользователю, в нашем случае это учетная запись по имени "Vanka Vstanka".

Устанавливать TraffPro мы будем из под учетной записи администратора -  супер пользователя "root".

Для этого нажимаем по надписи "Other" чтобы войти под администратором "root".


Вводим "root" как на картинке. Нажимаем на кнопке "Log In"


Вводим пароль супер пользователя который мы задавали при установке системы и нажимем "Log In"


Здесь нас предупреждают о том, что нельзя работать под учетной записью супер пользователя (администратора). Ставим гаолчку чтобы это окно больше не появлялось и нажимаем "Close"

Поздравляю, операционная система CentOS 6 успешно установлена!

Осталось настроить ее под наши нужды.

 

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

Для того чтобы сервер общался с другими компьютерами локальной сети и Интернета, надо настроить сетевые адаптеры. Для этого запустите "Terminal", щелнките меню "Applications" -> "System Tools" -> "Terminal". Как на картинке внизу:

Первым делом отключим службу NetworkManager, эта служба многими отключается при серверном применении CentOS. Для отключения службы, запустим консоль - "Terminal", и введем следующие команды:

# service NetworkManager stop

# chkconfig NetworkManager off

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

Займемcя настройкой первого адаптера, который подключен к провайдеру, для этого присвоим следующие технические данные которын обычно выдает провайдер:

IP адрес: 217.15.185.10

Адрес шлюза: 217.15.185.9

Маска сети: 255.255.255.248

Широковешательный адрес: 217.15.185.255

DNS1: 217.15.172.4

DNS2: 217.15.172.6

 

Данные адреса, надо прописать в настройках карты, для этого в терминале вводим команду "setup":

# setup

Примечание: При вводе команд знак решетку вводить не надо! Этот символ сигнализирует о том, что вы зашли под учетной записью супер пользователя. Если команда setup не работает, значить потребуется установить следующие пакеты:

# yum install setuptool system-config-firewall-tui system-config-network-tui authconfig ntsysv system-config-securitylevel-tui wget -y

 

 


Выберем "Network configuration" и нажимаем ENTER или кнопку "Run Tool" внизу.


Выберем "Device Configuration" и жмем "Enter"


Здесь мы можем сконфигурировать два адаптера. Для начал выберем первый адаптер который подключен к сети провайдера -  "eth0" и нажмем "Enter".

Убираем звездочку возле надписи "Use DHCP ". Заполняем строчки IP адресами которые нам выдал провайдер и нажимаем "OK" для сохранения настроек.

Аналогичным образом настраивается адапетр "eth1" подключенный в локальную сеть:

Убираем звездочку возле надписи "Use DHCP ".

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

# vi /etc/sysconfig/netowork-scripts/ifcfg-eth0

Строчка 4:изменить

NM_CONTROLLED=no

Строчка 5:изменить

ONBOOT=yes

Аналогично делаем такое же для адаптера "eth1":

# vi /etc/sysconfig/netowork-scripts/ifcfg-eth1

Строчка 4:изменить

NM_CONTROLLED=no

Строчка 5:изменить

ONBOOT=yes

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

# service network restart

Проверяем есть ли Интернет на сервере:

#  ping google.com

 

3. Установка зависимостей

Если у Вас установлена СentOS 6 x32 :

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

# rpm -Uvh http://rnd.rajven.net/centos/rajven-release-6-1.cnt6.noarch.rpm

Устанавливаем зависимость Libnfnetlink, первый способ:

# yum install  libnfnetlink libnfnetlink-devel libnetfilter_queue  libnetfilter_queue-devel libnfnetlink libnfnetlink-devel -y

# yum remove rajven-release -y

Второй способ установки Libnfnetlink, если выполнили первый способ, выполнять этот не стоит:

# rpm -Uvh http://centos.alt.ru/pub/repository/centos/6/i386/centalt-release-6-1.noarch.rpm

# yum install  libnfnetlink libnfnetlink-devel libnetfilter_queue  libnetfilter_queue-devel libnfnetlink libnfnetlink-devel -y

# yum remove centalt-release -y

 

Если у Вас установлена СentOS 6 x64 :

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

# rpm -Uvh http://rnd.rajven.net/centos/6/os/x86_64/rajven-release-6-1.cnt6.noarch.rpm

Устанавливаем зависимость Libnfnetlink, первый способ:

# yum install  libnfnetlink libnfnetlink-devel libnetfilter_queue  libnetfilter_queue-devel libnfnetlink libnfnetlink-devel -y

# yum remove rajven-release -y

Второй способ установки Libnfnetlink, если выполнили первый способ, выполнять этот не стоит:

# rpm -Uvh http://centos.alt.ru/pub/repository/centos/6/x86_64/centalt-release-6-1.noarch.rpm

# yum install  libnfnetlink libnfnetlink-devel libnetfilter_queue  libnetfilter_queue-devel libnfnetlink libnfnetlink-devel -y

# yum remove centalt-release -y

 

Устанавливаем другие зависимости:

# yum install gcc-c++  gd httpd  mysql-devel  mysql-server make php  php-gd  php-mysql php-ldap php-mbstring dialog iptables-devel -y

 

Примечание: Версии репозитариев часто меняются, как  и версии операционной системы.

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

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

http://mirror-kt.neolabs.kz/epel/6/i386/

Как видим, версия репозитария 6.8 на текущий момент написания записки :

epel-release-6-8.noarch.rpm

В моем примере выше,  версия репозитария 6.8 и 6.1, в будущем будет 6.9 и 6.2, поэтому команду подключения потом следует вводить с этими поправками:

# rpm -Uvh http://mirror-kt.neolabs.kz/epel/6/i386/epel-release-6-9.noarch.rpm

# rpm -Uvh http://rnd.rajven.net/centos/6/os/x86_64/rajven-release-6-2.cnt6.noarch.rpm

То есть поменяется версия репозитария Epel с 6.8 до 6.9

и поменятеся версия репозитария rajven с 6.1 до 6.2.

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

4. Отключение встроенной цепочки iptables

В терминале вводим комманду:

# setup


Выберем надпись "Firewall configuration"


Уберем звездочку возле "Enable" и нажмем на кнопке "OK", а потом согласимся нажмем "YES"

 

5. Отключаем SELINUX

В терминале вводим:

# vi /etc/selinux/config

Строчка 7:изменим

SELINUX=disabled

 

6. Настройка кэширующего DNS

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

# yum install bind -y

# vi /etc/named.conf

listen-on { 127.0.0.1; 192.168.1.2; }; # IP адрес сетевой карты подключенной в локальную сеть

allow-query { 127.0.0.1; 192.168.1.0/24; }; # Адрес локальной сети

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

# service named start

Starting named:                                            [  OK ]

Сервис named запустился нормально.

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

# chkconfig  named on

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

Качаем TraffPro по ниже приведенным ссылкам:

Далее распаковываем скачанный архив. Внутри папки TraffPro Free 1.3.8 есть файлик install.sh

Нажмем двойным щелчком на нем и в меню выберем Run in Terminal

Можно также запустить терминал и ввести команду - sh install.sh , где лежит TraffPro.

 

Далее TraffPro задает Вам следующие вопросы:


Нажимайте Y (ДА) или N (НЕТ), чтобы ответить на вопросы, ответы берите из столбца"Ответ"

Настроим MySQL:

vi /etc/my.cnf

Добавим следующие параметры:

innodb_buffer_pool_size = 150M
max_allowed_packet = 16M

 

Запускаем Apache и MySQL :

service httpd start

service mysqld start

И вставим их в автозагрузку:

chkconfig --level 35 httpd on

chkconfig --level 35 mysqld on

 

Запускаем браузер Mozzila FireFox:

В адресной строке вводим:

http://127.0.0.1/traffpro/index.php/admin_login

Вводим логин и пароль - admin/admin

 

Настройка TraffPro

Чтобы настроить TraffPro проделайте следующие шаги:

1. Добавьте группы

Группы позволят Вам определить доступные порты (сервисы) для определенных IP адресов. Здесь в обязательном порядке надо указать хотя бы два порта 80 и 53.

Порт 80 служит для обращения компьютеров по протоколу HTTP (сайты), а порт 53 служит для разрешения доменных имен.

2. Заведите учетные записи компьютеров (пользователей)

Здесь у Вас будут компьютеры которым Вы разрешаете выход в Интернет. Пропишите IP адреса компьютеров локальной сети.

3. Настройка защиты сервера

В этой настройке управление фаерволом будет осуществляется TraffPro. Обязательно включите эту опцию, в противном случае Ваш сервер останется без сетевой защиты.

 

Начнем настройку TraffPro, заведем группы. Для этого щелкните Users -> Groups  как на картинке:

Для добавления группы нажимаем New group с иконкой крестика как на картинке:

Вводим какой трафик надо учитывать, многие провайдеры ведут учет только на входящий трафик, поэтому я выставил "Traffic Type: Incoming".

В "replenish traffic (mb)" мы добавили 3000 мбайт, то есть в месяц одному компьютеру доступно для закачки 3000 мбайт. При исчерпании этого лимита

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

Вот пример создания группы VIP, этой группе даем 10 Гбайт трафика на компьютер, учитываем только входящий трафик и разрешаем обращаться по всем портам в Интернет.

Добавляем пользователя, для этого шелкаем Меню Users -> Office -> Users

Нажимаем кнопку добавления пользователя:

Вводим данные клиента, IP адрес компьютера и другие данные как на картинке:

Выделенный красным кружком значок позволит Вам автоматически заполнить MAC адрес клиента, если тот уже включен (назначен IP адрес). После ввода нажимаем кнопку "Apply". Порты по которым открыт доступ этому компьютеру будет взят из созданной нами группы "Managers":

53 - порт DNS (для разрешения имен)

80 - HTTP порт (для открытия сайтов)

443 - HTTPS порт (для сайтов с SSL шифрованием)

5190 - ICQ клиенты

 

Добавляем трафик, нажмите значок обведенный красной линией.

 

Проверка Интернета на клиентских машинах

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

Запускаем Explorer и проверяем есть ли Интернет.

 

Включение защиты сервера

Чтобы TraffPro мог управлять встроенным в Linux фаерволом (iptables), ему надо явно на это указать. Если не включить защиту сервера, ваш сервер будет открыт на весь Интернет, так как фаерволл будет разрешать любые соединения. Включать защиту сервера лучше всего в самом конце настройки TraffPro, потому что если включить фаервол сразу, у Вас возникнет кучу проблем.

Для предотвращения этого отредактируйте файл /etc/traffpro/traffpro.cfg:

ss_enabled=false    ->   ss_enabled=true    - Эта опция включает защиту сервера

ports_detail=false   ->   ports_detail=true   - Эта опция тоже нужна для включения защиты сервера (управление фаерволом) и учет трафика самого шлюза.

url_detail=false      ->    url_detail=true      - протоколирование посещения сайтов

url_block=false       ->   url_block=true       - запрет посещения сайтов

eth_control=true     -> eth_control=false    - отключение проверки по MAC адресу

Если вам интересно узнать какие опции еще доступны и их описание, перейдите по ссылке:http://traffpro.ru/print:page,1,45-sjobsn-usib-lnb-chnb-traffpro.html

Теперь зайдите в админку, в меню Система - > Серверы  (Уч. защита) - >  Серверы  (Уч. защита) или на английском System -> Servers (Report, Security) -> Servers (Report, Security)

В этом окошке заполните все, поставьте ваш внешний IP и MAC адрес. Также укажите какой порт будет доступен из внешней сети (Интернет) к серверу. Мы указали 22 порт, по которому работает  SSH и 80, 53 порты чтобы наш сервер мог обращаться в локальную и глобальную сеть по HTTP протоколу и DNS. Конечно лучше здесь оставить за место 80 и 53 портов сразу следующие порты 0,1-65535, но это не правильно - не будет работать фаервол.

MAC адрес можете взять из меню System -> Administration -> Network, далее выводите свойства адаптера eth0 (двойной щелчок), а потом выбираете вкладку Hardware Device. Или как вариант можно узнать MAC адрес через командную строку:

# ifconfig eth0 | grep HWaddr

 

8. Профилактика базы

В TraffPro из за не корректного отключения сервера часто портятся таблицы БД. Или бывают случаи когда в БД появляются разные косяки, из за чего в базе растут квоты. Как это исправить написано внизу.

Сперва надо определить какая таблица содержит корявые значения, и потом уже исправлять эту таблицу, например часто портится таблица "clients_active_time", починить ее можно так:

mysql -u root -p traffpro -e "truncate table clients_active_time"

Это команда удаляет таблицу "clients_active_time" и создает такую же таблицу. Бывает что надо применять эту команду на другую таблицу.

И есть еще полезная команда для профилактики базы:

mysqlcheck traffpro --auto-repair

Первую команду применяйте в редких случаях, так как она удаляет все значения в таблице, например после отработки команды "truncate", могут обнулится квоты. Вторая команда, ее желательно вставить в cron. Можно запускать ее каждый день, думаю это не будет лишним. Желательно и даже нужно до выполнения команды --auto-repair останавливать Traffpro и Apache. Чтобы не было обращений к базе во время починки.

Из за глюков с базой, возможны блокировки клиентов, а также могут возникнуть тормоза при работе Интернета. Пользователи кстати первые это замечают.
Например добавить задание в cron можно так:

# vi /etc/crontab

5 23 * * * /usr/bin/flock -xn /var/lock/script.lock -c 'mysqlcheck traffpro --auto-repair'

Задание будет выполнятся каждый день ночью в 23:05.

Можно сделать простой скрипт /etc/sysconfig/tprepair.sh, который будет автоматически чинить базу TP ночью:

#!/bin/bash

service httpd stop

#service tp-sheduler stop

service traffpro stop

#killall -s9 billing

service mysqld restart

sleep 10

/usr/bin/mysqlcheck traffpro --auto-repair

service httpd start

#service tp-sheduler start

service traffpro start

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

Конечно лучше ночью, так как процесс починки базы занимает довольно таки много времени. У меня на это уходит 30-40 минут. За это время ни кто не сможет зайти в интернет из за остановленного Traffpro.

# vi /etc/crontab

59 23 * * * root /etc/sysconfig/tprepair.sh

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

9. Блокировка сайтов через ipset

Устанавливаем ipset:

# yum install ipset -y

Создаем каталог для скриптов:

# mkdir /etc/traffpro/blacklist

Создаем в этом каталоге два файла скрипта, первый будет блокировать сайты, а второй забирать из базы TP негодные сайты.

# vi /etc/traffpro/blacklist/blockip.sh

#!/bin/bash

echo -n "Applying blacklist to IPSET..."

ipset -N blacklist iphash

ipset -F blacklist

ipset -F sites

xfileip=$(cat /etc/traffpro/blockip/vk.com.ip)

xfileurl=$(cat /etc/traffpro/blockip/vk.com.url)

for ipaddr in $xfileip

do

ipset -A blacklist $ipaddr

done

for ipaddr in $xfileurl

do

ipset -A sites $ipaddr

done

echo "...Done"

echo -n "Applying blacklist to Netfilter..."

iptables -v -I FORWARD -m set --match-set blacklist src -j DROP

iptables -v -I FORWARD -m set --match-set sites src -j DROP

iptables -v -I FORWARD -m set --match-set blacklist src -j LOG --log-prefix "DROP blacklist entry"

iptables -v -I FORWARD -m set --match-set sites src -j LOG --log-prefix "DROP sitesblacklist entry"

echo "...Done"

Вот другой файл get_block_list.sh:

# vi /etc/traffpro/blacklist/get_block_list.sh:

#!/bin/bash

#==========================================================

#   project: Traffpro Billing sistem

#   url: traffpro.ru

#

#   developer: gavru@rambler.ru

#   16.02.2011

#

#==========================================================

 

#-- Изменени файла traffpro.cfg на основе данных БД

 

. /etc/traffpro/traffpro.cfg

first_start_fetcmail="1";

fetchmail_enable="0";

first_start_drweb="1";

MYSQL_COMMAND="mysql --host=$db_url -D $db_name --user=$db_usr --password=$db_passwd -e "

MYSQL_COMMAND_NO_COLUMN="mysql --column-names=FALSE --host=$db_url -D $db_name --user=$db_usr --password=$db_passwd -e "

MYSQL_COMMAND_HTML_RETURN="mysql -H --host=$db_url -D $db_name --user=$db_usr --password=$db_passwd -e "

domain=`$MYSQL_COMMAND_NO_COLUMN " select DISTINCT url from url_usr_serfing WHERE (url LIKE '%"$1"')"`

ip=`$MYSQL_COMMAND_NO_COLUMN " select DISTINCT ip from url_usr_serfing WHERE (url LIKE '%"$1"')"`

for url in  $domain

do

if [ -n "$url" ];then

echo $url  >> $1.url

fi

done

for ip_addr in $ip

do

if [ -n "$ip_addr" ];then

echo $ip_addr >> $1.ip

fi

done

for url in  $domain

do

if [ -n "$url" ];then

echo $url  >> full.data.domain

fi

done

for ip_addr in $ip

do

if [ -n "$ip_addr" ];then

echo $ip_addr >> full.data.ip

fi

done

# Deleting http:// and duplicates

sed -i -e 's/^[http:// ^t]*//' $1.url

cat $1.url |awk '! a[$0]++' > tmpfile;

mv tmpfile $1.url

# Full data Url

sed -i -e 's/^[http:// ^t]*//' full.data.domain

cat full.data.domain |awk '! a[$0]++' > tmpfile;

mv tmpfile full.data.domain

Как это работает:

1. Скрипт get_block_list.sh запускается с параметром например vk.com (./get_block_list.sh vk.com). После чего появляются два файла vk.com.ip и vk.com.url. В первом файла все IP адреса vk.com по которым обращались клиенты локальной сети, второй содержит url адреса социальной сети вконтакте.
2. Скрипт blockip.sh берет IP и URL адреса с файлов vk.com.ip и vk.com.url для их блокировки.

 

Заключение

Итак, мы имеем шлюз который раздает Интернет компьютерам локальной сети при этом считая трафик каждого компьютера, отключая компьютеры которые превысили месячный лимит.  Учет трафика решен с полна! Теперь нет боязни что кто-то накачает сотни Гигабайт трафика которые стоят хороших денег. Помимо учета трафика система легко администрируется, все делается с помошью веб интерфейса. Вот это и является изюминкой этой системы, сказать честно, это самая легкая система учета трафика которая ставится и настраивается за 10 минут, при этом сразу же начинает работает так как надо!

 
Almas AkeHayc
Пишу для себя, блог как записная книжка. Со временем все забывается, а у меня оно все в бложике. Будьте упертым глухим и веселым бегемотиком :)
5 января 2014, 14:59
11699

Загрузка...
Loading...

Комментарии

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

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

Инструкция для аллергиков. Как бороться с аллергией в период обострения

Инструкция для аллергиков. Как бороться с аллергией в период обострения

Я аллергик с детства. Имею аллергию на пыльцу березы, липы, полыни (выяснил это благодаря кожным пробам), а также пищевую аллергию на горчицу. Свои проблемы знаю, однако это меня не спасло.
Romeo_17
15 авг. 2017 / 17:21
  • 38491
  • 63
СМИ – ассистент провокаторов? Как гости из соседних стран сеют раздор в Казахстане

СМИ – ассистент провокаторов? Как гости из соседних стран сеют раздор в Казахстане

Инцидент с пьяным киргизским гостем на борту Air Astana, наверное, остался бы только во внутренних сводках авиакомпании, если бы г-н Доган, не поднял громкий крик о государственном языке.
openqazaqstan
вчера / 14:43
  • 8841
  • 99
Алматы предложили сделать центром секс-туризма

Алматы предложили сделать центром секс-туризма

Известный политолог России Андрей Карпов предложил сделать Алматы центром секс-туризма. Но для этого сперва нужно легализовать проституцию в стране.
tala03
13 авг. 2017 / 14:48
Казахский национализм раньше выглядел несовременно. Теперь он другой

Казахский национализм раньше выглядел несовременно. Теперь он другой

Националисты стали совсем другими. По-английски хорошо говорят, русскую классику цитируют. Очень современные, образованные, адекватные. А после Крыма в националисты уже чуть ли не любой казах готов был записаться.
Aidan_Karibzhanov
16 авг. 2017 / 16:52
«Доехать до Алтын Орды» – как мошенники обманывают алматинцев

«Доехать до Алтын Орды» – как мошенники обманывают алматинцев

Из множества грустных откровений постепенно сложился перечень самых распространённых уловок охотников за нашими деньгами. В нём ожидаемо лидировали профессиональные попрошайки.
caravan_kz
16 авг. 2017 / 15:05
  • 1798
  • 2
Недоразумение с грантами в ВУЗы: «медалисты» до сих пор имеют преимущество

Недоразумение с грантами в ВУЗы: «медалисты» до сих пор имеют преимущество

Многие способные выпускники без Алтын Белги готовились к тестированию, чтобы в честной борьбе попытать счастья на гранты без ущемления со стороны якобы "золотых" выпускников.
DanaJarlygapova
14 авг. 2017 / 14:35
На EXPO через Балхаш и Боровое своим ходом

На EXPO через Балхаш и Боровое своим ходом

Мы объехали по кругу озеро Иссык-Куль, о чем повествует предыдущий пост, и вернувшись из поездки подумали, а почему бы нам не рвануть на наше озеро, не менее прекрасное?
yelenasergiyenko
13 авг. 2017 / 13:13
  • 1369
  • 6
В Кокшетау строят два парка для молодёжи. Будут учтены интересы и любителей спорта

В Кокшетау строят два парка для молодёжи. Будут учтены интересы и любителей спорта

Общая площадь парка составляет 25 гектаров. На территории предусмотрено устройство прогулочных дорожек, площадок для установки аттракционов и павильонов различного назначения, цветников.
zhasakmola
вчера / 17:13
  • 1298
  • 1
«Мы все дышим». Лучшие цитаты 5 серии 7 сезона «Игры престолов»

«Мы все дышим». Лучшие цитаты 5 серии 7 сезона «Игры престолов»

Нас подготовили к самой долгожданной битве за сезон. Встреча дракона и Джона. Старые записи мейстеров. Возвращение давно забытого героя. Интриги Мизинца. Новый «отряд самоубийц».
on_looker
15 авг. 2017 / 13:57
  • 1160
  • 10