(一)環境簡介
1.OS:Centos7.4
2.軟件:Freeradiusd3.17(ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-3.0.17.tar.gz)
3.網站:https://freeradius.org/python
(二)安裝
1.yum安裝所需的依賴包vim
[root@localhost raddb]#yum install openssl openssl-devel libtalloc-devel libtalloc* -y [root@localhost raddb]#yum install openldap-devel python-devel -y
2.解壓和編譯安裝。因爲編譯安裝默認的路徑是/usr/local/etc/raddb/下centos
[root@localhost opt]#wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-3.0.17.tar.gz [root@localhost opt]# tar xf freeradius-server-3.0.17.tar.gz [root@localhost opt]#cd freeradius-server-3.0.17 [root@localhost freeradius-server-3.0.17]#./configure [root@localhost freeradius-server-3.0.17]#make && make install [root@localhost freeradius-server-3.0.17]# cd /usr/local/etc/raddb/ [root@localhost raddb]# ls certs experimental.conf mods-available panic.gdb radiusd.conf sites-enabled users clients.conf hints mods-config policy.d README.rst templates.conf dictionary huntgroups mods-enabled proxy.conf sites-available trigger.conf
3.配置radiusd啓動服務文件dom
[root@localhost ~]# groupadd radiusd [root@localhost ~]# useradd -g radiusd radiusd -s /sbin/nologin [root@localhost ~]# vim /usr/lib/systemd/system/radiusd.service [Unit] Description=FreeRADIUS high performance RADIUS server. After=syslog.target network.target ipa.service dirsrv.target krb5kdc.service [Service] Type=forking PIDFile=/usr/local/var/run/radiusd/radiusd.pid ExecStartPre=-/bin/chown -R radiusd.radiusd /usr/local/var/run/radiusd ExecStartPre=/usr/local/sbin/radiusd -C ExecStart=/usr/local/sbin/radiusd -d /usr/local/etc/raddb ExecReload=/usr/local/sbin/radiusd -C ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
4.建立啓動服務ide
[root@localhost opt]# systemctl enable radiusd [root@localhost opt]# systemctl start radiusd [root@localhost opt]# systemctl status radiusd ● radiusd.service - FreeRADIUS high performance RADIUS server. Loaded: loaded (/usr/lib/systemd/system/radiusd.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2018-08-14 14:11:51 CST; 13min ago Main PID: 26259 (radiusd) CGroup: /system.slice/radiusd.service └─26259 /usr/local/sbin/radiusd -d /usr/local/etc/raddb Aug 14 14:11:51 localhost.localdomain systemd[1]: Starting FreeRADIUS high performance RADIUS server.... Aug 14 14:11:51 localhost.localdomain systemd[1]: Started FreeRADIUS high performance RADIUS server.. [root@localhost opt]# systemctl restart radiusd [root@localhost opt]# systemctl status radiusd ● radiusd.service - FreeRADIUS high performance RADIUS server. Loaded: loaded (/usr/lib/systemd/system/radiusd.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2018-08-14 14:25:31 CST; 1s ago Process: 29267 ExecStart=/usr/local/sbin/radiusd -d /usr/local/etc/raddb (code=exited, status=0/SUCCESS) Process: 29263 ExecStartPre=/usr/local/sbin/radiusd -C (code=exited, status=0/SUCCESS) Process: 29261 ExecStartPre=/bin/chown -R radiusd.radiusd /usr/local/var/run/radiusd (code=exited, status=0/SUCCESS) Main PID: 29270 (radiusd) CGroup: /system.slice/radiusd.service └─29270 /usr/local/sbin/radiusd -d /usr/local/etc/raddb Aug 14 14:25:31 localhost.localdomain systemd[1]: Starting FreeRADIUS high performance RADIUS server.... Aug 14 14:25:31 localhost.localdomain systemd[1]: Started FreeRADIUS high performance RADIUS server..
備註:若是系統是centos6.x如下的版本,具體配置以下網站
[root@FreeRadius2 raddb]# cp /usr/local/sbin/rc.radiusd /etc/init.d/radiused [root@FreeRadius2 raddb]# /etc/init.d/radiused start
當出現報錯的時候「/usr/local/etc/raddb/mods-enabled/ldap[1]: Failed to link to module 'rlm_ldap': /usr/local/lib/rlm_ldap.so: cannot open shared object file: No such file or directory
」
形成服務起不來是因爲編譯的時候出現warning時編譯rlm_ldap失敗形成的。須要libldap2-dev 庫文件ui
=== configuring in src/modules/rlm_ldap (/opt/freeradius-server-3.0.17/src/modules/rlm_ldap) configure: running /bin/sh ./configure --disable-option-checking '--prefix=/usr/local' --cache-file=../../../config.cache --srcdir=. configure: loading cache ../../../config.cache checking for gcc... (cached) gcc checking for C compiler default output file name... a.out > checking whether the C compiler works... yes > checking whether we are cross compiling... no > checking for suffix of executables... > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether gcc accepts -g... yes > checking for gcc option to accept ISO C89... none needed > checking for pthread_create in -lpthread... yes > checking for ldap_init in -lldap_r... no > checking for ldap.h... no > configure: WARNING: silently not building rlm_ldap. > configure: WARNING: FAILURE: rlm_ldap requires: libldap_r ldap.h. > configure: creating ./config.status > config.status: creating Makefile
解決辦法是
[root@localhost mods-available]# yum install openldap-devel python-devel -y
既能夠解決。rest