|
|
|||||||
กล่าวนำ
เครื่องให้บริการที่ดีควรจะเปิดให้บริการเฉพาะที่จำเป็นต่อการใช้งานเท่านั้น เนื่องจากการเปิดให้บริการมากเกินความจำเป็นจะทำให้เกิดเป็นช่องโหว่ของระบบ ส่งผลให้ผู้ไม่ประสงค์ดีนำไปใช้ในการบุกรุกหรือโจมตีระบบได้ นอกจากนั้น ยังเป็นภาระแก่ผู้ดูแลระบบที่จะต้องคอยตรวจสอบติดตามผลการให้บริการ และตรวจสอบข่าวสารเกี่ยวกับความปลอดภัยของบริการที่เปิดใช้อยู่เสมอ เพื่อให้เครื่องให้บริการมีความปลอดภัยสูงสุด ระบบปฏิบัติการ Red Hat Linux ได้จัดเตรียมสคริปต์ setup ไว้ให้ผู้ดูและระบบใช้ในการปรับเปลี่ยนแก้ไขหรือยกเลิกบริการที่ไม่จำเป็นออกจากระบบดังรายละเอียด
เมื่อระบบถูกบูตขึ้นมา service ที่ถูกตั้งค่าให้ทำงานโดยดีฟอลต์ก็จะถูกรันขึ้นมา
ซึ่งผู้ดูแลระบบสามารถดูได้จากหน้าจอในขณะบูต หรือตรวจสอบจาก /var/log/messages
จะสังเกตได้ว่ามีบาง service ซึ่งไม่จำเป็นที่ต้องการถูกรันอยู่โดยดีฟอลต์ ผู้ดูแลระบบสามารถยกเลิก
service ที่ไม่ต้องการได้ผ่านทางคำสั่ง setup ดังรูปที่ 1-1
รูปที่ 1-1
จากนั้นให้เลื่อนแถบสีน้ำเงินไปที่ System Services แล้วกด Enter ก็จะเข้าสู่หน้าจอคล้ายกับรูปที่ 1-2

