pfSense เป็นโปรเจ็คที่พัฒนาโดย Chris Buechler และ Scott Ullrich ถูกพัฒนาขึ้นจาก Linux สายพันธ์ FreeBSD เมื่อปี 2004 จุดประสงค์เพื่อใช้งานเป็นไฟร์วอล์ และเราเตอร์ และต้องสามารถจัดการตัวอุปกรณ์ ได้ผ่านหน้า Browser (IE, Firefox, Chrome ฯลฯ) ได้ และด้วยเนื่องจากตัว pfSense ถูกพัฒนามาจาก Linux ทำให้เราสามารถใช้มันได้ฟรี แบบไม่ต้องกลัวเรื่อง License อีกต่อไป

ถ้าหากเราต้องการที่จะหาไฟร์วอล์ตัวนึง ที่สามารถใช้งานได้ค่อนข้างที่เกือบจะเทียบเท่าตัวที่เป็นแบบ Next Generation Firewall แบบ Enterprise ที่ใช้กันตามบริษัทต่างๆ (ตอนนี้ตามตลาดไฟร์วอลระดับสูง ก็จะเป็นพวก Paloato, Checkpoint, Cisco, Juniper, Fortinet เป็นต้น) ผมแนะนำตัว pfSense เลยครับ เพราะแค่เรามีตัวเครื่องคอมพิวเตอร์ และ OS ของ pfSense แค่นี้เราก็สามารถมีไฟร์วอล ใช้ในองค์กร หรือแม้กระทั่งในบ้านเราได้อย่างไม่ยากเย็นเลย ซึ่งในเดือนธันวาคม ปี 2013 มียอดการติดตั้งตัว pfSense ถึง 200,000 เครื่อง ทั่วโลก

Feature เด่น ของ pfSense

  • เป็น Stateful Firewall
  • ควบคุมการผ่านเข้าออกของทราฟฟิกด้วย source และ destination IP address, Protocol, Port
  • จำกัด Connection ต่อ 1 Rule ได้
  • มีระบบ OS/Networking fingerprinting ควบคุมการเข้าใช้งานระบบด้วย OS ตัวอย่างเช่น เราจะจำกัดเพียงแค่ ระบบปฏิบัติการ Windows เท่านั้นให้เข้าถึงเครือข่ายภายใน ส่วน Linux ให้ Block ได้
  • สามารถ Log Traffic บนแต่ละ rule ได้ เพื่อใช้ในการเก็บ Log ตาม พรบ. คอมพิวเตอร์
  • สามารถทำ Policy Routing ได้
  • ใช้ Aliases ในการจัดกลุ่ม Port, IP Address, Network ทำให้ง่ายต่อการจัดการกับ rule ของไฟร์วอล์
  • เลือกเป็นโหมด Transparent ได้ (โหมดนี้จะไม่ต้องไปแก้ไขระบบเดิมเลย เพียงแค่นำไปวางขวาง)
  • การทำ NAT (1:1, Outbound NAT, NAT Reflection)
  • รองรับการทำ HA (High Availability)
  • Multi WAN ใช้หลายๆขา internet ในการออกเข้าสู่ภายนอกได้
  • Server Loadbalancing
  • รองรับการทำ VPN (IPsec, OpenVPN, PPTP)
  • สนับสนุนการทำ Report และ Monitoring, Dynamic DNS, DHCP Server และ PPPoE Server


Continue reading

OpenNMS จัดเป็นระบบ Network Management ระดับองค์กรตัวแรกๆ ที่อยู่ในรูปแบบของ Opensource เป็นระบบที่มีความสามารถหลายอย่างและมีประสิทธิภาพ โดยการติดตั้งและการตั้งค่าต่างๆนั้นสามารถทำได้ไม่ยาก
การตรวจสอบสถานะเครือข่าย (monitoring) โดยรวมจะมีการแสดงผลของสถานะของสิ่งที่ต้องการตรวจสอบ ซึ่งอาจจะเป็น network device เช่น router หรือ switch หรือบาง interface ที่สำคัญของอุปกรณ์เหล่านี้ นอกจากนี้ยังเป็นการตรวจสอบสถานะของ host เช่น web/mail/database/ftp servers หรืออาจจะเป็นการ monitor service ที่ run อยู่บนเครื่องต่างๆ โดยการแสดงสถานะจะบ่งบอกว่าสิ่งนั้นๆยังมีการทำงานอยู่หรือไม่ เช่น Up/Down แต่ถ้ามีเหตุการณ์ที่ไม่ปกติจะมีการแสดงถึงดีกรีของความผิดปกติ เช่น Warning หรือ Critical เป็นต้น พร้อมทั้งรายละเอียดของความผิดปกติตามที่ระบบตรวจเจอ นอกจากนี้จะมีองค์ประกอบที่สำคัญอีกส่วนหนึ่ง คือการแจ้งเตือน (alerting) หรือ ระบบที่คอยส่ง notification ไปยังผู้ที่ทำหน้าที่ดูแลอุปกรณ์หรือ service นั้นๆ
Continue reading

