Это старая версия документа.


Установка ABillS + Ubuntu

Сначала обновим систему

apt-get update
apt-get dist-upgrade

Перезагрузились и устанавливаем следующие пакеты

apt-get install mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork \
apache2-utils libexpat1 ssl-cert cvs libdbi-perl libdbd-mysql-perl libdigest-md4-perl \
libdigest-sha1-perl libcrypt-des-perl

Создаем недостающие каталоги и меняем права:

mkdir /var/log/httpd/
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
Настройка вебсервера
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
Настройка Абилс
cp /usr/abills/libexec/config.pl.default /usr/abills/libexec/config.pl

Удаляем старые параметры и добавляем новые

$conf{dbpasswd}='sdfesfa';
$conf{secretkey}="sdfadsfcv3ad2";
$conf{dbcharset}='utf8';
$conf{default_charset}='utf8';
$conf{MAIL_CHARSET}='utf8';
$conf{RADIUS2}=1;
Настройка Mysql
mysql --default-character-set=utf8 -u root -p 
use mysql;
INSERT INTO user (Host, User, Password) 
VALUES ('localhost','abills', password('sdfesfa'));

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, Create_view_priv,
Show_view_priv, Execute_priv) 
VALUES ('localhost', 'abills', 'abills', 'Y', 'Y', 'Y', 'Y', 'Y', 
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');

CREATE DATABASE abills;
flush privileges;

Меняем ключ шифрования на тот что задали в конфигурационном файле

cat /usr/abills/db/abills.sql | sed s/test12345678901234567890/sdfadsfcv3ad2/ > /usr/abills/abills_secure.sql

Добавляем БД в Mysql

mysql --default-character-set=utf8 -u root -p -D abills < /usr/abills/abills_secure.sql
Установка Радиуса
apt-get install libmysqlclient-dev libmysqlclient16 libmysqlclient16-dev libgdbm3 libgdbm-dev

ln -s /usr/lib/libperl.so.5.10.1 /usr/lib/libperl.so

wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.11.tar.gz
tar zxvf freeradius-server-2.1.11.tar.gz
cd freeradius-server-2.1.11
./configure --prefix=/usr/local/freeradius --with-rlm-perl-lib-dir=/usr/lib/
make && make install

ln -s /usr/local/freeradius/sbin/radiusd /usr/sbin/radiusd

Файл для автозапуска

vim /etc/init.d/freeradius
chmod +x /etc/init.d/freeradius
#!/bin/sh
# Start/stop the FreeRADIUS daemon.

### BEGIN INIT INFO
# Provides:          freeradius
# Required-Start:    $remote_fs $network $syslog
# Should-Start:      $time mysql slapd postgresql samba krb5-kdc
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Radius Daemon
# Description:       Extensible, configurable radius daemon
### END INIT INFO

set -e

. /lib/lsb/init-functions

PROG="freeradius"
PROGRAM="/usr/sbin/radiusd"
PIDFILE="/var/run/freeradius/freeradius.pid"
DESCR="FreeRADIUS daemon"

test -f $PROGRAM || exit 0

# /var/run may be a tmpfs
if [ ! -d /var/run/freeradius ]; then
  mkdir -p /var/run/freeradius
  chown freerad:freerad /var/run/freeradius
fi

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

ret=0

case "$1" in
        start)
                log_daemon_msg "Starting $DESCR" "$PROG"
                start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $PROGRAM || ret=$?
                log_end_msg $ret
                exit $ret
                ;;
        stop)
                log_daemon_msg "Stopping $DESCR" "$PROG"
                if [ -f "$PIDFILE" ] ; then
                  start-stop-daemon --stop --retry=TERM/30/KILL/5 --quiet --pidfile $PIDFILE || ret=$?
                  log_end_msg $ret
                else
                  log_action_cont_msg "$PIDFILE not found"
                  log_end_msg 0
                fi
                ;;
        restart|force-reload)
                $0 stop
                $0 start
                ;;
        *)
                echo "Usage: $0 start|stop|restart|force-reload"
                exit 1
                ;;
esac

exit 0
update-rc.d freeradius defaults
Настройка Freeradius
cp /usr/abills/misc/freeradius/v2/radiusd.conf /usr/local/freeradius/etc/raddb/radiusd.conf
rm /usr/local/freeradius/etc/raddb/sites-enabled/*
cp /usr/abills/misc/freeradius/v2/users_perl /usr/local/freeradius/etc/raddb/users
cp /usr/abills/misc/freeradius/v2/default_rlm_perl /usr/local/freeradius/etc/raddb/sites-enabled/default
cp /usr/abills/misc/freeradius/v2/perl /usr/local/freeradius/etc/raddb/modules/

Меняем в конфиге радиуса

vim radiusd.conf
prefix = /usr/local/freeradius

user = freerad
group = freerad
 
$INCLUDE sites-enabled/default
vim /usr/local/freeradius/etc/raddb/dictionary

# Limit session traffic
ATTRIBUTE Session-Octets-Limit 227 integer
# What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out)
ATTRIBUTE Octets-Direction 228 integer
# Connection Speed Limit
ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-1 233 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-2 234 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237 integer
ATTRIBUTE Acct-Interim-Interval 85 integer
ATTRIBUTE Acct-Input-Gigawords    52      integer
ATTRIBUTE Acct-Output-Gigawords   53      integer  
ATTRIBUTE Acct-Input-Packets      47      integer
ATTRIBUTE Acct-Output-Packets     48      integer
  
chown -R freerad:freerad /usr/local/freeradius/etc/raddb