Yvision.kzYvision.kz
kk
Разное
Разное
399 773 постов41 подписчиков
Всяко-разно
0
23:04, 28 июля 2011

Установка и настройка Netup UTM5 на CentOS 5.5

Blog post image

Установка Netup UTM5 не так проста как кажется...

Blog post image

Биллинговая система Netup UTM активно используеться многими пользователями и провайдерами, об этом говорит форум со сотнями сообщений. Установку биллинга можно произвести с помощью официальной документации, но как оказалось установить его не так просто даже по документации идущей с биллингом. Вся информация по решению проблем во время установки разбросана по форумам. Если Вы в первый раз устанавливаете этот биллинг, Вас подстерегают неприятности на первом же шагу.

Итак мы имеем: Компьютер с двумя сетевыми адаптерами, первый адаптер eth0 подключен к Интернету, второй eth1 подключен в локальную сеть. Допустим что Интернет уже настроен на этом компьютере и мы хотим просто раздать Интернет в локальной сети с квотами (лимитами). Все это будем ставить на CentOS 5.5 x32, версия биллинга у нас utm5-2.1.005.rpm

Установка будет проходить по следующей последовательности:

1. Установка NetUp UTM5

2. Установка MySQL

3. Создание базы для UTM

4. Заливка лицензионного ключа

5. Создание симлинков на библиотеки OpenSSL

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

7. Правка конф. файлов для нормального запуска

8. Запуск ядра биллинга

9. Открытие порта 11758 фаервола сервера

10. Запуск интерфейса администратора

 

Приступим к установке...

1. Установка NetUp UTM5

# rpm –ihv --nodeps utm5-2.1.005.rpm

После установки, UTM5 расположиться в папке /netup/utm5/

 

2. Установка MySQL

# yum install mysql mysql-devel mysql-server -y

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

# service mysqld start                      //запустим демон MySQL

# service httpd start                        //запустим демон Apache

# chkconfig --level 35 mysqld on    //добавим демон MySQL в автозагрузку

# chkconfig --level 35 httpd on //добавим демон Apache в автозагрузку

 

3. Создание базы для UTM

Создадим базу для UTM:

# mysqladmin create UTM5

# mysql UTM5 < /netup/utm5/UTM5_MYSQL.sql