Knife มีส่วนเสริมในการจัดการ virtual machine บน Microsoft Azure ด้วยคือ knife-azure สามารถจัดการ life cycle ของ virtual machine ได้ สั่ง knife bootstap เพื่อลงทะเบียนกับ Chef Server ได้เลย มาลองใช้งานกัน

ติดตั้ง Knife Azure โดยใช้ ChefDK

chef gem install knife-azure

ดาวน์โหลด subscription file เพื่อใช้งานร่วมกับ knife azure plugin จากนั้นแก้ไข knife.rb เพิ่ม config เข้าไปดังนี้


Continue reading

ผมเชื่อว่ามีหลายคนน่าจะเคยเจอปัญหา Database Mysql ทำงานช้า เช่น กว่าจะ query ข้อมูลใน Database ได้ต้องรอประมาณ 5 – 10 นาที หรือ User บ่นว่าใช้งาน Application ช้าเป็นบ้างช่วง แล้วพอ Admin ไปดูกลับพบว่าปกติไม่ได้ช้าแต่อย่างใด เป็นต้น เราสามารถให้ Zabbix มาช่วย monitor Database Mysql แทน Admin ได้ตลอดเวลา หาก Database Mysql เริ่มมีปัญหาก็จะแจ้งเตือนไปที่ Admin และ Admin ก็จะดำเนินการแก้ปัญหาได้ทันท่วงที โดยตัวอย่างในบทความนี้ผมจะมีเครื่อง Zabbix-Server และ Zabbix-Agent ที่ติดตั้ง Mysql แล้ว

ที่เครื่อง Agent ให้เรา Copy ไฟล์ config ตัวอย่างจาก /usr/share/doc/zabbix-agent/examples/userparameter_mysql.conf มาไว้ที่ Path /etc/zabbix/zabbix-agentd.conf.d/ ใช้คำสั่งดังนี้
Continue reading

ปกติถ้าเราจะใช้งานปฏิทินบน Thunderbird นั้น ต้องลง Add-ons ก่อน ซึ่ง Add-ons ปฏิทินบน Thunderbird คือ Lightning นั่นเอง
วิธีติดตั้ง Lightning ก็ง่ายแสนง่าย เพียงไปที่ Tools -> Add-ons จากนั้นก็ค้นหาคำว่า Lightning เมื่อเจอแล้วก็ทำการติดตั้ง หลังจากติดตั้งสำเร็จจะขึ้นดังรูป
lightning
Continue reading

Knife มีส่วนเสริมในการจัดการ instance บน Amazon Web Service ด้วยคือ knife-ec2 ซึ่งสามารถจัดการได้ในเบื้องต้น ส่วนใหญ่เกี่ยวข้องกับ instance เป็นหลัก สามารถจัดการ life cycle ของ instance ได้ สั่ง knife bootstap เพื่อลงทะเบียนกับ Chef Server ได้เลย มาลองใช้งานกัน

เริ่มต้นจากติดตั้ง package ที่จำเป็นก่อนดังนี้

apt-get install make build-essential

จากนั้นติดตั้ง knife ec2 plugin โดยใช้ Chef Development Kit

chef gem install knife-ec2

แก้ knife.rb เพิ่ม AWS_ACCESS_KEY_ID และ AWS_SECRET_ACCESS_KEY ต่อท้ายไฟล์


Continue reading

