คุณจะบอกได้อย่างไรว่าเซิร์ฟเวอร์ทำอะไรได้บ้าง? [ปิด]


42

ฉันได้ส่งกล่องลินุกซ์ 3 กล่องไปทางหนึ่งด้านหน้าหันไปทางอาปาเช่และอีก 2 กล่องเท่าที่ฉันจะบอกได้ ทั้งหมดทำงานบน Redhat

คำถามนั้นง่าย: ฉันจะบอกได้อย่างไรว่าเซิร์ฟเวอร์กำลังทำอะไรอยู่? ไม่มีเอกสารจากผู้สร้าง


7
รายการกระบวนการผู้ฟังเครือข่าย (อาจเปรียบเทียบได้ว่าควรจะได้รับการทำงานอยู่บนพื้นฐานของสคริปต์ init) ...
HBruijn

5
ประณาม! แน่นอนใครบางคนรู้ว่าสิ่งที่พวกเขามีไว้เพื่อ? ดังนั้นพวกเขาต้องการให้คุณสนับสนุนพวกเขา แต่ไม่รู้ว่าพวกเขาทำอะไร!
Lightcraft ดิจิทัล

11
ปิดพวกเขา บางคนจะแจ้งให้คุณทราบทันทีว่ามีอะไรไม่ทำงาน
jscott

58
อย่าปิดเครื่อง ถอดสายเคเบิลอีเธอร์เน็ตหากคุณต้องการทดสอบการกรีดร้อง หากคุณไม่เคยมีกล่องที่มีเวลาทำงานสองปีไม่สามารถรีบูทได้คุณจะต้องทำตามขั้นตอนต่อไป นี่ไม่ใช่เวลาที่จะเพิ่มความคับข้องใจให้กับเพลง
Aaron Copley

7
สิ่งที่คนอื่นพูด แต่ยัง: เรียกใช้ nmap กับพวกเขา
Katherine Villyard

คำตอบ:


42

ถอดสายเคเบิลอีเธอร์เน็ตและดูว่าใครจะอารมณ์เสีย

แม้ว่าเครื่องลึกลับเช่นนี้จะสร้างค่าใช้จ่ายด้านจิตใจจำนวนมากให้กับทีมและมักไม่ได้ให้คุณค่าทางธุรกิจ พูดคุยกับเจ้านายของคุณถ้าไม่มีใครรู้ว่ามันอาจจะไม่มีใครใส่ใจสิ่งที่มัน


43
อย่าปิดเครื่อง ถอดสายเคเบิลอีเธอร์เน็ตหากคุณต้องการทดสอบการกรีดร้อง หากคุณไม่เคยมีกล่องที่มีเวลาทำงานสองปีไม่สามารถรีบูทได้คุณจะต้องทำตามขั้นตอนต่อไป นี่ไม่ใช่เวลาที่จะเพิ่มความคับข้องใจให้กับเพลง (คัดลอกที่นี่เพราะมันจะต้องมีการอ่าน.)
แอรอนเพลย์

3
คุณ 100% ถูกต้องฉันได้แก้ไขโพสต์เพื่อแสดงว่า ฉันเป็นคนขี้อายนิดหน่อย แต่ฉันก็ยังสามารถเป็นคนขี้ขลาด
Josh Rumbut

8
ก่อนที่จะถอดปลั๊กเครือข่ายเป็นความคิดที่ดีที่จะบันทึกรายการกระบวนการทำงานและซ็อกเก็ตที่เปิดอยู่บนเซิร์ฟเวอร์แต่ละเครื่อง - ในกรณีที่มีบางสิ่งที่ต้องอาศัยการเชื่อมต่อ TCP ระหว่างเซิร์ฟเวอร์ที่ยังคงเกิดขึ้นเป็นเวลาหลายเดือน โดยอัตโนมัติทุกขั้นตอนที่จำเป็นในการเปิดในกรณีแรก (ตัวอย่างเช่นถ้าใครจำเป็นต้องส่งต่อพอร์ต SSH ชั่วคราวแล้วลืมเกี่ยวกับมัน.)
kasperd

