Ставим шлюз с биллингом
- By admin
- Пн 05 Апрель 2010
В шлюзе (компьютер, который обеспечивает подступ в интернет другим компьютерам организации) должно стоять 2 сетевых карты: одна для подключения внутренней сети, вторая для подключения интернета.
Сперва проверим, определились ли сетевые карты, введя команду
ifconfig -a
Результат выполнения команды:
test@test-gateway:~$ ifconfig -aeth0 Link encap:Ethernet HWaddr e0:cb:4e:1c:29:bainet addr:192.168.1.99 Bcast:192.168.1.255 Mask:255.255.255.0inet6 addr: fe80::e2cb:4eff:fe1c:29ba/64 Диапазон:СсылкаUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:3400 errors:0 dropped:0 overruns:0 frame:0TX packets:410 errors:0 dropped:0 overruns:0 carrier:0коллизии:0 txqueuelen:100RX bytes:568554 (568.5 KB) TX bytes:53278 (53.2 KB)Память:fbee0000-fbf00000eth1 Link encap:Ethernet HWaddr e0:cb:4e:1c:27:d8BROADCAST MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0коллизии:0 txqueuelen:1000RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)Память:fbde0000-fbe00000lo Link encap:Локальная петля (Loopback)inet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Диапазон:УзелUP LOOPBACK RUNNING MTU:16436 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0коллизии:0 txqueuelen:0RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
У меня сетевая карта eth0 подключена к интернету, eth1 к локальной сети. При установке системы (ubuntu server 9.10) подключение к интернету было настроено. Разберемся, как подключится к локальной сети. IP адрес локальной сети 192.168.3.1 маска: 255.255.255.0 шлюза нет. Для настройки вводим команды изменения настроек для сетевой карты eth1 и перезагружаем сеть
sudo ifconfig eth1 192.168.3.1 netmask 255.255.255.0sudo /etc/init.d/networking restart
Подсоединяем ко второй сетевой карте другой компьютер, назначаем ему адрес (я назначил 192.168.3.2) и пробуем этот компьютер попинговать, должно работать. Более подробно настройка сети описана в статье «Настройка локальной сети в Linux».
Далее, настроим фаервол так, чтобы из внутренней сети был виден интернет, а из интернета внутренняя сеть была недоступна. Для начала создадим пароль для пользователя root, в дальнейшем все команды будем делать из-под него.
sudo passwd root
потом переходим в режим управления root -ом
su root
Редактируем файл sysctl.conf командой nano /etc/sysctl.conf . Здесь находим строку sctl net.ipv4.ip_forward = 1 и снимаем с нее комментирование. Сохраняем файл и выходим из редактора. Выполняем команду echo 1 > /proc/sys/net/ipv4/ip_forward.
Устанавливаем следующие пакеты:
- mc -- консольный файловый менеджер для *nix систем;
- squid -- прокси-сервер;
- build-essential libgnademysql-dev iptables-dev libcurl4-openssl-dev libfreeradius-dev libssl-dev libmysql++-dev -- необходимые библиотеки для установки traffpro
- mysql-server mysql-client apache2 libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libmysqlclient15-dev -- эти пакеты нужны для того, чтобы настроить веб-сервер. Дело в том, что для управления биллинговой системой используется веб-интерфейс.
установка очень простая: вводим команду sudo apt-get install mc squid build-essential libgnademysql-dev iptables-dev libcurl4-openssl-dev libfreeradius-dev libssl-dev libmysql++-dev mysql-server mysql-client apache2 libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libmysqlclient15-dev -y . Параметр -y нужен для того, чтобы не система не спрашивала о подтверждении установки дополнительных пакетов.
В ходе установки потребуется ввести пароль от mysql. Задать можно любой. главное его запомнить, он еще пригодится.
Удалим прокси-сервер squid из автозагрузки, выполнив команду sudo update-rc.d -f squid remove . Далее, нам надо остановить сам squid. Для этого выполняем команду sudo /etc/init.d/squid stop
После установки этих пакетов, нам нужно создать пустую базу данных MySQL и добавить пользователя к ней. Для этого, вводим команду
mysql -u root -p
система запросит ввести пароль. Вводим тот пароль, который мы вводили при установке MySQL. Если забыли, то восстанавливаем забытое.
После того, как «зашли» в базу mysql создаем базу данных, и пользователя, которому назначаем привелегии
mysql>create database traffpro;mysql>GRANT ALL PRIVILEGES ON traffpro.* TO traffpro_user@'localhost' IDENTIFIED BY 'MY_PASSWORD' WITH GRANT OPTION;
где traffpro -- название базы данных, traffpro_user -- имя пользователя, MY_PASSWORD -- пароль пользователя.
далее заходим на сайт traffpro.ru, идем в раздел скачать, заходим в каталог release/BASH_INSTALLER и находим последний релиз traffpro. на момент 02.04.2010 это будет архив traffpro.free.1.3.4-01.tar.gz . Качаем командой wget адрес_архива (например, wget http://download.upit-systems.com/release/BASH_INSTALLER/traffpro.free.1.3.4-01.tar.gz)
Распакуем скачаный нами архив в каталог tmp командой tar -xvf traffpro.free.1.3.4-01.tar.gz -C /tmp
Итак, подготовительные операции мы осуществили, теперь займемся непосредственной установкой билинга. Для этого заходим в распакованный каталог с установщиком и запускаем его. Так как переходим в каталог командой cd /tmp/traffpro.tree.1.3.4/. В этом каталоге запускаем сам установщик командой sudo sh install.sh.
Отвечаем на вопросы так:
Лично у меня графическая установка не заработала, так как не был установлен пакет dialog, да и Бог с ней - на предложение запустить установку в графическом режиме (Start TraffPro installation in graphic mode? [y/n]) отвечаем - n
Выбираем тип дистрибутива - 1 - Debian/Ubuntu or other
Собрать демон контроля (y) или использовать уже собранный (n)? - y
Собрать демон таймера (y) или использовать уже собранный (n)? - y
Сохранить предыдущие настройки TraffPro (в директорию /var/traffpro_back)? [y/n] - n
Обновляем систему (y) или устанавливаем (n)? - n
Настроить систему сейчас (y) или оставить настройки по-умолчанию (n)? - y
Укажите путь установки TraffPro (по-умолчанию - /opt/traffpro) - оставляем по-умолчанию
Запускать TraffPro в режиме демона? [y/n] - y
Укажите расположение базы данных (по-умолчанию - localhost) - y
Введите имя пользователя базы данных MySQL (по-умолчанию - root) - traffpro_user
Введите пароль пользователя базы данных MySQL (по-умолчанию - пустой) - MY_PASSWORD
Введите имя базы данных MySQL (по-умолчанию - traffpro) - оставляем по-умолчанию
Включить контроль MAC адресов? [y/n] - n
Включить детализацию по портам [y/n]? - y
Включить учет трафика и защиту сервера? [y/n] - n
Укажите внешний интерфейс (по-умолчанию - eth0) - пока оставляем eth0
Включить детализацию WWW страниц? [y/n] - y
Введите внешний IP-адрес на интерфейсе для того, чтобы поднять NAT (или оставьте пустым, для того, чтобы поднять MASQUERADE) - 192.168.1.99 (см ifconfig в начале)
Укажите IP-адрес для прослушивания монитора (по-умолчанию - 127.0.0.1) - оставляем по-умолчанию
Укажите порт для прослушивания монитора: (по-умолчанию - 9999) - оставляем по-умолчанию
Укажите размер очереди пакетов (по-умолчанию - 2048) - оставляем по-умолчанию
Укажите имя администратора TraffPro (по-умолчанию - admin) - оставляем по-умолчанию
Укажите пароль администратора TraffPro (по-умолчанию - admin) - оставляем по-умолчанию
Настроить Traffpro на работу с прозрачным squid? [y/n] - y
Укажите вашу сеть и маску сети (по-умолчанию - 192.168.0.0/255.255.255.0) - 192.168.5.0/255.255.255.0
Укажите порт SQUID для подключения (по-умолчанию - 3128) - оставляем по-умолчанию
Включить встроенный парсер логов squid? [y/n] - y
Укажите лог-файл SQUID (по-умолчанию - /var/log/squid/access.log) - оставляем по-умолчанию
Включить планировщик заданий? [y/n] - y
Загрузить модули для работы ftp сервисов? [y/n] - y
Добавить администратора в базу данных [y/n]? - y
Запускать TraffPro при загрузке системы? [y/n] - y
Когда установка закончится активируем модуль веб-сервера apache mod_rewrite.so -- этот модуль обеспечивает при отсутствии какого-то запрашиваемого файла на веб-сервере будет вызван какой-то обрабатывающий скрипт. Для этого выполним команды:
cd /etc/apache2/mods-available/
sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart
Если все выполнили нормально, то зайдя по адресу http://192.168.1.99/traffpro/index.php/admin_login/ должны форму входа в блок администраторов. логин и пароль задавали при установки самого билинга. По умолчанию логин и пароль admin.
Теперь настроим прокси-вервер squid. Открываем файл squid.conf командой sudo nano /etc/squid/squid.conf
iptables -A INPUT -m tcp -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -m tcp -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3128 -j QUEUE
iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 3128 -j QUEUE
iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -s 192.168.5.0/24 -j REDIRECT --to-ports 3128
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
Далее, перезагружаем компьютер, и у нас должно все работать.
Примерный список статей, по которым я настраивал traffpro:
- http://traffpro.ru/forum/topic_845
- http://free.upit-systems.com/forum/topic_243#post-6
- http://www.openkazan.info/TraffPro_NAT_Ubuntu_Linux