แก้ไขคอนฟิก Samba เพื่อป้องกันปัญหาช่องโหว่ CVE-2017-7494

บอกแล้วว่าอย่าไปแซวคนใช้ Windows Server แล้วออกตัวว่าใช้ Samba บนลีนุกซ์จะปลอดภัย

ล่าสุดมีการแจ้งเตือนว่า Samba ที่ใช้งานกันอยู่ ตั้งแต่เวอร์ชัน 3.5 มีช่องโหว่อันตราย ที่ทำให้เครื่องอื่นสามารถรีโมทมารันโค้ด (exploit) ด้วยสิทธิ์ root ได้

มาดูวิธีการแก้ไขปัญหากัน

Continue reading “แก้ไขคอนฟิก Samba เพื่อป้องกันปัญหาช่องโหว่ CVE-2017-7494”

สิ่งที่ทำหลังจากติดตั้ง CentOS 7 – useradd, sudo, disable root login

สิ่งที่ทำหลังจากติดตั้ง CentOS 7

  • เพิ่ม user ใหม่
  • คอนฟิกให้ผู้ใช้สามารถ sudo ได้
  • ปิดการ ssh ด้วย root

เปลี่ยนเว็บไซต์ของคุณให้เป็น https ด้วย Certificate ฟรีจาก Let’s Encrypt

เข้ารหัสเว็บไซต์กันเถอะ!!!

Let’s Encrypt เป็น Certificate Authority หรือ CA เจ้าใหม่ ที่มีโครงการแจก Certificate ให้นำไปใช้กับเว็บไซต์ได้ฟรี โดยมีจุดมุ่งหมายให้การเชื่อมต่อ รับส่งข้อมูลกับเว็บไซต์มีการเข้ารหัสข้อมูลโดยดีฟอลต์

โดย Certificate ที่ได้นี้ สามารถนำมาใช้งานกับเว็บไซต์ได้จริง browser ทุกตัวรองรับ ไม่มีขึ้นหน้าคำเตือนว่า Certificate Error แต่อย่างใด เพียงแค่ Certificate ที่ได้นี้ สามารถใช้งานได้ 90 วัน แต่ก็สามารถขอต่ออายุ (renew) ใหม่ได้

ในช่วงแรกนี้ผู้ที่ต้องการ Certificate ต้องยื่นลงทะเบียน (Sign Up) ชื่อโดเมนหรือเว็บไซต์ ให้อยู่ในผู้มีสิทธิ์ (whitelisted) แล้วรออีเมลตอบกลับ

ตอนแรกผู้เขียนก็ยื่นลงทะเบียนไป คิดว่าจะเข้าคิวรอนาน แต่แค่ 2-3 วันก็ได้อีเมลตอบกลับมาแล้ว เลยนำมาแชร์วิธีการลงทะเบียน และวิธีการสร้าง Certificate หลังจากที่ได้อีเมลตอบกลับ แล้ววิธีการนำ Certificate ที่ได้ ไปคอนฟิกใช้งานจริงกับเว็บไซต์

หมายเหตุ ข่าวล่าสุดบอกว่าจะเปิดให้บริการทั่วไปแบบทดลอง (Public Beta) ในวันที่ 3 ธันวาคม 2558 นี้

Continue reading “เปลี่ยนเว็บไซต์ของคุณให้เป็น https ด้วย Certificate ฟรีจาก Let’s Encrypt”

ติดตั้งและคอนฟิกเซิร์ฟเวอร์แชร์ไฟล์ด้วย Samba บน CentOS 7

Samba เป็นโปรแกรมหรือเซอร์วิสยอดนิยมอย่างหนึ่งที่สามารถนำมาติดตั้งบนลีนุกซ์ และคอนฟิกทำเป็นเซิร์ฟเวอร์แชร์ไฟล์ (File Sharing Server) ให้กับเครื่องอื่นๆ ได้ ไม่ว่าจะเป็น Windows, MAC OS X

