ฉันได้ส่งกล่องลินุกซ์ 3 กล่องไปทางหนึ่งด้านหน้าหันไปทางอาปาเช่และอีก 2 กล่องเท่าที่ฉันจะบอกได้ ทั้งหมดทำงานบน Redhat
คำถามนั้นง่าย: ฉันจะบอกได้อย่างไรว่าเซิร์ฟเวอร์กำลังทำอะไรอยู่? ไม่มีเอกสารจากผู้สร้าง
ฉันได้ส่งกล่องลินุกซ์ 3 กล่องไปทางหนึ่งด้านหน้าหันไปทางอาปาเช่และอีก 2 กล่องเท่าที่ฉันจะบอกได้ ทั้งหมดทำงานบน Redhat
คำถามนั้นง่าย: ฉันจะบอกได้อย่างไรว่าเซิร์ฟเวอร์กำลังทำอะไรอยู่? ไม่มีเอกสารจากผู้สร้าง
คำตอบ:
ถอดสายเคเบิลอีเธอร์เน็ตและดูว่าใครจะอารมณ์เสีย
แม้ว่าเครื่องลึกลับเช่นนี้จะสร้างค่าใช้จ่ายด้านจิตใจจำนวนมากให้กับทีมและมักไม่ได้ให้คุณค่าทางธุรกิจ พูดคุยกับเจ้านายของคุณถ้าไม่มีใครรู้ว่ามันอาจจะไม่มีใครใส่ใจสิ่งที่มัน
นี่เป็นคำถามที่ค่อนข้างกว้างสำหรับรูปแบบ Serverfault แต่นี่เป็นการเริ่มต้นที่ดี:
คุณไม่ได้พูดถึงเวอร์ชั่นดังนั้นฉันจึงละทิ้งข้อมูลเฉพาะ
มีบางสิ่งที่คุณสามารถทำได้เพื่อลองและตรวจสอบสิ่งที่ทำงานอยู่ในระบบของคุณ
คุณสามารถตรวจสอบว่าพอร์ตใดที่เซิร์ฟเวอร์ของคุณกำลังรับฟังอยู่เพื่อรับทราบว่ามีอะไรเกิดขึ้นบ้าง คำสั่งที่ดีในการใช้คือ:
[root@server ~]# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address Stat e PID/Program name
tcp 0 0 0.0.0.0:139 0.0.0.0:* LIST EN 1880/smbd
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LIST EN 1911/nrpe
tcp 0 0 0.0.0.0:22 0.0.0.0:* LIST EN 1759/sshd
ดังที่คุณเห็นได้จากตัวอย่างผลลัพธ์ด้านบนมันแสดงรุ่นโปรโตคอล (tcp หรือ udp) ที่อยู่ที่กำลังรับฟังพอร์ตที่เปิดและโปรแกรมที่กำลังฟังอยู่
ในตัวอย่างที่ถูกตัดทอนข้างต้น (เครื่องเซิร์ฟเวอร์) คุณสามารถเห็นพอร์ต tcp 139, 5666 และ 22 กำลังรับฟัง การแก้ปัญหาเหล่านี้กับ samba, nrpe (ตัวแทน Nagios) และ ssh ตามลำดับและได้รับการยืนยันเมื่อคุณตรวจสอบโปรแกรมที่กำลังฟังบนพอร์ตนั้น
นอกจากนี้คุณสามารถตรวจสอบรายการของ daemons ที่ถูกกำหนดค่าให้เริ่มต้นตอนบูทเพื่อที่จะทำเช่นนั้นให้รัน:
chkconfig --list | grep "3:on"
ตัวอย่าง:
[root@server ~]# chkconfig --list | grep "3:on"
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sysstat 0:off 1:on 2:on 3:on 4:on 5:on 6:off
udev-post 0:off 1:on 2:on 3:on 4:on 5:on 6:off
vncserver 0:off 1:off 2:on 3:on 4:on 5:on 6:off
webmin 0:off 1:off 2:on 3:on 4:off 5:on 6:off
x2gocleansessions 0:off 1:off 2:on 3:on 4:on 5:on 6:off
.
.
.
หรือ :
service --status-all
netstat -plunt
จำง่ายกว่านี้
tcpdump
อาจเป็นประโยชน์ในการพิจารณาว่าใครเป็นผู้ใช้แต่ละบริการ
อีกวิธีที่เกี่ยวข้องกับการตรวจสอบ/etc
ไดเรกทอรีและดูวันที่แก้ไข หลังจากติดตั้งใหม่ไฟล์ทั้งหมดในไดเรกทอรีนี้ควรมีวันที่ / เวลาเดียวกันโดยประมาณ และตั้งแต่ติดตั้งมักจะติดตั้งจำนวนมากสิ่งที่คนมักจะไม่ได้ใช้เฉพาะไฟล์ที่มีการปรับเปลี่ยนวันต่อมาสะท้อนให้เห็นถึงวัตถุประสงค์ที่แท้จริงของเซิร์ฟเวอร์ ถ้านี่คือ ext4 คุณควรจะสามารถแยกวันเดือนปีเกิดของไดเรกทอรีเพื่อให้งานนั้นค่อนข้างง่าย
วิธีการอื่นจะเกี่ยวข้องกับการตรวจสอบ.bash_history
ไฟล์เพื่อดูว่าผู้ดูแลระบบนั้นทำอะไร ไฟล์นี้สามารถให้ความรู้มากมาย
ตรวจสอบกฎไฟร์วอลล์ ด้วยโชคเล็ก ๆ น้อย ๆ มันถูกกำหนดค่าสำหรับการปฏิเสธเริ่มต้น นั่นหมายความว่ามีกฎที่ชัดเจนสำหรับแต่ละบริการที่อนุญาต
นี่จะดีกว่าnetstat
เพราะมันยังสามารถแสดงพอร์ตที่เปิดไว้เช่นสำหรับการสำรองข้อมูลทุกคืน
หนึ่งคำตอบที่ฉันยังไม่เห็น: ตรวจสอบไฟล์ที่แก้ไขล่าสุด ไฟล์บันทึกไฟล์ฐานข้อมูลไฟล์ส่งออกอื่น ๆ อาจถูกเขียนไปยังที่อาจให้เบาะแส:
find . -mtime -3
ที่จะค้นหาไฟล์ที่แก้ไขแล้วในไดเรกทอรีปัจจุบันและที่ลึกกว่านั้นเปลี่ยนใน 3 วันที่ผ่านมา เพิ่มหมายเลข 3 เป็นการเดาที่มีการศึกษาจนกว่าคุณจะได้ผลลัพธ์ที่คุณสามารถตรวจสอบได้
ไม่ใช่เรื่องโง่เขลาเพราะกล่องเหล่านี้อาจดำเนินการเรียกใช้บริการทางเว็บบางรายการส่งคืนข้อมูลบางส่วนโดยไม่ต้องเขียนอะไรเลย แต่เมื่อเพิ่มเข้าไปในส่วนผสมที่ยอดเยี่ยมที่กล่าวถึงข้างต้นมันอาจให้เบาะแสบางอย่าง