29
การประชุมวิชาการทางคอมพิวเตอรและเทคโนโลยีสารสนเทศ (CIT2014) และการประชุมเชิงปฏิบัติการดานการบริหารและจัดการเครือขายยูนิเน็ต (UniNOMS2014) การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตน แบบ Dual- Authentication (Radius และ LDAP) ระหวางวันที่ วันที่ 30 – 31 มกราคม 2557 สนับสนุนโดย

การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

การประชุมวิชาการทางคอมพิวเตอรและเทคโนโลยีสารสนเทศ (CIT2014) และการประชุมเชิงปฏิบัติการดานการบริหารและจัดการเครือขายยูนิเน็ต (UniNOMS2014)

การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตน แบบ Dual- Authentication (Radius และ LDAP)

ระหวางวันที่ วันที่ 30 – 31 มกราคม 2557

สนับสนนุโดย

Page 2: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-
Page 3: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

สารบัญ

การติดตั้ง Linux CENTOS 6.4 ............................................................................................................................ 1

การติดตั้ง OpenLDAP บนระบบปฏิบัติการ CentOS 6.4 .................................................................................... 6

การติดตั้งและกําหนดคา phpLDAPadmin ........................................................................................................ 10

การติดตั้ง Radius Server บนระบบปฏิบัติการ CentOS 6.4 ............................................................................. 13

การติดตั้งและกําหนดคา FreeRADIUS-Mysql on CentOS 6.4 ....................................................................... 15

การติดตั้ง Openvpn สําหรับ CentOS 6.4 ....................................................................................................... 19

การติดตั้ง Radius Plug-in สําหรับ OpenVPN .................................................................................................. 23

การติดตั้งเครื่องลูกขาย OpenVPN บน Windows ............................................................................................. 25

Page 4: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

1 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

การติดตั้ง Linux CENTOS 6.4 โดยมีขั้นตอนดังตอไปนี้

Page 5: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

2 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

เลือกติดตั้งแบบ Basic Storage

ยืนยันการลางขอมูลสําหรับอุปกรณบันทึกขอมูล

Page 6: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

3 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

กําหนดรหัสผูใช โดย user คือ root

เลือก Replace Linux เพื่อแทนที่เฉพาะ Linux ที่มีอยูเดิม

Page 7: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

4 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

ยืนยันการสราง Harddisk

เลือกติดตั้งแบบ Basic Server

ทําการติดตั้ง

Page 8: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

5 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

ติดตั้งเสร็จสิ้นทําการ Reboot

ในขั้นตอนการติดตั้งชวงแรก ใหเลือก Package selection เปน Software Development #vim /etc/selinux/config แกไขดวยการกด “i” เพื่อ insert ใหปด SeLinux โดยเปลี่ยนจาก enforcing เปน disabled # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. (default) # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. SELINUX=disabled # SELINUXTYPE= type of policy in use. Possible values are: # targeted - Only targeted network daemons are protected. # strict - Full SELinux protection. SELINUXTYPE=targeted ทําการบันทึกโดย Esc + “: w q” Install EPEL repository in CentOS #wget http://mirror-fpt-telecom.fpt.net/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm #rpm -Uhv epel-release-6-8.noarch.rpm

Page 9: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

6 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

การติดตั้ง OpenLDAP บนระบบปฏิบัติการ CentOS 6.4 อางอิงขอมูลจาก http://ihazem.wordpress.com/2011/11/29/installing-and-configuring-openldap-on-centos-5/ โดยภาพรวมของการอบรมจะทําการติดตั้งตามโครงสรางตอไปนี้

OpenLDAP

OpenVPN

Config ผ่าน SSH

Authen

Check user

Local Server

Access Private

Network

Staff

FreeRadiusMysql

คําสั่งในการติดตั้ง OpenLDAP # yum -y install openldap openldap-servers openldap-clients Create Certificate # cd /etc/pki/tls/certs # make slapd.pem

