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

โดยวันนี้จะเน้นในเรื่องการสร้าง server บน aws ec2 ของทาง amazon นะครับ โดยจะอ้างอิงจากระบบที่ทางทีมงานได้เคยติดตั้งให้ลูกค้าที่ผ่านมานะครับ ซึ่งโจทย์ที่ทีมงานได้รับมาคือ มีหน่วยงานหนึ่งต้องการทำระบบ Hotspot authentication แบบรวมศูนย์ โดยลงทุนแค่ครั้งเดียว แต่สามารถรองรับการเติบโตในอนาคตได้ โดย server ที่ทำหน้าที่กำหนด หรือสร้าง user/password จะทำงานอยู่บน cloud และที่สาขาต่างๆ จะทำการติดตั้ง mikrotik ทำหน้าที่เป็น hotspot server เพื่อให้เวลาผู้ใช้งาน internet ต้องการใช้งาน จะต้องทำการกรอก user และ password ก่อน พร้อมกับเก็บ log พรบ.คอมพิวเตอร์ ให้ครบถ้วนตามกฏหมาย

ก่อนอื่นเราต้องทำการสมัคร account กับทาง aws ก่อนนะครับ

โดย 1 account จะสามารถสร้าง server บนระบบได้ ฟรี 1 server (เป็นระยะเวลา 1 ปี )เพื่อเอาไว้ให้เราได้เรียนรู้และสร้าง ความคุ้นเคยกับระบบเขาก่อนนะครับ ต่อไป เรามาดูขั้นตอนการสร้าง server ฝั่ง aws กันเลยนะครับ (โดยจะอ้างอ้งจาก diagram ตามรูปนะครับ)

1. aws จะมีข้อดีคือเราสามารถกำหนด network infrastructure ที่เป็นของเราขึ้นมาเองได้ ทำให้เราสามารถนำมาประยุกต์กับการใช้งานได้หลายรูปแบบตามความต้องการ โดยจะเรียกว่า VPC (Virtual Private Cloud) ใน vpc นี้เราสามารถแบ่ง subnet ออกเป็น public และ private ความแตกต่างของ 2 อันนี้คือ

server ที่เราสร้างอยู่ภายใต้ subnet public จะสามารถใช้งาน internet ได้ เนื่องจากว่า เราจะกำหนด routing ให้ไปผูกกับ internet gateway ที่เราสร้างขึ้นมาบน VPC ของเรา
server ที่เราสร้างอยู่ภายใต้ subnet private เราจะสามารถกำหนดได้ว่าจะให้สามารถใช้งาน internet ได้หรือไม่ได้ก็ได้ ทั้งนี้ขึ้นอยุ่กับนโยบายของเราเอง

โดยการสร้างนั้น จะสังเกตุว่า ทางผมจะสร้าง subnet vpn ที่เป็น class B คือ 10.10.0.0/16 แล้วผมก็จะไปสร้าง subnet public (10.10.1.0/24) และ private (10.10.2.0/24) ให้เป็น class C ให้อยู่ภายใน subnet class B นี้อีกที (ตามรูปภาพนะครับ) ดังนั้น vm server ที่สร้างภายใต้แต่ละ subnet ก็จะต้องกำหนด ip address ให้สอดคล้องกับ subnet ที่เขาอยู่นะครับ (ปกติเราสามารถให้ระบบจะทำการ assign ip server แบบ auto ให้เรา ระหว่างขั้นตอนการสร้าง server)

2. routing table เราจำเป็นที่จะต้องกำหนด routing table ให้แต่ละ subnet ตามรูปใน diagram นะครับ โดยถ้าดูจากรูปสามารถอธิบายได้ดังนี้

routing table ของ subnet public จะสามารถใช้งาน internet ได้ เนื่องจากว่าเรากำหนด default route ให้ออกไปทาง internet gateway ที่เราสร้างขึ้นมา

routing table ของ subnet private จะสามารถใช้งาน internet ได้ผ่าน server ที่ทำหน้าที่เป็นตัว NAT ในที่นี้คือ CHR Mikrotik

เสริมอีกนิดนะครับ CHR Mikrotik มันคือ mikrotik ที่ไปทำงานเป็นลักษณะ server อยู่บน cloud ของ AWS นะครับ ดูข้อมูลเพิ่มเติมจาก https://wiki.mikrotik.com/wiki/Manual:CHR_AWS_installation
โดยความสามารถจะเหมือน mikrotik ที่เป็น hardware ที่เราคุ้นเคยกันเลยครับ ทำได้เหมือนกันทุก function เลยครับ

3. ทำการสร้าง server ที่เรียกว่า instance โดยในที่นี้เราจะสร้างขึ้นมา 2 server ดังนี้

