การติดตั้ง Freeradius, MySQL, phpMyAdmin

51
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: Linux Version: Red Hat (64-bit) ดด Next

Transcript of การติดตั้ง Freeradius, MySQL, phpMyAdmin

Page 1: การติดตั้ง 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

Page 2: การติดตั้ง Freeradius, MySQL, phpMyAdmin

2

ตงขนาดของ RAM แนะนำาไมตำากวา 512 Mb จากนนกด Next เพอสราง Virtual disk โดยเลอกท create a virtual hard disk now จากนนกด create

Page 3: การติดตั้ง Freeradius, MySQL, phpMyAdmin

3

เลอกชนดของไฟล Hard disk เปนชนด VDI (VirtualBox Disk Image) แลวกด Next

เลอก Dynamically allocated กด Next

Page 4: การติดตั้ง Freeradius, MySQL, phpMyAdmin

4

ตงขนาดของ Hard disk แลวกด Create จะได Virtual Hard Disk ขนมา

Page 5: การติดตั้ง Freeradius, MySQL, phpMyAdmin

5

คลกท Disk ทสรางจะมแถบสฟาจากนนกด เพอตงคาเพมเตม

Page 6: การติดตั้ง Freeradius, MySQL, phpMyAdmin

6

ไปท Storage --> Empty --> --> Choose Virtual Optical Disk File… เลอกไฟล CentOS 6.8 minimal ทโหลดมา

Page 7: การติดตั้ง Freeradius, MySQL, phpMyAdmin

7

จากนนไปท System ใหเรยง Boot Order โดยให Boot จาก Optical เปนอนดบแรก

ไปท Network --> Adapter 1 ตกเลอก Enable Network Adapter เลอกเปน Bridged Adapter กด OK

Page 8: การติดตั้ง Freeradius, MySQL, phpMyAdmin

8

จากนนกด เพอตดตง และทำาตามภาพ

เลอก Install or upgrade an existing system แลวกด Enter

หามใชเมาสคลกในจอใหคลกสวนหวและใชปมลกศรและปม Enter ในการตดตงเทานน

Page 9: การติดตั้ง Freeradius, MySQL, phpMyAdmin

9

เลอก Skip

OK

เลอก English -> OK

Page 10: การติดตั้ง Freeradius, MySQL, phpMyAdmin

10

เลอก us -> OK

เลอก Re-initialize all

Page 11: การติดตั้ง Freeradius, MySQL, phpMyAdmin

11

เลอก Time zone เปน Asia/Bangkok -> OK

ตง root password

Page 12: การติดตั้ง Freeradius, MySQL, phpMyAdmin

12

เลอก Use entire drive -> OK

เลอก Write changes to disk

รอใหตดตงเสรจ

Page 13: การติดตั้ง Freeradius, MySQL, phpMyAdmin

13

ทำาการ Reboot

หลงจากนนจะขนหนา login (ให login ดวย root และรหสทตงไว)

Page 14: การติดตั้ง Freeradius, MySQL, phpMyAdmin

14

ปด CentOS จากนนไปท ในแถบ System ใหเปลยนลำาดบ Boot Order ใหมให boot จาก Hard Disk เปนอนดบแรก จากนนกด OK เพอเสรจสนการตดตง CentOS Linux !

Page 15: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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

Page 16: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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

Page 17: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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

Page 18: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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

Page 19: การติดตั้ง Freeradius, MySQL, phpMyAdmin

19

เลอก [*] RADIUS, [*] Secure WWW (HTTPS) , [*]WWW (HTTP) จากนนเลอก Close --> OK --> Yes เพอสนสดการตงคา

เปด service ของ httpd[root@hocalhost~]# service httpd start[root@hocalhost~]# chkconfig httpd on

Page 20: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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';

Page 21: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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; (อพเดทฐานขอมล)

Page 22: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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)

Page 23: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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

Page 24: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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 วาถกตองหรอไมโดยใชคำาสง

