ฉันยังใหม่กับการรักษาความปลอดภัยเซิร์ฟเวอร์และนี่คือโพสต์แรกของฉันที่นี่ เมื่อเร็ว ๆ นี้ เซิร์ฟเวอร์ของฉันได้รับการพยายามเข้าสู่ระบบ SSH หลายครั้งจากแหล่งที่ไม่รู้จัก

สองสามนาทีที่แล้วฉันลงชื่อเข้าใช้เซิร์ฟเวอร์และตัดสินใจชำระเงินtcpซ็อกเก็ตโดยออกss -tคำสั่งและพบซ็อกเก็ตในFIN-WAIT-1สถานะ ฉันไม่แน่ใจว่าจะคิดอย่างไรกับมัน มีคนเชื่อมต่อสำเร็จหรือไม่?

State                Recv-Q            Send-Q                        Local Address:Port                         Peer Address:Port            
FIN-WAIT-1           0                 69                            139.132.21.45:ssh                        123.156.225.58:36092

lastคำสั่งยังให้รายการเหล่านี้แก่ฉันด้วย แต่ฉันไม่ได้เข้าสู่ระบบในฐานะรูทในวันนี้

root     ttyS0                         Tue Nov  2 17:10   still logged in
reboot   system boot  4.15.0-161-gener Tue Nov  2 17:10   still running

ฉันควรจะกังวล?

answer

Has someone successfully connected?

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

กรณีตรงประเด็น: คุณเชื่อมต่อกับโฮสต์ระยะไกลโดยใช้ SSH จากนั้นคุณให้ข้อมูลประจำตัวที่ไม่ถูกต้อง เซิร์ฟเวอร์จะปิดการเชื่อมต่อ การเชื่อมต่อที่ปิดโดยเซิร์ฟเวอร์จะไป (ชั่วขณะหนึ่ง) ในสถานะ FIN-WAIT-1 แต่ไม่มีใครเข้าสู่ระบบจริง ๆ มันเป็นเพียงการพยายามเข้าสู่ระบบที่ล้มเหลว

my server has been experiencing many SSH login attempts from unknown sources.

หากคุณพบหนึ่งในความพยายามเหล่านั้นทันทีหลังจากที่ล้มเหลว ซ็อกเก็ตในสถานะ FIN-WAIT-1 คือสิ่งที่คุณจะเห็นในระดับเครือข่าย


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

ไม่ได้หมายความว่าซ็อกเก็ตถูกปิด มันเป็นรัฐ TCP

คุณสามารถดูการพยายามเชื่อมต่อกับเครื่องของคุณได้แบบเรียลไทม์ด้วย "tcpdump -v dst host {your_ip_ext} และ 'tcp[tcpflags] == tcp-syn' "