ผลลัพทธ Country Name (2 letter code) [XX]: TH รหัสประเทศ State or Province Name (full name) []: Songkhla ชื่อจังหวัด Locality Name (eg, city) [Default City]:Mung ชื่ออําเภอ Organization Name (eg, company) [Default Company Ltd]: SKRU ชื่อหนวยงาน Organizational Unit Name (eg, section) []:ICT Common Name (eg, your name or your server's hostname) []: Email Address []: #chmod 640 slapd.pem #chown root:ldap slapd.pem #ln -s /etc/pki/tls/certs/slapd.pem /etc/openldap/certs/slapd.pem Generate LDAP Manager password #slappasswd New password: ****** Re-enter new password: ****** {SSHA}wdsKizh0mBZ1bP4q7YzG2FsO25VoJvNs ทําการ Copy สําหรับไฟล Configure ใหผูใช ทําการ Copy ขอความ “{SSHA}SQhwTQJVnigb57aZJdZzFiD5P/f1Z3gv” ไวใน Notepad

Page 10: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

7 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

ทําการปรับปรุงพรอมสําเนาไฟลตัวอยาง slapd config file #cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf #cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

# vim /etc/openldap/slapd.conf ใหกด “:” และทําการระบุเลข เพื่อไป ยังบรรทัดที่ตองการ หาก อยูใน Mode –Insert— ใหกด ESC กอน บรรทัดที่ 66 Find and replace the following three lines

TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt TLSCertificateFile /etc/pki/tls/certs/slapd.pem TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem

บรรทัด 115 และ 117 Find and replace all dc=my-domain to your own domain.

suffix ”dc=<your_domain>,dc=com” rootdn ”cn=Manager,dc=<your_domain>,dc=com”

บรรทัดที ่123 แทรก Search for rootpw and add the {SSHA}********************* you copied earlier, ensuring all other rootpw are commented out

# rootpw secret # rootpw {crypt}ijFYNcSNctBYg rootpw {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

เมื่อกําหนดคาเสร็จเรียบรอย Esc+ “:wq” เพื่อทําการบันทึก ทําการ Enable SSL over LDAP #vim /etc/sysconfig/ldap บรรทัดที่ 16 เปลี่ยนคาจาก no เปน yes SLAPD_LDAPS=yes เมื่อกําหนดคาเสร็จเรียบรอย Esc+ “:wq” เพื่อทําการบันทึก

การกําหนดคา ldap config file #vim /etc/openldap/ldap.conf บรรทัดที่ 8 และ 9 ลบเครื่องหมาย “#” ออกและ แทรกบรรทัดสุดทาย BASE dc=<your_domain>,dc=com URI ldap://localhost TLS_REQCERT never #this line probably won't exist so add it to the bottom เมื่อกําหนดคาเสร็จเรียบรอย Esc+ “:wq” เพื่อทําการบันทึก

การสรางไฟลสําหรับ initial LDAP structure #vim /root/root.ldif

Page 11: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

8 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

รูปแบบในการแกไข dn: dc=<your_domain>,dc=com dc: <your_domain> objectClass: dcObject objectClass: organizationalUnit ou: <your_domain>.com

dn: ou=people,dc=<your_domain>,dc=com ou: people objectClass: organizationalUnit

dn: ou=groups,dc=<your_domain>,dc=com ou: groups objectClass: organizationalUnit ตัวอยางในการทดสอบ dn: dc=ldapserver,dc=com dc: ldapserver objectClass: dcObject objectClass: organizationalUnit ou: ldapserver.com

dn: ou=people,dc=ldapserver,dc=com ou: people objectClass: organizationalUnit

dn: ou=groups,dc=ldapserver,dc=com ou: groups objectClass: organizationalUnit เมื่อกําหนดคาเสร็จเรียบรอย Esc+ “:wq” เพื่อทําการบันทึก ทําการลางไฟลที่เกีย่วขอใน slapd กอนทําการเพิ่ม Base ของ ldap เขาสูระบบ #rm -rf /etc/openldap/slapd.d/* #slapadd -v -n 2 -l /root/root.ldif ผลลัพธ added: "dc=ldapserver,dc=com" (00000001) _############## 70.96% eta none elapsed none spd 254.6 /s added: "ou=people,dc=ldapserver,dc=com" (00000002) added: "ou=groups,dc=ldapserver,dc=com" (00000003) .#################### 100.00% eta none elapsed spd 272.0 /s Closing DB...

Page 12: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

9 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

ทําการกําหนดสิทธฺของไฟลและโฟรเดอร #chown -R ldap:ldap /var/lib/ldap #chown -R ldap:ldap /etc/openldap/slapd.d การตรวจสอบ LDAP config #rm -rf /etc/openldap/slapd.d/* #slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d ผลลัพธ config file testing succeeded #chkconfig slapd on #service slapd start ผลลัพธ Starting slapd: [ OK ] การตรวจสอบ LDAP #ldapsearch -x -ZZ -h localhost ผลลัพธ # extended LDIF # # LDAPv3 # base <dc=ldapserver,dc=com> (default) with scope subtree # filter: (objectclass=*) # requesting: ALL # # ldapserver.com dn: dc=ldapserver,dc=com dc: ldapserver objectClass: dcObject objectClass: organizationalUnit ou: ldapserver.com # people, ldapserver.com dn: ou=people,dc=ldapserver,dc=com ou: people objectClass: organizationalUnit ……………….

Page 13: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

10 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

#ldapsearch -x -H ldaps://localhost ผลลัพธ # extended LDIF # # LDAPv3 # base <dc=ldapserver,dc=com> (default) with scope subtree # filter: (objectclass=*) # requesting: ALL # # ldapserver.com dn: dc=ldapserver,dc=com dc: ldapserver objectClass: dcObject objectClass: organizationalUnit ou: ldapserver.com # people, ldapserver.com dn: ou=people,dc=ldapserver,dc=com …………

การติดตั้งและกําหนดคา phpLDAPadmin อางอิงขอมูลจาก http://www.itmanx.com/kb/centos6/install-openldap-phpldapadmin http://www.tecmint.com/install-openldap-server-and-administer-with-phpldapadmin-in-debianubuntu/ คําสั่งสําหรับติดตั้ง phpldapadmin #yum -y install phpldapadmin Allow access from your network #vim /etc/httpd/conf.d/phpldapadmin.conf แทรกบรรทัดที่ 13 Order Deny,Allow Deny from all Allow from 127.0.0.1 Allow from ::1 Allow from 192.168.0 # เพิ่มเครือขายที่เราตองการใหใชงาน บรรทัดที่ 13 นี้ แทรกเขาไป

Page 14: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

11 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

#vim /etc/phpldapadmin/config.php Comment บรรทัดที่ 398 //$servers->setValue('login','attr','uid'); Setup HTTPD service #chkconfig httpd on #service httpd start Log in to phpLDAPadmin ทําการเปดใหบริการ port tcp หมายเลข 636 และ 389 เพื่อใหบริการ LDAP จากภายนอกได หนาตางคําสั่ง “setup”

เลือกการตั้งคา Firewall

เลือกท่ี “Customize” และ “Forward” เพื่อเพิ่ม tcp 636 และ tcp 389 การเรียกใชบริการ phpldapadmin “http://your_ip_address/phpldapadmin”

DN: cn=Manager,dc=ldapserver,dc=com Password : slapdpassword

Page 15: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

12 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

Monitoring SLAPD Logging ตองทําการกําหนดคา Loglevel ในไฟล slapd.conf และ ldap สงคาในระบบ syslog ดวย local4 ดังนั้นตองทําการกําหนดคาที่ไฟล rsyslog.conf โดยระบุให local4 สงคา log ไปท่ีไฟลที่ตองการเชน /var/log/slapd.log หรือ /var/log/ldap.log โดยการกําหนดคา log level สามารถพิจารณาจาก ตารางโดยนําระดับ log ที่ตองการมา บวกกัน loglevel Keyword Logging Description -1 Any enable all debugging 0 no debugging 1 (0x1 trace) trace function calls 2 (0x2 packets) debug packet handling 4 (0x4 args) heavy trace debugging (function args) 8 (0x8 conns) connection management 16 (0x10 BER) print out packets sent and received 32 (0x20 filter) search filter processing 64 (0x40 config) configuration file processing 128 (0x80 ACL) access control list processing 256 (0x100 stats) stats log connections/operations/results 512 (0x200 stats2) stats log entries sent ตัวอยางไดแก # Logging # - trace function calls (1) # - connection management (8) # - ACL processing (128) # - stats log connections/operations/results (256) # (1 + 8 + 128 + 256)=393 loglevel 393 แกไขไฟล /etc/syslog.conf เพิม่บรรทัด ในการเก็บ logging และ restart syslog # vim /etc/rsyslog.conf local4.* /var/log/slapd.log # service syslog reload ตรวจสอบ log ไดดวยคําสั่งตอไปนี้ #tail -f /var/log/slapd.log

Page 16: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

13 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

การติดตั้ง Radius Server บนระบบปฏิบัติการ CentOS 6.4 กําหนดใหทําที่เครื่องที่ตองการติดตั้ง Radius กรณีแยกเครื่องใหบริการ LDAP และ Radius

OpenLDAP

Authen Check user

Staff

FreeRadius

การติดตั้ง LDAP Server ใหรองรับ Radius (ทําบนเครื่อง OpenLDAP) Download radius ldap schema file and copy to ldap schema directory # wget http://open.rhx.it/phamm/schema/radius.schema # cp radius.schema /etc/openldap/schema/ การ the slapd.d directory ในสวนนี้ถือวาเปนสวนทีส่ําคัญ เนื่องจากหากไมทําการ Remove ขอมูลของ Slapd.d จะไมสามารถเรียกใช radiusprofile #rm -rf /etc/openldap/slapd.d/* #service slapd restart ทําการเพิ่มรูปแบบของ Radius ใหกับ ldap โดยระบุในไฟล /etc/openldap/slapd.conf #vim /etc/openldap/slapd.conf บรรทัดที่ 18 include /etc/openldap/schema/radius.schema การติดตั้ง Radius (ทําบนเครื่อง Radius Server) #yum -y install freeradius freeradius-utils freeradius-ldap Edit Radius LDAP Files # vim /etc/raddb/modules/ldap ldap { server = "openldap.example.com" // Host Name หรือ IP Address basedn = "dc=example,dc=com" identity = "cn=Manager,dc=example,dc=com" password = xxxxx //password ที่ใชจริงในตอนตน filter = "(uid=%{Stripped-User-Name:-%{User-Name}})" base_filter = "(objectclass=radiusprofile)" start_tls = no groupmembership_filter = "(|(&(objectClass=GroupOfNames)(member=%{Ldap-

Page 17: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

14 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

UserDn}))(&(objectClass=GroupOfUniqueNames)(uniquemember=%{Ldap-UserDn})))" profile_attribute = "radiusprofile" access_attr = "uid" dictionary_mapping = ${raddbdir}/ldap.attrmap ldap_connections_number = 10 timeout = 4 timelimit = 5 net_timeout = 1 set_auth_type = yes } # vim /etc/raddb/ldap.attrmap checkItem User-Password userPassword // เพิ่มเฉพาะ บรรทัดแรก บรรทัดที่เหลือมีในไฟลนี้แลว replyItem Tunnel-Type radiusTunnelType replyItem Tunnel-Medium-Type radiusTunnelMediumType replyItem Tunnel-Private-Group-Id radiusTunnelPrivateGroupId Enable LDAP Authentication #vim /etc/raddb/sites-available/inner-tunnel และ #vim /etc/raddb/sites-available/default ldap //ทําการคนหา จุดแรก ทําการลบ “#” และ //ทําการคนหา จุดที่ 2 ทําการลบ “#” Auth-Type LDAP { ldap } ทําการ ReStart Services #rm -rf /etc/openldap/slapd.d/* #service slapd restart #service radiusd restart

