วันอังคารที่ 30 มีนาคม พ.ศ. 2553

openssl convert formats

Use the openssl command to convert between formats as follows:

To convert a certificate from PEM to DER:
openssl x509 –in input.crt –inform PEM –out output.crt –outform DER

To convert a certificate from DER to PEM:
openssl x509 –in input.crt –inform DER –out output.crt –outform PEM

To convert a key from PEM to DER:
openssl rsa –in input.key –inform PEM –out output.key –outform DER

To convert a key from DER to PEM:
openssl rsa –in input.key –inform DER –out output.key –outform PEM

Adding SSL Support to Apache

Installing

I first need to install the mod_ssl library.

#yum install mod_ssl

Configuring Apache


My httpd.conf includes all the files from conf.d/*.conf. I took advantage of this and created a conf.d/ssl.conf file. My ssl.conf file contains the following:

==============================================

LoadModule ssl_module modules/mod_ssl.so
Listen 443

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl

SSLPassPhraseDialog builtin

SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300

SSLMutex default

SSLRandomSeed startup file:/dev/urandom 512
SSLRandomSeed connect builtin

SSLCryptoDevice builtin
ServerName ssl.domain.com

DocumentRoot /home/site/html

ScriptAlias /cgi-bin /home/site/cgi-bin

SSLEngine on

SSLProtocol all -SSLv2

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

SSLCertificateFile /etc/httpd/conf/ssl/ssl.crt/ssl.domain.com.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/ssl.key/ssl.domain.com.key
SSLCertificateChainFile /etc/httpd/conf/ssl/ssl.crt/godaddy_intermediate_bundle.crt

SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog /home/site/logs/access.log combined
==========================================================

วันจันทร์ที่ 29 มีนาคม พ.ศ. 2553

Transaction log Backup and Restore

ถ้าคุณต้องการทำ warm standby server หรือ ต้องการเอา backup มา restore เพื่อเผื่อเอาไว้กรณี database จริงมีปัญหา จะได้นำเอาตัว standby server มา online เพื่อใช้งานแทนได้ทันที ก็สามารถทำดังนี้ได้ครับ

1. restore ตัว database backup ที่เป็น full
2. restore transaction log ที่ได้ backup เอาไว้ ตามลำดับไฟล์ต่อ ๆ ไปเรื่อย ๆ

แต่ database ใน warm standby server นี้ อาจจะไม่สามารถใช้งานได้ หรือ ใช้งานได้แค่ read only ซึ่งขึ้นกับ option ในการ restore ที่เลือกเอาไว้ ลองสังเกต option ในหน้าจอ restore ดูนะครับ จะมี
- leave database operational. No additinal transaction logs can be restored.
ซึ่งหมายถึง restore เสร็จแล้ว ให้ database online พร้อมใช้งานได้เลย จึงทำให้ไม่สามารถนำ log ไฟล์ต่อไปมา restore ต่อไปได้ ซึ่งก็คือ with recovery หรือ
- leave database nonoperational but able to restore additinal transaction logs
หมายถึง restore แล้ว ยังไม่ online ให้ รอเอา transaction log backup ตัวต่อ ๆ ไปมา restore ต่อ ซึ่งก็คือ with norecovery หรือ
- leave database read-only and able to restore additinal transaction logs
หมายถึง restore แล้ว ให้ read-only และ รอเอา transaction log backup ตัวต่อ ๆ ไปมา restore ต่อได้ ซึ่งก็คือ with standby

ดัง นั้น ถ้าจะ restore transaction log ต่อ ๆ กัน หลาย ๆ ไฟล์แล้ว เลือกได้แค่ option 2 หรือ 3 นะครับ จนถึงครั้งที่ restore transaction log ตัวสุดท้ายแล้ว จึงค่อยเลือก option ที่ 1 เพื่อให้ databae online กลับเข้ามา

ดูคำสั่งที่เป็น command line นะครับ สมมติว่ามี backup เช่น
1. nwind_tlog1400.trn เวลา 14.00 น.
2. nwind_fullbackup.bak เวลา 15.00 น.
3. nwind_tlog1600.trn เวลา 16.00 น.
4. nwind_tlog1800.trn เวลา 18.00 น.
5. nwind_tlog2000.trn เวลา 20.00 น.

การเอา backup เหล่านี้ มา restore เพื่อใช้เป็นตัวทดสอบ หรือ จะใช้เป็น standby server ก็แล้วแต่สามารถทำได้ดังนี้
1. restore ตัว full ก่อน โดย

restore database NorthWind
from disk = 'c:\nwind_fullbackup.bak'
with norecovery -- <-- with norecovery เพราะจะ restore transaction log ต่อ
go

2. restore transaction log backups ต่อ ๆ ไป

restore log Northwind
from disk = 'c:\nwind_tlog1600.trn'
with norecovery -- <-- with norecovery เพราะจะ restore transaction log ต่อ
go

restore log Northwind
from disk = 'c:\nwind_tlog1800.trn'
with norecovery -- <-- with norecovery เพราะจะ restore transaction log ต่อ
go

restore log Northwind
from disk = 'c:\nwind_tlog2000.trn'
with recovery -- <-- with recovery แล้ว เพื่อให้กลับมา online
go

( หมายเหตุ คำสั่งยังไม่ได้ test นะครับ ขอโทษที )

จะ เห็นว่าในการ restore transaction log backup ครั้งสุดท้าย จะต้องใช้ option with recovery เพื่อนำ database ให้กลับมา online พร้อมใช้งาน ลองสังเกตตัวก้อน database หลังจากที่ restore แต่ะลขั้นนะครับ มันจะยังเป็นสีเทาอยู่ จนขั้นตอนสุดท้าย


* สำหรับ การนำเอา transaction log backup มา restore ต่อ ๆ กันไป เพื่อให้ได้ warm standby server นั้น นอกจากใช้ with norecovery ตามตัวอย่างแล้ว ยังสามารถเลือกใช้ option with standby ก็ได้ ซึ่งข้อดีของ option with standby ก็คือ ตัว warm standby server นี้จะเป็น read only ซึ่งอาจจะนำไปใช้งานในการ run report ที่ไม่ต้องการข้อมูล update แบบ realtime ได้
( เรื่อง with standby จะมีรายละเอียดเกี่ยวกับ undo file อีกนิดหน่อย ดูเพิ่มได้จาก book online )

** หลักการทั้งหมดนี้ จะคล้ายกับ feature หนึ่ง ของ SQL Server Enterprise Edition ที่เรียกว่า log shipping ซึ่งก็คือ การ synchronize database ปลายทาง ให้เหมือนกับ database ต้นทาง โดยวิธีการส่ง transaction log ไปยังปลายทาง สำหรับรายละเอียดวิธีการ config สามารถอ่านเพิ่มเติมได้จาก book online ครับ

*** ใน SQL2000 Resource Kit จะมี ตัวอย่างหนึ่ง เรียกว่า Simple Log Shipper (SLS) ซึ่งจะมีรายละเอียด พร้อม stored procedure มาให้พร้อมใช้งานสำหรับกรณีที่คล้าย ๆ กับที่เป็นตัวอย่างข้างต้นนี้ เพื่อทำ warm standby server ที่เป็นแบบ read-only

วันอาทิตย์ที่ 28 มีนาคม พ.ศ. 2553

mysql incremental backup

เปิดใช้ binary log
ใน my.ini

[mysqld]
log-bin


แล้ว restart เครื่อง
ระบบจะเริ่มเขียน binary log ออกมา
อยู่ในรูป ชื่อเครื่อง.ตัวเลข เช่น
localhost-bin.000001
localhost-bin.000002
localhost-bin.000003


1. การทำ Full backup ทำเป็นคาบ เช่นสัปดาห์ละครั้ง
1.1 หยุดการใช้งาน หรือให้ readonly ด้วยคำสั่งนี้
mysql> FLUSH TABLES WITH READ LOCK;
1.2 copy ฐานข้อมูลออกมาตามปรกติ หรือ mysqldump ก็ได้
shell> mysqldump --all-databases --master-data --flush-logs > backup.sql
ถ้าใช้วิธี copy ออกมาต้องสั่ง flush logs ด้วยเพื่อบังคับให้ขึ้นไฟล์ใหม่
แล้วจดชื่อไฟล์ใหม่ที่เกิดขึ้นหลัง flush logs เอาไว้คู่กับไฟล์ backup
1.3 ปลด lock ใช้งานตามปรกติ
mysql> UNLOCK TABLES;

2. การทำ incremental backup เป็นประจำวันละครั้งหรือหลายครั้งตามสะดวก
2.1 สั่งขึ้น log ใหม่
mysql>FLUSH LOGS;
2.2 copy binary log เก็บไว้ ยกเว้นตัวล่าสุดไม่ต้อง copy เพราะถูกใช้งานอยู่

3. การลบ binary log ที่ได้ copy ไว้แล้ว
mysql> PURGE BINARY LOG TO 'ชื่อไฟล์.เลขล่าสุด'
-- เลขล่าสุดจะไม่โดนลบ

4. การกู้คืนข้อมูล
4.1 copy binary log ล่าสุดเก็บไว้ก่อน restore full backup ** สำคัญมาก ถ้าอยากได้ข้อมูลล่าสุดคืน
4.2 restore จาก full backup ตัวล่าสุด
4.3 restore จาก binary log ที่เกิดขึ้นหลังจาก full backup ล่าสุด
shell> mysqlbinlog log-bin.000020 log-bin.000021 log-bin.000022 | mysql -uroot -p

5. ซ้อมทำสม่ำเสมอ เหมือนซ้อมหนีไฟ เพื่อให้จำขั้นตอนได้แม่น ๆ จะได้ไม่ลนลาน
ให้ทดสอบ restore ใส่เครื่องทดสอบดู
อย่างน้อย restore ไม่เป็น ถ้ามี full backup และ binary log เก็บไว้
ยังมีคนช่วย restore ให้ได้

วันจันทร์ที่ 22 มีนาคม พ.ศ. 2553

ติดตั้ง SNMP บน Windows 2003

ติดตั้ง SNMP บน Windows 2003

SNMP Service บนวินโดส์ เป็น Service ที่ช่วยให้เราสามารถดู Inventory ในเครื่อง ทั้ง Hardware และ Software ลงลึกไปจนถึงโปรแกรมที่ติดตั้งอยู่ภายในเครื่องด้วยครับ

ผมเองมี Server ที่ต้องดูแลค่อนข้างเยอะ รวมถึง Client เองที่ใช้งาน Windows ทั้งหมดก็ร่วมพัน การที่จะมานั่งเก็บ Inventory ที่ละเครื่องก็แทบจะกระอักเลือด วิธีง่าย ๆ ของผมก็คือติดตั้ง SNMP แล้วก็ใช้โปรแกรมไปดึง Inventory ของเครื่องมาแสดง (โปรแกรมที่ว่านี้มีหลายตัวมาก แต่ขอแนะนำโปรแกรมจากค่าย Manage Engine)

ไปดูขั้นตอนการติดตั้งและปรับแต่ง SNMP Service บน Windows กันดีกว่าครับ

  1. ไปที่ Start | Control Panel | Add Or Remove Programs
  2. เลือก Add/Remove Windows Components
  3. ในหน้าต่าง Windows Components, เลือก Management And Monitoring Tools. (ไม่ควรเลือกทั้งหมดนะครับ เอาเฉพาะที่เราใช้งานเท่านั้นพอ)
  4. ต่อมาก็คลิก Details
  5. เลือก Simple Network Management Protocol
  6. คลิก OK แล้วกลับมาที่หน้า Windows Component
  7. กด Next แล้วก็รอให้ติดตั้งเสร็จ (อาจจะมีการเรียกแผ่น CD Windows 2003)

ติดตั้ง SNMP บน Windows 2003

เท่านี้ก็สามารถใช้งาน SNMP ได้แล้วล่ะครับ โดยส่วนมากแล้วเวลาจะดึง Inventory มานั้น Community String ของ SNMP มักจะตั้งเป็น public | port : 161

ปรับแต่ง SNMP

  1. ไปที่ SNMP ServiceSNMP Service
  2. ในแถบ Agent จะกำหนดว่าสามารถ Monitor ดูได้ถึงระดับไหน ในตัวอย่างผมเลือกไว้หมด จะสามารถเช็ค Hardware ได้ด้วยSNMP Agent tab
  3. แถบ Security เอาไว้กำหนดค่า Community String โดยค่าเริ่มต้นจะเป็น public เราสามารถเปลี่ยนเป็นอะไรก็ได้ ส่วนกรอบสี่เหลี่ยมด้านล่างก็ไว้ใช้สำหรับกำหนดสิทธิ์เครื่องที่จะสามารถ Access เข้ามาใช้งานSecurity Tab

จบแล้วครับสำหรับ SNMP ก็หวังว่า คงจะช่วยลดงานให้ Admin แต่ละท่านได้บ้างนะครับ

VPN Server บน Windows 2003 เพื่อแชร์เน็ต แบบมีการ์ดแลนใบเดียว

วิธีติดตั้ง VPN Server บน Windows 2003 เพื่อแชร์เน็ต แบบมีการ์ดแลนใบเดียว
ถ้าเรามี Windows 2003 อยู่ 1 เครื่อง แล้วเราต้องการทำ VPN Server แล้วอยากให้ VPN Server แจกเน็ตให้เครื่องไคลแอนด้วย ให้ทำดังนี้







เลือก Custom เพราะเรามีการ์ดใบเดียว ( ถ้ามี 2 ใบ ให้เลือกอันที่ 2 )








กำหนด NAT
กำหนด Nat เพื่อให้ VPN Server แชร์เน็ตให้กับ ไคลแอน ที่เชื่อมต่อเข้ามา







กำหนดสิทธิ์ให้ User ที่สิทธิ์ Dial...
เราต้องกำหนดสิทธิ์ Dial ให้กับ user ด้วย เพื่อให้ user สามารถเชื่อมต่อ vpn ได้ครับ




คลิ๊กแถบ Dial-in และ ติ๊ก Allow access เพื่อยินยอมให้ user นี้ access ผ่าน vpn ได้ แล้วกด OK ก็เป็นอันจบคร๊าบ


เสร็จแล้วก็ทดสอบเชื่อมต่อ
หลังจากกำหนด VPN, NAT และ Allow สิทธิ์ เรียบร้อยก็ทำการลองเชื่อมต่อได้เลยครับ




















VPN บน Windows 2003 Server (2 CARD)

ตัวอย่างการทำ VPN บน Windows 2003 Server

บทนำ
ในที่นี้เครื่อง Windows 2003 Server ที่ใช้มี Network Card จำนวน 2 การ์ดคือ
1. เชื่อมต่ออินเตอร์เน็ตเป็น 202.129.16.28
2. เชื่อมต่อกับเครือข่ายภายใน เป็น 172.24.51.12

ความต้องการ
ต้องการให้สำนักงานในสังกัดหน่วยงานของตัวเองซึ่งอยู่ที่อื่น ๆ ที่มีการเชื่อมต่อกับเครือข่าย
Internet แล้ว สามารถ Access เข้ามาใช้งานเครือข่ายภายในที่มี IP ของเครือข่ายเป็น 172.24.51.0/24 ได้

จึงต้องทำให้
Server ตัวนี้เป็น VPN Server เพื่อให้สำนักงานอื่น ๆ ที่เชื่อมต่อกับเครือข่าย Internet สามารถ Access เข้าสู่เครือข่าย 172.24.51.0/24 ได้ โดยให้เชื่อมมาที่ขานอกของ Server ที่มี IP เป็น 202.129.16.28 จากนั้น Server ก็จะจ่าย IP ที่เป็น Private ให้กับเครื่องที่เชื่อมเข้ามา และสามารถทะลุเข้าไปยังยังเครือข่าย 172.24.51.0/24 โดยผ่านการ์ดที่เป็น Private ของ Server ที่มี IP เป็น 172.24.51.12 ต่อไปได้

ขั้นตอนการทำ
1. ไปที่เมนู Start --> Administrative Tools --> Routing and Remote Access ดังรูปที่ 1


รูปที่ 1

2. แล้วจะได้ดังรูปที่ 2


รูปที่ 2

3. ให้คลิ๊กที่คำว่า Server Status แล้วเลือกเมนู Add Server ดังรูปที่ 3


รูปที่ 3

4. จะได้ดังรูปที่ 4 ให้เลือก This computer แล้วคลิ๊กปุ่ม OK


รูปที่ 4

5. แล้วจะได้ดังรูปที่ 5

รูปที่ 5

6. จากรูปที่ 5 ให้คลิ๊กที่ชื่อ Server แล้วเลือกเมนู Configure and Enable Routing and Remote Access ดังรูปที่ 6


รูปที่ 6

7. เมื่อได้ดังรูปที่ 7 ให้คลิ๊กปุ่ม Next


รูปที่ 7

8. เมื่อได้ดังรูปที่ 8 ให้เลือกรายการตามต้องการ ซึ่งถ้าต้องการทำ NAT ด้วยก็ให้เลือกรายการ Virtual Private Network (VPN) access and NAT แต่ในที่นี้เราต้องการทำ VPN อย่างเดียว ก็ให้เลือกรายการ Remote access (dial-up or VPN)



รูปที่ 8

9. เมื่อได้ดังรูปที่ 9 ให้เลือก VPN


รูปที่ 9

10. เมื่อได้ดังรูปที่ 10 ก็จะเป็นขั้นตอนการเลือกการ์ดแลนว่าการ์ดไหนเป็นการ์ดที่ติดต่อกับ Internet เพื่อ enable VPN clients ก็ให้เลือกการ์ดที่เชื่อมต่อกับ Internet ครับ


รูปที่ 10

11. เมื่อได้ดังรูปที่ 11 ก็จะเป็นขั้นตอนวิธีการจ่าย IP address ให้กับเครื่องที่ connect เข้ามา ซึ่ออาจจะใช้ DHCP Server หรือการกำหนดช่วงเอง ในที่นี้เลือกการกำหนดช่วงเอง ก็ให้เลือก From a specified range of address


รูปที่ 11

12. จากรูปที่ 12 ให้คลิ๊กปุ่ม New เพื่อการกำหนดค่า IP Address ที่จะจ่ายให้เครื่อง Client


รูปที่ 12

13. ให้ป้อนค่า IP address ที่จะจ่ายให้เครื่อง Client ดังรูปที่ 13


รูปที่ 13

14. เมื่อได้ดังรูปที่ 14 ให้คลิ๊กปุ่ม Next


รูปที่ 14

15. เมื่อได้ดังรูปที่ 15 ก็เป็นการกำหนดว่าจะให้มีการ Authenticate ผ่าน Radius Server หรือไม่ ในที่นี้ไม่ครับ


รูปที่ 15

16. เมื่อได้ดังรูปที่ 16 ให้คลิ๊กปุ่ม Finish


รูปที่ 16

17. รูปที่ 17 จะเกี่ยวกับ DHCP Server ซึ่งในที่นี้ไม่ใช้ก็ให้คลิ๊กปุ่ม OK


รูปที่ 17

18. เมื่อได้ดังรูปที่ 18 ให้คลิ๊กที่เครื่องหมาย +


รูปที่ 18

19. ก็จะได้ดังรูปที่ 19 เป็นอันเสร็จขั้นตอนครับ แต่ถ้ายังไม่ได้ทำ Static Route ก็ต้องทำซะด้วยนะครับ

วันอาทิตย์ที่ 21 มีนาคม พ.ศ. 2553

VPN

เรียนรู้เกี่ยวกับ VPN



VPN หรือ Virtual Private Network หมายถึง เครือข่ายเสมือนส่วนตัว ที่ทำงานโดยใช้โครงสร้าง
ของ เครือข่ายสาธารณะ หรืออาจจะวิ่งบนเครือข่ายไอพีก็ได้ แต่ยังสามารถคงความเป็นเครือข่าย เฉพาะขององค์กรได้ด้วยการเข้ารหัสแพ็กเก็ตก่อนส่ง เพื่อให้ข้อมูลมีความปลอดภัยมากขึ้น

อย่างไรก็ดี คำว่า VPN จะครอบคลุมทั้งอุปกรณ์ฮาร์ดแวร์ (เช่น Gateway และ Router), ซอฟต์แวร์
และ ส่วนที่เป็นไฟร์วอลล์ การเข้ารหัสแพ็กเก็ต เพื่อทำให้ข้อมูลมีความปลอดภัยนั้น ก็มีอยู่หลาย กลไกด้วยกัน ซึ่งวิธีเข้ารหัสข้อมูล (encryption) จะทำกันที่เลเยอร์ 2 คือ Data Link Layer แต่ปัจจุบัน
มีการเข้ารหัสใน IP Layer โดยมักใช้เทคโนโลยี IPSec (IP Security)

ปกติ แล้ว VPN ถูกนำมาใช้กับองค์กรขนาดใหญ่ ที่มีสาขาอยู่ตามที่ต่างๆ และต้องการต่อเชื่อมเข้าหา กัน โดยยังคงสามารถรักษาเครือข่ายให้ใช้ได้เฉพาะคนภายในองค์กร หรือคนที่เกี่ยวข้องด้วย เช่น
ลูกค้า, ซัพพลายเออร์ เป็นต้น

นอกจากนี้แล้ว กลไกในการสร้างโครงข่าย VPN อีกประเภทหนึ่ง คือ MPLS (Multiprotocal Label
Switch) เป็นวิธีในการส่งแพ็กเก็ต โดยการใส่ label ที่ส่วนหัวของข้อความและค่อยเข้ารหัสข้อมูล
จากนั้น จึงส่งไปยังจุดหมายปลายทาง เมื่อถึงปลายทางก็จะถอดรหัสที่ส่วนหัวออก วิธีการนี้
ช่วยให้ผู้วางระบบเครือข่าย สามารถแบ่ง Virtual LAN เป็นวงย่อย ให้เป็นเครือข่ายเดียวกันได้


ตัวอย่าง เช่น บริษัท A ก็จะได้ VPN label A ที่หัวข้อความ ของทุกแพ็กเก็ต บริษัท B ได้รหัสที่หัวข้อความเป็น B เพื่อส่งข้อมูล ข้อมูลที่ส่งออกไปก็จะวิ่งไปหาปลายทางตาม Label ของตน ซึ่งผู้วางระบบสามารถเพิ่มกลุ่มในวง VLAN ได้อย่างไม่จำกัด

รูปแบบบริการ VPN
บริการ VPN แบ่งออกเป็น 3 รูปแบบ

1. Access VPN: เป็นรูปแบบในการเข้าถึงเครือข่าย VPN จากอุปกรณ์เคลื่อนที่ต่างๆ ซึ่งสามารถเข้าถึงเครือข่ายได้ใน 2 ลักษณะ โดยลักษณะแรก เป็นการเข้าถึงจากไคลเอ็นต์ใดๆ ก็ได้ โดยอาศัย ผู้ให้บริการอินเทอร์เน็ตเป็นตัวกลางในการติดต่อ ซึ่งจะมีการเข้ารหัสในการส่งสัญญาณ จากเครื่องไคลเอ็นต์ไปยังไอเอสพี และลักษณะที่สองเป็นการเข้าถึงจากเครื่องแอ็กเซสเซิร์ฟเวอร์ (Network Access Server-NAS) โดยเริ่มต้นจากผู้ใช้หมุนโมเด็มติดต่อมายังไอเอสพีและจากนั้น จะมีการเข้ารหัสข้อมูลและส่งต่อไปยังปลายทาง

2. Intranet VPN: เป็นรูปแบบในการเข้าถึงเครือข่าย VPN ที่ใช้เฉพาะภายในองค์กรเท่านั้น อาทิ การต่อเชื่อมเครือข่ายระหว่างสำนักงานใหญ่ในกรุงเทพฯ และสาขาย่อยในต่างจังหวัด เสมือนกับ การทดแทนการเช่าวงจรลีสไลน์ระหว่างกรุงเทพกับต่างจังหวัด โดยที่แต่ละสาขา สามารถ ต่อเชื่อมเข้ากับผู้ให้บริการอินเทอร์เน็ตในท้องถิ่นของตนเพื่อเชื่อมเข้า โครงข่าย VPN ขององค์กรอีกทีหนึ่ง

3. Extranet VPN: เป็นรูปแบบในการเข้าถึงเครือข่ายที่คล้ายกับ Intranet VPN แต่มีการขยายวงออกไปยังกลุ่มลูกค้าซัพพลายเออร์และพาร์ตเนอร์ เพื่อให้ใช้เครือข่ายได้ จุดสำคัญอย่างหนึ่งในการเลือกติดตั้ง VPN คือการเลือกผู้ให้บริการอินเทอร์เน็ต ที่วางระบบรักษาความปลอดภัยเป็นอย่างดี มีส่วนอย่างมากในการส่งข้อมูลบน VPN ให้ปลอดภัยมากยิ่งขึ้น เพราะถ้าไอเอสพีมีระบบรักษาความปลอดภัยที่รัดกุม ก็จะช่วยให้ ข้อมูลที่ส่งมามีความปลอดภัยมากขึ้น

ประโยชน์ที่ได้รับจาก VPN

ประโยชน์ของการติดตั้งเครือข่ายแบบ VPN จะช่วยองค์กรประหยัดค่าใช้จ่าย เพราะไม่ว่า
ผู้ ใช้องค์กรจะอยู่ที่ใดในโลก ก็สามารถเข้าถึง เครือข่าย VPN ของตนได้ โดยการต่อเชื่อมเข้ากับ ผู้ให้บริการท้องถิ่นนั้น ๆ ทำให้ช่วยลดค่าใช้จ่ายในการติดต่อสื่อสาร และสามารถ ลดค่าใช้จ่ายในส่วนของการดูแลรักษาระบบอีกด้วย นอกจากนี้ระบบเครือข่าย VPN ยังสามารถ ให้ความคล่องตัวในการเปลี่ยนแปลง เช่น การขยายเครือข่าย ในอนาคต

นอก จากนี้แล้ว ในแง่ของผู้ให้บริการอินเทอร์เน็ต การออกบริการ VPN ก็เป็นอีกทางเลือกหนึ่ง ที่ช่วยให้ลูกค้าของไอเอสพีระหยัดค่าใช้จ่ายและสะดวกสบายมากขึ้น

วันพฤหัสบดีที่ 18 มีนาคม พ.ศ. 2553

การ backup sql server ผ่าน network

ตามหัว ข้ออ่ะครับ เคยมีคน post ถามเอาไว้ แล้วตอนนั้น ผม ก็คิดว่ามันไม่ได้ แต่วันนี้บังเอิญไปเจอวิธีเข้าอ่ะครับ แล้วมันก็ใช้ได้ด้วย ก็เลยเอาสรุปมาทิ้งไว้เผื่อมีใครนำไปใช้ได้น่ะครับ Cool

สาเหตุที่ MSSQL ไม่สามารถ backup ผ่าน network shared folder เป็นเพราะเรื่อง สิทธิครับ

นำเรื่องเล็กน้อย
=============
เรื่อง มันยาวนิดนึง คือ MSSQL service เนี่ย มันจะมีการให้เราระบุได้ว่า จะให้มัน start หรือ run ด้วย account หรือ user อะไร ซึ่ง user ที่ใช้ในการ start หรือ run MSSQL นั้น ไม่จำเป็น ที่จะต้องเป็น user เดียวกันกับ user ที่ logon windows อยู่

ทีนี้ service ของ MSSQL โดย default แล้วจะ run โดยใช้ SYSTEM ซึ่งเจ้า SYSTEM มันจะไม่มีสิทธิในการเข้าถึง share resouce บน network (เค้าว่ามาแบบนี้ มันคงเป็น user หรือ account อีกแบบน่ะแหละ ใครแม่น ๆ ช่วยบรรยายเพิ่มหน่อยละกัน :Smiley)

ปัญหามันก็เลยเกิด เพราะ MSSQL จะทำงานภายใต้ชื่อของ SYSTEM

ที นี้ไอ้การ Backup น่ะ มันจะเป็นลักษณะว่า MSSQL service เป็นผู้ทำงาน (งาน คือ save file) เอง ไม่เกี่ยวกับ user ที่ logon windows อยู่ ณ ขณะนั้น มันจึงทำให้ MSSQL service ที่ run ภายใต้ชือของ SYSTEM นี้ไม่สามารถใช้งาน หรือ save file ไปที่ network drive หรือ folder ที่ share ไว้ได้ (เพราะว่า SYSTEM ไม่มีสิทธิ) แม้ว่า ขณะนั้น คนที่ logon windows อยู่จะใช้งาน network drive หรือ shared folder ไว้ก็ตาม เพราะว่า มันไม่เกี่ยวข้องกัน (งงมั้ยเนี่ย)

ส่วนวิธีการตรวจว่า MSSQL Service นั้น start/ run ด้วย user อะไรนั้น สามารถดูได้จากใน Control Panel --> Admin Tools --> MSSQL --> Properties --> Log on

การแก้ไข ก็คือ ก็ทำให้ MSSQL มันมีสิทธิ ดิ...

แล้วก็ถึงคราววิธีแก้ไข
================
1. แก้ user ที่ start MSSQL ให้เป็น user อื่นที่มีสิทธิในการใช้งาน shared folder นั้น ๆ

หรือ
2. แก้ไข Registry ของเครื่องที่ได้ทำการ share เอาไว้ โดยให้เพิ่มชื่อที่ทำการ share เอาไว้ที่

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmamServer\Parameters\NullSessionShares

จากนั้น ทำการ stop server service แล้ว start ใหม่ เป็นอันเสร็จ
(ไป restart ใน services ก็ได้ หรือ จะใช้คำสั่ง net stop server แล้วค่อย สั่ง net start server ใหม่ หรือ จะ reboot เลยได้)

ซึ่งข้อ 2 นี้จะเป็นการเอา security ทั้งหมดออกจาก folder ที่ share เอาไว้


กลับมา backup ที่ MSSQL
===================
ทีนี้การ backup จะต้อง อ้างอิง โดยใช้ UNC เช่น

backup database pubs to disk='\\server01\myshare\pubsbackup.bak'


ผลการทดสอบ
===========
ผมลองทั้ง 2 วิธี กับ เครื่องที่ share folder ซึ่งเป็น windows 2000 server แล้ว ใช้ได้น่ะครับ

อ้างอิง
=====
จากที่นี่ เผื่อใครที่อยากอ่าน ต้นฉบับจริง ๆ

http://groups.google.co.th/group/microsoft.public.sqlserver.server/browse_thread/thread/dd3c09faf39a9177/5064600b8b1709bf?lnk=st&rnum=2&hl=th#5064600b8b1709bf