ThaiCERT: Thai Computer Emergency Response Team
ศูนย์ประสานงานการรักษาความปลอดภัยคอมพิวเตอร์ ประเทศไทย 
 
 
 



ชื่อเรื่อง : การยกเลิก System Services ด้วยคำสั่ง Setup สำหรับ Red Hat Linux
เรียบเรียงโดย : ภูวดล ด่านระหาญ
เรียบเรียงเมื่อ : 11 ตุลาคม 2545

กล่าวนำ

เครื่องให้บริการที่ดีควรจะเปิดให้บริการเฉพาะที่จำเป็นต่อการใช้งานเท่านั้น เนื่องจากการเปิดให้บริการมากเกินความจำเป็นจะทำให้เกิดเป็นช่องโหว่ของระบบ ส่งผลให้ผู้ไม่ประสงค์ดีนำไปใช้ในการบุกรุกหรือโจมตีระบบได้ นอกจากนั้น ยังเป็นภาระแก่ผู้ดูแลระบบที่จะต้องคอยตรวจสอบติดตามผลการให้บริการ และตรวจสอบข่าวสารเกี่ยวกับความปลอดภัยของบริการที่เปิดใช้อยู่เสมอ เพื่อให้เครื่องให้บริการมีความปลอดภัยสูงสุด ระบบปฏิบัติการ 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 นั้นๆ ไป


ตารางที่ 1-1 แสดงคำอธิบาย 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 ซึ่งมักจะเป็นช่องโหว่ของระบบเสมอ โดยการตรวจสอบสามารถทำได้ด้วยคำสั่งง่ายๆ คือ

ซึ่งจากจุดนี้ผู้ดูแลระบบสามารถนำไปประยุกต์ใช้ เพื่อตรวจสอบระบบได้ เช่น ในกรณีที่ระบบถูกบุกรุก ผู้บุกรุกมักจะติดตั้ง backdoor ซึ่งมักจะเปิดพอร์ตสูงๆ ไว้เสมอ เช่น 42300 และยังมักติดตั้ง rootkit ซึ่งมีผลทำให้คำสั่งต่างๆ ที่สำคัญๆ เช่น netstat , ps , ls ถูกแก้ไข เป็นเหตุให้ผู้ดูแลระบบไม่สามารถมองเห็นพอร์ตที่ผู้บุกรุกเปิดทิ้งไว้ ผู้ดูแลระบบเพียงแต่ทำการสแกนพอร์ทจากเครื่องอื่น ทั้ง TCP และ UDP และให้สแกนตั้งแต่พอร์ต 1-65535 แล้วให้นำผลลัพธ์ที่ได้มาตรวจสอบกับผลลัพธ์ของคำสั่ง netstat อย่างไรก็ตามวิธีการดังกล่าวไม่ใช่วิธีที่สามารถตรวจสอบได้อย่างสมบูรณ์ เป็นเพียงคำแนะนำที่สามารถปฏิบัติได้โดยไม่ยาก



Home || เอกสารเผยแพร่ || Unix & Linux

ThaiCERT Disclaimer | Copyright © 2001 ThaiCERT(NECTEC). All rights reserved.