Page 18: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

15 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

การติดตั้งและกําหนดคา FreeRADIUS-Mysql on CentOS 6.4

Authen

FreeRadiusMysql

กําหนดการติดตั้งดวยคําสั่ง yum สําหรับการติดตั้งนี้ MySQL Server และ FreeRadius #yum –y install freeradius-mysql freeradius-utils mysql-server Transaction Summary ========================================================= Install 7 Package(s) Upgrade 1 Package(s) Total download size: 12 M Downloading Packages: (1/8): freeradius-2.1.12-4.el6_3. | 1.4 MB 00:00 (2/8): freeradius-mysql-2.1.12-4. | 56 kB 00:00 (3/8): freeradius-utils-2.1.12-4. | 120 kB 00:00 (4/8): libtool-ltdl-2.2.6-15.5.el | 44 kB 00:00 (5/8): mysql-5.1.69-1.el6_4.x86_6 | 907 kB 00:00 (6/8): mysql-libs-5.1.69-1.el6_4. | 1.2 MB 00:00 (7/8): mysql-server-5.1.69-1.el6_ | 8.7 MB 00:00 (8/8): perl-DBD-MySQL-4.013-3.el6 | 134 kB 00:00 --------------------------------------------------------- Total 5.4 MB/s | 12 MB 00:02 การกําหนดคาของ Mysql สําหรับ Radius เริ่มการทํางานของ MySQL service # /etc/init.d/mysqld start หรือ # service mysqld start …. /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h radiustest01 password 'new-password' ….. Please report any problems with the /usr/bin/mysqlbug script! [ OK ] Starting mysqld: [ OK ]