3.1 สร้าง CHR Mikrotik ที่จะทำหน้าที่เป็น Firewall , NAT , VPN Server ให้กับระบบเรา โดยจะสร้างอยู่ภายใต้ subnet public เพื่อใหสามารถเชื่อมต่อ internet ได้

3.2 สร้าง Radius Server โดยผมจะเลือกสร้างเป็น Linux Server บน template ที่ aws ec2 เตรียมไว้ให้เรา แล้วเราก็จะทำการติดตั้งservice ต่างๆ เช่น freeradius , mysql และอื่นๆ เพื่อให้ทำหน้าที่เป็น radius server ได้สมบูรณ์ (ในที่นี้ทีมงานเลือกใช้ software สำเร็จรูปของ DMAsoftlab ที่ชื่อ RADIUS MANAGER ครับ)โดยจะสร้างอยู่ภายใต้ subnet private ซึ่งจะสังเกตุเห็นว่า ip address ของ server จะเป็นเบอร์ในวง private (ในที่นี้คือ 10.10.2.10 /24)

4. ทำการ config CHR Mikrotik โดยในที่นี้จะขอข้ามเรื่องพื้นฐานที่เป็นเรื่องการ config firewall , nat ไปก่อนนะครับ จะเน้นในเรื่องการทำ VPN Server นะครับ โดยเราสามารถ enable vpn แต่ละรูปแบบที่เราต้องการได้ เช่น PPTP , L2TP, SSTP , OpenVPN แต่ก่อนอื่น บางท่านอาจจะสงสัยว่าทำไมต้องการ vpn ตรงนี้ด้วย เหตุผลคือ ปกติแล้ว radius server เวลามันติดต่อกับ device network (NAS) เช่น mikrotik , switch นั้น มันจะติดต่อซึ่งกันและกันผ่าน ip address ของอุปกรณ์ device network นั้นๆ ดังนั้น ถ้าหากว่า เราติดตั้ง mikrotik ตามที่ต่างๆที่ไม่ได้ซื้อบริการ public ip แบบ Fix ไว้ เวลา ip address มันเปลี่ยนจะทำให้ไม่สามารถติดต่อกับ radius ได้ทันที โดยถ้าหากจะไปซื้อบริการ public ip แบบ Fix เพิ่มอีก ก็จะต้องมีค่าใช้จ่ายเพิ่มขึ้นมาอีก ดังนั้น ตัวที่จะมาแก้ไขปัญหานี้คือ vpn server ตัวนี้ นี่เองครับ โดยเราจะใช้ mikrotik ที่ติดตั้งตามสาขาต่างๆทำการเชื่อม vpn แบบ client to site เข้ามา เมื่อมันเชื่อม vpn สำเร็จ vpn server จะทำการระบุ ip address ให้ vpn client ที่เชื่อมเข้ามาแต่ละตัว ซึ่ง ip address ตรงนี้เอง จะเป็นตัวที่ใช้คุยกันระหว่าง radius server กับ NAS

5. ทางฝั่งของ Mikrotik ตามสาขาต่างๆที่ต้องการเข้ามาตรวจสอบ user/password กับ server จะมีขั้นตอนคร่าวๆดังนี้ครับ
– ทำการสร้าง connnection vpn แบบ client to site เข้ามาหา vpn server
– ทำการสร้าง static route เพื่อให้ mikrotik สามารถติดต่อหา radius server ผ่าน vpn tunnel ที่สร้างในขั้นตอนก่อนหน้านี้

ป.ล. ระหว่างการสร้าง server บน aws เราจะเจอคำศัพท์ต่างๆที่เกี่ยวข้องดังนี้ครับ

– security group หมายถึง firewall rule ของ aws ซึ่งเราจะต้องทำการกำหนดการเปิด port tcp/udp ต่างๆเพื่อให้ user สามารถเข้ามาใช้งาน service ต่างๆ บน server ได้เช่น HTTP, SSH (โดย security group นี้จะไปครอบตัว firewall ของ vm server อีกทีครับ หมายความว่า แค่เราเปิด iptable หรือ window firewall จะยังไม่เพียงพอครับ ต้องมาเปิดที่ security group ตรงนี้ด้วยครับ )

– elastic ips หมายถึง บริการ static public ip address ที่ทาง aws มีไว้ให้เรา สามารถนำไปใช้กับ server ที่เราต้องการ fix ip (ปกติจะให้ฟรีแค่ 5 elastics ip ต่อ 1 account)

ทางทีมงานบีเน็ต หวังว่าจะมีประโยชน์กับผู้อ่านไม่มากก็น้อยนะครับ


0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *