Linux Terminal Server Project

Linux Terminal Server Project
เป็นโครงการที่พัฒนาระบบแม่ข่าย Linux เพื่อให้รองรับการบริการผ่านเทอมินอล โดยเครื่องเทอมินอลสามารถจะใช้บริการโปรแกรมต่าง ๆ จากเครื่องแม่ข่าย ผ่านเครื่องเทอมินอลได้ โดยการประมวลผลจะประมวลผลที่เครื่องแม่ข่ายทั้งสิ้น

ซึ่งทำให้ประหยัดทรัพยากรด้านฮาร์ดแวร์ได้เป็นอย่างดี อีกทั้งขั้นตอนการติดตั้งไม่ยาก จึงทำให้ได้รับความนิยมอย่างมาก

การติดตั้งสามารถทำได้ตามขั้นตอนดังนี้ (PDF)

ดาวน์โหลดคู่มือการติดตั้งได้ที่นี่ [download id=”31″]




OpenVPN บน CentOS 5.5 amd 64

มีหลาย ๆ ท่านสอบถามมาเยอะเหลือเกินครับ ว่าจะทำ Linux เป็น VPN Server ได้หรือเปล่า ถ้าทำได้ ทำยังไง เพราะหลาย ๆ ท่านยังคงคุ้นเคยกับหน้ากราฟฟิคของระบบปฏิบัติการวินโดว์ พอมาเจอ Text Mode ถึงกับตกใจกันเป็นแถว

ตัวที่ใช้ทำ vpnserver ก็คือ openvpn นั่นเอง (พูดถึงเรื่องนี้แล้ว ผมเห็นแพ็คเก็จ openvpn-as เลยลองติดตั้งดู โอว มันเป็น vpn ที่บริหารจัดการผ่านเว็บได้เลย แต่เสียดาย ให้ใช้งานได้แค่ 2 user เท่านั้นเอง) ขั้นตอนการติดตั้งก็ไม่ยากเท่าไหร่ ซึ่งผมก็อาศัย rpmforge เป็นตัวช่วยในการติดตั้ง

ข้อมูลเบื้องต้นสำหรับการติดตั้งในครั้งนี้

1. Linux  CentOS 5.5 amd 64 ติดตั้งเฉพาะกรุ๊ปแพ็คเก็จ Server เท่านั้น อื่น ๆ ไม่เอาทั้งสิ้น

2. IP Server  192.168.1.10

3. Client เป็น Windows 7 (32bit อืม ลืมบอกไปอย่างผมทดสอบกับ 64 bit ไม่ผ่านนะครับ)  ไอพีอะไรก็ได้ ขอให้ Ping เจ้า Server นี่ให้เจอก็พอครับ

ที่เครื่อง Server

1. ดาวน์โหลด repo ได้จากที่นี่ครับ  http://packages.sw.be/rpmforge-release/ เลือกให้ตรงกับ OS ของเรา

[root@vpn ~]# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

2. ทำการติดตั้ง repo โดยใช้คำสั่ง rpm

[root@vpn ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  mbox    rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
[root@vpn ~]# rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
warning: rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
Preparing…                ########################################### [100%]
1:rpmforge-release       ########################################### [100%]
[root@vpn ~]#

3. ทำการทดลองค้นหาแพ็คเก็จโดยใช้คำสั่ง yum

[root@vpn ~]# yum search openvpn
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: mirror.issp.co.th
* base: mirror.issp.co.th
* extras: mirror.issp.co.th
* rpmforge: fr2.rpmfind.net
* updates: mirror.issp.co.th
=============================== Matched: openvpn ===============================
kvpnc.x86_64 : Frontend for various VPN clients
openvpn.x86_64 : secure tunneling daemon

4. เมื่อเจอแพ็คเก็จที่ต้องการแล้ว ก็ให้ทำการติดตั้งได้ทันที  ซึ่งการใช้คำสั่ง yum นั้น นอกจากจะติดตั้งแพ็คเก็จที่เราต้องการแล้ว ตัว yum ยังสามารถไปดึงแพ็คเก็จอื่น ๆ ตามที่มันต้องการอีกด้วย ทำให้สะดวกอย่างมากในการติดตั้งซอฟแวร์ต่าง ๆ

[root@vpn ~]# yum -y install openvpn
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: mirror.issp.co.th
* base: mirror.issp.co.th
* extras: mirror.issp.co.th
* rpmforge: apt.sw.be
* updates: mirror.issp.co.th
rpmforge                                                                                                                                                  | 1.1 kB     00:00
rpmforge/primary                                                                                                                                          | 2.1 MB     00:02
rpmforge                                                                                                                                                             10272/10272
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package openvpn.x86_64 0:2.1.4-1.el5.rf set to be updated
–> Processing Dependency: lzo for package: openvpn
–> Processing Dependency: liblzo2.so.2()(64bit) for package: openvpn
–> Running transaction check
—> Package lzo.x86_64 0:2.04-1.el5.rf set to be updated
–> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================
Package                                 Arch                                   Version                                           Repository                                Size
=====================================================================================
Installing:
openvpn                                 x86_64                                 2.1.4-1.el5.rf                                    rpmforge                                 442 k
Installing for dependencies:
lzo                                     x86_64                                 2.04-1.el5.rf                                     rpmforge                                 139 k

Transaction Summary
=====================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)

Total download size: 581 k
Downloading Packages:
(1/2): lzo-2.04-1.el5.rf.x86_64.rpm                                                                                                                       | 139 kB     00:01
(2/2): openvpn-2.1.4-1.el5.rf.x86_64.rpm                                                                                                                  | 442 kB     00:01
————————————————————————————————————————————————————
Total                                                                                                                                            187 kB/s | 581 kB     00:03
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing     : lzo                                                                                                                                                       1/2
Installing     : openvpn                                                                                                                                                   2/2

Installed:
openvpn.x86_64 0:2.1.4-1.el5.rf

Dependency Installed:
lzo.x86_64 0:2.04-1.el5.rf

Complete!
[root@vpn ~]#

5. เมื่อติดตั้งเสร็จแล้วจะมีไฟล์ตัวอย่างคอนฟิกบางส่วนอยู่ที่  /usr/share/doc/openvpn-2.1.4/

[root@vpn ~]# cd /usr/share/doc/openvpn-2.1.4/
[root@vpn openvpn-2.1.4]# ls
AUTHORS    COPYRIGHT.GPL  PORTS             README.plugins
ChangeLog  easy-rsa       README            sample-config-files
contrib    INSTALL        README.auth-pam   sample-keys
COPYING    NEWS           README.down-root  sample-scripts
[root@vpn openvpn-2.1.4]#

6. OpenVPN มีความจำเป็นต้องใช้ Certificate ในการยืนยันความน่าเชื่อถือทั้ง Server และ Client ดังนั้นจึงต้องสร้าง Cert ขึ้นมาก่อน โดยทำตามขั้นตอนดังนี้

root@vpn openvpn-2.1.4]# cd easy-rsa/2.0/
[root@vpn 2.0]# ls
build-ca  build-inter  build-key-pass    build-key-server  build-req-pass  inherit-inter  Makefile           openssl.cnf  README       sign-req  whichoopensslcnf
build-dh  build-key    build-key-pkcs12  build-req         clean-all       list-crl       openssl-0.9.6.cnf  pkitool      revoke-full  vars

[root@vpn 2.0]# vi vars

7. แก้ไขไฟล์ vars สำหรับการสร้าง Cert  (เฉพาะส่วนที่จำเป็น อยู่ล่างสุดของไฟล์) อาจจะใช้ vi ในการแก้ไข หรือ pico ก็แล้วแต่ถนัดครับ เมื่อแก้ไขเสร็จแล้ว ก็บันทึกแล้วออกจากไฟล์ครับ

# These are the default values for fields
# which will be placed in the certificate.
# Don’t leave any of these fields blank.
export KEY_COUNTRY=”TH”
export KEY_PROVINCE=”Chiangmai”
export KEY_CITY=”Chiangmai”
export KEY_ORG=”RMUTL”
export KEY_EMAIL=”teppap@rmutl.ac.th”

8. เปลี่ยนโหมดของไฟล์ให้สามารถรันได้ดังนี้

[root@vpn 2.0]# chmod +x *

9. สร้าง Cert โดยทำตามขั้นตอนดังต่อไปนี้  มันยาวไปหน่อย ผมจะไฮไลท์ สีแดงกับน้ำเงินให้นะครับ สีแดงคือคำสั่ง สีน้ำเงิน คือสิ่งที่ต้องกรอกครับ

[root@vpn 2.0]# source ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/share/doc/openvpn-2.1.4/easy-rsa/2.0/keys
[root@vpn 2.0]# ./clean-all
[root@vpn 2.0]# ls -l keys/
total 4
-rw-r–r– 1 root root 0 Feb 10 13:21 index.txt
-rw-r–r– 1 root root 3 Feb 10 13:21 serial
[root@vpn 2.0]# ./build-ca
Generating a 1024 bit RSA private key
………………..++++++
……………………………………………………..++++++
writing new private key to ‘ca.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [TH]:
State or Province Name (full name) [Chiangmai]:
Locality Name (eg, city) [Chiangmai]:
Organization Name (eg, company) [RMUTL]:
Organizational Unit Name (eg, section) []:RMUTL
Common Name (eg, your name or your server’s hostname) [RMUTL CA]:vpn.rmutl.ac.th
Name []:vpn.rmutl.ac.th
Email Address [teppap@rmutl.ac.th]:
[root@vpn 2.0]# ls -l keys/
total 12
-rw-r–r– 1 root root 1424 Feb 10 13:22 ca.crt
-rw——- 1 root root  891 Feb 10 13:22 ca.key
-rw-r–r– 1 root root    0 Feb 10 13:21 index.txt
-rw-r–r– 1 root root    3 Feb 10 13:21 serial
[root@vpn 2.0]# ./build-key-server vpn.rmutl.ac.th
Generating a 1024 bit RSA private key
………………………………………………..++++++
………………………….++++++
writing new private key to ‘vpn.rmutl.ac.th.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [TH]:
State or Province Name (full name) [Chiangmai]:
Locality Name (eg, city) [Chiangmai]:
Organization Name (eg, company) [RMUTL]:
Organizational Unit Name (eg, section) []:RMUTL
Common Name (eg, your name or your server’s hostname) [vpn.rmutl.ac.th]:
Name []:vpn.rmutl.ac.th
Email Address [teppap@rmutl.ac.th]:

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/share/doc/openvpn-2.1.4/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName           :PRINTABLE:’TH’
stateOrProvinceName   :PRINTABLE:’Chiangmai’
localityName          :PRINTABLE:’Chiangmai’
organizationName      :PRINTABLE:’RMUTL’
organizationalUnitName:PRINTABLE:’RMUTL’
commonName            :PRINTABLE:’vpn.rmutl.ac.th’
name                  :PRINTABLE:’vpn.rmutl.ac.th’
emailAddress          :IA5STRING:’teppap@rmutl.ac.th’
Certificate is to be certified until Feb  7 06:23:57 2021 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
[root@vpn 2.0]#

[root@vpn 2.0]# ls -l keys/
total 48
-rw-r–r– 1 root root 4200 Feb 10 13:24 01.pem
-rw-r–r– 1 root root 1424 Feb 10 13:22 ca.crt
-rw——- 1 root root  891 Feb 10 13:22 ca.key
-rw-r–r– 1 root root  148 Feb 10 13:24 index.txt
-rw-r–r– 1 root root   21 Feb 10 13:24 index.txt.attr
-rw-r–r– 1 root root    0 Feb 10 13:21 index.txt.old
-rw-r–r– 1 root root    3 Feb 10 13:24 serial
-rw-r–r– 1 root root    3 Feb 10 13:21 serial.old
-rw-r–r– 1 root root 4200 Feb 10 13:24 vpn.rmutl.ac.th.crt
-rw-r–r– 1 root root  745 Feb 10 13:23 vpn.rmutl.ac.th.csr
-rw——- 1 root root  887 Feb 10 13:23 vpn.rmutl.ac.th.key
[root@vpn 2.0]# cat keys/vpn.rmutl.ac.th.key
—–BEGIN RSA PRIVATE KEY—–
MIICXQIBAAKBgQC3FvB9xhcMjFXl/H9cCA5fteVmHwu+BzioudyNMj33zRF11WGK
wYmtp1C2biSHtsm66y4JqE3t6/oNBhKHhtAwpYmDHuHXPo15VKmH/DkaeouROrbc
CYy/eF0dmKc0ugOj4WwjY7233611mKY5wM9acGyEfbVQJioF1mjGV13oTwIDAQAB
AoGAAzlSLsTILx5hfNU/YN17c0/+pBez2zrBUqdDLPFPigeAYTTKrOjPhdFGaI/z
8LfVQYdWnjDqfmADXStYNC65h7oh/Ll5n4jM9nVLPf3ROB1zqGeP7k1ZuzfrQNm0
yGsl870a3vDXUUiLs0A7GsQ4BvNnkb5acLCHjgnEY0oazgECQQDeHY4biDrwtaBJ
cHKNlDo80hl4RpV55pFB6kxtgi03XnixCjlwHEYM97Gklw37/MPoNfIs7gINLDKy
MK2BvaDPAkEA0wVHNkuh+lJ3YOsn1N080fZIdZvJKScp2oDYDfGJFBaNcz33U2gu
288ZmQb2rZNTqdEovP6Ico85VkKCw2oggQJBAJJ9XZcM7wqITzGARxzXEN3CF2g6
7SSbi1u0wjlLLLUiymjA/IbTLuQojHGn6mIyH6bLxXAafSHg74KUFirGPQMCQEWy
gpjOVkulnURnpxpJkGMQ41HlCIYNJ2fCEppYYpw97q5Xky77RC7Zsmy2vhcKiCGY
scnqkAq2f4ucIDCHBwECQQDIWxF7c4QIFdaf4ZWUZGOuo7LO/dsjPiUuyg0FBsA1
lOFAhiCH8ZRErTejC3mLB/HdYL43futnhvix/YEDqoxr
—–END RSA PRIVATE KEY—–
[root@vpn 2.0]# cat keys/vpn.rmutl.ac.th.crt
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=TH, ST=Chiangmai, L=Chiangmai, O=RMUTL, OU=RMUTL, CN=vpn.rmutl.ac.th/name=vpn.rmutl.ac.th/emailAddress=teppap@rmutl.ac.th
Validity
Not Before: Feb 10 06:23:57 2011 GMT
Not After : Feb  7 06:23:57 2021 GMT
Subject: C=TH, ST=Chiangmai, L=Chiangmai, O=RMUTL, OU=RMUTL, CN=vpn.rmutl.ac.th/name=vpn.rmutl.ac.th/emailAddress=teppap@rmutl.ac.th
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:b7:16:f0:7d:c6:17:0c:8c:55:e5:fc:7f:5c:08:
0e:5f:b5:e5:66:1f:0b:be:07:38:a8:b9:dc:8d:32:
3d:f7:cd:11:75:d5:61:8a:c1:89:ad:a7:50:b6:6e:
24:87:b6:c9:ba:eb:2e:09:a8:4d:ed:eb:fa:0d:06:
12:87:86:d0:30:a5:89:83:1e:e1:d7:3e:8d:79:54:
a9:87:fc:39:1a:7a:8b:91:3a:b6:dc:09:8c:bf:78:
5d:1d:98:a7:34:ba:03:a3:e1:6c:23:63:bd:b7:df:
ad:75:98:a6:39:c0:cf:5a:70:6c:84:7d:b5:50:26:
2a:05:d6:68:c6:57:5d:e8:4f
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Cert Type:
SSL Server
Netscape Comment:
Easy-RSA Generated Server Certificate
X509v3 Subject Key Identifier:
9B:37:63:86:89:D8:F5:9A:D6:A4:5F:8A:50:3A:E2:67:25:0D:18:14
X509v3 Authority Key Identifier:
keyid:8A:E7:4E:11:35:25:94:5E:F8:D3:E9:62:8E:E4:7B:00:32:57:80:5F
DirName:/C=TH/ST=Chiangmai/L=Chiangmai/O=RMUTL/OU=RMUTL/CN=vpn.rmutl.ac.th/name=vpn.rmutl.ac.th/emailAddress=teppap@rmutl.ac.th
serial:FC:A0:4D:C7:BE:EB:70:EA

X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Key Usage:
Digital Signature, Key Encipherment
Signature Algorithm: sha1WithRSAEncryption
5a:13:d3:d6:95:8c:5e:38:0e:1c:7a:a2:5d:8f:e2:40:0d:ab:
5d:6f:6b:bc:09:fe:bb:97:fc:35:d0:e4:76:e2:1c:6c:c8:75:
60:3f:44:e9:c2:ce:27:08:e4:18:b2:b2:5b:63:9c:6d:c5:36:
7f:5a:5f:d4:b3:dd:5e:2f:35:04:09:c8:11:92:12:a7:64:50:
56:18:cb:4a:f2:8d:b5:6d:b0:11:db:b8:1d:bb:44:9b:ec:11:
99:27:3c:01:8e:b6:a6:b3:ba:26:d1:a9:69:cc:7d:31:2d:bc:
d4:57:10:89:3a:8a:02:a9:da:fc:ca:94:0e:b8:d4:ac:3c:00:
c3:ce
—–BEGIN CERTIFICATE—–
MIIETzCCA7igAwIBAgIBATANBgkqhkiG9w0BAQUFADCBrDELMAkGA1UEBhMCVEgx
EjAQBgNVBAgTCUNoaWFuZ21haTESMBAGA1UEBxMJQ2hpYW5nbWFpMQ4wDAYDVQQK
EwVSTVVUTDEOMAwGA1UECxMFUk1VVEwxGDAWBgNVBAMTD3Zwbi5ybXV0bC5hYy50
aDEYMBYGA1UEKRMPdnBuLnJtdXRsLmFjLnRoMSEwHwYJKoZIhvcNAQkBFhJ0ZXBw
YXBAcm11dGwuYWMudGgwHhcNMTEwMjEwMDYyMzU3WhcNMjEwMjA3MDYyMzU3WjCB
rDELMAkGA1UEBhMCVEgxEjAQBgNVBAgTCUNoaWFuZ21haTESMBAGA1UEBxMJQ2hp
YW5nbWFpMQ4wDAYDVQQKEwVSTVVUTDEOMAwGA1UECxMFUk1VVEwxGDAWBgNVBAMT
D3Zwbi5ybXV0bC5hYy50aDEYMBYGA1UEKRMPdnBuLnJtdXRsLmFjLnRoMSEwHwYJ
KoZIhvcNAQkBFhJ0ZXBwYXBAcm11dGwuYWMudGgwgZ8wDQYJKoZIhvcNAQEBBQAD
gY0AMIGJAoGBALcW8H3GFwyMVeX8f1wIDl+15WYfC74HOKi53I0yPffNEXXVYYrB
ia2nULZuJIe2ybrrLgmoTe3r+g0GEoeG0DCliYMe4dc+jXlUqYf8ORp6i5E6ttwJ
jL94XR2YpzS6A6PhbCNjvbffrXWYpjnAz1pwbIR9tVAmKgXWaMZXXehPAgMBAAGj
ggF9MIIBeTAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIGQDA0BglghkgBhvhC
AQ0EJxYlRWFzeS1SU0EgR2VuZXJhdGVkIFNlcnZlciBDZXJ0aWZpY2F0ZTAdBgNV
HQ4EFgQUmzdjhonY9ZrWpF+KUDriZyUNGBQwgeEGA1UdIwSB2TCB1oAUiudOETUl
lF740+lijuR7ADJXgF+hgbKkga8wgawxCzAJBgNVBAYTAlRIMRIwEAYDVQQIEwlD
aGlhbmdtYWkxEjAQBgNVBAcTCUNoaWFuZ21haTEOMAwGA1UEChMFUk1VVEwxDjAM
BgNVBAsTBVJNVVRMMRgwFgYDVQQDEw92cG4ucm11dGwuYWMudGgxGDAWBgNVBCkT
D3Zwbi5ybXV0bC5hYy50aDEhMB8GCSqGSIb3DQEJARYSdGVwcGFwQHJtdXRsLmFj
LnRoggkA/KBNx77rcOowEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWg
MA0GCSqGSIb3DQEBBQUAA4GBAFoT09aVjF44Dhx6ol2P4kANq11va7wJ/ruX/DXQ
5HbiHGzIdWA/ROnCzicI5BiysltjnG3FNn9aX9Sz3V4vNQQJyBGSEqdkUFYYy0ry
jbVtsBHbuB27RJvsEZknPAGOtqazuibRqWnMfTEtvNRXEIk6igKp2vzKlA641Kw8
AMPO
—–END CERTIFICATE—–
[root@vpn 2.0]#
[root@vpn 2.0]#
[root@vpn 2.0]#
[root@vpn 2.0]# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
………………………………………………………………++*++*++*
[root@vpn 2.0]#
[root@vpn 2.0]# ls -l keys/
total 52
-rw-r–r– 1 root root 4200 Feb 10 13:24 01.pem
-rw-r–r– 1 root root 1424 Feb 10 13:22 ca.crt
-rw——- 1 root root  891 Feb 10 13:22 ca.key
-rw-r–r– 1 root root  245 Feb 10 13:25 dh1024.pem
-rw-r–r– 1 root root  148 Feb 10 13:24 index.txt
-rw-r–r– 1 root root   21 Feb 10 13:24 index.txt.attr
-rw-r–r– 1 root root    0 Feb 10 13:21 index.txt.old
-rw-r–r– 1 root root    3 Feb 10 13:24 serial
-rw-r–r– 1 root root    3 Feb 10 13:21 serial.old
-rw-r–r– 1 root root 4200 Feb 10 13:24 vpn.rmutl.ac.th.crt
-rw-r–r– 1 root root  745 Feb 10 13:23 vpn.rmutl.ac.th.csr
-rw——- 1 root root  887 Feb 10 13:23 vpn.rmutl.ac.th.key
[root@vpn 2.0]#

[root@vpn 2.0]# ./build-key client
Generating a 1024 bit RSA private key
…………..++++++
………………………….++++++
writing new private key to ‘client.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [TH]:
State or Province Name (full name) [Chiangmai]:
Locality Name (eg, city) [Chiangmai]:
Organization Name (eg, company) [RMUTL]:
Organizational Unit Name (eg, section) []:RMUTL
Common Name (eg, your name or your server’s hostname) [client]:
Name []:
Email Address [teppap@rmutl.ac.th]:

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/share/doc/openvpn-2.1.4/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName           :PRINTABLE:’TH’
stateOrProvinceName   :PRINTABLE:’Chiangmai’
localityName          :PRINTABLE:’Chiangmai’
organizationName      :PRINTABLE:’RMUTL’
organizationalUnitName:PRINTABLE:’RMUTL’
commonName            :PRINTABLE:’client’
emailAddress          :IA5STRING:’teppap@rmutl.ac.th’
Certificate is to be certified until Feb  7 06:27:42 2021 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
[root@vpn 2.0]#

10. ทำการคัดลอก Cert ที่สร้างเสร็จแล้วไปยัง /etc/openvpn/

[root@vpn 2.0]# cp -rf /usr/share/doc/openvpn-2.1.4/easy-rsa/2.0/keys/*   /etc/openvpn/

11. ทำการคัดลอกไฟล์ตัวอย่างคอนฟิกของ Server ไปไว้ที่ /etc/openvpn/

[root@vpn 2.0]# cd /etc/openvpn/

[root@vpn openvpn]# cp /usr/share/doc/openvpn-2.1.4/sample-config-files/server.conf /etc/openvpn/

12. ทำการแก้ไขไฟล์ server.conf ที่คัดลอกมาให้เข้ากับเครื่องแม่ข่ายที่ตั้งไว้  (ในการทดสอบนี้ ของ่าย ๆ ก่อนนะครับ ดังนั้นจะแก้แค่ cert

เท่านั้น)

# Any X509 key manateppapgement system can be used.
# OpenVPN can also use a PKCS #12 formatted key file
# (see “pkcs12” directive in man page).
ca ca.crt
cert vpn.rmutl.ac.th.crt
key vpn.rmutl.ac.th.key  # This file should be kept secret

# Diffie hellman parameters.
# Generate your own with:
#   openssl dhparam -out dh1024.pem 1024
# Substitute 2048 for 1024 if you are using
# 2048 bit keys.
dh dh1024.pem

13. สั่งให้ openvpn ทำงานโดยใช้คำสั่งดังนี้

[root@vpn openvpn]# service openvpn start
Starting openvpn:                                          [  OK  ]
[root@vpn openvpn]#

15. ตรวจสอบ Interface จะสังเกตุว่ามี Tun เพิ่มขึ้นมา

[root@vpn openvpn]# ifconfig
eth0      Link encap:Ethernet  HWaddr C2:DE:48:D6:36:24
inet addr:192.168.1.10  Bcast:10.0.1.255  Mask:255.255.255.0
inet6 addr: fe80::c0de:48ff:fed6:3624/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:76748 errors:0 dropped:0 overruns:0 frame:0
TX packets:8380 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6582338 (6.2 MiB)  TX bytes:997841 (974.4 KiB)

lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)

tun0 Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

[root@vpn openvpn]#

16. ทำการเปิดไฟวอล UTP 1194 (หรือจะลองปิดไปก่อนด้วยคำสั่ง iptables -F สำหรับทดลองใช้งานก่อนก็ได้ครับ

ที่เครื่องลูกข่าย

1. ดาวน์โหลดซอฟแวร์ openvpn client ได้จากที่นี่ http://openvpn.se/download.html (เลือกตัว openvpn-2.0.9-gui-1.0.3-install.exe นะครับ)

2. ทำการติดตั้งตามขั้นตอนปกติ

3. เปิด windows explorer ไปที่ C:\Program Files\OpenVPN\sample-config

4. คัดลอกไฟล์ client.vpn ไปไว้ที่ C:\Program Files\OpenVPN\config

5. คัดลอกไฟล์ client.crt , client.key  และ ca.crt ที่สร้างจากเครื่องแม่ข่ายไปไว้ยัง C:\Program Files\OpenVPN\config

6. ทำการแก้ไขไฟล์ C:\Program Files\OpenVPN\config\client.vpn โดยใช้ text editor และทำการแก้ไขดังนี้

.

.

.

# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote 192.168.1.10 1194            หมายเหตุ 192.168.1.10 คือไอพีของเครื่องแม่ข่าย
;remote my-server-2 1194

.

.

.

# SSL/TLS parms.
# See the server config file for more
# description.  It’s best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.
ca ca.crt                              ชื่อของไฟล์ ทั้ง 3 ไฟล์ ต้องตรงกับที่คัดลอกมาจาก server
cert client.crt
key client.key

7. ที่ system tray จะมีไอคอนของ openvpn คลิ๊กขวาแล้วเลือก connect

8. ถ้าไม่มีข้อผิดพลาด จะปรากฏไอคอนของ openvpn กลายเป็นสีเขียว และแสดงไอพีที่ทำการเชื่อมต่อออกมา




สร้างถังขยะสำหรับ Linux Command

เมื่อวานนี้รุ่นน้องผมโทรศัพท์มาหาผมด้วยเสียงประหม่าเล็กน้อย พูดกับผมว่า พี่ครับ ผมเผลอลบไฟล์ใน Linux ผมจะ restore กลับมาได้ยังไงครับ ผมก็เลยสอบถามข้อมูลเบื้องต้น ก็ได้ใจความว่า เครื่องเซิร์ฟเวอร์ เป็น SCSI ต่อ RAID กันอีก คงถอด HD ออกมาไม่ได้แน่ แถมยังเป็น Text mode อีก คงเอากลับมาได้ลำบากแน่ ๆ (ใครมีวิธีที่ดีกว่า บอกผมด้วยนะครับ อยากรู้เหมือนกัน)

ผมก็แนะนำให้ใช้ซอฟต์แวร์อื่นในการจัดการแล้ว ไม่รู้ว่าจะได้ผลยังไงเหมือนกันนะครับ

ในเมื่อเรารู้ว่าปัญหามันอาจจะต้องเกิดแบบนี้แล้ว เราหาวิธีป้องกันดีกว่า โดยการสร้างถังขยะสำหรับ Linux Command ไว้ เผื่อว่าเผลอลบมันอีกจะได้เอาคืนกลับมาได้ง่าย ๆ หน่อย ถังขยะ ที่ว่าคือ Trash-Cli ครับ

root@Linux:~# apt-cache search trash-cli
trash-cli – command line trashcan utility
root@Linux:~# apt-get install trash-cli
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages were automatically installed and are no longer required:
binutils-static
Use ‘apt-get autoremove’ to remove them.
The following NEW packages will be installed:
trash-cli
0 upgraded, 1 newly installed, 0 to remove and 23 not upgraded.
Need to get 0B/14.5kB of archives.
After this operation, 143kB of additional disk space will be used.
Selecting previously deselected package trash-cli.
(Reading database … 81890 files and directories currently installed.)
Unpacking trash-cli (from …/trash-cli_0.10.r55-0ubuntu1_all.deb) …
Processing triggers for man-db …
Setting up trash-cli (0.10.r55-0ubuntu1) …

Processing triggers for python-support …

root@Linux:~#

จากนั้นก็สร้าง Alias สำหรับถังขยะดังนี้

root@Linux:~#alias rm=trash

เรียบร้อยแล้วครับทดสอบการทำงานดังนี้ครับ ผมสร้างไฟล์ 12345.txt ไว้ที่ /root/12345.txt

จากนั้นก็ใช้คอมมานด์ rm ในการลบครับ   rm /root/12345.txt

root@Linux:~# touch 12345.txt
root@Linux:~# ls
12345.txt
root@Linux:~# rm 12345.txt
root@Linux:~# ls
root@Linux:~#

สังเกตุได้ว่าไฟล์ถูกลบไปเรียบร้อยแล้วนะครับ

ถ้าเราจะเอาคืนกลับมาก็ใช้คำสั่ง restore-trash  ดังนี้

root@Linux:~# restore-trash
0 2011-02-07 08:46:23 /root/12345.txt
What file to restore [0..0]: 0 <– เลขศูนย์ คือ ลำดับของไฟล์ที่ต้องการ restore
root@Linux:~# ls
12345.txt
root@Linux:~#

เพียงเท่านี้ ก็จะได้ไฟล์กลับมาแล้วครับ




Openmeeting กับ Active Directory

ได้รับคำสั่งเมื่อซัก 8 เดือนก่อน (ถ้าเป็นลูกก็คงใกล้คลอดละ) ให้นำระบบ Openmeeting ใช้งานร่วมกับ Active Directory นั่งค้นหาข้อมูลบ้าง ลืมทำไปบ้าง จนในที่สุด ก็สามารถลุล่วงได้ในวันนี้ครับ ตามโจทย์ ง่ายแสนง่าย คือ ให้ openmeeting ล็อกอินโดยใช้ user จาก Active Directory แค่นี้เองครับ (อีกข้อเป็นการเชื่อมต่อเข้ากับ SIP ยังไม่ได้ทำเลย มัวแต่ไปทำ OCS )

openmeetings ที่ใช้ เป็นเวอร์ชั่น openmeetings_1_4_rc1_r3326.zip

และระบบปฏิบัติการเป็น Ubuntu Server 9.04  32 bit

ผมขอข้ามขั้นตอนการติดตั้ง openmeeting ไปเลยนะครับ เพราะไม่น่ายากจนเกินไป

** สมมุติว่า ได้ทำการแตกไฟล์ของ red5 ไว้ที่ /usr/share/ ก็แล้วกันนะครับ ข้อมูลอ้างอิงจะได้เหมือนกัน

1. เข้าไปยังไดเร็คทอรี่ /usr/share/red5/webapps/openmeetings/conf

ซึ่งจะมีข้อมูลดังต่อไปนี้  โดยเฉพาะไฟล์ om_ldap.cfg

root@meeting:/usr/share/red5/webapps/openmeetings/conf# ls
any_hibernate.cfg.xml  log                      postgres_hibernate.cfg.xml
hibernate.cfg.xml      mysql_hibernate.cfg.xml  sample_openldap_om_ldap.cfg
install.xml            om_ldap.cfg

2. ใช้ vi หรือ text editor ตัวที่ถนัด ทำการแก้ไขไฟล์ om_ldap.cfg

3. ปรับแต่งข้อมูลดังต่อไปนี้

ldap_server_type=AD

ldap_conn_url=ldap://192.168.1.1:389

ldap_admin_dn=domain\admin-name

ldap_passwd=password

ldap_search_base=OU:user accounts,DC:domain,DC:local     ** ใส่ตามความเป็นจริงใน AD ของท่านเองนะครับ ทั่วไปน่าจะเป็น cn:Users,dc:domain,dc=local

field_user_principal=userPrincipalName

ldap_auth_type=SIMPLE

ldap_sync_password_to_om=yes

4. ส่วนอื่น ๆ ก็ไม่ต้องแก้ไขอะไรนะครับ ปล่อยไว้ตามเดิม

5. จากนั้น ให้เข้าหน้า openmeeting จากหน้าเว็บไซต์ ไปในส่วนของ Administration –> Ldap

6. ให้ทำการเพิ่มข้อมูลของ Domain ที่จะใช้งาน (เป็นแค่การตั้งค่าการเรียกใช้งาน เพราะคอนฟิกจริง ๆ อยู่ที่ om_ldap.cfg)

ความหมายของแต่ละชุด

name คือ ชื่อที่จะสร้างเป็นโปรไฟล์ ตั้งเป็นชื่ออะไรก็ได้ครับ

config file name คือ ชื่อไฟล์ที่ตั้งค่าของ ldap นั่นคือ om_ldap.cfg  (ไฟล์นี้ ต้องอยู่ในโฟลเดอร์เดียวกันกับไฟล์ hibernate.cfg.xml)

Add Domain to username ถ้าเช็คบ็อคตรงช่องนี้ ระบบจำนำโดเม็นจากช่องด้านล่าง (Domain) มาเติมท้ายให้ เช่น username ก็จะกลายเป็น username@rmutl.local โดยอัตโนมัติ แต่มันจะไม่แสดงผลตรงหน้าเว็บนะครับ

Domain คือ ชื่อที่ต้องการนำไปต่อท้าย ตามข้อมูลด้านบน ซึ่งต้องตรงตาม AD ที่สร้างขึ้นครับ

7. หากมีหลายโดเม็นที่ต้องการใช้งาน ก็ให้สร้างไฟล์ om_ldap.cfg เป็นชื่ออื่น แล้วเพิ่มข้อมูลจากหน้านี้ ได้เรื่อย ๆ ครับ แต่ต้องระบุตรง Config file name ให้ตรงกับไฟล์ที่ทำการสร้างไว้ด้วยนะครับ

8. ทำการ restart service ของ red5 ใหม่ครับ

9. ทดสอบการเข้าใช้งานจากหน้าเว็บไซต์ จะสังเกตุเห็น ด้านล่างสุด จะมี ช่องที่บอกว่า Domain  ให้เลือกเป็นชื่อโดเม็นตามที่เราตั้งโปรไฟล์ไว้เมื่อกี้ครับ

10. เพียงเท่านี้ก็สามารถใช้งานได้แล้วครับ หากยังใช้งานไม่ได้ ให้ตรวจสอบการเชื่อมต่อกับ ldap อีกที เช่น user & password ไม่ถูกต้อง หรือ ถูกไฟล์วอลปิดกั้นพอร์ตไว้

** ความจริงดูจาก log ได้ครับ จะเอามาอธิบายวันหลังละกันครับ




สนุกกับ MMC ตอน Remote Desktop

ห่างหายจากการเขียนบทความไปนานพอสมควร เพราะติดภาระกิจทางราชการตลอดเลยครับ และตั้งแต่อาทิตย์หน้าก็คงไม่ว่างแล้วล่ะ วันนี้สบโอกาสมีเวลาว่าง 2-3 ชั่วโมง ก็พอจะเขียนเรื่องง่าย ๆ ซักเรื่อง เอาละเข้าเรื่องกันเลยครับ

หลาย ๆ คนคงได้ใช้งานการควบคุมคอมพิวเตอร์ระยะไกล (remote desktop) กันมาบ้างแล้ว หากมีจำนวนเครื่องที่ต้องการควบคุมไม่มากนัก ก็ไม่น่ามีปัญหา แต่หากมีจำนวนเครื่องมาก ๆ แล้วเช่น 10 – 20 เครื่อง บางคนอาจจะหลง ๆ ลืม ๆ (เช่นผมเอง) ว่าเครื่องไหนทำหน้าที่อะไร ซึ่งวันนี้ผมจะมาเสนอตัวช่วย ที่ทำให้การใช้งาน remote desktop สะดวกมากยิ่งขึ้น โดยใช้ MMC (Microsoft Management Console) เข้ามาช่วยจัดการบริหาร

ความต้องการของระบบคือ

1. Windows 7  64 bit ( XP หรือตัวอื่น ๆ ก็ใช้ได้นะครับ)

2. Remote Server Administration Tools for Windows 7  (ต้องโหลดให้ตรงกับการใช้งานนะครับ เช่น 32,64 bit)

ขั้นตอนการติดตั้ง

1. ดาวน์โหลด Remote Server Administration Tools for Windows 7 จากที่นี่ http://www.microsoft.com/downloads/details.aspx?FamilyID=7D2F6AD7-656B-4313-A005-4E344E43997D&displaylang=en#filelist โดยเลือกให้ตรงกับเวอร์ชั่นของระบบปฏิบัติการที่ใช้

2. เมื่อดาวน์โหลดมาแล้วให้ทำตามติดตั้งตามขั้นตอนปกติทั่วไปครับ

3. เปิดให้สามารถใช้งานฟังก์ชั่นของ Remote admin ได้ โดยไปที่ Control Panel –> Programs and features

4. ที่ด้านซ้ายมือ ให้คลิ๊กที่ Turn Windows features on or off  แล้ว เลือก Remote Desktop Services Tools  ดังรูป

5. ต่อไปจะเป็นการเริ่มการใช้งาน MMC จริง ๆ แล้วนะครับ ให้คลิ๊กที่ start –> ที่ช่อง search พิมพ์  mmc  แล้วคลิ๊กที่ตัวโปรแกรม

6. คลิ๊กที่ File –> Add/Remove Snap-in…

7. ด้านซ้ายมือ คือ Snap-Ins ที่เราสามารถใช้งานได้ ในที่นี้เราจะเลือกใช้ Remote Desktops ให้ทำการคลิ๊กที่ Remote Desktops แล้วคลิ๊กที่ Add >

8. ที่ Console Root จะปรากฎ Snap-In ที่เราได้ทำการเลือกไว้คือ Remote Desktops ให้คลิ๊กขวาแล้วเลือก Add new connection….

9. ให้กรอกข้อมูลที่จำเป็น เช่นหมายเลขไอพีแอดเดรส ชื่อผู้ใช้งาน ของเครื่องที่เราต้องการจะ Remote Desktop

10. ถึงขั้นตอนนี้ ก็สามารถใช้งานได้แล้วครับ แต่หากจะใช้งานให้สมบูรณ์ ต้องปรับแต่งอีกนิด คือ คลิ๊กขวาชื่อเครื่องที่ต้องการแล้วเลือก Properties

11. ที่ TAB Screen Options เลือก Choose desktop size เป็นขนาดที่เหมาะสม ในที่นี้เลือกเป็น 1024 x 768

12. แค่นี้ก็เสร็จสมบูรณ์แล้วครับ ให้เราทำการคลิ๊กชื่อเครื่องที่ต้องการ Remote Desktop หรือคลิ๊กขวาแล้วเลือก Connect

13. ระบบจะให้กรอก Username และ Password เหมือนกับการ Remote Desktop ทั่วไปครับ

14. หากต้องการจะเพิ่มเครื่องที่ต้องการ Remote Desktop ก็ทำเหมือนเดิมครับ คือ คลิ๊กขวา เลือก Add new connection….

15. สุดท้าย ก็อย่าลืมบันทึก Snap-In นะครับ โดยคลิ๊กที่ File –> Save As….

16. รูปของ Snap-In จะเป็นรูปกล่องเครื่องมือนะครับ สามารถเรียกใช้งานได้ตลอดครับผม  อ้อ ลืมบอกไป ว่าสามารถก๊อปตัวนี้ ไปใช้กับเครื่องอื่น ที่มีพื้นฐานเดียวกันได้ด้วยนะครับ




ZoomIt ของดีคู่นักบรรยาย

ห่างหายจากการเขียนบทความไปเป็นเดือน ไม่รู้ว่างานมันเยอะ หรือตัวผมเองไม่ค่อยว่าง (อันเดียวกันหรือเปล่าเนี่ย) ก็เลยไม่ค่อยได้แวะมาเขียนบทความเลย ก็มีเรื่องในใจหลายเรื่องเหมือนกันครับ พอดีช่วงนี้ สำนักวิทยบริการฯ มีการอบรมเยอะ เลยทำให้ผมนึกถึง ซอฟต์แวร์ในการช่วยนำเสนอ จริง ๆ แล้ว ผมคิดว่ามันจำเป็นมากครับ เพราะจะช่วยให้การนำเสนอ มีความน่าสนใจ และทำให้ขยายหน้าจอ หรือภาพที่ต้องการให้เห็นได้ใหญ่ขึ้น ตามที่เราต้องการได้ เจ้าตัวซอฟต์แวร์ที่ว่านี้คือ ZoomIt ครับ และตามเคย ฟรีครับผม

ท่านสามารถเข้าไปดาวน์โหลดได้ที่ http://technet.microsoft.com/en-us/sysinternals/bb897434.aspx

ขนาดไฟล์ก็เล็กมากครับ ประมาณ 500 KB (ถ้าดาวน์โหลดที่ zip มาแล้ว ก็ลดลงประมาณครึ่งหนึ่งครับ)

การติดตั้ง

1. หลังจากที่ดาวน์โหลดมาแล้ว (สมมุติว่าเป็น zip) ให้ทำการแตกไฟล์ zip ออกมาครับ จะเจอโปรแกรม ZoomIt.exe

2. ดับเบิ้ลคลิ๊กที่ตัวโปรแกรม ซึ่งมันจะไม่ติดตั้งในระบบปฏิบัติการ พูดง่าย ๆ ก็คือ ถ้าจะใช้ ค่อยเรียกมันใช้งานครับ

4. หลังจากที่ดับเบิ้ลคลิ๊กแล้ว มันจะหายแว๊ปไปอยู่ที่ System Tray ด้านขวามือล่าง ครับ

5. แค่นี้ก็พร้อมใช้งานแล้วครับ

คุณสมบัติและการใช้งานมีดังนี้ครับ

1. Zoom คือ ขยายหน้าจอเราครับ ถึงแม้จะใช้ Power Point มันก็จะขายไปด้วย เพียงแต่เราขยับเมาส์ไป ๆ มา ๆ เท่านั้น แต่ภาพอาจจะแตก ๆ นิดหนึ่งนะครับ

** hotkey คือ Ctrl + 1 ถ้าจะเลิกใช้งานให้กด Ctrl + 1 อีกครั้ง หรือ กด Esc ครับ

2. LiveZoom คล้าย ๆ กับ Zoom นั่นแหละครับ แต่ว่าเราสามารถที่จะ ใช้เมาส์คลิ๊ก หรือ ใช้งานตามปกติได้ (ข้อแรกคลิ๊กไม่ได้นะครับ)

**hotkey คือ Ctrl + 4 ถ้าจะเลิกใช้งานให้กด Ctrl + 4 อีกครั้ง

3. Draw คือการวาดรูปครับ มันจะสตาฟ หน้าจอเราไว้ แล้วเราสามารถที่จะวาด หรือมาร์คจุดต่าง ๆ ได้ครับ (เปลี่ยนสีได้อีกต่างหากครับ)

**hotkey คือ Ctrl + 2 ถ้าจะเลิกใช้งานให้กด Esc

4. Type คือตัว Draw นั่นแหละครับ แต่จะทำให้เราพิมพ์ตัวหนังสือเข้าไปได้ด้วย

**hotkey คือ t  แล้วพิมพ์ข้อความตามต้องการ (แต่ต้องใช้ในโหมดของ Draw นะครับ พูดง่าย ๆ คือ ต้องกด Ctrl + 2 เพื่อเข้าโหมด Draw ก่อน ถึงจะกด t ครับ และแสดงความเสียใจตรงนี้ด้วยครับ ที่ใช้ภาษาไทยไม่ได้)

5. Break คือ การตั้งเวลาให้หยุดการกระทำครับ (อันนี้ผมไม่ค่อยได้ใช้เท่าไหร่)

**hotkey คือ Ctrl +3

6. หากจะออกจากโปรแกรมให้คลิ๊กขวาตัวโปรแกรมที่ System Tray แล้วเลือก Exit ครับผม

ขอให้สนุกกับการบรรยายนะครับ




สลับจอภาพแบบอัตโนมัติ

vwin00ฝ่ายไอทีเป็นฝ่ายที่ต้องตรวจสอบสถานะของระบบเครือข่ายและเครื่องคอมพิวเตอร์แม่ข่ายอย่างสม่ำเสมอ เพื่อให้การใช้งานเป็นไปอย่างราบรื่น หรือถ้ามีปัญหาจะได้แก้ไขปัญหาได้อย่างรวดเร็ว ดังนั้น จึงต้องใช้ซอฟต์แวร์รายงานผลที่หลากหลาย และต้องใช้จอแสดงผลหลายจอด้วยกัน แต่พอหาจอภาพได้ครบตามจำนวนที่ต้องการได้แล้ว ก็เกิดปัญหาการสูญเสียจอภาพอันเนื่องมาจากภาพที่แสดงผลออกมานั้น ค่อนข้างจะอยู่ตำแหน่งเดิม ทำให้ภาพ(เม็ดสี)ตรงจุนั้น มีความผิดพลาดอย่างเห็นได้ชัด กระนั้นจะใช้ซอร์ฟแวร์รักษาหน้าจอ ก็ทำให้ภาพที่จะสังเกตุการณ์นั้น ดูได้ลำบาก จึงได้เกิดแนวคิดของการสลับจอภาพแบบแบบอัตโนมัติ คือ 1 จอภาพจะแสดงรายงาน แต่ละซอร์ฟแวร์ที่แตกต่างกันออกไป โดยกำหนดเป็นระยะเวลา เช่น 60 วินาที ให้เปลี่ยนไปอีกหน้าจอหนึ่งหรือเปลี่ยนรายงานผลของซอฟต์แวร์ที่เรียกใช้งานค้างไว้ (ถ้ามองภาพไม่ออก ให้คิดถึงเครื่อง MAC เวลาสลับหน้าจอไปจออื่น ในเครื่องเดียวกันนะครับ )

ซอฟต์แวร์ที่ใช้งานนี้คือ virtuawin (พิมพ์ถูกแล้วครับ) ซึ่งสามารถดาวน์โหลดได้จากเว็บไซต์นี้ (ฟรี) http://virtuawin.sourceforge.net/

ในหัวข้อของ download ให้เลือกตามความต้องการครับ ในที่นี้ผมเลือก VirtuaWin 4.1 (Unicode support)

เมื่อดาวน์โหลดมาแล้ว ก็ติดตั้งตามขั้นตอนตามปกติครับ

หลังจากที่ติดตั้งเสร็จแล้วจะสังเกตุเห็นไอคอน   อยู่ที่ Systemtray

vwin01

ค่ามาตรฐานที่ถูกตั้งมานั้น จะมีด้าน wide และ deep อยู่ ( ก็คือการหมุนจอไปด้านข้าง และด้านบนนั่นแหละครับ) อย่างละ 2 สรุปก็คือมี 4 จอด้วยกัน แต่ผมนั้นชอบที่จะใช้แต่ wide มากกว่า ก็เลยเลือกให้มี wide = 3 เพราะ ต้องการใช้งาน 3 จอภาพสำหรับเครื่องนี้

vwin02

การทดสอบ (โดยการจำลองเปิด Application จำนวน 3 ตัวด้วยกัน)

1. ให้ทำการเปิด windows explorer ไว้ที่จอหมายเลข 1

2. จากนั้น ให้คลิ๊กขวาที่ไอคอนของ VirtuaWin แล้วคลิ๊กที่ Next จะสังเกตุว่า windows explorer นั้นจะหายไป จากนั้นให้เปิดเบราเซอร์ internet explorer ไว้ แล้วคลิ๊กที่ไอคอนของ VirtuaWin อีกครั้ง จะพบกับหน้าว่าง ๆ

3. เปิดโปรแกรม Notepad ทิ้งไว้

4. ให้คลิ๊กขวาที่ไอคอน VirtuaWin แล้วคลิ๊กที่ Next อีกครั้ง จะพบว่า มีหน้าต่างของ Windows explorer เปิดอยู่ ซึ่งก็คือหน้าจอหมายเลข 1 นั่นเอง (ให้สังเกตุตัวเลขที่รูปไอคอนก็ได้ครับ)

แค่นี้ท่านเสมือนมีจอภาพ 3 จอด้วยกันแล้ว (ประหยัดเงินได้มากโข แถมประหยัดไฟอีกต่างหาก) แต่กระนั้นยังไม่ใช่ความต้องการที่แท้จริง เพราะเราต้องมาสลับจอภาพเอง จึงต้องใช้โมดูลเพิ่มเติมคือโมดูล AutoSwitcher

การเพิ่มโมดูลให้สลับหน้าจอแบบอัตโนมัติ (AutoSwitcher)

1. ไปที่เว็บเดิมนั่นแหละครับ แล้วคลิ๊กที่ Module เลือก AutoSwitcher หรือคลิ๊กตามลิงค์นี้ครับ http://virtuawin.sourceforge.net/downloads/modules/autoswitcher.zip

vwin03

2. ทำการแตกไฟล์ autoswitcher ออกมา จะพบไฟล์ autoswitcher.exe

3. ทำการก๊อปปี้ไปวางไว้ที่

3.1 กรณี 32 bit ให้วางไว้ในโฟลเดอร์ C:\Program Files\VirtuaWin\modules

3.2 กรณี 64 bit ให้วางไว้ในโฟลเดอร์ C:\Program Files (x86)\VirtuaWin\modules

4. จากนั้นให้เปิดโปรแกรม VirtuaWin ขึ้นมาครับ หรือจะคลิ๊กขวาที่ไอคอนแล้วเลือก Setup ก็ได้ครับ

5. คลิ๊กที่แท็ป Module จะสังเกตุมีรายการ AutoSwitcher ขี้นมา (หากไม่ขึ้น ให้ตรวจสอบโฟลเดอร์ที่วางไว้ ว่าถูกต้องหรือไม่)

6. คลิ๊กที่ชื่อ AutoSwitcher เลือก Configure

7. ปรับแต่งเวลา (วินาที) ตามจำนวนที่ต้องการ ส่วนผมเองใช้ 60 วินาที ก็พอดีกับเวลาที่ใช้งานครับ แล้วคลิ๊ก OK จนหน้าต่างหายไปทั้งหมด

vwin04

8. รอระยะเวลาตามที่ตั้งไว้ จะพบว่า จอภาพสลับไปแล้ว

ปล. ยังมีโมดูลอื่น ๆ ที่น่าสนใจอีกเยอะครับ ลองเล่นกันดูได้ครับผม




Guest OS บูตพร้อมกับ Server

vmware-logoผมเคยเขียนบทความเกี่ยวกับ vmware server 2 ที่บล็อคส่วนตัวไป 2 ตอนคือ มาใช้ Vmware Server 2 กันดีกว่า (Part 1) และ มาใช้ Vmware Server 2 กันดีกว่า (Part 2) ซึ่งทั้ง 2 ตอนนั้น สามารถนำไปใช้งานได้จริง แต่มีผู้ให้ความสนใจบางท่าน ได้เข้ามาสอบถามว่า จะทำยังไงให้ Guest OS ที่อยู่ภายใต้ vmware ทำงานอัตโนมัติเมื่อเครื่อง server ทำงานใหม่ เช่น เปิดเครื่องใหม่ หรือ รีสตาร์ท ส่วนตัวผมเองแล้วได้ห่างเหินจากการใช้งาน vmware 2.0 มานานพอสมควร ประมาณปีกว่า ๆ แล้วมั้งครับ แต่ก็พอจำคร่าว ๆ ได้ว่า vmware server นั้น สามารถให้ Guest OS บูตหลังจากที่เครื่อง server เริ่มต้นทำงานใหม่ได้ ซึ่งมีวิธีการปรับแต่งค่าดังต่อไปนี้ครับ

1. เปิด โปรแกรม vmware server home page  ที่เบราเซอร์ โดยพิมพ์ดังต่อไปนี้  https://127.0.0.1:8333/ui/ หรือจะเปิดจากตัว program file ก้ได้ครับ  login ด้วย user ที่สามารถจัดการระบบได้

power01

2. ใน invertory คลิ๊กที่ชื่อเครื่อง server นะครับ ด้านขวาจะมี Edit Virtual Machine Startup/Shutdown Settings ให้คลิ๊กเลยครับ

3. เช็คบ็อคตรง Allow virtual machines to start and stop automatically with the system

power02

4. คลิ๊กที่ชื่อ host (Guest) แล้วเลือก move up เพื่อให้เป็น automatic startup

power03

5. ทดสอบ restart เครื่องเซิร์ฟเวอร์ครับ จะเห็นว่า Guest OS ทำงานเรียบร้อยแล้ว

ปล. ค่ามาตรฐานของ vmware ที่จะสตาร์ท Guest OS จะหน่วงเวลา 120 วินาที (อาจจะต้องการให้ตัวเซิร์ฟเวอร์โหลดไดร์ฟเวอร์หรือค่าคอนฟิกต่าง ๆ ให้ครบก่อนถึงจะให้ Guest OS ทำงานอย่างสมบูรณ์) แต่จะปรับเปลี่ยนค่าก็ได้ครับ แล้วแต่ความเหมาะสม หากจะให้สตาร์ทพร้อมกันเลย คือ ไม่ต้องหน่วงเวลา (เริ่มนับจาก service ของ vmware start แล้ว) ก็ให้ใส่ค่าเป็น 0 (เลขศูนย์)ครับ




ใช้ Grave บน Mint amd64

graveมันติดมือไปแล้วสำหรับคนที่พิมพ์ดีดแบบสัมผัส คือมีความจำเป็นอย่างยิ่งที่ต้องใช้ปุ่ม Grave ในการสลับภาษาไทย-อังกฤษ (ตอนเรียนพิมพ์ดีดมันไม่มีปุ่ม Alt+Space ) ตอนใช้วินโดว์ก็ใช้ Grave ตลอด แต่พอมาใช้กราฟฟิคของ Linux (mint7 หรือเทียบได้กับ ubuntu 8.10) ก็พบว่า ปุ่ม Grave นั้น จำเป็นต้องใช้งานเหมือนกัน ส่วนใหญ่เลยเปลี่ยนไปใช้ปุ่มอื่นแทน แต่เพราะความเคยชิน เลยต้องหาวิธีที่จะใช้ปุ่ม Grave ให้ได้

โลก Open Source ย่อมมีการแบ่งปันเสมอ ในที่สุดก็เจอแพ็คเก็จสำหรับเปิดใช้งานปุ่ม Grave แล้ว ชื่อว่า xkb-data-grave.deb ซึ่งสามารถดาวน์โหลดได้จากที่นี่ แต่เดี๋ยวก่อน นั่นมันเป็นแพ็คเก็จสำหรับ i386 พูดง่าย ๆ ก็คือ 32 bit นั่นเอง เมื่อจะนำมาใช้กับ 64 bit หรือ amd64 นั้น มันไม่สามารถติดตั้งได้ (ความจริงอาจจะมีแพ็คเก็จสำหรับ amd64 นะ แต่ผมหาไม่เจอครับ) ถ้าพยายามติดตั้งมันจะฟ้องแบบนี้ครับ

grave00

จึงต้องใช้วิธีแบบชาวบ้านนิดหน่อย โดยได้ทำการแตกไฟล์แล้วก๊อปเอาไฟล์ข้างในไปวางไว้ในโฟลเดอร์ที่ถูกต้อง (จะแตกไฟล์เองก็ได้ครับ หรือจะดาวน์โหลดได้ที่นี่ครับ [download id=”29″]) ในที่นี้ผมจะใช้จากไฟล์ที่ผมได้ทำการแตกไฟล์ไว้แล้วนะครับ

เมื่อดาวน์โหลดไฟล์จากเว็บนี้มาแล้ว ชื่อไฟล์ grave-key.tar.gz ทำการแตกไฟล์ออกมาจะมีโฟลเดอร์ที่ชื่อว่า grave-key ให้เข้าไปยังโฟลเดอร์นั้น และให้รันไฟล์ script.sh ด้วยสิทธิของ root หรือจะสั่งจาก Terminal ก็ได้ครับ ดังนี้

Screenshot-grave-key - File Browser

1. เปิด Terminal ขึ้นมา แล้วเปลี่ยนสิทธิเป็น Root โดยใช้คำสั่ง   su –   แล้วใส่รหัสผ่านของท่านเองครับ

2. เข้าไปยังโฟลเดอร์ grave-key (ของผมอยู่ที่ Desktop) ก็จะเป็น   cd /home/teppap/Desktop/grave-key/    ** teppap คือชื่อ user

3. เป็นสิทธิของไฟล์ script.sh ให้สามารถทำงานได้ โดยใช้คำสั่ง chmod 755 script.sh

4. สั่งให้ไฟล์ Script ทำงาน โดยใช้คำสั่ง ./script.sh

Screenshot-Terminal

5. เข้าไปแก้ไขค่าของคีย์บอร์ด โดยไปที่ menu –> Control Center –> Keyboard –> Layouts –> Layouts Options

Screenshot-Keyboard Preferences

ุ6. เข้าไปเช็คบ็อคในส่วนของ Grave switches layout

Screenshot-Keyboard Layout Options

7. ทดสอบใช้งานครับผม (ซึ่ง ณ ปัจจุบันผมก็ใช้ linux mint 7 amd64 อยู่ครับ จะเปลี่ยนมาใช้ mint 8 ละแต่ยังไม่เปิดให้โหลดครับ)




Save as pdf สำหรับ microsoft office 2007

officeไมโครซอฟต์เปิดให้ดาวน์โหลดโปรแกรมเสริม สำหรับ microsoft office 2007 ที่มีความสามารถในการแปลงไฟล์เป็น pdf และ xps (ฟอร์แม็ตของไมโครซอฟต์เอง) โดยที่สามารถสั่งการจากเมนูของไมโครซอฟต์ออฟติคได้โดยตรง ขนาดของไฟล์ ประมาณ 915 KB

สามารถดาวน์โหลดโปรแกรมเสริมได้ที่นี่

ระบบปฏิบัติการที่รองรับ : Windows Server 2003; Windows Vista; Windows XP Service Pack 2 (และวินโดว์ 7 ก็สามารถใช้ได้ครับ)

ซึ่งจะมีผลกับโปรแกรมดังต่อไปนี้ :
o Microsoft Office Access 2007
o Microsoft Office Excel 2007
o Microsoft Office InfoPath 2007
o Microsoft Office OneNote 2007
o Microsoft Office PowerPoint 2007
o Microsoft Office Publisher 2007
o Microsoft Office Visio 2007
o Microsoft Office Word 2007

การติดตั้ง

หลังจากที่ดาวน์โหลดโปรแกรมมาเรียบร้อยแล้ว ให้ดับเบิ้ลคลิ๊กที่ SaveAsPDF.exe เพื่อทำการติดตั้ง ทำตามกระบวนการไปเรื่อย ๆ จนเสร็จสิ้น หลังจากนั้น ให้เปิดโปรแกรม microsoft office (อะไรก็ได้ตามรายการด้านบน) word จะสังเกตุว่าที่เมนู save as จะมี เมนูย่อยแสดงออกมาดังรูป

saveaspdf

หลังจากที่แปลงเป็นไฟล์ pdf แล้ว จะได้คุณภาพดังรูปแนบ ใช้ได้กับภาษาไทย และอังกฤษ และการใส่รูปแนบ ก็ใช้งานได้ดีครับ (แต่คุณภาพของรูป เหมือนจะลดไปมาก)

saveaspdf2




เกิดมาก็ฆ่าอีก Conficker ภาค 3

แม้ว่าข่าวคราวของ Conficker จะเงียบ ๆ ไปบ้างแล้ว แต่จากสถิติ ที่ยังพบอย่างต่อเนื่อง ทำให้เชื่อได้ว่า มันยังไม่ตายไปจากโลกไอที แต่เป้าหมายตอนนี้ น่าจะเป็น คอมพิวเตอร์แม่ข่ายที่ติดตั้งระบบปฏิบัติการเข้าไปใหม่ และยังไม่มีการอัพเดทแพทซ์ตามที่ได้แจ้งไว้ก่อนหน้านี้ ทำให้เครื่องเหล่านั้น กลายเป็นแหล่งกบดานอย่างดี และหากมีจำนวนเครื่องที่ติด conficker มากพอแล้ว แน่นอน ว่า ระบบเครือข่ายโดยรวม ก็คงจะรับมือไม่ไหว มันช่างเหมือนกับไวรัสของคนเรามาก ถ้าคนเราไม่ป้องกันตนเอง ก็จะแพร่เชื้อสู่คนอื่น หรือ หากไม่ใส่ใจในสุขภาพ (ของเครื่อง) ไวรัสก็จะมาเคาะหน้าบ้านได้อยู่เสมอ

วันนี้ ผมขอแนะนำตัวจัดการกับ Conficker แบบเด็ดขาด(ผมคิดว่างั้นนะ)มาฝากครับ

จากก่อนหน้านี้เคยแนะนะ ฆ่าล้างเผ่าพันธุ์ Conficker และ แจ้งเตือนการระบาดของไวรัส Kido , Conficker

ซึ่งบ่อยครั้งที่เจ้าตัว conficker ไม่ได้หลบอยู่ที่ system32 จึงทำให้การค้นหาไม่พบ ดังนั้น จึงต้องเพิ่มออปชั่นพิเศษสำหรับ kk.exe (ดาวน์โหลดเวอร์ชั่นใหม่จากเว็บไซต์ผู้ผลิตที่นี่ครับ) ไปแบบนี้ครับ

โดยทำการรันจาก คอมมานด์ไลน์ ดังนี้

kk.exe -f -r -y -a

kk01

ซึ่งระยะเวลาการตรวจสอบจะประมาณ 15-30 นาที แล้วแต่ความไวของเครื่อง

kk03

ซึ่งรายละเอียดของค่าตัวแปรต่าง ๆ มีดังนี้ครับ

Switches to run the utility KK.exe from the command prompt:

Switch Description
-p <scan path> scan a defined folder
-f scan hard disks, scan portable hard disks
-n scan network disks
-r scan removable drives
-y end program without pressing any key
s silent mode (without a black window)
-l <file name> write info into a log
-v extended log maintenance (the switch -v works only if the -l switch is entered in the command prompt)
z restore the services

  • Background Intelligent Transfer Service (BITS),
  • Windows Automatic Update Service (wuauserv),
  • Error Reporting Service (ERSvc/WerSvc
restore display of hidden system files
a disable auto start from all drives
m mode to monitor threads, tasks, services.

When in this mode, the utility constantly resides in memory and will periodically perform scans of threads, services, and scheduler tasks. If an infection is detected, it will perform disinfection and continue monitoring.

-j restore the registry branch SafeBoot (if the registry branch is deleted, computer cannot boot in safe mode)
-help show additional information about the utility

ขอให้แน่ใจได้เลยว่า หากเครื่องคอมพิวเตอร์ติด conficker แล้ว แสดงว่าเครื่องนั้น ไม่ได้ทำการอุดช่องโหว่ตามที่ได้แจ้งก่อนหน้านี้ ดังนั้น ให้ทำการดาวน์โหลดจาก บทความ แจ้งเตือนการระบาดของไวรัส Kido , Conficker ได้ครับ (หรือจะเอาจากเว็บไซต์ไมโครซอฟต์ก็ได้ครับผม)




wordpress กับ active directory

wordpressก่อนหน้านี้ได้เขียนเรื่อง “เปิดใช้งานฟังก์ชั่น LDAP ให้กับ Moodle” และ “ใช้ Data Mapping ใน Moodle” ที่ทำให้ moodle ใช้งาน user จาก Active directory ได้แล้วนั้น ปรากฏว่า มีสมาชิกบางท่าน สอบถามถึงการตั้งค่า ของ CMS ต่าง ๆ รวมไปถึง wordpress ด้วย  วันนี้ผมจึงได้ทดสอบการเปิดฟังก์ชั่น LDAP ให้กับ WordPress ซึ่งหากใครได้อ่านบทความ ทั้ง 2 บท ที่เอ่ยถึงข้างต้น ก็น่าจะพอคลำทางได้ไม่ยากนัก แต่ยังหากไม่เข้าใจ ก็สามารถอ่านบทความตอนนี้ได้เลยครับ

ต้องขออธิบายก่อนว่า ความแตกต่างที่เห็นได้ชัดระหว่าง moodle กับ wordpress คือ moodle มีฟังก์ชั่น ldap พร้อมอยู่แล้ว แต่ wordpress ต้องหามาติดตั้งเอง ในวันนี้ ผมได้ใช้ plugin ที่ชื่อว่า active directory integration (ณ วันที่ 7 สิงหาคม 2552 เป็นเวอร์ชั่น 0.9.6) ซึ่งสามารถดาวน์โหลดได้จากเว็บไซต์ plugins ของ wordpress ที่นี่ครับ http://wordpress.org/extend/plugins/active-directory-integration/

ควมต้องการพื้นฐานของตัว plugin มีดังนี้ครับ

* WordPress since 2.7.1
* PHP 5
* LDAP support
* OpenSSL Support for TLS (recommended)

โดยเฉพาะ LDAP Module หาเป็น php ที่ติดตั้งบนระบบปฏิบัติการวินโดว์แล้วนั้น สามารถเอาเครื่องหมายเซมิคอลอนที่ด้านหน้า extension=php_ldap.dll ออกได้เลย แต่ถ้าเป็นระบบปฏิบัติการลีนุกซ์ ต้องติดตั้งเองต่างหากนะครับ

เมื่อทำการติดตั้ง และแก้ไข Extension ของ php เป็นที่เรียบร้อยแล้ว ให้เราทำการปรับแต่งค่าของตัว Plugin ดังนี้ครับ

ล็อกอินด้วยสิทธิของ Admin แล้วเข้าไปที่ Options –› Active Directory Integration

ส่วนแรกคือ Active Directory Server

Domain Controllers คือ ชื่อโดเม็นของ Active Directory เช่นของผมมีชื่อว่า university.local

Domain Controllers    university.local

Port   389 คือพอร์ตที่ใช้เชื่อมต่อไปหา Active Directory ก็ปล่อยไว้ตามค่าที่ตั้งไว้ครับ

Use TLS คือ การเชื่อมต่อที่มีความปลอดภัย หากไม่เช็คบ็อคที่ค่านี้ จะทำให้การติดต่อสื่อสารเป็นลักษณะ Plan Text คือ เห็นหมดทั้ง user name และ password เพื่อป้องกันการดักจับข้อมูล ควรอย่างยิ่งที่ต้องเช็คบ็อคที่ค่านี้ด้วยครับ

Bind User   คือ user ที่มีสิทธิในการอ่านข้อมูลของ user โดยปกติก็จะเป็น administrator แต่ควรใช้เป็น user อื่นจะปลอดภัยมากกว่าครับ หากยังไม่มีการตั้งค่า user อื่นที่มีสิทธิในการอ่าน user ณ ตอนนี้ ก็ให้ใช้ administrator ในการทดสอบไปพลาง ๆ ก่อนครับ

Bind User   cn=administrator,cn=users,dc=university,dc=local

Bind User Password   คือ รหัสผ่านของ administrator ที่ใช้ใน Active Directory

Bind User Password   *********

Base DN   คือ OU ที่จะให้โปรแกรมเข้าไปอ่านค่า อันนี้ก็แล้วแต่ละองค์กรจะเป็นคนกำหนดครับ แต่ทั่วไปแล้ว ก็จะอยู่รวมกันที่ Users

Base DN   ou=users,dc=rmutl,dc=local


ส่วนที่ 2 คือ User specific settings

Automatic User Creation คือการสร้าง User ในตัว WordPress หลังจากที่สมาชิก login ผ่านแล้ว หากไม่เช็คตรงนี้ ก็จะเข้าไม่ได้ครับ

Automatic User Update   คือ การบังคับให้สมาชิกที่ login ผ่านเข้า เข้าหน้า Profile ทุกครั้ง เพื่อทำการอัพเดทข้อมูลส่วนตัว ถ้าไม่เช็ค ก็ไม่เป็นไรครับ

Default email domain   คือ การระบุ E-Mail ของหน่วยงาน เช่น ต่อท้ายด้วย @university.local แต่หากไม่ระบุ ตัวโปรแกรมจะดึงข้อมูลจาก mail ในส่วน Attribute ของ AD เองครับ  สรุป ไม่ใส่ดีกว่า

Account Suffix   คือส่วนการเพิ่มเติม User เช่นผมมี user ที่ชื่อว่า teppap@university.local ผมก็ต้องพิมพ์ตามนี้ทั้งหมด แต่ถ้าเราระบุในช่องของ Account Suffix แล้ว ผมก็พิมพ์ user ของผมแค่ teppap ครับ

Account Suffix   university.local

Append account suffix to new created usernames  หาเช็คบ็อคตรงนี้ ระบบจะนำเอา Account Suffix มาต่อท้าย user ของเรา ด้วย และในที่สุดมันจะกลายเป็น E-Mail ของเราครับ (จะแสดงใน Profile) ดังนั้น ไม่จำเป็น ก็ไม่ต้องเช็คตรงช่องนี้ครับ

Display name   คือชื่อที่จะใช้ในการแสดงผล ตรงนี้ เราสามารถแก้ไขใน Profile ได้ครับ ดังนั้น เอาค่ามาตรฐานที่ตั้งมานั่นแหละครับ (ค่าตรงนี้ หากดูใน Profile แล้วดร็อปดาวน์ลิสต์ ก็จะเข้าใจมากขึ้นครับ หรือจะดูจากบทความก่อนหน้านี้ก็ได้ครับผม)

ส่วนที่ 3 คือ Authorization

Authorize by group membership   คือ การเจาะจงว่าจะให้กลุ่มไหนเข้าใช้งานได้บ้าง เช่น กลุ่มของ admin (ต้องมีการสร้างกลุ่มใน active directory ก่อนนะครับ) ถ้าไม่ใส่ มันก็จะเลือก user ทั้งหมดจาก Base DN  ครับ

Role Equivalent Groups คือการกำหนด สิทธิของกลุ่มที่เข้าใช้งาน เช่น กลุ่ม admin เข้ามาใช้งาน ก็จะมีสิทธิเป็น Admin โดยทันที แต่ถ้าหากลุ่ม student เข้ามา ก็จะมีสิทธิแค่อ่าน เป็นต้น  (ถ้าไม่ใส่ ก็จะได้สิทธิเป็น แค่ผู้อ่านครับ คอมเม้นต์ได้ แต่เขียนเรื่องไม่ได้)

ส่วนที่ 4 คือ Brute Force Protection

Maximum number of allowed login attempts คือ จำนวนครั้ง ที่ล็อกอินไม่ผ่านติดต่อกัน ถ้าหากเลยค่าตามจำนวนที่กำหนด User นั้น จะถูกบล็อคทันทีครับ แต่ถ้าใส่เป็น 0 (ศูนย์) ค่าการบล็อค ก็จะถูกยกเลิก

Blocking Time   คือ เวลาที่จะทำการบล็อค หากล็อกอินไม่ผ่านตามจำนวนในข้อแรก

User Notification   คือ การแจ้งไปยัง E-Mail ของ User นั้น ๆ ว่ามีการพยายามใช้ User ของเขาในการล็อกอิน

Admin Notification   คือ การแจ้งไปยัง E-Mail ของ Admin ด้วย ว่าขณะนี้ ได้ทำการบล็อค user ที่พยายามเข้าใช้งาน แบบไม่ถูกต้องแล้ว และจะแจ้งไปยัง E-Mail ที่กำหนด ดังช่องด้านล่าง (E-mail addresses for notifications)

เมื่อกรอกข้อมูลครบตามที่ต้องการแล้ว ให้คลิ๊กที่ Save Change เพื่อทำการบันทึกค่าครับ

การทดสอบ

ให้เปิดเบราเซอร์(ล็อกเอาท์ออกจาก admin ก่อนนะครับ หากใช้เบราเซอร์ตัวเดียวกัน) แล้วคลิ๊กที่ login

ถ้าการติดตั้ง Extension ของ php ถูกต้อง ก็จะสามาถเข้าสู่หน้า Log in แต่ถ้า extension ของ php ผิดพลาด จะมีข้อความแจ้งเตือนดังนี้ครับ

Fatal error: Call to undefined function ldap_connect() in C:\AppServ\www\wordpress\wp-content\plugins\active-directory-integration\ad_ldap\adLDAP.php on line 183

ให้เรากลับไปดูการตั้งค่า extension ของ php อีกครั้ง แล้ว อย่าลืม restart service ของ apache ด้วยละครับ เมื่อแก้เสร็จแล้ว (หรือดีแล้ว)ให้คลิ๊กที่ log in อีกครั้ง

login

ให้กรอก user และ password ที่มีอยู่ใน Active Directory ซึ่งต้องอยู่ใน OU ตาม Base DN ด้วยนะครับ

เพียงเท่านี้ ก็จะสามารถใช้งาน wordpress ร่วมกับ Active Directory ได้แล้วครับ

บทความนี้สามารถประยุกต์ใช้กับ LDAP ได้ด้วยครับผม

profile