Здравствуйте!!!
В интернете постоянно задают вопросы "Какой биллинг поставить?" или "Как раздавать инет?". Поисковики обычно закидывают человека на сайты дорогих биллинговых программ, что ж сделаешь, бизнес у них таков.
Меня тоже посетили подобные запросы и пройдя "круги ада" мне посоветовали бесплатный биллинг Stargazer. Первые ощущения от него мне понравились, да и после я в нём не разочаровался. Выделю то что мне понравилось и нет.
Понравилось:
-Лёгкость (на машине в 266МГц и 128МБ ОЗУ тянет до 120 пользователей и это не предел)
-Простота
-Шлюзовой доступ в интернет
-Разделение трафика
Не понравилось:
-Большое количество ICMP пакетов кидает в сеть
Данный биллинг подойдёт для домашних, офисных и локальных сетей.
Приступим к установке.
Для его установки нам потребуется сервер живущий под FreeBSD или Linux(мой случай). Перед установкой необходимо поставить библиотеку с который работает Stargazer(SG), это libexpat, взять её можно от сюда http://sourceforge.net/projects/expat. Затем тянем с официального сайта сам биллинг (http://stg.dp.ua/download.php).
Собрать его из исходников у меня так и не получилось, ставил из бинарого пакета(на сайте имеется). Ставится он одним "тыком" rpm -i Stargazer-.rpm
Теперь его следует настроить.
Начнём с файла /etc/stargazer/rules
В нём прописываются адреса или диапазоны адресов которые можно считать по разным ценам. Содержимое его таково:
#ПРОТОКОЛ АДРЕС НАПРАВЛЕНИЕ
# Одна часть адресов, которые мы будем считать дешевле
ALL 10.0.0.0/8 DIR0
ALL 95.71.128.0/17 DIR0
# Пинги не считаем
ICMP 0.0.0.0/0 NULL
# Мир, те всё что не попало под предыдущие правила
ALL 0.0.0.0/0 DIR1
Теперь отредактируем /etc/stargazer/stargazer.conf, файл на русском языке так что отредактировать его не составит труда.
И на завершающей стадии настроем фаервол и скрипты подключения/отключения.
#!/bin/bash
#Машина администратора
admin=192.168.1.50
#Адреса роутера
server0=192.168.1.1 #Адрес сетевой карты смотрящей в сеть
server1=192.168.0.3 #Адрес сетевой смотрящей в интренет
# Интерфейс смотрящий на клиентов
iface_cli=eth0
# Интерфейс смотрящий во внешний мир
iface_world=eth1
#Порты, на которых работает конфигуратор и авторизатор
conf_port=4445
user_port1=4444
echo "1" > /proc/sys/net/ipv4/ip_forward
# Очищаем правила файрвола
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
iptables -t nat -X
# Политика по умолчанию DROP: всем всё запрещено
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
# Разрешаем всё на локальном интерфейсе
iptables -t filter -A INPUT -d 127.0.0.1 -j ACCEPT
iptables -t filter -A OUTPUT -s 127.0.0.1 -j ACCEPT
# Разрешить серверу общаться со внешним миром
iptables -t filter -A INPUT -i $iface_world -j ACCEPT
iptables -t filter -A OUTPUT -o $iface_world -j ACCEPT
# SSH для админа
iptables -t filter -A INPUT -p tcp -s $admin -d $server0 --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -d $admin -s $server0 --sport 22 -j ACCEPT
# Stargazer configurator
iptables -t filter -A INPUT -p tcp -s $admin -d $server0 --dport $conf_port -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -d $admin -s $server0 --sport $conf_port -j ACCEPT
# UDP stargazer InetAccess
iptables -t filter -A INPUT -p udp -s 192.168.1.0/8 --sport $user_port1 -d $server0 -j ACCEPT
iptables -t filter -A OUTPUT -p udp -d 192.168.1.0/8 --dport $user_port1 -s $server0 -j ACCEPT
#Маскарад
iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE
Для того что бы после присоединения через программу клиент выходил в интернет и при отключение клиентом интернет отключался надо отредактировать два файла скрипта в папку /etc/stargazer это OnConnect и OnDisconnect(кто за что отвечает видно из названия)
и так OnСonnect
#!/bin/bash
ip=$2
iptables -t filter -A INPUT -s $ip -j ACCEPT
iptables -t filter -A FORWARD -s $ip -j ACCEPT
iptables -t filter -A FORWARD -d $ip -j ACCEPT
iptables -t filter -A OUTPUT -d $ip -j ACCEPT
OnDisconnect
#!/bin/bash
ip=$2
iptables -t filter -D INPUT -s $ip -j ACCEPT
while [ $? -eq 0 ]
do
iptables -t filter -D INPUT -s $ip -j ACCEPT
done
##################################
iptables -t filter -D FORWARD -s $ip -j ACCEPT
while [ $? -eq 0 ]
do
iptables -t filter -D FORWARD -s $ip -j ACCEPT
done
##################################
iptables -t filter -D FORWARD -d $ip -j ACCEPT
while [ $? -eq 0 ]
do
iptables -t filter -D FORWARD -d $ip -j ACCEPT
done
##################################
iptables -t filter -D OUTPUT -d $ip -j ACCEPT
while [ $? -eq 0 ]
do
iptables -t filter -D OUTPUT -d $ip -j ACCEPT
done
Теперь убедимся что интернет на сервере работает и пробуем подключить клиента. У клиента незабываем прописать шлюз(адрес сервера) и ДНС.
Программы конфигуратор и клиент для сервера так же хорошо работают в Linux из под wine.
Более подробную информацию можно найти на официальном сайте разработчика http://stg.dp.ua/
| < Предыдущая | Следующая > |
|---|