ถ้าใช้งาน Chef ต้องลองสร้าง Cookbook ใช้เองด้วยถึงจะครบกระบวนการ นอกจาก Cookbook ใน Opscode Community แล้วเราสามารถสร้าง Cookbook แบบที่เราต้องการเองได้ด้วย สำหรับท่านที่ถนันภาษา ruby ก็คงได้เปรียบสักหน่อย แต่สำหรับท่านที่ไม่ถนันก็ไม่เป็นไร เราสามารถสร้าง Cookbook แบบง่ายๆ ได้ โดยใช้เครื่องมือเดิมคือ Knife

แนวคิดของ Cookbook เหมือนกับการทำอาหารมีสูตรในการทำ (recipe) ดังนั้น Cookbook หนึ่งมีสูตรอาการได้หลายสูตรแล้วแต่ว่าจะปรุงอะไรออกมา ในการปรุงแต่ละสูตรจะมีกระบวนการปรุงซึ่งจะทำหนด อยู่ใน recipe นั่นเอง สำหรับ resource ทีี่ต้องใช้ recipe ได้แก่

  • package: จัดการ package ใน node
  • service: จัดการ service ใน node
  • user: จัดการ user ใน node
  • group: จัดการ group ใน node
  • template: จัดการไฟล์ที่อยู่ในรูปแบบ ruby template
  • cookbook_file: เก็บไฟล์สำหรับย้ายไปใช้กับ node โดยตรง
  • file: จัดการไฟล์ ใน node
  • directory: จัดการไดเรคทอรี ใน node
  • execute: ใช้คำสั่ง ใน node
  • cron: แก้ไข cron ใน node


Continue reading

เผอิญมีคนถามเรื่อง Pootle แต่จำไม่ได้ว่าใครถามเอาเป็นว่า Pootle เป็นเครื่องมือแปล ui ของซอฟต์แวร์ผ่านเว็บ สนับสนุนทั้งไฟล์ po, xml ทำให้ทีมแปลทำงานร่วมกันได้ง่ายมากขึ้น หากอยากจะทดลองใช้ Pootle ก็สามารถติดตั้งกันได้ง่ายๆ โดยใช้ Docker ดังนี้

docker pull jannkleen/pootle

docker run -v /var/pootledb --name POOTLEDB busybox true

docker run -p 80:8000 --volumes-from POOTLEDB jannkleen/pootle


Continue reading

Knife DigitalOcean เป็นส่วนเสริมที่ช่วยให้คุณจัดการ Droplet บน DigitalOcean ได้ง่ายๆ ผ่าน Knife ซึ่งนอกจากจัดการ Droplet ได้แล้วยังสามารถสั่ง Bootstrap เพื่อ register node ไปยัง Chef Server ได้อีกด้วย หรือใช้ Knife กำหนด runlist ให้ droplet ได้เช่นกัน มาทดลองกัน

ก่อนอื่นใช้ ChefDK ติดตั้ง Knife DigitalOcean กันก่อนดังนี้

chef gem install knife-digital_ocean

สร้าง Personal Access Tokens ใน DigitalOcean เพื่อใช้กับ Knife ดังนี้


Continue reading

Chef ไม่เพียงแค่ใช้ตั้งค่าและจัดการเครื่องเซิร์ฟเวอร์เท่านั้นแต่ยังสามารถใช้งานร่วมกับ Container อย่าง Docker ได้ด้วย ในเบื้องต้น ใช้สำหรับสร้าง Chef Container ที่มี chef client, cookbook, run list ฝังเข้าไปพร้อมกับ Docker Image ส่วนการจัดการ Container ยังคงใช้ Docker เหมือนเดิม

สร้าง Chef Container ต้องเริ่มจากสร้าง Image ก่อนด้วย Knife Container ซึ่งเป็น plug-in เสริมของ Knife ซึ่งเราจะต้องติดตั้งเพิ่ม ก่อนจะติดตั้ง Knife Container ติดตั้งเครื่องมือที่จำเป็นต้องใช้ก่อน ได้แก่ Docker, ChefDK และ Knife Container

เริ่มจากติดตั้ง Docker ก่อน ดังนี้

curl -sSL https://get.docker.com/ubuntu/ | sudo sh

ติดตั้ง Chef Development Kit

wget https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chefdk_0.3.5-1_amd64.deb

dpkg -i chefdk_0.3.5-1_amd64.deb


Continue reading