การติดตั้ง Freeradius, MySQL, phpMyAdmin
-
Upload
nuker-skyline -
Category
Software
-
view
69 -
download
10
Transcript of การติดตั้ง Freeradius, MySQL, phpMyAdmin
1
การตดตง FreeRADIUS, MySQL, phpMyAdmin
1.ตดตง Linux OS (แนะนำา CentOS 6.8 minimal) ในโปรแกรม VirtualBox
ดาวนโหลดจากลงค http://isoredirect.centos.org/centos/6/isos/x86_64/ นามสกลไฟลเปน .iso
เปดโปรแกรม VirtualBox จากนนไปท
Name: RADIUS-Server (เปลยนชอไดทหลง)Type: LinuxVersion: Red Hat (64-bit) กด Next
2
ตงขนาดของ RAM แนะนำาไมตำากวา 512 Mb จากนนกด Next เพอสราง Virtual disk โดยเลอกท create a virtual hard disk now จากนนกด create
3
เลอกชนดของไฟล Hard disk เปนชนด VDI (VirtualBox Disk Image) แลวกด Next
เลอก Dynamically allocated กด Next
4
ตงขนาดของ Hard disk แลวกด Create จะได Virtual Hard Disk ขนมา
5
คลกท Disk ทสรางจะมแถบสฟาจากนนกด เพอตงคาเพมเตม
6
ไปท Storage --> Empty --> --> Choose Virtual Optical Disk File… เลอกไฟล CentOS 6.8 minimal ทโหลดมา
7
จากนนไปท System ใหเรยง Boot Order โดยให Boot จาก Optical เปนอนดบแรก
ไปท Network --> Adapter 1 ตกเลอก Enable Network Adapter เลอกเปน Bridged Adapter กด OK
8
จากนนกด เพอตดตง และทำาตามภาพ
เลอก Install or upgrade an existing system แลวกด Enter
หามใชเมาสคลกในจอใหคลกสวนหวและใชปมลกศรและปม Enter ในการตดตงเทานน
9
เลอก Skip
OK
เลอก English -> OK
10
เลอก us -> OK
เลอก Re-initialize all
11
เลอก Time zone เปน Asia/Bangkok -> OK
ตง root password
12
เลอก Use entire drive -> OK
เลอก Write changes to disk
รอใหตดตงเสรจ
13
ทำาการ Reboot
หลงจากนนจะขนหนา login (ให login ดวย root และรหสทตงไว)
14
ปด CentOS จากนนไปท ในแถบ System ใหเปลยนลำาดบ Boot Order ใหมให boot จาก Hard Disk เปนอนดบแรก จากนนกด OK เพอเสรจสนการตดตง CentOS Linux !
15
2. การตดตง FreeRADIUS, MySQL, PHP, httpd, phpMyAdmin
หลงจากตดตง CentOS 6.8 แลวใหทำาการเปด interface ของการดแลนกอน
[root@localhost~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 ทบรรทด ONBOOT = no ใหเปลยนเปน ONBOOT = yes จากนนเปด eth0[root@localhost~]# ifup eth0------------------------------------------------------------------------------------------------------ทำาการอบเดทแพกเกจ (คำาสงบางคำาสงจะไมสามารถใชงานไดถาไมอพเดท) [root@localhost~]# yum update -y------------------------------------------------------------------------------------------------------ตดตง FreeRADIUS Packages[root@localhost~]# yum -y install freeradius freeradius-mysql freeradius-utils
16
------------------------------------------------------------------------------------------------------ตดตง MySQL[root@localhost~]# yum -y install mysql mysql-server-----------------------------------------------------------------------------------------------------ตดตง httpd[root@localhost~]# yum -y install httpd------------------------------------------------------------------------------------------------------------------ตดตง PHP[root@localhost~]# yum -y install php php-gd php-mbstring php-mysql
ตงคากฎของ Firewall โดยทำาการเปด port 80, 443, 1812, และ 1813 ใน iptables[root@localhost~]# vi /etc/sysconfig/iptablesเพม -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
17
-A INPUT -p udp -m state --state NEW -m udp --dport 1812 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 1813 -j ACCEPT
หรอ ตดตง Text Mode Setup Utility เพอตงคา firewall แบบ GUI[root@localhost~]# yum install -y setuptool[root@localhost~]# yum install -y setup ntsysv authconfig[root@localhost~]# yum install -y system-config-network system-config-network-tui[root@localhost~]# yum install -y system-config-firewall-tui[root@localhost~]# yum install -y system-config-securitylevel
18
[root@localhost~]# yum install -y system-config-date[root@localhost~]# yum install -y system-setup-keyboardหลงจากตดตงเสรจใหทำาการ reboot[root@localhost~]# reboot
เขาโหมด setup เพอตงคา Firewall[root@localhost~]# setup
เลอก Firewall configuration --> Run Tool
ทำาการ [*]Enable Firewall โดยกด Space bar จากนนไปท Customize
19
เลอก [*] RADIUS, [*] Secure WWW (HTTPS) , [*]WWW (HTTP) จากนนเลอก Close --> OK --> Yes เพอสนสดการตงคา
เปด service ของ httpd[root@hocalhost~]# service httpd start[root@hocalhost~]# chkconfig httpd on
20
เขา Web Browser ใส ip ของเครองจะไดหนาตาง Apache Test Page ขนมา
3. การตงคาใหกบ FreeRADIUS เพอเขาใชฐานขอมลใน MySQL
3.1 เปลยนรหสผานใหกบ MySQL [root@hocalhost~]# service mysqld start[root@hocalhost~]# chkconfig mysqld on[root@hocalhost~]# mysql -uroot -pEnter password: (กด Enter)
mysql> use mysqlmysql> update user set password=PASSWORD (‘ตงรหสผาน') where User='root';
21
mysql> plush privileges;mysql> \q
3.2 สรางฐานขอมลใหกบ RADIUS[root@hocalhost~]# mysql -uroot -pEnter password:mysql> create databases radius;mysql> show databases; (เชควาฐานขอมลถกสรางหรอไม)
กำาหนดสทธการเขาใชฐานขอมลชอ radius ใหกบ user ชอ radiusmysql> GRANT ALL PRIVILEGES ON radius.* TO radius@localhost IDENTIFIED BY "ตงรหสผานใหกบ user radius";
mysql> flush privileges; (อพเดทฐานขอมล)
22
เพม User-Password ลงในตาราง radcheckmysql >use radiusmysql> SOURCE /etc/raddb/sql/mysql/schema.sql (ใสโครงสรางตาราง)
mysql> show tables; (ดโครงสรางตารางทถกเพมเขามาในฐานขอมล radius)
เพม User-Password ลงในตาราง radcheck โดยใชคำาสง
INSERT INTO radcheck (id, username, attribute, op, value) VALUES (ลำาดบท,'ชอผใชงาน','User-Password',':=','รหสผาน');mysql> INSERT INTO radcheck (id, username, attribute, op, value) VALUES (1,'user1','User-Password',':=','12345678');mysql> select *from radcheck; (ดขอมลในตารางชอ radcheck)
23
mysql> \q
3.3 ตงคาให FreeRADIUS ใชฐานขอมลใน MySQL ไปทไฟล /etc/raddius/sql.conf [root@localchost~]# vi /etc/raddb/sql.confใหตงคาตามตวอยาง
database = “mysql” driver = “rlm_sql_$(database)”server = “localhost”port = “3306”login = “radius” //------- user ชอ radius ทใหสทธไวใน MySQL
password = “รหสผานทตงไวตอนกำาหนดสทธใหกบ user radius ใน MySQL”
radius_db = “radius” //------ชอฐานขอมลทถกสรางใน MySQL
ไปท /etc/raddb/sites-available/default [root@localhost~]# vi /etc/raddb/sites-available/default
24
ใหนำาเครองหมาย “#” หนา sql ในสวนของ authorize{}, accounting{}, session{}, post-auth{}, Post-Auth-Type REJECT {} ออก
------------------------------------------------------------------------------------------------------------------ไปท /etc/raddb/sites-available/inner-tunnel[root@localhost~]# vi /etc/raddb/sites-available/inner-tunnelใหนำาเครองหมาย “#” หนา sql ในสวนของ authorize{}, session{}, post-auth{}, Post-Auth-Type REJECT {} ออก
------------------------------------------------------------------------------------------------------------------
ไปท /etc/raddb/radiusd.conf เพอเปดใชงาน module sql[root@localhost~]# vi /etc/raddb/radiusd.confในสวนของ module{} ใหทำาการลบเครองหมาย “#” หนา $INCLUDE sql.conf ออก
------------------------------------------------------------------------------------------------------------------จากนนทำาการตรวจสอบการตงคาใน freeradius วาถกตองหรอไมโดยใชคำาสง
25
[root@localhost~]# radius -X //---- ตองปด service radiusd กอนใช
หรอ
[root@localhost~]# radius -XC------------------------------------------------------------------------------------------------------------------ทำาการ Start service ของ freeradius[root@localhost~]# service radiusd start[root@localhost~]# chkconfig radiusd on------------------------------------------------------------------------------------------------------------------ตรวจสอบวา freeradius สามารถเชอมตอกบ MySQL ไดหรอไมดวยคำาสง
radtest <username> <password> <ip client> <NAS Port Number> <Secret Key>ทดสอบจาก User-Password ทบนทกไวในฐานขอมลชอ radius ใน MySQL[root@localhost~]# radtest user1 12345678 localhost 0 testing123
26
ถาใชงานไดจะมการแจงวา Access-Accept ถาใชงานไมไดจะแจงวา Access-Reject
3.4 การเปดให Client อนสามารถเชอมตอเขามาได
ไปทไฟล /etc/raddb/clients.conf[root@localhost~]# vi /etc/raddb/clients.conf
ในตอนใชคำาสง radtest user1 1234567 localhost 0 testing123 หมายถง ให clients localhost (127.0.0.1) เชอมตอเขามาดวย secret-key ‘testing123’ ซงเปนคา default ทถกตงมา ดงนนจงตองทำาการเพม client จากขางนอกใหเชอมตอเขามายง FreeRADIUS ไดดงตวอยาง
client 192.168.0.0/16 { //---- Client ทกคนทอยใน Network วงน
secret = cat-telecom สามารถเชอมตอเขามาไดดวย secret-key
nastype = other cat-telecom ---------------------//}จากนนใหตดตงโปรแกรม NTRadPing เพอทดสอบการ Authentication จากภายนอก
27
(ดาวนโหลดไดท: https://www.novell.com/coolsolutions/tools/14377.html)
ใสคาตามตวอยาง จากนนกด Send ถาหากถกตองกจะสามารถเชอมตอได และมการตอบกลบจาก RADIUS Server วา Access-Accept
ในกรณทขอมลไมถกตอง เชน Secret Key ผด หรอ User-Password ผด RADIUS Server กจะไมอนญาตใหเชอมตอโดยแจงขอความวา Access-Reject
28
3.5 ตดตง Monit package สำาหรบตรวจเชคการทำางานของ Service[root@localhost~]# yum -y install monitไปท /etc/monit.conf เพอตงคา
[root@localhost~]# vi /etc/monit.conf
เลอนหาสานของ set httpd และตงคาตามตวอยาง
Set httpd port 2812 and # ues address localhost //---------------- localhost เทานนทเชอมตอเชามาได
29
allow 192.168.1.0/255.255.255.0 //-ip ใน Network วงนสามารถเชอตอเขามาได
allow admin:admin //---------ตง User:Password เพอใชลอกอน
ทำาการเปด Port 2812 ใน ipables โดยเขาไปท /etc/sysconfig/iptables[root@localhost~]# vi /etc/sysconfig/iptablesและเพม -A INPUT -p tcp -m state --state NEW -m tcp --dport 2812 -j ACCEPT
จากนน เปด service และ restart service httpd, iptables, monit [root@localhost~]# service iptables restart[root@localhost~]# service httpd restart[root@localhost~]# service monit start[root@localhost~]# chkconfig monit on[root@localhost~]# monit -t //-------------ตรวจสอบการตงคาใน monit.conf
เขา Web Browser โดยพมพ http://ip-server:2812/ ใส User-Password
30
การเพม Process ของ FreeRADIUS, httpd, MySQL สำาหรบเชคใน monit.conf
[root@localhost~]# vi /etc/monit.confสงให start service อตโนมตเมอ service ถกปดลง
check process Apache with pidfile /var/run/httpd/httpd.pid
start program = “/etc/rc.d/init.d/httpd start” whit timeout 10 seconds
stop program = “/etc/rc.d/init.d/httpd stop”check process RADIUS with pidfile /var/run/radiusd/radiusd.pid
31
start program = “/etc/rc.d/init.d/radiusd start” whit timeout 10 seconds
stop program = “/etc/rc.d/init.d/radiusd stop”check process MySQL with pidfile /var/run/mysqld/mysqld.pid
start program = “/etc/rc.d/init.d/mysqld start” whit timeout 10 seconds
stop program = “/etc/rc.d/init.d/mysqld stop”
[root@localhost~]# monit -t[root@localhost~]# service monit restart
เขา web browser อกครง
3.6 ตดตง phpMyAdmin เพอจดการฐานขอมล
32
[root@localhost~]# yum -y install wget[root@localhost~]# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm[root@localhost~]# rpm -Uvh epel-release-6*.rpm[root@localhost~]# yum -y install phpmyadmin[root@localhost~]# vi /etc/httpd/conf.d/phpMyAdmin.confใสเครองหมาย # ในสวนของ <Directory /usr/share/phpMyAdmin/> ถง </Direcroty>
33
รสตารท service httpd [root@localhost~]# service restart httpdจากนนเขา Web Browser ดวย http://ip-server/phpMyAdmin จากนนใสชอผใชและรหสผาน
34
การเพม User-Password ลงในฐานขอมล
ไปท radius --> radcheck --> แทรก
35
4 ทดสอบกบอปกรณ Fortigate 80C Firewall
36
ทำาการเชอมตอตาม topology ดงภาพ
37
เปด Web browser พมพ https://192.168.1.1/ จะขนหนา Login
สราง RADIUS Profile สำาหรบเชอมตอกบ RADIUS Server
38
สราง User และทำาการ Match User ทสรางกบ User ใน RADIUS Server โดย
สราง User Group และเพม User ลงใน Group
39
ทำาการแอด Firewall Policy โดยเพมกลมทเกบ RADIUS user เขามา คลกทปม Add
แอดกลมทชอ RADIUS ททำาการสรางไวและตง service
40
เปด Web browser ขนมาเพอทดสอบเขาเวปไซต จากนนใหใส User-Password เพอทดสอบ
41
เมอเชอมตอเขาเวปไซตไดแลวใหทำาการเชคทเมน Monitor --> Firewall
4.1 การตรวจสอบการลอกอน
เปด 4.1Web Browser และเขาฐานขอมลใน phpMyAdmin ในสวนของตารางชอ radpostauth เปนแสดงการลอกอนเขามาของผใชงานในเวลาตาง ๆ
สามารถดการลอกอนลาสดไดโดยเปลยนท เรยงโดยคย : PRIMARY (มากไปนอย)
42
warning: ในกรณทเวลาในฐานขอมลไมตรงกบเวลาจรง (เวลาของไทย) ใหใหคำาสงดงน
[root@localhost~]# yum -y install ntp[root@localhost~]# service ntpd start[root@localhost~]# chkconfig ntpd on
จากนนลองเชคดวยคำาสง
[root@localhost~]# date
4.2 การ Backup และ Import ฐานขอมล
ใชคำาสง
mysqldump -u [username] -p[password] [database] > [filename]
[root@localhost~]# mysqldump -u root -p password radius > /var/lib/phpMyAdmin/upload/MySQLBackUP.sql
43
สามารถใชคำาสงบบอดรวมไดเชน
[root@localhost~]# mysqldump -u root -p password radius | gzip > /var/lib/phpMyAdmin/upload/MySQLBackUP.sql.gz
สามารถสำารองฐานขอมลทงหมดดวย
[root@localhost~]# mysqldump -u root -p password --all-databases | gzip > /var/lib/phpMyAdmin/upload/BackUpFile.sql.gz
หมายเหต : ควร backup ไปยงโฟลเดอร /var/lib/phpMyAdmin/upload/ เพราะจะงายตอการเรยกใชดวย phpMyAdmin
44
4.3 การทำา Backup ฐานขอมลแบบอตโนมต
สราง Script file ขนมาโดยจะเกบไวทโฟลเดอร /opt/
[root@localhost~]# cd /opt/[root@localhost opt]# vi /opt/MySQLBackup.bash
พมพคำาสง script
#!/bin/bashMySQLBackup=MySQL_Backup.radius.db.`date +%Y%m%d%H%M`.sql #----ตงชอไฟล MySQL_Backup.radius.db ตามดวย ป เดอน วน ชวโมง นาท .sql
#echo $MySQLBackup #---เอาเครองหมาย # ออกจะพมพชอไฟลจากดานบนทกครงท backup
mysqldump -uroot -pbkk@cat radius > /var/lib/phpMyAdmin/upload/$MySQLBackup #--Backup ไปท /var/lib/phpMyAdmin/upload/
gzip /var/lib/phpMyAdmin/upload/$MySQLBackup
45
#--บบอดไฟล
ทำาการ Save
กำาหนด permission ใหไฟล MySQLBackup
[root@localhost opt]# chmod 755 /opt/MySQLBackup.bash[root@localhost opt]# cd
ตงคา cron jobs เพอให script ทำางานทเวลา 23.59 นาฬกาของทกวนยกเวนเสาร-อาทตย
[root@localhost ~]# crontab -e
พมพคำาสงลงไปตามตวอยาง
59 23 * * 1-5 /opt/MySQLBackup.bash > /dev/null 2&>1 (/dev/null 2&>1 ไมใหสง Email แจงเตอนทกครง)
หมายเหต
46
ทำาการ save และ restart service
[root@localhost ~]# /etc/init.d/crond restart
4.3 การ import ฐานขอมลท Backup ไว
เปด phpMyAdmin ใน Web Browser ในฐานขอมลชอ radius ไปท radcheck --> นำาเขา --> select from the web server upload directory --> เลอกไฟลทจะนำาเขา --> ไป
47
########################################################
Download RADIUS VM files
48
https://drive.google.com/drive/folders/0B5qHftMwIyCqTk1wZGdJcGRsVzQ?usp=sharingLinux Login
User: rootPassword: bkk@cat
MySQL Database (phpMyAdmin)User: radiusPassword: bkk@cat
RADIUS Secret Key ดใน /etc/raddb/clients.conf
ในสวนของ client 192.168.0.0/16 {
secret = ****** }
ก
คมอการตดตง FreeRADIUS, MySQL, phpMyAdmin