22 Linux security commands ที่คุณควรรู้

29-มิ.ย.-18

คัมภีร์เทพ IT

สำหรับคนไอทีที่ทำงานด้าน Security โดยเฉพาะกับ Linux System ไม่อยากให้พลาดบทความนี้ เพราะเป็น 22 Linux Security Commands ที่คุณควรรู้ และมีการใช้งานอยู่บ่อยๆ จะมีอะไรบ้าง อ่านได้จากบทความนี้เลย

- sudo

การ Run คำสั่งด้วย sudo เป็นวิธีที่ช่วยให้มั่นใจได้ว่า คุณจะใช้สิทธิ์ของ root เมื่อจำเป็นเท่านั้นและจำกัดผลกระทบจากความผิดพลาดต่างๆ การเข้าถึงคำสั่ง sudo ขึ้นอยู่กับการตั้งค่าในไฟล์ /etc/sudoers และ /etc/group

การ run คำสั่ง sudo อยากรู้ว่าอยู่ในสถานะใด คำตอบคือ root

- visudo

คำสั่ง visudo ช่วยให้คุณสามารถเปลี่ยนแปลงไฟล์ /etc/sudoers โดยการเปิดไฟล์ใน Text editor และตรวจสอบการเปลี่ยนแปลงของ syntax การกำหนดสิทธิ์สามารถทำได้โดย User หรือ Group  ในระบบ Linux ส่วนใหญ่ ไฟล์ /etc/sudoers จะได้รับการ config. ให้กับกลุ่มต่างๆ อย่างที่แสดงด้านล่าง ซึ่งอนุญาตให้สิทธิ์กับ Group ที่ set up ในไฟล์ /etc/group ในกรณีเหล่านี้คุณอาจไม่ต้องใช้คำสั่ง visudo เลยเพียงแค่ทำความคุ้นเคยกับ Group ที่ให้สิทธิ์ root ด้วยวิธีนี้ และทำการ update ไฟล์ /etc/group

จะเห็นว่าชื่อ Group จะนำด้วยเครื่องหมาย %

คุณอาจจะสามารถแสดง Group ที่ให้สิทธิ์ sudo เข้าถึงไฟล์ /etc/group ของคุณ ได้แบบนี้:

วิธีที่ง่ายที่สุดในการให้สิทธิ์ sudo แก่ผู้อื่น คือการเพิ่มเข้าไปใน Group ที่อยู่ใน /etc/group อย่างไรก็ตามนั่นหมายถึงพวกเขาสามารถ run คำสั่งใดก็ได้ในฐานะ root ถ้าคุณต้องการให้ user บางรายมีสิทธิ์ของ root สำหรับชุดคำสั่ง (เช่นการเพิ่มและลบ accounts) คุณสามารถกำหนดคำสั่ง ที่ต้องการให้สามารถ run ผ่าน command alias ดังนี้:

จากนั้นให้ User หรือ Group สามารถ run คำสั่งโดยใช้ sudo:

บรรทัดแรกคือการช่วยให้ User "nemo" สามารถ run คำสั่ง twp (adduser และ deluser) ด้วย sudo ในขณะที่บรรทัดล่าง เป็นการกำหนดสิทธิ์ให้กับทุกคนใน "tech"  group ในไฟล์ /etc/group

- who and w

คำสั่ง who and w จะแสดงให้คุณเห็นว่า ใคร login เข้าสู่ระบบ โดย w จะแสดงข้อมูลเพิ่มเติม เช่น ตำแหน่งที่ login มาจากที่ไหน, เมื่อไร และ อยู่ในระบบนานเท่าไร

- last

คำสั่ง last จะแสดงการ login เข้าสู่ระบบล่าสุดสำหรับ user และมันเป็นประโยชน์สำหรับการติดตามการเปลี่ยนแปลงหรือแม้แต่ activity อื่นๆ ดังตัวอย่าง

- find

คำสั่ง find ใช้สำหรับการค้นหาหลายประเภท เมื่อพูดถึงเรื่องความปลอดภัย คุณอาจพบว่าตัวเองกำลังมองหาไฟล์ที่ไม่มี owners (no corresponding accounts) หรือทั้งแบบ world-writable และ executable คำสั่ง find ใช้ได้ไม่ยากแต่อาจต้องอาศัยความคุ้นเคยเพราะมันมี options ให้เลือกใช้หลายอย่าง จากตัวอย่างด้านล่าง บรรทัดแรกใช้หาไฟล์ที่ไม่มี owners ส่วนบรรทัดล่าง หาไฟล์ที่ทุกคนสามารถ run และ modify ได้

โปรดจำไว้ว่า -o ในคำสั่งบรรทัดล่าง หมายถึง Group "other" (ไม่ใช่ owners และไม่ใช่ Group ที่ไม่ associate กับไฟล์)

- file

คำสั่ง file มุ่งดูไปที่ไฟล์และตัดสินว่า ไฟล์นั้นอ้างอิงกับ content ไม่ใช่ชื่อไฟล์ ไฟล์จำนวนมาก(เช่น ไฟล์ jpeg) จะมี identifiers ใกล้จุดเริ่มต้นของไฟล์ อย่างไฟล์ “.jpg” ในตัวอย่างด้านล่าง ไม่ได้เป็นไฟล์ jpeg จริง แต่เป็นไฟล์ executable

- which

คำสั่ง which จะระบุถึงการ executable ซึ่งจะถูก run เมื่อคุณพิมพ์ชื่อของมัน ถ้ามี Trojan ใน file system ใน location ที่ปรากฏใน search path ของคุณก่อนที่จะมีการใช้งานจริง มันจะถูก run แทน ซึ่งนี่เป็นเหตุผลที่จะทำให้แน่ใจได้ว่า search path ของคุณ มี directory อย่าง /usr/bin ก่อนที่มันจะเพิ่ม standard location และโดยเฉพาะอย่างยิ่งก่อน "." (directory ปัจจุบัน)