Page 19: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

16 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

กําหนดใหทํางานทุกครั้งเมื่อเปดเครื่อง หรือ Restart เครื่องใหม # chkconfig mysqld on คําสั่งในการกําหนดรหัสผูใชหลัก root ใหกับฐานขอมูล MySQL #mysqladmin –u root password “test123” ทดสอบผูใชที่กําหนด เพื่อเขาสูฐานขอมูล #mysql –u root –p Enter password:

การสรางฐานขอมูล ที่มีชื่อวา “radius” และการ grant all privileges to user radius: mysql> CREATE DATABASE radius; Query OK, 1 row affected (0.01 sec) การกําหนดสิทธิการเขาใช โดยกําหนดชื่อผูใชวา “radius” รหัสผาน “radpass” mysql> GRANT ALL PRIVILEGES ON radius.* TO radius@localhost IDENTIFIED BY "radpass"; Query OK, 0 rows affected (0.00 sec) เรียกใชผูใชที่สรางขึ้นใหม mysql> flush privileges;

การนําเขาตารางสําหรับ Radius , tables for radius: mysql> use radius; mysql> SOURCE /etc/raddb/sql/mysql/schema.sql Query OK, 0 rows affected (0.07 sec) Query OK, 0 rows affected (0.03 sec) Query OK, 0 rows affected (0.04 sec) Query OK, 0 rows affected (0.03 sec) Query OK, 0 rows affected (0.03 sec) Query OK, 0 rows affected (0.04 sec) Query OK, 0 rows affected (0.03 sec) mysql> exit