4
อย่าทำอย่างนี้ คำแนะนำที่ไร้สาระอะไร คนที่ทำงานด้านไอทีอย่างงี่เง่าทำให้ฉันเสียเวลาและทำงานไปมาก ถามก่อน หากคุณไม่ทราบว่าใครจะถามว่าขอให้ทุกคน
การแข่งขัน Lightness กับโมนิก้า

4
ตรวจสอบให้แน่ใจว่าคุณปล่อยเวลาให้ใครบางคนกรีดร้อง - ครั้งเดียวที่ฉันทำสิ่งนี้ด้วยเครื่องที่เต็มไปด้วยฝุ่นหรือเดสก์ท็อปนั่งอยู่บนชั้นวางของในห้องเซิร์ฟเวอร์ - ไม่มีใครรู้ว่ามันทำอะไร . ปรากฎว่ามันเป็นส่วนหนึ่งของระบบบัญชีเงินเดือนหากไม่มีเซิร์ฟเวอร์นั้นบัญชีจะไม่สามารถสร้างบัญชีเงินเดือนได้ มันทำงานมาโดยไม่มีใครดูแลเป็นเวลาอย่างน้อย 3 ปีโดยไม่มีใครสนใจเลยดังนั้น "การทดสอบกรีดร้อง" ก็ประสบความสำเร็จหากเราไม่ได้ทำมันเซิร์ฟเวอร์จะต้องตายในที่สุด เราลงเอยด้วย p2v'ing ลงในคลัสเตอร์ vmware ของเรา
Johnny

30

นี่เป็นคำถามที่ค่อนข้างกว้างสำหรับรูปแบบ Serverfault แต่นี่เป็นการเริ่มต้นที่ดี:

  • ตรวจสอบกระบวนการที่กำลังทำงานอยู่และกระบวนการที่กำหนดไว้ให้ทำงานเมื่อเริ่มต้นระบบ
    • ตรวจสอบการกำหนดค่าการรันของแต่ละรายการ
    • ดูในไดเรกทอรีข้อมูลใด ๆ ที่กำหนดไว้ (อาจมีคนติดตั้ง MySQL และเปิดใช้งาน แต่ไม่มีฐานข้อมูล)
  • ตรวจสอบงานตามกำหนดเวลา
  • ตรวจสอบบันทึกเพื่อดู;
    • ผู้ที่เข้าสู่ระบบเมื่อเร็ว ๆ นี้ (และถามพวกเขา)
    • และเพื่อให้ทราบถึงสิ่งที่กำลังดำเนินอยู่

คุณไม่ได้พูดถึงเวอร์ชั่นดังนั้นฉันจึงละทิ้งข้อมูลเฉพาะ


8
มีบางสิ่งที่สำคัญกว่าบริการใดที่ได้รับการกำหนดค่าให้เริ่มเมื่อระบบบู๊ต บริการใดกำลังทำงานอยู่ในขณะนี้? การเริ่มบริการและลืมกำหนดค่าให้เริ่มต้นเมื่อบูตไม่ใช่ความผิดพลาดที่ทำได้ยาก ในบันทึกที่เกี่ยวข้องมันเป็นความคิดที่ดีที่จะดูสถานะของระบบอื่น ๆ เช่น: จุดเชื่อมต่อ, ตารางเส้นทาง, กฎ iptables สิ่งเหล่านี้เป็นสิ่งที่สามารถเปลี่ยนแปลงได้อย่างง่ายดายในขณะที่ระบบกำลังทำงานอยู่โดยไม่จำว่าต้องอัพเดตไฟล์กำหนดค่าที่ใช้ในระหว่างการบู๊ต
kasperd

นอกจากนี้ฉันจะใช้เครื่องสแกนพอร์ตเพื่อดูพอร์ตที่เปิดอยู่จากนั้นลองเชื่อมต่อกับพอร์ตนั้นโดยใช้เครื่องมือปกติ ตัวอย่างเช่น (ง่ายๆ) หากเปิดพอร์ต 443 คุณสามารถลองใช้เว็บเบราว์เซอร์เพื่อเชื่อมต่อกับมัน ฉันต้องสำรวจเซิร์ฟเวอร์ที่ถูกทอดทิ้งซึ่งดูเหมือนว่าบ่อยครั้งและหนึ่งในเครื่องมือที่ฉันโปรดปรานเพื่อเรียกดูไฟล์การกำหนดค่าใน / etc และที่อื่น ๆ คือใช้ "lynx" หรือ "links" หากคุณต้องการ เหล่านี้คือเว็บเบราว์เซอร์ที่ใช้อักขระซึ่งทำงานได้ดีพอ ๆ กับไฟล์เบราว์เซอร์เช่นกันพร้อมด้วยการนำทางด้วยเคอร์เซอร์ที่สะดวก
aseq