Page 25: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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

Page 26: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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 จากภายนอก

Page 27: การติดตั้ง Freeradius, MySQL, phpMyAdmin

27

(ดาวนโหลดไดท: https://www.novell.com/coolsolutions/tools/14377.html)

ใสคาตามตวอยาง จากนนกด Send ถาหากถกตองกจะสามารถเชอมตอได และมการตอบกลบจาก RADIUS Server วา Access-Accept

ในกรณทขอมลไมถกตอง เชน Secret Key ผด หรอ User-Password ผด RADIUS Server กจะไมอนญาตใหเชอมตอโดยแจงขอความวา Access-Reject

Page 28: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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 เทานนทเชอมตอเชามาได

Page 29: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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

Page 30: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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

Page 31: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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 เพอจดการฐานขอมล

Page 32: การติดตั้ง Freeradius, MySQL, 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>

Page 33: การติดตั้ง Freeradius, MySQL, phpMyAdmin

33

รสตารท service httpd [root@localhost~]# service restart httpdจากนนเขา Web Browser ดวย http://ip-server/phpMyAdmin จากนนใสชอผใชและรหสผาน

Page 34: การติดตั้ง Freeradius, MySQL, phpMyAdmin

34

การเพม User-Password ลงในฐานขอมล

ไปท radius --> radcheck --> แทรก

Page 35: การติดตั้ง Freeradius, MySQL, phpMyAdmin

35

4 ทดสอบกบอปกรณ Fortigate 80C Firewall

Page 36: การติดตั้ง Freeradius, MySQL, phpMyAdmin

36

ทำาการเชอมตอตาม topology ดงภาพ

Page 37: การติดตั้ง Freeradius, MySQL, phpMyAdmin

37

เปด Web browser พมพ https://192.168.1.1/ จะขนหนา Login

สราง RADIUS Profile สำาหรบเชอมตอกบ RADIUS Server

Page 38: การติดตั้ง Freeradius, MySQL, phpMyAdmin

38

สราง User และทำาการ Match User ทสรางกบ User ใน RADIUS Server โดย

สราง User Group และเพม User ลงใน Group

Page 39: การติดตั้ง Freeradius, MySQL, phpMyAdmin

39

ทำาการแอด Firewall Policy โดยเพมกลมทเกบ RADIUS user เขามา คลกทปม Add

แอดกลมทชอ RADIUS ททำาการสรางไวและตง service

Page 40: การติดตั้ง Freeradius, MySQL, phpMyAdmin

40

เปด Web browser ขนมาเพอทดสอบเขาเวปไซต จากนนใหใส User-Password เพอทดสอบ

Page 41: การติดตั้ง Freeradius, MySQL, phpMyAdmin

41

เมอเชอมตอเขาเวปไซตไดแลวใหทำาการเชคทเมน Monitor --> Firewall

4.1 การตรวจสอบการลอกอน

เปด 4.1Web Browser และเขาฐานขอมลใน phpMyAdmin ในสวนของตารางชอ radpostauth เปนแสดงการลอกอนเขามาของผใชงานในเวลาตาง ๆ

สามารถดการลอกอนลาสดไดโดยเปลยนท เรยงโดยคย : PRIMARY (มากไปนอย)

Page 42: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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

Page 43: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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

Page 44: การติดตั้ง Freeradius, MySQL, 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

Page 45: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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 แจงเตอนทกครง)

หมายเหต

Page 46: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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 --> เลอกไฟลทจะนำาเขา --> ไป

Page 47: การติดตั้ง Freeradius, MySQL, phpMyAdmin

47

########################################################

Download RADIUS VM files

Page 48: การติดตั้ง Freeradius, MySQL, phpMyAdmin

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 = ****** }

Page 49: การติดตั้ง Freeradius, MySQL, phpMyAdmin

คมอการตดตง FreeRADIUS, MySQL, phpMyAdmin