#vim /etc/raddb/sql.conf แกไขดวยการกด “i” เพื่อ insert ทําการแกไขและตรวจสอบชื่อฐานขอมูล ชื่อผูใช และ รหัสผาน # Connection info: server = "localhost" #port = 3306 login = "radius" password = "radpass" # Database table configuration for everything except Oracle radius_db = "radius" ทําการบันทึกโดย Esc + “: w q”

Page 20: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

17 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

#vim /etc/raddb/radiusd.conf บรรทัดที่ 700 แกไขดวยการกด “i” เพื่อ insert ทําการลบ # $INCLUDE sql.conf ทําการบันทึกโดย Esc + “: w q” #vim /etc/raddb/sites-available/default แกไขดวยการกด “i” เพื่อ insert ทําการลบ # หนาคําวา sql 3 จุด uncomment the line containing ‘sql’ // authorize{} , accounting {} และ session {} # sql ทําการบันทึกโดย Esc + “: w q” #vim /etc/raddb/sites-available/inner-tunnel แกไขดวยการกด “i” เพื่อ insert ทําการลบ # หนาคําวา sql 2 จุด uncomment the line containing ‘sql’ // authorize{} และ session {} # sql ทําการบันทึกโดย Esc + “: w q” #vim /etc/raddb/clients.conf แกไขดวยการกด “i” เพื่อ insert เพื่อเปลี่ยน “testing123” เปน “mykey” Secret = testing123 secret = mykey ทําการบันทึกโดย Esc + “: w q” เริ่มการใชงาน Radius service # service radiusd start #vim /etc/raddb/clients.conf แกไขดวยการกด “i” เพื่อ insert เพื่อเปลี่ยน 192.168.?.?/24 ใหเปน กลุมเครื่องลูกขายที่ตองการใชงาน client 192.168.?.?/24 { secret = YOUR SECRET HERE shortname = yourVPN nastype = other } ทําการบันทึกโดย Esc + “: w q” เริ่มการใชงาน Radius service # service radiusd restart ทําการทดสอบเพื่อตรวจสอบคําสั่ง “radtest” # radtest test test 127.0.0.1 0 mykey