คุณสามารถตรวจสอบ search path ของ user โดยเปลี่ยนเป็น user และเรียกดูข้อมูล ดังกล่าว:

แม้ว่า path การค้นหาของ user จะได้รับการ set up ไว้ใน file system เช่น /etc/profile หรือ /etc/bash.bashrc แล้วก็ตาม แต่อาจมีการเปลี่ยนแปลงจาก local settings

- ss

คำสั่ง ss เป็นเครื่องมือสำหรับตรวจสอบ sockets และช่วยให้คุณสามารถทำสิ่งต่างๆ เช่น แสดง listening ports และ active connections โดยทั่วไป ss จะแสดงข้อมูลเกินที่คุณต้องการดู อย่างไรก็ตาม หลายส่วนของ operating system จะสื่อสารผ่าน sockets ถ้าคุณต้องการสร้าง list การเชื่อมต่อหรือ listening ports คำสั่งเหล่านี้จะเป็นประโยชน์อย่างยิ่ง

Listening port:

สังเกตว่า port 631 (CUPS) กำลังฟังเฉพาะบน loopback interface (127.0.0.1)

- ufw

หากคุณใช้งาน firewall บน Linux system (ขั้นตอนสำคัญในการควบคุมการเข้าใช้ระบบ) คำสั่งที่ใช้ start/stop, enable/disable, modify และ แสดง status หรือ active rules ถือเป็นสิ่งสำคัญ และนี่คือตัวอย่างคำสั่ง ufw (uncomplicated firewall) ที่คุณจะพบใน Ubuntu systems:

จากด้านบน แสดงว่า firewall นี้ active อยู่และอนุญาตให้เชื่อมต่อได้เฉพาะจาก local network ไป ssh เท่านั้น

จากคำสั่งด้านบน แสดงว่า 1) กำลัง set up rule ดังที่แสดงด้านบน และ 2) ปิดใช้งาน firewall

- iptables

เป็นเรื่องสำคัญที่คุณควรรู้วิธีลงรายการ firewall rules สำหรับ iptables คำสั่งเหล่านี้จะช่วยให้คุณลงรายการ netfilter rules ได้:

- ip

คำสั่ง ip ช่วยให้คุณสามารถแสดงข้อมูลเกี่ยวกับ network interfaces ได้ ในตัวอย่างด้านล่างจะเห็น loopback และ public interface

- ip route

คำสั่ง ip route จะแสดง routing table ของคุณ:

- kill, pkill & killall

Unix และ Linux systems สามารถเลือกคำสั่งสำหรับการยกเลิก process ได้ โดยคุณสามารถ kill ได้จาก process ID หรือจากชื่อ คุณสามารถ kill process เดี่ยวๆ หรือเป็น group ก็ได้ ไม่ว่าจะคำสั่ง kill ใดก็ตาม อยู่ที่กระบวนการกำจัดของคุณ และคุณควรจะพร้อมที่จะใช้มันตามความจำเป็น ลองดูจากตัวอย่าง

- passwd

ในขณะที่คำสั่ง passwd ดูจะเป็นคำที่ชัดเจนเมื่อกล่าวถึงความปลอดภัยของระบบ แต่มันก็เป็นสิ่งที่ไม่ควรละเลยจาก list ที่จำเป็นในการรักษาความปลอดภัย การมีนโยบายที่เหมาะสม คำสั่ง passwd ไม่ได้ใช้เพื่อเปลี่ยนรหัสผ่านเท่านั้น แต่คุณยังสามารถใช้สิทธิ์ sudo เพื่อเปลี่ยนรหัสผ่านของ user คนอื่น, lock/unlock หรือทำให้ account expire, เช็คสถานะ account และเปลี่ยนแปลงการตั้งค่า เพื่อกำหนดว่าเมื่อไรที่รหัสผ่าน expire หรือการเตือนเกี่ยวกับรหัสผ่าน ลองดูตัวอย่างการใช้คำสั่งต่อไปนี้:

- pwck

คำสั่ง pwck จะทำการตรวจสอบไฟล์ /etc/passwd และ /etc/shadow ของคุณ เพื่อให้แน่ใจว่ามี required fields อยู่ รวมทั้ง files และ directories เป็นต้น

- setfacl & getfacl

ด้วยคำสั่ง setfacl และ getfacl คุณสามารถให้ผู้อื่นที่ไม่ใช่ file’s owners และไม่ได้เป็น member ของ group มีการเข้าถึงไฟล์ได้ สมมติ คุณต้องการให้ nemo มีสิทธิ์อ่านไฟล์ที่ระบุถึงไฟล์ ufw setup instructions ให้ใช้คำสั่งนี้ในการ modify ตัว access control list (ACL) สำหรับไฟล์:

คำสั่ง getfacl จะแสดง เมื่อมีการเปลี่ยนแปลง:

- sestatus & apparmor

คำสั่ง sestatus และ apparmor สามารถแสดงสถานะของเครื่องมือ SELinux และ apparmor tools ที่ช่วยให้แยกระหว่าง application โดยใช้ access control ที่จำเป็น หากคุณกำลังใช้ tools เหล่านี้ คุณควรรู้วิธีแสดงสถานะมัน

sestatus

apparmor

คุณควรทราบวิธีการ Start และ Stop ใช้ tools เหล่านี้

และสำหรับ SELinux ก็มีหลาย mode ในการแสดงผล

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

ที่มา:  https://www.networkworld.com/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความที่เกี่ยวข้อง