ERROR 1064 (42000) at line 2: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '--------------
CREATE TABLE pre_invoice (
id int(11) NOT NULL auto_increment,
' at line 1

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

Решение данного глюка в удалении комментариев:

# sed '/^\--/d' ./UTM5_MYSQL.sql > tmp.sql

Данная комманда убирает все комментарии  и создает рабочий файл tmp.sql. Теперь подправим нашу комманду с учетом изминений:

# mysql UTM5 < /netup/utm5/tmp.sql

 

4. Заливка лицензионного ключа

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

# mysql UTM5 < reg_key.sql

 

5. Создание симлинков на библиотеки OpenSSL

Тут нас подстерегает еще один глюк:

/netup/utm5/bin/utm5_core: error while loading shared libraries: libssl.so.0.9.7: cannot open shared object file: No such file or directory

Решается симлинками:

# ln -s /usr/lib/libssl.so.0.9.8e /usr/lib/libssl.so.0.9.7

# ln -s /usr/lib/libcrypto.so.0.9.8e /usr/lib/libcrypto.so.0.9.7

Может быть так еще

# ln -s /lib/libssl.so.0.9.8e /lib/libssl.so.0.9.7

# ln -s /lib/libcrypto.so.0.9.8e /lib/libcrypto.so.0.9.7

 

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

# yum search compat-libstdc++

# yum install compat-libstdc++-33-3.2.3-61.i386

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

/netup/utm5/bin/utm5_core: /lib/libstdc++.so.5: version `CXXABI_1.2' not found (required by /netup/utm5/bin/utm5_core)
/netup/utm5/bin/utm5_core: /lib/libstdc++.so.5: version `GLIBCPP_3.2' not found (required by /netup/utm5/bin/utm5_core)

7. Правка конф. файлов my.cnf и utm5.conf

Нужно отредактировать файл utm5.conf согласно с настройками файла my.cnf

# gedit /etc/my.cnf

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

socket = /var/run/mysql/mysql.sock

Скопируйте в буфер параметр /var/run/mysql/mysql.sock

Закройте файл my.conf

Далее откройте файл /netup/utm5/utm5.cfg:

# gedit /netup/utm5/utm5.cfg

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

database_sock_path=/var/run/mysql/mysql.sock

Удалите содержимое параметра (текст после равно) и вставте из буфера /var/run/mysql/mysql.sock

Данная правка конфигурационных файлов избавляет от ошибки:

ERROR : May 07 10:26:51 DBASQLError: MySQL Connection Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Если вдруг у вас появляется ошибка:

CRIT: RPCServer@0.0.0.0: Unable to bind to address 0.0.0.0:11758: Address already in use
CRIT: NFBuffer: Unable to bind to address 127.0.0.0:9996 Address already in use

Сделайте следующее для исправления, откройте файл utm5.conf:

# gedit /netup/utm5/utm5.conf

Найдите следующие строчки и раскоментируйте их:

database_host=localhost
database_port=3306

localhost замените на 127.0.0.1


8. Запуск ядра биллинга

# /etc/rc.d/init.d/utm5_core start

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

# chkconfig --add utm5_core

chkconfig utm5_core on

# chkconfig --level 356 utm5_rfw on

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

# chkconfig --level 356 utm5_radius on

 

После требуется перезагрузить наш шлюз:

# reboot

 

9. Открытие порта 11758 фаервола сервера

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

Зайдите в главное меню System->Administration->Security level and Firewall

Blog post image

Конечно настройка фаервола через графический интерфейс не есть "Линукс Вэй", но хороша для понимания. Кому надо лучше, пишите правила фаервола в консоли.

10. Запускаем интерфейс администратора

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

До запуска интерфейса администратора установите Java Machine c офиц. сайта www.java.com

В комплекте с биллингом идет файлик UTM_Admin.jar,  запускаем его.

Вводим IP компьютера на котором установлен биллинг, логин/пароль (init/init)

и

смотрим:

Blog post image

Blog post image

Все биллинг установлен.

После этого всего у меня осталось ошущение, что все таки криво где-то Blog post image

___________________________________________________________________________________________________________

Еще хочу добавить не много слов о лицензии. Лицензионный ключ от версии 5.2.005 не подходит для версии 5.2.006 и выше, так как система лицензирования поменялась. Поэтому если Вы захотите использовать старый ключ с версией 006 и далее,  у Вас появится следующая ошибка:

ERROR 1146 at line 1: Table 'UTM5.registration_info'doesn't exist

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

Еще может быть вот такая ошибка:

Invalid UTM5 core version

biz.netup.project.utmadmin bla bla bla

Это значить что Вы пытаетесь соединится админ интерфейсом не совместимым со серверной частью биллинга (ядром). Для исправления нужны биллинг и админ клиент одинаковых версий. Иначе Вы не сможете соединится с биллингом.

 

Настройка UTM5

Для настройки нам нужно:

1. Установить сенсор (IPCAD, FPROBE-ulog, NG_NETFLOW)

Сенсор - это программа отслеживающая (протоколирующая) проходящий трафик, то есть она регистрирует откуда/куда ушел пакет. Данные зафиксированные сенсором отправляются коллектору. Коллектор - это хранилище данных, поступающих от сенсора. В роли хранилищя данных (коллектора) поступающих от сенсора может выступать база MYSQL например. У нас сенсором будет IPCAD, а коллектор мы будем использовать встроенный в UTM5, который будет складывать все в базу MySQL.

2. Настройка файервола (IPTABLES)

Настройка правил файервола позволит нам включать/отключать пользователей от Интернета автоматически (при превышении квоты) или прямо из интерфейса администратора биллинговой системы. 

3. Правка UTM5.cfg на получение потока данных от IPCAD

Коллектор UTM5 по умолчанию принимает данные всех сенсоров (0.0.0.0), что нам не нужно, так как сенсор и коллектор у нас на одном компьютере мы должны задать localhost

4. Настройка самого UTM5

Базовая настройка, без которой Вы не сможете использовать биллинг.

 

Приступим к настройке (базовой).

1. Установка сенсора IPCAD

# yum install libpcap libpcap-devel -y

# wget http://centos.alt.ru/pub/ipcad/RHEL/RPMS/i386/ipcad-3.7.3-4.el5.i386.rpm

# rpm -ihv ipcad-3.7.3-4.el5.i386.rpm


Конфигурационный файл находится в /etc/ipcad.conf, иногда может быть в другом месте

#-------------Начало файла-----------------

interface eth0;

interface eth1;

netflow export destination 127.0.0.1 9996;
netflow export version 5;
pidfile = /var/run/ipcad.pid;
dumpfile = /var/log/ipcad/ipcad.dump;

#-------------Конец файла------------------

Сохраянем файл ipcad.conf

# mkdir /var/log/ipcad/

# chmod 600 /var/log/ipcad/

Ставим IPCAD в автозагрузку:

# chkconfig --level 345 ipcad on

# reboot

# ipcad -rds

 

Все IPCAD установлен!

Откройте файл /netup/utm5/utm5.cfg, в нем провертье чтобы были следующие строчки:

nfbuffer_host=127.0.0.1

nfbuffer_port=9996           // на этот порт будут отправляеться информация с сенсора IPCAD, коллектор UTM5 будет собирать.

 

2. Настройка файервола (IPTABLES)

Запускаем терминал и строчим:

# iptables -P FORWARD DROP

# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.20.30.40

 

А теперь давайте разберем для чего эти команды:

# iptables -P FORWARD DROP

Этой коммандой мы запретили прохождение пересылаемых пакетов (действие по умолчанию). Теперь пакеты с локальной сети не уйдут в Интернет. Точнее сказать доступа в Интернет не будет не у одной машины локальной сети. Доступ в Интернет будет автоматически управляться UTM5.

# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.20.30.40

Настройка NAT (Network Address Translation), это нужно для обеспечения общего доступа в Интернет компьютеров локальной сети.

Где:

eth0 - Сетевой адаптер подключенный к Интернету

192.168.1.0/24 - Наша локальная сеть (подсеть)

10.20.30.40 - IP адрес внешнего адаптера

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

# iptables -nL

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

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy DROP)
target     prot opt source               destination         
RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain RH-Firewall-1-INPUT (2 references)
target     prot opt source               destination