Page 21: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

18 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

Sending Access-Request of id 180 to 127.0.0.1 port 1812 User-Name = "test" User-Password = "test" NAS-IP-Address = 127.0.0.1 NAS-Port = 0 Message-Authenticator = 0x00000000000000000000000000000000 rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=180, length=20 หมายเหตุ radclient:: Failed to find IP address for radiustest01 radclient: Nothing to send. หากเกิดขอความขางตนให ทําการแกไข โดยทําการกําหนดคา # vim /etc/hosts แกไขดวยการกด “i” เพื่อ insert ชื่อ host โดยตัวอยาง “radius.myuniversity” 127.0.0.1 radius radius.myuniversity localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 # vim /etc/sysconfig/network ซึ่งตองมีคา HOSTNAME ตรงกัน เมื่อการทํางานของระบบ Radius service เรียบรอย ทําการสรางผูใชตัวอยาง ที่ชื่อวา test และรหัสผาน test Add a test user to the radius database: # mysql –u root –p mysql> use radius; mysql> INSERT INTO `radcheck` (`id`, `username`, `attribute`, `op`, `value`) VALUES (1,'test','User-Password',':=','test'); Query OK, 1 row affected (0.00 sec) # radtest test test 127.0.0.1 0 mykey Sending Access-Request of id 123 to 127.0.0.1 port 1812 User-Name = "test" User-Password = "test" NAS-IP-Address = 127.0.0.1 NAS-Port = 0 Message-Authenticator = 0x00000000000000000000000000000000 rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=123, length=20 ทําการกําหนดให MySQL และ Radius service สามารถทํางานทุกครั้งที่มีการเปดเครื่องดวยคําสั่ง #chkconfig mysqld on #chkconfig radiusd on

Page 22: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

19 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

การติดตั้ง Openvpn สําหรับ CentOS 6.4 อางอิงขอมูลจาก http://safesrv.net/wp-content/cache/page_enhanced/safesrv.net/install-openvpn-on-centos/_index.html_gzip http://safesrv.net/setup-freeradius-plugin-and-openvpn-source/

OpenLDAPOpenVPN

Authen Check user

Access Private

Network Staff

FreeRadiusMysql

ทําการติดตั้ง RPMFORGE เพื่อเพ่ิมรายการโปรแกรมในการ YUM ซึ่งตองตรวจสอบใหตรงกับรุนของ CentOS #wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm #rpm –Uvh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm การติดตั้งโปรแกรม OpenVPN #yum –y install openvpn สําหรับกรณีของ CenOS ตองทําการ Download easy-ras จากเว็บของ Github เนื่องจากเมื่อสรางกุญแจรหัส มีขอผิดพลาด Download easy-rsa from below: #wget https://github.com/downloads/OpenVPN/easy-rsa/easy-rsa-2.2.0_master.tar.gz Extract the package: #tar -zxvf easy-rsa-2.2.0_master.tar.gz Copy to OpenVPN directory: ทําการสําเนาโปรแกรมสรางกุญแจรหัส RSA ไปยัง /etc/openvpn #cp -R easy-rsa-2.2.0_master/easy-rsa/ /etc/openvpn/ #vim /etc/openvpn/easy-rsa/2.0/vars คนหาดวยคําสั่ง “:/KEY_CONFIG” เมื่อพบบรรทัดดังกลาวใหแกไขดังนี้ export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA` ไปเปน export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf เมื่อทําการแกไขเสร็จสิ้นใหบันทึกดวยการกด “Esc + : + w + q” #cd /etc/openvpn/easy-rsa/2.0

Page 23: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

20 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

#chmod 755 * #source ./vars #./vars #./clean-all การสรางไฟล ca.crt โดยการ Build CA: #./build-ca Country Name (2 letter code) [US]:TH State or Province Name (full name) [CA]:SK Locality Name (eg, city) [SanFrancisco]:songkhla Organization Name (eg, company) [Fort-Funston]: Organizational Unit Name (eg, section) [changeme]: Common Name (eg, your name or your server's hostname) [changeme]: Name [changeme]: Email Address [[email protected]]: การสรางไฟล server.crt โดย Build key server: # ./build-key-server server ใหระบุเหมือนชุดดานบน Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'TH' stateOrProvinceName :PRINTABLE:'SK' localityName :PRINTABLE:'songkhla' organizationName :PRINTABLE:'Fort-Funston' organizationalUnitName:PRINTABLE:'changeme' commonName :PRINTABLE:'server' name :PRINTABLE:'changeme' emailAddress :IA5STRING:'[email protected]' Certificate is to be certified until Jul 10 02:47:42 2023 GMT (3650 days) Sign the certificate? [y/n]: y 1 out of 1 certificate requests certified, commit? [y/n] y Write out database with 1 new entries Data Base Updated การสราง Build Diffie Hellman (wait a moment until the process finish): #./build-dh Generating DH parameters, 1024 bit long safe prime, generator 2

Page 24: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

21 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

This is going to take a long time .........................+...............+.......................................+...............+.............................................................+..+...................+.+.......+..................+...........................................+..................................................................+.........................+.............................+..................+............+...............................................................................................................................++*++*++* สําหรับการสรางไฟลคุณลักษณะของบริการ OpenVPN : #vim /etc/openvpn/server.conf แทรกขอความดานลางโดยกด “i” เพื่อ INSERT local 172.17.68.37 port 1194 #- port proto udp #- protocol dev tun tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 reneg-sec 0 ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login #- Comment this line if you are using FreeRADIUS #plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf #- Uncomment this line if you are using FreeRADIUS client-cert-not-required username-as-common-name server 10.100.0.0 255.255.255.0 push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" keepalive 5 30 comp-lzo persist-key persist-tun log /var/log/openvpn.log verb 3 กําหนดหมายเลข IP Address สําหรับบริการ local 172.17.68.37

Page 25: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

22 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

กําหนด DHCP ที่ตองการใหลูกขาย OpenVPN กําหนด server 10.100.0.0 255.255.255.0 ระบุ DNS สําหรับใชออกสูอินเตอรเน็ต สําหรับหนวยงาน ตัวอยางใชของ Google push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" กําหนดการบันทึก log ไปท่ีไฟล openvpn.log log /var/log/openvpn.log verb 3 ทําการเรียกใชงาน OpenVPN #service openvpn restart ตั้งคา Firewall สําหรับการสงตอขอมูลออกสูระบบ VPN #service iptables stop ขอควรระวังในการกําหนด IP Address ตองตรงกับที่กําหนดไวในไฟล server.conf #iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o eth0 -j MASQUERADE ทําการบันทึกการตั้งคาโดยคําสั่ง #service iptables save และทําการเริ่มการทํางานของ Firewall ใหม #service iptables restart ทําการกําหนดใหทุกครั้งที่เปดเครื่องสามารถทํางานทันที # vim /etc/sysctl.conf net.ipv4.ip_forward = 0 เปลี่ยนเปน 1 เมื่อกําหนดคาเสร็จเรียบรอย Esc+ “:wq” เพื่อทําการบันทึก สั่ง restart เครื่องแมขายใหม โดย #reboot หรือ #init 6 เพื่อใหแนใจควรทําการกําหนดใหทุกครั้งที่มีการเปดเครื่องระบบตองเรียกใช OpenVPN ดวยคําสั่ง #chkconfig openvpn on

Page 26: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

23 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

การติดตั้ง Radius Plug-in สําหรับ OpenVPN

Radius ServerIP(eth0) : 172.17.68.35

OpenVPN 01Real IP(eth0) : 172.17.68.37

Radius Authen