ลองมาดูวิธีการติดตั้งและคอนฟิก Samba บน CentOS 7 เบื้องต้นกัน เพื่อให้ผู้ใช้งานจากเครื่องอื่น สามารถเรียกใช้ไฟล์ที่อยู่ใน home ของแต่ละคนบนเซิร์ฟเวอร์ได้

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

Continue reading “ติดตั้งและคอนฟิกเซิร์ฟเวอร์แชร์ไฟล์ด้วย Samba บน CentOS 7”

CentOS 7 คอนฟิก Firewall เบื้องต้นด้วย firewall-cmd

สิ่งที่เปลี่ยนไปอีกอย่างใน CentOS 7 หรือ Red Hat Enterprise 7 เมื่อเทียบกับเวอร์ชันเดิม (5, 6) คือเปลี่ยนมาใช้ firewalld เพื่อช่วยให้การคอนฟิก firewall ในลีนุกซ์ทำได้ง่ายขึ้น โดยมีการจัดแบ่งเป็นโซน (zone) จัดกลุ่มพอร์ต (port) เป็นเซอร์วิส (service) และอื่นๆ

จริงๆ แล้ว เบื้องหลัง firewalld ก็ไปเรียกคำสั่ง iptables เพื่อใช้คอนฟิก Netfilter ซึ่งเป็นโมดูลอยู่ในเคอร์เนลลีนุกซ์ ในการจัดการควบคุมแพ็กเกจ (packet filtering) เข้าออกเครื่อง

ในที่นี้ขอยกตัวอย่างการใช้คำสั่ง firewall-cmd เพื่อเพิ่มเซอร์วิสเช่น http ให้เครื่องอื่น สามารถมาเรียกใช้เซอร์วิสเว็บในเครื่องของเราได้

Continue reading “CentOS 7 คอนฟิก Firewall เบื้องต้นด้วย firewall-cmd”

CentOS 7 รันคำสั่ง root ด้วย sudo

แทนที่ต้องล็อกอินด้วย root หรือใช้คำสั่ง su – root  แล้วต้องระบุรหัสผ่านของ root เพื่อที่แก้ไขไฟล์หรือรันคำสั่งที่จำเป็นต้องใช้สิทธิ์ root ในการดำเนินการ

แนะนำให้ใช้ sudo ในการกำหนดสิทธิ์ผู้ใช้งานบางคน ให้มีสิทธิ์เทียบเท่า root ดำเนินการแทนได้ โดยไม่จำเป็นต้องระบุรหัสผ่านของ root แต่อย่างใด

Continue reading “CentOS 7 รันคำสั่ง root ด้วย sudo”

แก้ปัญหา SELinux Context ผิด ด้วย restorecon

แม้ SELinux ช่วยให้ลีนุกซ์มีความปลอดภัยมากขึ้น แต่ก็สร้างความปวดหัวให้กับผู้ดูแลระบบพอสมควรในการแก้ไขปัญหา  ทำให้หลายคนปิดคุณสมบัตินี้ไป

ปัญหาหนึ่งที่จะพบบ่อยคือ Security Context หรือ Label ของไฟล์ผิดไป ทำให้บางโปรเซสอ่านไฟล์ไม่ได้ เพราะว่า SELinux จะมีการกำหนด (policy) ว่าแต่ละโปรเซสจะสามารถอ่านไฟล์อะไรได้บ้าง
Continue reading “แก้ปัญหา SELinux Context ผิด ด้วย restorecon”

คอนฟิก Apache HTTP Authentication ให้ใส่ Username, Password ก่อนเข้าเว็บ

หากต้องการปกป้องเว็บไซต์ ให้เข้าได้เฉพาะคนที่มีสิทธิ์เท่านั้น  คือต้องใส่ Username, Password ให้ถูกต้องก่อน ถึงจะเข้าหน้าเว็บไซต์ได้

วิธีหนึ่งที่คอนฟิกง่ายที่สุดคือ ใช้ HTTP Authentication ซึ่งเป็นคุณสมบัติของตัวเว็บเซิร์ฟเวอร์เอง เช่น Apache  เพียงแค่แก้ไขคอนฟิกของเว็บเซิร์ฟเวอร์เท่านั้น ไม่จำเป็นต้องเขียนโปรแกรมเพิ่มเติมแต่อย่างใด

