1 ดู freeRadius Packages
- โค้ด: เลือกทั้งหมด
yum search freeradius
freeradius-devel.i686 : FreeRADIUS development files
freeradius-devel.x86_64 : FreeRADIUS development files
freeradius-doc.x86_64 : FreeRADIUS documentation
freeradius-krb5.x86_64 : Kerberos 5 support for freeradius
freeradius-ldap.x86_64 : LDAP support for freeradius
freeradius-mysql.x86_64 : MySQL support for freeradius
freeradius-perl.x86_64 : Perl support for freeradius
freeradius-postgresql.x86_64 : Postgresql support for freeradius
freeradius-python.x86_64 : Python support for freeradius
freeradius-sqlite.x86_64 : SQLite support for freeradius
freeradius-unixODBC.x86_64 : Unix ODBC support for freeradius
freeradius-utils.x86_64 : FreeRADIUS utilities
freeradius.x86_64 : High-performance and highly configurable free RADIUS server
2 ติดตั้ง freeRadius + ให้เชื่อมต่อกับดาต้าเบส MariaDB ได้
- โค้ด: เลือกทั้งหมด
yum -y install freeradius freeradius-mysql freeradius-utils freeradius-perl
3. รัน freeradius เป็น service และสตาร์ท
- โค้ด: เลือกทั้งหมด
systemctl enable radiusd
systemctl start radiusd
4. เช็คพอร์ต 1812 (Authentication/Authorization) และ 1813 (Accounting)
- โค้ด: เลือกทั้งหมด
netstat -ln | grep 1812
netstat -ln | grep 1813
จะเห็นทั้ง tcp และ udp
สร้างดาต้าเบส radius
- โค้ด: เลือกทั้งหมด
mysqladmin -uroot -p create radius
อิมพอร์ตดาต้าเบส radius
- โค้ด: เลือกทั้งหมด
mysql -uroot -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql
นำเข้าข้อมูล
- โค้ด: เลือกทั้งหมด
mysql -uroot -pradius < /etc/raddb/mods-config/sql/main/mysql/setup.sql
สร้าง Symbolic Link สำหรับไฟล์ sql
- โค้ด: เลือกทั้งหมด
cd /etc/raddb/mods-enabled
ln -s ../mods-available/sql sql
chgrp -h radiusd /etc/raddb/mods-enabled/*
แก้ไขไฟล์คอนฟิกในไฟล์ sql
คำเตือน... ห้ามแบ็คอัพไฟล์ไว้ในไดเร็คตอรี่นี้โดยเด็ดขาด freeRadius จะอ่านทุกไฟล์ หากมีการโหลดไดร์เวอร์เดียวกันมากกว่า 1 ไฟล์ โปรแกรมจะไม่ทำงาน
- โค้ด: เลือกทั้งหมด
now=$(date +'%F-%H-%M-%S')
cp /etc/raddb/mods-available/sql /home/radius-sql.$now
vi /etc/raddb/mods-enabled/sql
บรรทัด login และ password ต้องให้ตรงกับที่เรา insert เข้าไปในดาต้าเบส จากไฟล์ /etc/raddb/mods-config/sql/main/mysql/setup.sql
- โค้ด: เลือกทั้งหมด
driver="rlm_sql_mysql"
dialect="mysql"
server="localhost"
port=3306
login="radius"
password="radpass"
read_clients=yes
คอนฟิก Active Site ให้ใช้ MySQL
แก้ไขไฟล์ /etc/raddb/sites-enabled/default ไฟล์นี้เป็น shortcut ของไฟล์ /etc/raddb/sites-available/default
- โค้ด: เลือกทั้งหมด
now=$(date +'%F-%H-%M-%S')
cp /etc/raddb/sites-available/default /home/radius-default.$now
vi /etc/raddb/sites-enabled/default
- โค้ด: เลือกทั้งหมด
authorize {
...
sql
...
}
accounting {
...
sql
...
}
ถ้าต้องการตรวจสอบ Simultaneous-Use
- โค้ด: เลือกทั้งหมด
session {
..
sql
...
}
ถ้าต้องการเก็บ Log ทุกครั้งที่มีการ Authentication ไว้ในดาต้าเบส
- โค้ด: เลือกทั้งหมด
post-auth {
...
sql
...
}
เก็บ Authentication ที่ fail ไว้ในดาต้าเบสด้วย
- โค้ด: เลือกทั้งหมด
Post-Auth-Type REJECT {
...
sql
...
}
7. แก้ไขไฟล์ /etc/raddb/sites-enabled/inner-tunnel
ไฟล์ /etc/raddb/sites-enabled/inner-tunnel เป็น shortcut ของไฟล์ /etc/raddb/sites-available/inner-tunnel
- โค้ด: เลือกทั้งหมด
now=$(date +'%F-%H-%M-%S')
cp /etc/raddb/sites-available/inner-tunnel /home/radius-inner-tunnel.$now
vi /etc/raddb/sites-enabled/inner-tunnel
- โค้ด: เลือกทั้งหมด
authorize {
...
sql
...
}
8. รีสตาร์ท radius
- โค้ด: เลือกทั้งหมด
systemctl restart radiusd
คำสั่งของ freeradius
- โค้ด: เลือกทั้งหมด
radattr
rad_counter
raddebug
radiusd
radmin
radsqlrelay
radwho
radclient
radcrypt
radeapclient
radlast
radsniff
radtest
radzap
ไดเร็คตอรี่ของ freeradius
- โค้ด: เลือกทั้งหมด
/var/log/radius
/var/log/radius/radacct
/usr/share/freeradius
/var/lib/radiusd
/usr/lib64/freeradius