iptables -t nat -nL

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  -- 192.168.1.0/24       0.0.0.0/0           to:10.20.30.40

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

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

Теперь удалите правило RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0 , это правило будет пускать всех в Интерент даже после FORWARD DROP:

# iptables -D FORWARD 1

Откройте файл /etc/sysctl.conf:

# gedit /etc/sysctl.conf

Найдите в нем строчку net.ipv4.ip_forward = 0, затем измините 0 на 1, получится так net.ipv4.ip_forward = 1

Это разрешает форвардинг(пересылку) пакетов с локальной сети в Интернет через наш шлюз.

Теперь сохраним наши прописанные правила:

# service iptables save

# sysctl -p

На ваших компьютерах локальной сети не должно быть Интернета. Теперь Интернет должен включать/отключать UTM5, но нам нужно проверить вручную будут ли работать правила которые UTM5 будет применять к компьютерам локальной сети. Давайте включим и отключим один клиентский компьютер, допустим он имеет IP адрес 192.168.1.50:

# iptables -A FORWARD -s 192.168.1.50 -j ACCEPT

После этой команды проверьте наличие Интернета на компьютере с адресом 192.168.1.50.

Теперь давайте запретим выход в Интернет компьютеру с IP адресом 192.168.1.50:

# iptables -D FORWARD -s 192.168.1.50 -j ACCEPT

После этой команды Интернета на компьютере с адресом 192.168.1.50 не должно быть.