ลองมาดูวิธีคอนฟิกทำ HTTP Basic Authentication ซึ่งเป็นการทำ HTTP Authentication แบบง่ายสุดของ Apache ที่ติดตั้งบน CentOS 6 กัน

Continue reading “คอนฟิก Apache HTTP Authentication ให้ใส่ Username, Password ก่อนเข้าเว็บ”

คอนฟิก BIND DNS เซิร์ฟเวอร์ – ตอนที่ 2 เพิ่มโซนโดเมน

หลังจาก ติดตั้งและคอนฟิก BIND DNS เซิร์ฟเวอร์ – ตอนที่ 1 caching only เสร็จเรียบร้อย

ในตอนนี้จะมาดูวิธีการเพิ่มข้อมูลโดเมนใหม่เพื่อแปลงชื่อเป็น IP Address  เช่นไว้ใช้สำหรับภายในองค์กรเอง หรือถ้าเราจดทะเบียนชื่อโดเมนบนอินเตอร์เน็ตแล้ว ต้องการให้บริการแก่คนอื่น วิธีการที่จะแปลงชื่อเช่น www.example.com มาเป็น IP Address ของเครื่องเว็บเซิร์ฟเวอร์ของเรา แทนที่ต้องไปเสียค่าบริการเช่า DNS hosting เพิ่มเติม เรามาคอนฟิกตั้ง DNS Server แล้วชี้ name server มาที่ IP ของเซิร์ฟเวอร์ที่เรากันดีกว่า

Continue reading “คอนฟิก BIND DNS เซิร์ฟเวอร์ – ตอนที่ 2 เพิ่มโซนโดเมน”

ติดตั้งและคอนฟิก BIND DNS เซิร์ฟเวอร์ – ตอนที่ 1 caching only

ความเห็นส่วนตัว DNS Server จัดว่าเป็นโปรแกรมหรือเซอร์วิสที่อยู่เบื้องหลังความสำเร็จของอินเตอร์เน็ตอย่างหนึ่ง คือแทนที่ผู้ใช้จะต้องจำและระบุ IP Address ในการเรียกใช้บริการเซิร์ฟเวอร์เครื่องอื่นๆ ผู้ใช้ก็สามารถใช้ชื่อแทนได้ เช่นแค่ระบุชื่อ www.google.com ก็สามารถเข้าสู่เว็บไซต์ของ google ได้ แทนที่ต้องระบุ IP Address เครื่องเซิร์ฟเวอร์ของ google ซึ่งมีอยู่มากมาย และอาจมีการเปลี่ยนแปลงได้ตลอดเวลา

เรามาลองดูวิธีการติดตั้งและคอนฟิก DNS กัน ผู้เขียนขอเลือกใช้ BIND ซึ่งถือว่าเป็นโปรแกรม DNS Server ที่มีการใช้งานกันมากที่สุดบนโลกอินเตอร์เน็ตนี้ และรองรับคุณสมบัติมาตรฐานของ DNS Server โดยจะทดสอบการติดตั้งบน CentOS 6

ตอนแรกเราจะเริ่มติดตั้ง BIND และคอนฟิกเป็น caching only ความหมายคือ คอนฟิกให้ทำหน้าที่เป็น DNS เซิร์ฟเวอร์ที่ให้บริการเครื่องไคลเอ้นต์ในการถามชื่อแล้วตอบเป็น IP Address ให้ โดยเซิร์ฟเวอร์ที่ทำหน้าที่ caching only นี้ จะทำหน้าที่ไปค้นหาข้อมูล (recursion) โดยการถาม DNS เซิร์ฟเวอร์ตัวอื่นๆ ที่อยู่บนอินเตอร์เน็ต จนกว่าจะได้คำตอบว่า ชื่อที่ไคลเอ้นต์ถามมา มี IP Address เป็นอะไร

Continue reading “ติดตั้งและคอนฟิก BIND DNS เซิร์ฟเวอร์ – ตอนที่ 1 caching only”