Настройка биллинговой системы abills + VPN + radius + RLMPerl + mysql
Вот пришлось перейти на другую Ось. Поэтому перепишу статью, с учетом новых версий abills и Ubuntu 10.04 server
За основу взяты статьи Настройка биллинговой системы abills + VPN + radius + mysql и естественно, Установка ABillS + Ubuntu + FreeRadius2 + RLMPerl
Итак начнем.
Содержание
Система
Обновляем систему
$ sudo apt-get update $ sudo apt-get dist-upgrade
Устанавливаем пакеты
sudo apt-get install mysql-server mysql-client libmysqlclient-dev apache2 apache2-doc apache2-mpm-prefork \ apache2-utils libexpat1 ssl-cert cvs libdbi-perl libdbd-mysql-perl libdigest-md4-perl \ libdigest-sha-perl libcrypt-des-perl libperl-dev make
Создаем недостающие каталоги и меняем права:
# mkdir -p /usr/abills/var/log # touch /usr/abills/var/log/abills.log # chown -Rf www-data:www-data /usr/abills/cgi-bin # chown -Rf www-data:www-data /usr/abills/Abills/templates # chown -Rf www-data:www-data /usr/abills/backup
Закачка дистрибутива Abills
Тк далее в настройках будут ссылки на этот дистрибутив, то для последовательного изложения, нужно его выкачать
Идем на страницу загрузки и скачиваем последнюю версию Abills, на данный момент Abills-0.54.
# cp abills-0.54.tgz /usr # tar -xvzf abills-0.54.tgz
PPTP
# mv /etc/ppp/pptpd-options /etc/ppp/pptpd-options.old
Создаем файл /etc/ppp/pptpd-options со следующим содержимым:
mtu 1490 mru 1490 ms-dns 172.16.130.1 # ip адресс DNS сервера ipcp-accept-local ipcp-accept-remote lcp-echo-failure 30 lcp-echo-interval 5 auth # Require MPPE 128-bit encryption require-mschap-v2 # (note that MPPE requires the use of MSCHAP-V2 during authentication) require-mppe-128 defaultroute #plugin radius.so #plugin radattr.so #debug
Более детальное описание опций здесь - http://mppe-mppc.alphacron.de/
PPTPD
pptpd, (подпольная кличка - PopTop) можете взять из своего дистрибутива
Правим файл /etc/pptpd.conf :
ppp /usr/sbin/pppd option /etc/ppp/options.pptpd #debug # stimeout 10 # noipparam logwtmp bcrelay eth0 localip ***.***.***.*** # Здесь IP адрес интерфейса вашего pptpd сервера, например, 192.168.20.1 #remoteip 192.168.0.234-238,192.168.0.245 # Закоментировать, назначается #радиусом
- Редактируем файл /etc/ppp/chap-secret
# Secrets for authentication using CHAP # client server secret IP addresses vova * vova 192.168.200.5
- Перезапускаем pptpd демон и пробуем войти по VPN c Win машины с авторизацией CHAP, или MS-CHAP V2 c шифрацией трафика с именем vova и паролем vova. Если все ок, снимаем ремарки со строк
plugin radius.so plugin radattr.so
в файле options.pptpd и идем дальше.
Настройка Iptables (фаервола)
Хотя настройка фарвола это совсем другая история (см тут ), но для проверки, как работает инет через данную систему, привожу тут несколько правил, которые помогут проверить работу всей системы.
#!/bin/sh # # Сначала сбросим все правила, которые были до этого /etc/init.d/iptables stop ########################################################################### # # Configuration options. # # # Internet Configuration. # INET_IP="213.54.25.11" # Арес интерфейса, который смотрит в интернет LAN_VPN_RANGE="192.168.10.0/24" # Диапазон адресов VPN сети, имеющей доступ # в инет # IPTables Configuration. # # Путь, где находится iptables. IPTABLES="/usr/local/sbin/iptables" # Включаем форвардинг echo "1" > /proc/sys/net/ipv4/ip_forward $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT # Делаем NAT $IPTABLES -t nat -A POSTROUTING -s $LAN_VPN_RANGE -j SNAT --to-source $INET_IP
Ну вот и все. Этого достаточно для проверки. Но на рабочем сервере такое использование я бы очень не рекомендовал.
Настройка вебсервера APACHE
# cp /usr/abills/misc/apache/abills_httpd.conf /etc/apache2/sites-enabled/
Создаем сертификат
# /usr/abills/misc/certs_create.sh apache
Отвечаем на вопросы, задаваемые скриптом
Запускаем установленные модули для апача:
# a2enmod ssl # a2enmod rewrite # a2enmod suexec # a2enmod include
Перезапускаем apache:
# /etc/init.d/apache2 restart