|
Visto che la guida di Freeradius base è molto riassuntiva e che nell'installazione di Freeradius si possono incontrare moltissimi problemi, ho fatto questa guida che è molto più dettaglia. La guida parte sempre dal presupposto che si abbia una minima conoscenza di Linux. Ho utilizzato linux CentOS come distro, e la versione di FreeRadius è la 1.1.4.
FreeRadius è un server radius modulare, perfomante e ricco di funzioni. FreeRadius supporta i princiapi protocolli di autenticazione, il proxying il fail-over e il load-balancing. FreeRadius è in grado di integrarsi con la maggior parte dei database.
Installazione CentOS
-
Accettate il contratto di licenza, scegliete la lingua e la tastiera
-
Quando chiede il tipo di installazione date Personalizzata
-
Partizionamento automatico
-
Lasciate le impostazioni del boot loader invariate
-
Nella configurazione di rete, visto che questo apparato dovrà esserer un Server, impostiamo manualmente i valori. Selezionate la scheda di rete, facciamo un click su modifica, deselezioniamo DHCP e inseriamo indirizzo e maschera. Chiudiamo la finestra e compiliamo i vari campi (Gateway, Dns, ecc...).
-
In cofigurazione Firewall abilitiamo i servizi di login remoto e web server e disabilitiamo SELinux (Da problemi con Dialup Admin)
-
Nella selezione pacchetti io ho tolto le interfacce grafiche (non mi servono per il server radius, quindi è uno spreco di risorse). Cmq è a vostra scelta...
I pacchetti che ho selezionato sono:
-
Internet text-based: tutto (Visto che non ho installato l'interfaccia grafica può tornare utile)
-
Strumenti di configurazione del server: tutto tranne system-config-printer, system-config-printer-gui, system-switch-mail, system-switch-mail-gnome
-
Server Web:
crypto-utils
distcache
httpd-suexev
mod_auth_mysql
mod_ssl
php
php-mysql
system-config-httpd
-
File Server di windows:tutto
-
Database Mysql: tutto tranne mysql-bench e qt-Mysql
-
Strumenti amministrativi: quelli di default
-
Strumenti di sistema: quelli di default
8. Avanti e attendete che finisca l'installazione
Upgrade sistema e installazione Freeradius
-
Fate il login e da shell diamo:
- yum upgrade Per aggiornare il sistema
- yum install libtool-libs Per installare le librerie necessarie all'installazione di freeradius
- yum install lm_sensors
- yum install net-snmp
- yum install net-snmp-utils
- yum install gcc
- yum install gdbm gdbm-devel
- yum install net-snmp-devel
-
Visto che non ho installato l'interfaccia grafica, ho scaricato il pacchetto di radius su un'altro pc con installato windows xp in una cartella condivisa. Per accedere a questa cartella dal Server Radius ho dato questi comandi:
-cd /mnt/ Mi sposto nella cartella /mnt
-mkdir NomeCartella Crea una cartella
-mount -t smbfs //IndirizzoPC/CartellaCondivisa /mnt/NomeCartella -o username=Utente,password=Password
Quelle sottolineate sono le variabili
3. Adesso entriamo nella cartella con i file di FreeRadius e diamo i seguenti comandi
-./configure
-Make
-Make Install
Con questo abbiamo concluso l'installazione, ma ora dobbiamo aggiunger FreeRadius ai servizi
4. Sempre nella cartella con i file di installazione c'è una sottocartella chiamata redhat,
entriamoci ed editiamo il file rc.radiusd-redhat:
- cd redhat
- nano rc.radiusd-redhat
- editiamolo così:
RADIUSD=/usr/local/sbin/radiusd
LOCKF=/var/lock/subsys/radiusd
CONFIG=/usr/local/etc/raddb/radiusd.conf
Salviamo e chiudiamo il file
- cp rc.radiusd-redhat /etc/rc.d/init.d/radiusd
Copiamo il file in init.d
5 Facciamo partire all'avvio i servizi che ci servono
- chkconfig add radiusd
- chkconfig -level 3 radiusd on
- chkconfig -level 4 radiusd on
- chkconfig -level 5 radiusd on
- chkconfig -level 3 mysqld on
- chkconfig -level 4 mysqld on
- chkconfig -level 5 mysqld on
- chkconfig -level 3 httpd on
- chkconfig -level 4 httpd on
- chkconfig -level 5 httpd on
Creazione del database mysql (opzionale)
-
Sempre dalla cartella dove trovano i file di installazione di freeradius andate alla sottocartella
/doc/example e date i seguenti comandi:
-mysql entrimano in mysql
-create database radius creiamo un database radium
-exit usciamo da mysql
-mysql -uroot radius < mysql.sql inseriamo le tabelle nel database
-
Se vogliamo utilizzare dialup_admin per la gestione di freeradius da web dobbiamo aggiungere anche le sue tabelle. Dalla direttory radice dei file di installazione entriamo in /dialup_admin/sql/ e
aggiungiamo anche le tabelle che si trovano qui al database radius:
- nano userinfo.sql
- modifichiamo la quinta riga in questo modo
id int(10) DEFAULT '0'
salviamo e usciamov
- facciamo la stessa cosa nel file: badusers.sql
- mysql -uroot radius < badusers.sql
- mysql -uroot radius < mtotacct.sql
- mysql -uroot radius < totacct.sql
- mysql -uroot radius < userinfo.sql
Configurazione FreeRadius
-
Ora andiamo nella cartella dov'è stato installa FreeRadius
- cd /usr/local/etc/raddb/
- nano radius.conf
-
Ora editiamo il file di configurazione del Radius Server modificando le seguenti righe
log_auth = yes
log_auth_badpass = yes
proxy_requests = no
#$INCLUDE ${confdir}/proxy.conf
#
# Look in an SQL database. The schema of the database
# is meant to mirror the "users" file.
#
# See "Authorization Queries" in sql.conf
sql
# Log traffic to an SQL database.
#
# See "Accounting queries" in sql.conf
sql
-
Configurazione per l'accesso dei client di Radius
Modifiche da apportare al file cient.conf
Raggruppare i Nas da Subnet:
client 192.168.0.0/24 {
secret = mysecret1 - La "secret" deve essere la stessa configurata sul NAS
shortname = mylan - Il Shortname verà usato per il logging
nastype = cisco - Il "nastype" ? usato dal checkrad ed ? opzionale
}
Elecare i NAS da hostname o indirizzo IP:
Client 192.168.0.1 {
secret = mysecret1
shortname = myserver
nastype = other
}
-
Configurazione degli utenti per l'autenticazione
Il file user di FreeRadius contiene le informazione per l'autenticazione di ciascun utente
a) Autentication type:
Auth-Type := LDAP - Autenticazione tramite LDAP
Auth-Type := Local, User-Password = "mypasswd" - Autenticazione tramite le password
settate in /etc/raddb/user
Auth-Type := System - Autenticazione tramite le password
di sistema /etc/passwd e /etc/shadow
b) Service type:
Service-Type = Login - Per il login di amministrazione
Oltre i parametri specificati sopra se ne possonono aggiungere altri specifici per gli apparatio, per esempio se si vuole che un utente entri su un router cisco con i privilegi di amministratore
basta aggiungere:
cisco-avpair ="shell:priv-lvl=15"
la configurazione del utente diventa quindi così:
Utente User-Password == "quellochevuoi"
Service-Type = NAS-Prompt-User,
cisco-avpair = "shell:priv-lvl=15"
-
Configurare mysql
Aprite il file sql.conf e inserite il tipo di database, utente e password
Configurare IpTable
-
Editiamo il file /etc/sysconfig/iptables
nano /etc/sysconfig/iptables
-
Ho aggiunto le porte del radius alle regole prima del drop
-A RH-Firewall-1-INPUT -p udp --dport 1812 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 1813 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 1812 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 1812 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
-
Salviamo e usciamo
Installazione Dialup Admin
-
Nella directory con i file di installazione di Freeradius cè una cartella dialup_admin, spostiamola in /usr/local/
mv dialup_admin/ /usr/local
-
Creiamo un link simbolico della cartella htdocs nella caterlla di apache
ln -s /usr/local/dialup_admin/htdocs/ /var/www/html/dialup
-
Editiamo il file di configurazione di Dialup Admin:
nano /usr/local/dialup_admin/conf/admin.conf
modifichiamo le seguenti righe:
general_radiusd_base_dir: /usr/local/etc/raddb
general_domain: company.com
-
Editiamo ora la configurazione di Apache in modo che processi anche i file con estensione
.php3
nano /etc/httpd/conf.d/php.conf e modifichiamolo in questo modo
#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
-
Visto che Dialup Admin non richiede autenticazione bisogna creare un sistema di autenticazione basato sul web server, editiamo httpd.conf
nano /etc/httpd/conf/httpd.conf
inseriamo le seguenti righe alla fine del file:
<Directory /var/www/html/dialup>
AuthName "Inserire User e Password"
AuthType Basic
AuthUserFile /var/www/.htpasswd
require valid-user
</Directory>
Salviamo e usciamo
Ora creiamo l?utente dalla shell:
Htpasswd -c /var/www/.htpasswd Administrator
Ora digitiamo 2 volte la password e l'utente sarà creato
-
Riavviamo Apache:
service httpd restart
-
Ora abbiamo l'interfaccia web di FreeRadius funzionante da qui potremo aggiungere gli utenti e i gruppi, sfortunatamente è molto limitata rispetto a tutte le funzioni che può dare freeradius, visto che lo sviluppo dell'interfaccia web, a differenza di freeradius è ferma da parecchio tempo.
Argomenti collegati:
Questo tutorial finisce qui, spero sia stato utile, se ci sono degli errori o delle imprecisioni vi invito a farmelo presente all'indirizzo marco@alma-web.net
Ultimo aggiornamento: 01-11-2007 15:21
|