Как видете ручное включение/отключение работает как надо. Осталось настроить сам UTM5 из под админки. Заходим в админку и идем в меню НАСТРОЙКИ->ПРАВИЛА ФАЕРВОЛА. Прописываем следующие правила-

Делаем два правила:

Вкл:iptables -A FORWARD -s 0/0 -d UIP -j ACCEPT
Выкл:iptables -D FORWARD -s 0/0 -d UIP -j ACCEPT
И
Вкл:iptables -A FORWARD -d 0/0 -s UIP -j ACCEPT
Выкл:iptables -D FORWARD -d 0/0 -s UIP -j ACCEPT

Эти правила работают (отключают/включают Интернет)

Если к этим правилам добавить маску (UBITS) правила не срабатывали, оказалось что UTM вставлял за место UIP всю сетку 10.168.50.0 с маской 255.255.255.0

А вот правила ниже которые, вообще не работают, может я что-то делаю не так:

Включение Интернета:    -A FORWARD -s UIP -j ACCEPT

Отключение Интернета:  -D FORWARD -s UIP -j ACCEPT

 

Провертье все запушенные демоны (сервисы) на наличие utm5_core, utm5_radius и utm5_rfw:

chkconfig --list

utm5_core       0:off   1:off   2:on    3:on    4:on    5:on    6:off                 
utm5_radius     0:off   1:off   2:on    3:on    4:off   5:on    6:on                 
utm5_rfw        0:off   1:off   2:on    3:on    4:off   5:on    6:on

Как видим запущено три демона UTM.

Теперь надо настроить UTM5, завести классы трафика, услугу, первого пользователя...

- Классы трафика. Вкладка Тарификация - > Классы трафика

Здесь редактируем классы трафика:

Incoming -

Источник 0.0.0.0 / 0.0.0.0                            Адресат 10.168.50.0 / 255.255.255.0     (Наша локальная сеть)

Outgoing -

Источник 10.168.50.0 / 255.255.255.0        Адресат 0.0.0.0 / 0.0.0.0

Internal (Локальный трафик)

Источник 10.168.50.0 / 255.255.255.0        Адресат 10.168.50.0 / 255.255.255.0

Blog post image

- Услуги. Тарификация -> Услуги

Нажимаем кнопку Обновить -> Добавить

Называем услугу Платный трафик

Тип услуги Передача IP-трафика

Галка Фиктивная услуга

После повявится окошко, в нем:

Метод снятия денег В течении всего расчетного периода

Границы тарификации - Нажымаем кнопку Добавить

Добавляем Классы трафика и указываем стоимость. Так как у нас провайдер Интелсофт, который учитвает только входящий трафик по цене 1 тенге = 1 Мбайт, поэтому мы добавляем границе Incoming: Количество 0 - Стоимость 1

Blog post image

- Тарифный план. Тарификация -> Тарифные планы

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

- Добавление пользователя. Пользователи и группы -> Пользователи

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

Введите логин -> Нажмите кнопку Применить

Далее перейдите во вкладку Тарифные планы, шелкнув соотвествующию вкладку и нажмите кнопку Добавить

Выберите созданный нами тарифный план Интернет по трафику, в Расчетный период укажите тип периода Ежемесячно. Далее нажмите кноку Применить

Появится еще одно окно, в этом окне нажмите кнопку Добавить, укажите IP компьютера локальной сети (я выбрал 10.168.50.50) с маской 255.255.255.0.
Фаервол укажите LOCAL

Нажмите ОК

Теперь у Вас заведен первый пользователь (клиент), данный пользователь не может выйти в Интернет, чтобы он вышел выделите созданного пользователя и нажмите кнопку Редкатировать. Нажмите кнопку Внести платеж, в поле ввода Сумма введите 10 и нажмите ОК.

Теперь провертье работу UTM5, включил ли он Интернет указанному компьютеру, войдите в терминал:

# iptables -L FORWARD
Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             10.168.50.50        
ACCEPT     all  --  10.168.50.50         anywhere

Как видим UTM5 включил Интернет компьютеру с IP адресом 10.168.50.50, УРА ТОВАРИЩИ, УРА!



0