Платежни сметки на Ubuntu сървър
На практика голяма част от предоставяните от доставчиците услуги или услуги изискват наличието на автоматизирана система за отчитане на изразходваните средства. Днес има голям брой системи за таксуване, платени и безплатни, разпространявани под безплатен лиценз. Някои от тях са фокусирани върху строго определена услуга, други решения са многофункционални. Системата за таксуване ABillS принадлежи към класа на програмите "всичко в едно".
Характеристики на ABillS
Инсталиране на FreeRADIUS
Нека започнем с инсталирането на FreeRADIUS, който отговаря за прехвърлянето на информация между сервизните програми и системата за таксуване, осигурявайки три A (Authorization, Authentication, Accounting). Той присъства в хранилищата на по-голямата част от дистрибуциите, следователно:
sudo apt-get инсталирайте freeradiusradiusclient1 |
В работата си FreeRADIUS използва няколко конфигурационни файла, които се намират в директорията /etc/freeradius (в зависимост от вида на инсталацията или разпространението, това може да е /etc/raddb). Не е необходимо да докосвате всички, просто променете няколко параметъра. Нека започнем с radiusd.conf, който съдържа общи настройки на сървъра.
sudo mcedit /etc/freeradius/radiusd.conf |
Потребителските данни се записват във файла /etc/freeradius/users, необходимо е да коригирате съответния параметър в него, така че скриптът ABillS да отговаря за това.
DEFAULT Acct-Status-Type == Alive Exec-Program = "/usr/abills/libexec/racct.pl"
DEFAULT Acct-Status-Type == Stop Exec-Program = "/usr/abills/libexec/racct.pl"
Сега проверяваме правилността на попълването на конфигурационния файл:
check-radiusd-config -ниво 345 radiusd на Конфигурация на Radius сървъризглежда добре. |
Ако всичко е наред, стартирайте сървъра в режим на отстраняване на грешки “radiusd –X ” и продължете към следващата стъпка.
Настройка на MySQL
След това имаме нужда от работеща MySQL СУБД, така че нека да преминем към нейното инсталиране. Ако вече съществува, можете да пропуснете тази стъпка.
sudo apt-get инсталирайте mysql-сървър mysql-клиент |
В нашия случай таксуването и мускулите са на един и същ възел, така че това е достатъчно. Ако използвате различен сървър, не забравяйте да промените стойността тук. Стартирайте MySQL:
sudo /etc/init.d/mysql start |
Следваща стъпка: в mysql създайте потребителabills с паролаpassword и база данниabills :
mysql -u root -p mysql> използвайте mysql; Базата данни е променена |
mysql>INSERT INTO user (Host, User, Password) VALUES ('localhost','abills', password('password')); mysql>INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Index_priv, Alter_priv, Lock_tables_priv, Create_tmp_table_priv) VALUES ('localhost', 'abills', 'abills', 'Y', 'Y', ' Y', 'Y' , 'Y', 'Y', 'Y', 'Y', 'Y', 'Y'); mysql>СЪЗДАВАНЕ НА БАЗА ДАННИ abills; mysql>привилегии за промиване; mysql> напусни
За удобство тези команди могат да бъдат поставени в текстов файл и заредени през конзолата. Сега копираме последната версия на ABills от уебсайта на проекта, разопаковаме я:
cd /usr $ tar xzvf abills-0.37.tgz $ cd abills |
Вътре има шаблон за таблица на база данни, заредете го:
mysql -D abills -u root -p |
Всичко, разглобяването на SQL приключи.
Инсталиране на Apache
За да работи ABillS правилно, Apache трябвада бъде изграден с поддръжка на mod_rewrite, тоест, когато ръчно изграждаме индианец, използваме:
./configure --enable-rewrite=споделено |
При инсталиране от хранилището не са необходими допълнителни жестове:
sudo apt-get install apache2 $ cat /etc/apache2/mods-available/rewrite.load LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so |
Само по подразбиране е деактивирано, не забравяйте да активирате:
sudo a2enmod rewrite Пренаписването на модула е инсталирано; стартирайте /etc/init.d/apache2 принудително презареждане, за да активирате. |
За да настроите уеб сървър, комплектът за разпространение на ABillS включва конфигурацията /usr/abills/misc/abills_httpd.conf, която свързва необходимите директории като виртуален сървър. За да го инсталирате, просто въведете командата:
sudo sh -c "cat /usr/abills/misc/abills_httpd.conf >> \ /etc/apache2/apache2.conf" |
Но без редакция няма да стане. Въз основа на него можете да създадете свой собствен файл:
sudo mcedit /etc/apache2/apache2.conf |
# Enable UI Alias /abills "/usr/abills/cgi-bin/" RewriteEngine на RewriteCond % ^(.*) RewriteRule ^(.*) – [E=HTTP_CGI_AUTHORIZATION:%1] Опции Индекси ExecCGI SymLinksIfOwnerMatch …
# Администраторски интерфейс AddHandler cgi-script .cgi Options Indexes ExecCGI FollowSymLinks AllowOverride none DirectoryIndex index.cgi order deny,allow allow from all Разглеждаме под кой потребител работи уеб сървърът и задаваме необходимите права за достъп до директории:
grep Потребител /etc/apache2/apache2.conf Потребителски www-данни |
sudo chown -Rf www-данни /usr/abills/cgi-bin sudo chown -Rf www-data /usr/abills/Abills/templates |
Директориятаbackup е предназначена за съхраняване на архива на базата данни, не е създадена по подразбиране, но е много желателна за работа:
sudo mkdir /usr/abills/backup sudo chown -Rf www-data /usr/abills/backup |
И рестартирайте Apache с командата "/etc/init.d/apache2 restart ".
Последни настройки
За правилна работа са необходими няколко модула Perl, документацията на проекта предлага изтеглянето им от CPAN:
sudo perl -MCPAN -e shell cpan> инсталирайте DBI cpan> инсталирайте DBD::mysql cpan> инсталирайте Digest::MD5 cpan> инсталирайте Digest::MD4 cpan> инсталирайте Crypt::DES cpan> инсталирайте Digest::SHA1 cpan> инсталирайте Bundle::libnet cpan> инсталирайте Time::HiRes cpan> напусни |
По принцип не всички от тези модули са необходими. Така че libnet е необходим само ако планирате да използвате базата данни с пароли на Unix, а Time-HiRes е само за тестване на скоростта. Хранилището на вашата дистрибуция вероятно съдържа и основните модули. В Ubuntu използваме командата:
sudo apt-get инсталирате libdbi-perl libdbd-mysql-perl libmd5-perl \ libdigest-md4-perl libdigest-sha1-perl libcrypt-des-perl |
Сега нека да преминем директно към настройката на ABillS. Архивът съдържа шаблон на конфигурационен файл, преименувайте го и продължете към настройките:
sudo cp /usr/abills/libexec/config.pl.default /usr/abills/libexec/config.pl |
Няма да докосваме всички параметри, само най-необходимите и интересни, останалите засега могат да бъдат оставени на стойностите им по подразбиране.
sudo mcedit /usr/abills/libexec/config.pl |
И в /etc/crontab вмъкваме кода, необходим за периодично стартиране на скриптове:
*/5 * * * * root /usr/abills/libexec/billd -all 1 0 * * * root /usr/abills/libexec/periodic daily 1 0 * * * root /usr/abills/libexec/periodic месечно
Това завършва настройките на ABillS.
Инсталиране на PPPoE
Например, нека се опитаме да свържем ABillS към PPPoE сървър, това е най-простият, но в същото време най-популярният вариант. Инсталирайте пакета pppoe, останалите компоненти вече са в системата:
sudo apt-get инсталирайте pppoe |
Проверете дали необходимите модули са заредени:
lsmod grep ppp pppoe 15680 2 pppox 4872 1 pppoe ppp_generic 29332 6 pppoe,pppox slhc 7552 1 ppp_generic |
Ако изходът не показва нищо, заредете "modprobe pppoe". Записваме реда "plugin rp-pppoe.so" във файла /etc/ppp/options. Файлът /etc/ppp/pppoe-server-options е отговорен за настройката на PPPoE сървъра, той не е в Ubuntu, така че създаваме:
sudo mcedit /etc/ppp/pppoe-сървърни опции |
Стартирайте PPPoE сървър:
sudo pppoe-сървър -I eth1 -L 192.168.0.10 -O /etc/ppp/pppoe-сървър-опции |
sudo mkdir /etc/ppp/radius |
sudo mcedit /etc/ppp/radius/radiusclient.conf |
authserver localhost:1812 acctserver localhost:1813 И във файла /etc/radiusclient/servers въвеждаме низ за удостоверяване на свързания клиент, той трябва да съответства на данните, записани в сървърния файл /etc/freeradius/clients.conf, тоест в нашия случай е:
Използване на уеб интерфейса на ABillS
След натискане на бутонаДобави ще се появи прозорец с информация за клиента. Сегашно състояниепоказано като “Не е активирано ”, изберете връзкатаDialup/VPN отдясно и щракнете върхуАктивиране в новия прозорец. За да може клиентът да се свърже, трябва да създадете парола и да попълните акаунта. Кликнете върху връзкатаПарола в левия раздел и я въведете два пъти, след това отидете наПлащания и добавете някаква сума към неговия акаунт.
Като начало е по-добре да тествате връзката на нов потребител, като използвате помощната програмаradtest (като опция можете да използвате скриптаlibexec/radtest.sh, доставен с ABillS). Форматът на командата за проверка е:
radtest testuser testpassword IP-RADIUS:1812 0 radius_secret 0 IP_NAS
Тоест в нашия пример:
radtest парола за тест 127.0.0.1:1812 0 password123 0 127.0.0.1 Изпращане на заявка за достъп от id 126 до 127.0.0.1 порт 1812 Потребителско име = "test" Потребителска парола = "парола" NAS-IP-адрес = 127.0.0.1 NAS-порт = 0 Протокол с рамка = PPP rad_recv: Пакет за достъп-приемане от хост 127.0.0.1:1812, > Изчакване на сесия = 722541 IP адрес в рамка = 192.168.2.34 |
Трябва да видите ред в /usr/abills/var/log/abills.log, че новият клиент е разрешен. Сега можете да опитате да се свържете дистанционно. Всичко работи за мен само когато свързах допълнителни речници в /etc/freeradius/dictionary:
$INCLUDE /usr/share/freeradius/dictionary.microsoft $INCLUDE /usr/share/freeradius/dictionary.unix
За да могат клиентите да имат достъп до мрежата, маскирането трябва да бъде конфигурирано, по-лесно е да направите това чрез инсталиране на пакетитеipmasq иdnsmasq. В резултат на това получихме готова система за разпространение на интернет, която има всички необходими функции.