1
@kasperd Fair เล่นกับการทำงานกับบริการแบบต่อเนื่อง แต่ฉันคิดเกี่ยวกับกฎไฟร์วอลล์จุดเชื่อมต่อ ฯลฯ ที่ดูเหมือนกับฉันเป็นองค์ประกอบเสริมที่จะเชื่อมโยงกับหนึ่งในสัญลักษณ์หัวข้อย่อยที่มีอยู่แล้ว YMMV
Aaron Copley

โปรดเพิ่ม - ตรวจสอบการเชื่อมต่อเครือข่ายที่ใช้งานอยู่และจดชื่อบริการและหมายเลขพอร์ต วิธีที่ดีที่สุดในการทำเช่นนี้แตกต่างกันไปตามระบบปฏิบัติการ EG net stat นอกจากนี้ยังมีการติดตามบางอย่างบนคอมพิวเตอร์เพื่อให้คุณสามารถดูสิ่งที่จะทำตลอดทั้งวัน คุณอาจต้องการเพิ่มข้อควรพิจารณาสำหรับสถานการณ์เมื่อสิ่งต่าง ๆ ที่ทำงานบนเซิร์ฟเวอร์อาจเป็นอันตราย
IceMage

19

มีบางสิ่งที่คุณสามารถทำได้เพื่อลองและตรวจสอบสิ่งที่ทำงานอยู่ในระบบของคุณ

คุณสามารถตรวจสอบว่าพอร์ตใดที่เซิร์ฟเวอร์ของคุณกำลังรับฟังอยู่เพื่อรับทราบว่ามีอะไรเกิดขึ้นบ้าง คำสั่งที่ดีในการใช้คือ:

 [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


5
ฉันnetstat -pluntจำง่ายกว่านี้
abligh

2
นอกจากนี้tcpdumpอาจเป็นประโยชน์ในการพิจารณาว่าใครเป็นผู้ใช้แต่ละบริการ
abligh

18

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

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


7

ตรวจสอบกฎไฟร์วอลล์ ด้วยโชคเล็ก ๆ น้อย ๆ มันถูกกำหนดค่าสำหรับการปฏิเสธเริ่มต้น นั่นหมายความว่ามีกฎที่ชัดเจนสำหรับแต่ละบริการที่อนุญาต

นี่จะดีกว่าnetstatเพราะมันยังสามารถแสดงพอร์ตที่เปิดไว้เช่นสำหรับการสำรองข้อมูลทุกคืน


6

หนึ่งคำตอบที่ฉันยังไม่เห็น: ตรวจสอบไฟล์ที่แก้ไขล่าสุด ไฟล์บันทึกไฟล์ฐานข้อมูลไฟล์ส่งออกอื่น ๆ อาจถูกเขียนไปยังที่อาจให้เบาะแส:

find . -mtime -3 

ที่จะค้นหาไฟล์ที่แก้ไขแล้วในไดเรกทอรีปัจจุบันและที่ลึกกว่านั้นเปลี่ยนใน 3 วันที่ผ่านมา เพิ่มหมายเลข 3 เป็นการเดาที่มีการศึกษาจนกว่าคุณจะได้ผลลัพธ์ที่คุณสามารถตรวจสอบได้

ไม่ใช่เรื่องโง่เขลาเพราะกล่องเหล่านี้อาจดำเนินการเรียกใช้บริการทางเว็บบางรายการส่งคืนข้อมูลบางส่วนโดยไม่ต้องเขียนอะไรเลย แต่เมื่อเพิ่มเข้าไปในส่วนผสมที่ยอดเยี่ยมที่กล่าวถึงข้างต้นมันอาจให้เบาะแสบางอย่าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.