สําหรับการเพิ่ม plugin ใหกับ OpenVPN จําเปนตองติดตั้งสวนแปลงภาษา gcc โดยใชคําสั่ง #yum -y install libgcrypt libgcrypt-devel gcc-c++ และทําการ download ไฟล radiusplugin #wget http://www.nongnu.org/radiusplugin/radiusplugin_v2.1.tar.gz ทําการแตกไฟลดวยคําสั่ง #tar xvfz radiusplugin_v2.1.tar.gz เขาสูโฟลเดอร #cd radiusplugin/ ใชคําสั่ง เพื่อสรางไฟล plugin #make สําเนาไฟล plugin ไปสู โฟลเดอร OpenVPN #cp radiusplugin.so /etc/openvpn/ #cp radiusplugin.cnf /etc/openvpn/ กําหนดคาของ Radius Server ที่ทําการติดตั้งกอนหนานี้ เพื่อใหตรวจสอบขอมูลผูใช # vim /etc/openvpn/radiusplugin.cnf server { # The UDP port for radius accounting. acctport=1813 # The UDP port for radius authentication. authport=1812 # The name or ip address of the radius server. name=YOUR RADIUS SERVER IP # How many times should the plugin send the if there is no response? retry=1 # How long should the plugin wait for a response? wait=1 # The shared secret.

Page 27: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

24 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

sharedsecret=YOUR RADIUS SERVER SECRET } ทําการแกไขไฟล server.conf #vim /etc/openvpn/server.conf นําเอา comment “#” ดานหนาบรรทัดนี้ออก plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf ทําการสั่ง restart บริการ OpenVPN #service openvpn restart

Page 28: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

25 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

การติดตั้งเครื่องลูกขาย OpenVPN บน Windows ทําการ download ไฟล openvpn-install-2.3.2-I001-i686.exe จาก http://openvpn.net/index.php/open-source/downloads.html หรือขึ้นกับเครื่องลูกขาย สิ่งที่สําคัญสําหรับลูกขายตองนําไฟล ca.crt ของเครื่องแมขายมาใชเพื่อยื่นยันตัวตนกอนการอางอิงผูใชใน RADIUS โดยสรางไฟลที่มีชื่อวา MyVPN.ovpn ที่มีขอมูลดังนี้ client dev tun ;dev-node MyTap ;proto tcp proto udp remote YOUR IP ADDRESS OR DOMAIN 1194 remote YOUR 2nd IP ADDRESS OR DOMAIN FOR FAILOVER 1194 resolv-retry infinite nobind persist-key persist-tun ; CA FILE COPY FORM SERVER ca ca.crt comp-lzo verb 3 ; THIS WORD FOR RADIUS PLUGIN auth-user-pass route-method exe route-delay 2 route-method exe route-delay 2 redirect-gateway def1 เมื่อทําการติดตั้งเสร็จสิ้นและเรียกใชโปรแกรมไดตาม

รูปภาพ 1 โปรแกรม OpenVPN

Page 29: การติดตั้งระบบ OpenVPN ที่มีการ ...6 การต ดต งระบบ OpenVPN ท ม การย นย นต วตนแบบ Dual-

26 การติดตั้งระบบ OpenVPN ที่มีการยืนยันตัวตนแบบ Dual- Authentication (Radius และ LDAP)

ทีมวิทยากร นายกฤษณวรา รัตนโอภาส อาจารย โปรแกรมวิชาคอมพิวเตอร คณะวิทยาศาสตรและเทคโนโลยี มหาวิทยาลัยราชภัฏสงขลา หมายเลขโทรศัพท 089-733-3779 E-mail : [email protected] นายสรายุทธ กูลเกื้อ นักวิชาการคอมพิวเตอร งานเทคโนโลยีสารสนเทศ สํานักวิทยบริการและเทคโนโลยีสารสนเทศ มหาวิทยาลัยราชภัฏสงขลา หมายเลขโทรศัพท 080-540-5426 E-mail : [email protected] นางสาวสุรีรัตน แกวคีร ี อาจารย โปรแกรมวิชาคอมพิวเตอรธุรกิจ คณะวิทยาการจัดการ มหาวิทยาลัยราชภัฏสงขลา หมายเลขโทรศัพท 084-305-3100 E-mail : [email protected]