รูปที่ 1-2
ขั้นตอนนี้สามารถเลือกได้ว่า จะให้ service ใดรันเมื่อระบบถูกบูตขึ้นมา โดยกดแป้น spacebar ให้มีเครื่องหมายดอกจัน (*) หน้า service ที่ต้องการ หรือถ้าต้องการยกเลิก service ใดก็ใช้กดแป้น spacebar ให้เครื่องหมาย * หายไป
มีข้อควรจำในการใช้งานคำสั่ง setup คือ
คำอธิบาย service บางตัวที่ผู้ดูแลระบบจำเป็นต้องทำความเข้าใจ เพื่อที่จะได้ตัดสินใจว่าจำเป็นกับระบบของตนหรือไม่ หากไม่จำเป็นก็ต้องยกเลิก service นั้นๆ ไป
| Service | คำอธิบาย | ความจำเป็นในการใช้งาน | Default Listening Port |
| anacron | เป็น cron ที่ทำงานแตกต่างจาก cron ปกติ โดยจะอ้างอิงเวลาที่จะรันคำสั่งเป็นแบบ relative time ซึ่งแตกต่างจาก cron ปกติที่จะอ้างอิงเวลาตามเวลาจริง | ปกติไม่ได้ใช้งาน | - |
| apmd | Advanced Power Management Daemon จะทำงานร่วมกับ APM BIOS driver โดยปกติจะใช้งานร่วมกับ UPS ซึ่งสามารถรันคำสั่งตามเหตุการณ์ที่ตั้งไว้ได้ เช่น แจ้งเตือนผู้ดูแลระบบเมื่อระดับพลังงานในแบตเตอรีมีค่าต่ำกว่าปกติ | ขึ้นกับฮาร์ดแวร์ที่มีอยู่ | - |
| arpwatch | ตรวจสอบการเปลี่ยนแปลงของค่า ip address ควบคู่กับค่า MAC address ของ Network Interface Card (NIC) ซึ่งหากมีการเปลี่ยนแปลง เช่น มีเครื่องคอมพิวเตอร์ใหม่เข้าในระบบเครือข่ายที่อยู่ใน segment เดียวกัน arpwatch ก็จะแจ้งเตือนผู้ดูแลระบบผ่านทางอี-เมล์ | ขึ้นกับนโยบายการใช้งานเครือข่าย และความขยันในการอ่านอี-เมล์ |
- |
| atd | ควบคุม at daemon ซึ่งเป็นการทำ personal scheduling | ปกติไม่ได้ใช้งาน | - |
| autofs | เป็น service ที่ทำหน้าที่ควบคุมการทำงานของ automount daemon ซึ่งจะทำการ mount, unmount ให้โดยอัตโนมัติ โปรแกรมนี้อาศัยข้อมูลควบคุมการทำงานจากไฟล์ /etc/auto.master | ปกติไม่ได้ใช้งาน | - |
| chargen | เป็น service ที่ทำหน้าที่ส่ง ASCII character ไปยังผู้ร้องขอ | ต้องยกเลิกการใช้งาน | 19/TCP |
| chargen-udp | เช่นเดียวกับ chargen แต่ทำงานบนโพรโตคอล UDP/19 แทน | ต้องยกเลิกการใช้งาน | 19/UDP |
| cron | รันคำสั่งที่ต้องการในเวลาที่ระบุไว้ | ใช้งานได้ตามปกติ | |
| daytime | ใช้แสดงวันและเวลาของระบบ | ต้องยกเลิกการใช้งาน | 13/TCP |
| daytime-udp | ใช้แสดงวันและเวลาของระบบ | ต้องยกเลิกการใช้งาน | 13/UDP |
| echo | ใช้แสดงข้อความที่ส่งเข้าไปออกมาอีกครั้ง | ต้องยกเลิกการใช้งาน | 7/TCP |
| echo-udp | ใช้แสดงข้อความที่ส่งเข้าไปออกมาอีกครั้ง | ต้องยกเลิกการใช้งาน | 7/UDP |
| finger | เป็น daemon ที่ให้รายละเอียดของผู้ใช้ในระบบแก่ผู้ที่ร้องขอเข้ามา | ต้องยกเลิกการใช้งาน | 79/TCP, 79/UDP |
| gpm | เป็น daemon ที่ทำหน้าที่เป็น mouse server และเกี่ยวข้องกับความสามารถในการทำ cut และ paste | ปกติไม่ได้ใช้งาน | - |
| httpd | เป็น web server daemon | ขึ้นกับความต้องการใช้งาน | TCP/80 |
| identd | ident เป็นโปรแกรมที่ใช้ตรวจสอบว่าผู้ใช้ใดเป็นเจ้าของแอพลิเคชันหรือโพรเซสที่กำลังทำงานอยู่ ส่วน identd นั้นก็ทำหน้าที่เป็นเซิรืฟเวอร์ที่มีหน้าที่ตอบคำถามจากคำร้องขอที่มีมา | ต้องยกเลิกการใช้งาน | 113/TCP, 113/UDP |
| ipchains, iptables |
ipchains เป็นไฟร์วอลล์ที่ทำงานบนลีนุกซ์เคอร์เนล 2.2 ปัจจุบันตั้งแต่เคอร์เนล 2.4 เป็นต้นมา iptables ก็ถูกนำมาใช้งานแทนที่ ผู้ดูแลระบบจะต้องทำการปรับแต่งค่าพอสมควร จึงจะสามารถใช้งานไฟร์วอลล์ได้อย่างมีประสิทธิภาพ | ขึ้นกับผู้ดูแลระบบ | - |
| isdn | ควบคุม service ของ ISDN | ไม่ควรเปิด service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | - |
| kdcrotate | เป็นสคริปต์ที่ใช้ปรับแต่งค่าของ Keberos | ไม่ควรเปิด service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | - |
| keytable | ใช้โหลด keyboard map | ไม่ควรเปิด service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | - |
| kudzu | เป็นโปรแกรมที่ใช้ตรวจสอบการเพิ่มเข้า ลดออกของฮาร์ดแวร์ในระบบ | ขึ้นกับผู้ดูแลระบบ | - |
| linuxconf | เป็นสคริปต์ที่ช่วยในการทำงานของคำสั่ง linuxconf | ต้องยกเลิกการใช้งาน | 98/ธDP |
| lpd | Line printer daemon | ขึ้นกับฮาร์ดแวร์ที่มีอยู่ | - |
| mysql | ควบคุม service ของ MySql Server | ขึ้นกับความต้องการใช้งาน | 3306/TCP |
| netfs | ใช้ mount และ unmount NFS, SMB, NCP | ไม่ควรเปิด service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | - |
| network | ใช้เริ่มและหยุดการทำงานของ network interface | ต้องเปิดการใช้งาน service นี้ | - |
| nfs | ใช้เริ่มและหยุดการทำงานของ NFS service | ไม่ควรเปิด service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | 2049/TCP, 2049/UDP |
| nfslock | เป็น service ที่ทำให้สามารถควบคุมการทำ file locking ในการใช้งาน NFS ได้ | ไม่ควรเปิด service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | - |
| nscd | name service cache daemon | ขึ้นกับความต้องการใช้งาน | - |
| ntalk | เป็น talk server ที่สามารถพูดคุยข้ามเครือข่ายได้ | ต้องยกเลิกการใช้งาน | 518/UDP |
| ntpd | เป็น daemon ที่ให้บริการเทียบเวลา หรือทำหน้าที่เป็น time server | ขึ้นกับความต้องการใช้งาน | 123/TCP, 123/UDP |
| portmap |
เป็น server program ที่ทำหน้าที่แปลง RPC port number ให้เป็น DARPA port number โดยจำเป็นต้องรัน portmap ก่อนจึงจะสามารถใช้งาน RPC program อื่นๆ ได้ เมื่อ RPC program เริ่มทำงาน มันจะแจ้งไปยัง portmap ว่า มันรอรับการเชื่อมต่อที่พอร์ทใดและโดยมี RPC program number ตัวใดรับรับการเชื่อมต่อ หรือกล่าวได้ง่ายๆ คือเป็นตัวควบคุม RPC service ทั้งหมด |
ไม่ควรเปิด service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | 111/TCP, 111/UDP |
| radvd | router advertisement daemon for IPv6 | ไม่ควรรัน service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | - |
| random | เป็นตัวสร้างตัวเลขสุ่ม | ใช้งานได้ตามปกติ | - |
| rarpd | Reverse Address Resolution Protocol (RARP) daemon ทำหน้าที่ response ต่อ RARP packet | ไม่มีก็ยังสามารถใช้งานได้ตามปกติ | - |
| rawdevices | กำหนดให้ raw device ทำงานในโหมดของ block device ได้ | ไม่ควรเปิด service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | - |
| rexec | เป็น service ที่ช่วยให้ execute คำสั่งข้ามเครือข่ายได้ | ต้องยกเลิกการใช้งาน | 512/TCP |
| rhnsd | เป็น service ที่ทำหน้าที่ update โปรแกรมที่อยู่ในระบบจาก Red Hat Network | ต้องเปิดการใช้งาน service นี้ | - |
| rlogin | Remote login | ต้องยกเลิกการใช้งาน | 513/TCP |
| rsh | Remote shell | ต้องยกเลิกการใช้งาน | 514/TCP |
| rstatd | หรืออีกชื่อหนึ่งคือ rpc.statd เป็น service ที่ให้บริการข้อมูลทางสถิติของประสิทธิภาพของเครื่องคอมพิวเตอร์ ซึ่งสามารถใช้งานแบบ remote ได้ | ต้องยกเลิกการใช้งาน | 111/TCP |
| rsync | เป็นโปรแกรมที่ใช้ถ่ายโอนข้อมูลระหว่างเครื่องซึ่งถูกนำมาใช้งานแทนที่ rcp | ต้องยกเลิกการใช้งาน | 873/TCP,UDP |
| rusersd | เป็นโปรแกรมที่จะแจ้งแก่ผู้ที่ร้องขอว่า ขณะนี้มี user ที่แจ้งมาได้ล็อกอินอยู่ในระบบแล้วหรือไม่ โดยผู้ร้องขอสามารถใช้คำสั่ง ruser เพื่อร้องขอได้ | ต้องยกเลิกการใช้งาน | - |
| rwalld | เป็นโปรแกรมที่จะทำหน้าที่ส่งต่อ message ไปยังผู้ใช้ทุกคนที่ล็อกอินอยู่ในระบบ | ต้องยกเลิกการใช้งาน | - |
| rwhod | เป็นโปรแกรมที่สามารถทำหน้าที่ทั้งส่งข้อมูล status ของระบบและสามารถรวบรวมข้อมูลสถานะของระบบ (system status) ของเครื่องอื่นที่ส่งออกมายังเครือข่ายได้ | ต้องยกเลิกการใช้งาน | - |
| sendmail | Sendmail daemon (หากต้องการส่งเมล์ออกอย่างเดียวก็ไม่มีความจำเป็นต้องเปิด service นี้แต่อย่างใด) | ไม่ควรเปิด service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | 25/TCP |
| smb | เปิดให้บริการ samba service ซึ่งทำให้สามารถ share file ได้ | สามารถเปิดใช้งานได้ แต่ต้องแก้ไข configuration ด้วยความระมัดระวัง | 137,138/UDP 139/TCP |
| snmpd | เป็น daemon ที่จะทำหน้าที่ response ต่อ SNMP packet | ไม่ควรเปิด service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | 161/TCP,UDP |
| sshd | ให้บริการ Secure shell service | ต้องเปิดการใช้งาน service นี้ แทนที่ telnet | 22/TCP |
| syslog | Syslog daemon | ต้องเปิดการใช้งาน service นี้ | - |
| talk | talk daemon หากเปิด service นี้จะสามารถทำให้ผู้ใช้งานจากเครื่องอื่นสามารถใช้งาน talk เข้ามายังระบบนี้ได้ | ไม่ควรเปิด service นี้ | 517/UDP |
| telnet | ให้บริการ Telnet service | ต้องยกเลิกการใช้งาน | 21/TCP |
| time | ส่งตัวเลขของเวลานับตั้งแต่ 1 มกราคม 1970 | ต้องยกเลิกการใช้งาน | 37/TCP |
| time-udp | ส่งตัวเลขของเวลานับตั้งแต่ 1 มกราคม 1970 | ต้องยกเลิกการใช้งาน | 37/UDP |
| xfs |
X Font server |
ไม่ควรเปิด service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | 7100/TCP |
| xinetd |
เป็น super server ที่ทำหน้าที่ในการตรวจสอบ connection ของ service ที่เปิดให้บริการภายใต้ xinetd จากนั้นจึงจะส่งต่อการเชื่อมต่อไปให้ applcation ที่ตั้งไว้ต่อไป รายละเอียดสามารถดูได้ที่หัวข้อ XINETD (step 4.2) |
หากไม่มี service ใดทำงานภายใต้ xinetd ก็ควรปิดการทำงานของ xinetd | - |
| ypbind | ควบคุม NIS binding service | ไม่ควรเปิด service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | - |
| yppasswdd | ควบคุม YP password server | ไม่ควรเปิด service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | - |
| ypserv | ควบคุม Network Information service | ไม่ควรเปิด service นี้ หากไม่ทราบว่ากำลังทำอะไรอยู่ | - |
นอกจากนี้ยังมีวิธีตรวจสอบ internet service ที่ให้บริการผ่าน TCP/IP network ซึ่งมักจะเป็นช่องโหว่ของระบบเสมอ โดยการตรวจสอบสามารถทำได้ด้วยคำสั่งง่ายๆ คือ
# netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN ==> HTTPD
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN ==> SSHD
# netstat -uan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 0.0.0.0:514 0.0.0.0:* ==> central syslog server
ซึ่งจากจุดนี้ผู้ดูแลระบบสามารถนำไปประยุกต์ใช้ เพื่อตรวจสอบระบบได้ เช่น ในกรณีที่ระบบถูกบุกรุก ผู้บุกรุกมักจะติดตั้ง backdoor ซึ่งมักจะเปิดพอร์ตสูงๆ ไว้เสมอ เช่น 42300 และยังมักติดตั้ง rootkit ซึ่งมีผลทำให้คำสั่งต่างๆ ที่สำคัญๆ เช่น netstat , ps , ls ถูกแก้ไข เป็นเหตุให้ผู้ดูแลระบบไม่สามารถมองเห็นพอร์ตที่ผู้บุกรุกเปิดทิ้งไว้ ผู้ดูแลระบบเพียงแต่ทำการสแกนพอร์ทจากเครื่องอื่น ทั้ง TCP และ UDP และให้สแกนตั้งแต่พอร์ต 1-65535 แล้วให้นำผลลัพธ์ที่ได้มาตรวจสอบกับผลลัพธ์ของคำสั่ง netstat อย่างไรก็ตามวิธีการดังกล่าวไม่ใช่วิธีที่สามารถตรวจสอบได้อย่างสมบูรณ์ เป็นเพียงคำแนะนำที่สามารถปฏิบัติได้โดยไม่ยาก
| Home
|| เอกสารเผยแพร่ || Unix & Linux
ThaiCERT Disclaimer | Copyright © 2001 ThaiCERT(NECTEC). All rights reserved. |