Ngăn chặn SSH quảng cáo số phiên bản của nó


13

Máy chủ tôi đang sử dụng là Ubuntu 10.10. Để đảm bảo an ninh, tôi muốn chỉnh sửa banner mà máy chủ gửi cho khách hàng.

Nếu tôi telnet đến máy chủ của tôi trên cổng 22, nó sẽ cho tôi biết phiên bản chính xác của SSH tôi đang chạy (SSH-2.0-OpenSSH_5.3p1 Debian-3ubfox4). Tình hình tương tự với MySQL và Cyrus.

Bất kỳ đề xuất? Ít nhất là cho SSH?

Cảm ơn


5
Tôi hy vọng bạn cũng nhận ra rằng cần nhiều hơn là chỉ gỡ bỏ các biểu ngữ này để đảm bảo máy chủ của bạn được an toàn.
Ben Pilbrow

10
Thông tin đó phần lớn không liên quan, các bot sẽ thử các bản hack hoạt động trên phiên bản cũ hơn bất kể thông tin phiên bản nào mà máy chủ của bạn cung cấp. Người dùng thù địch tấn công độc hại máy chủ của bạn là ít lo lắng nhất của bạn; Người dùng bất cẩn thường nguy hiểm hơn nhiều.
Chris S

Ben, tôi nghĩ rằng tôi biết những gì tôi đang hỏi. Và tôi biết làm thế nào để bảo vệ NIX-Server. Chris, mò mẫm trong bóng tối cũng tốt. Bất kể khịt mũi, iptables fail2bans, v.v.
Lerikun

miễn là bạn biết đây là một trong nhiều việc phải làm, không sao cả. Tôi không muốn bạn đi xa khi nghĩ rằng hệ thống của bạn siêu an toàn, chỉ vậy thôi.
Ben Pilbrow

Như Auticvery đã chỉ ra, tôi muốn ít nhất là ẩn "Debian-3ubfox4".
Lerikun

Câu trả lời:


17

Hầu như trên toàn cầu, các biểu ngữ xác định là một phần của mã được biên dịch và không có tùy chọn cấu hình để thay đổi hoặc triệt tiêu chúng. Bạn sẽ phải biên dịch lại những phần mềm đó.


Cảm ơn. Câu trả lời thực sự hữu ích duy nhất ở đây. Điều gì về TCP Wrapper họ chỉ thêm một biểu ngữ nhưng không ẩn thông tin thực tế?
Lerikun

6
Nó không chỉ được biên dịch, nó còn được sử dụng bởi các máy khách để xác định các mức kết nối tương thích.
Jeremy Bouse

32

Mặc dù rất khó để ẩn số phiên bản của trình nền SSH, bạn có thể dễ dàng ẩn phiên bản linux (Debian-3ubfox4)

Thêm dòng sau vào /etc/ssh/sshd_config

DebianBanner no

Và khởi động lại daemon SSH của bạn: /etc/init.d/ssh restarthoặcservice ssh restart


7
Cảm ơn, điều này hoạt động hoàn hảo! Tôi đồng ý rằng việc xóa thông tin phiên bản là bảo mật bằng cách che khuất và có thể đưa ra nhiều vấn đề hơn mà nó giải quyết. Mặc dù với Debian, OpenSSH không chỉ công bố phiên bản của riêng nó, mà cả phiên bản và hương vị cụ thể của hệ điều hành - tức là "SSH-2.0-OpenSSH_6.7p1 Raspbian-5 + deb8u3". Xin chúc mừng, không có bất kỳ loại xác thực nào, giờ đây bạn biết rằng bạn đang nói chuyện với RaspberryPi đang chạy Raspbian và bước rõ ràng tiếp theo của bạn sẽ là thử kết nối dưới dạng "pi" với mật khẩu mặc định. IMHO điều này sẽ cho đi CÁCH cho nhiều thông tin vào ngày đầu tiên.
Saustrup

Brilliant, một trong những viên đá quý ẩn tốt nhất được tìm thấy ở đây.
Rui F Ribeiro

19

Ẩn những người không bảo mật máy chủ của bạn. Có nhiều cách khác để lấy dấu vân tay hệ thống của bạn đang chạy. Đối với SSH nói riêng, thông báo phiên bản là một phần của giao thức và được yêu cầu.

http://www.snailbook.com/faq/version-opes.auto.html


Càng ít người biết về hệ thống của bạn ... Bạn có thể không đồng ý. Còn các dịch vụ khác thì sao? Tôi đang nói chung về Cyrus (IMAP / POP3) và MySQL và những người khác. Và nếu có hai Quản trị viên - Tôi không cần phải tuân theo giao thức?!
Lerikun

3
@lerikun: Không phải là chia sẻ nó với những tin tặc đáng sợ. Đó là về việc SSH không thể kết nối vì không biết nên sử dụng giao thức nào. SSHD phải công bố.
Satanicpuppy

9
"Càng ít người biết về hệ thống của bạn thì càng tốt". Vâng chắc chắn, đó là một tuyên bố nghe có vẻ hay nhưng không làm được gì nhiều, như "Nếu tôi trúng xổ số tôi sẽ ...". Bảo mật thông qua che khuất là bảo mật kém nhất.
Rob Moir

1
Robert, đó là một tuyên bố có nghĩa là rất nhiều. Tại sao két an toàn trong phòng tối mà không ai có thể nhìn thấy? ... Đừng bận tâm. Tôi không hỏi làm thế nào để bảo mật máy chủ của tôi. Tôi nghĩ rằng câu hỏi của tôi đã rõ ràng. Có chế độ chuyên quyền Tôi muốn ít nhất là để thoát khỏi những người đó.
Lerikun

2
Đối với những gì nó có giá trị, robert moir là hoàn toàn đúng.
Sirex

8

Tôi khá chắc chắn rằng bạn thực sự không thể thay đổi thông báo phiên bản.

Các cách tốt nhất để bảo mật sshd là:

  1. Thay đổi số cổng mặc định.
  2. Cấm đăng nhập gốc.
  3. Buộc giao thức 2 (giả sử rằng nó không được thực hiện theo mặc định).
  4. Danh sách trắng các máy chủ được phép SSH.

Ba cái đầu tiên có thể được thực hiện bằng cách sửa đổi / etc / sshd_config

Thứ tư phụ thuộc vào phần mềm tường lửa bạn đang sử dụng.


1/2/3 đã xong. sử dụng chứng chỉ không có mật khẩu. Fail2ban (IMAP, POP, SMTP, VPN, WEB) và denyhosts (SSH) Câu hỏi là về thông báo phiên bản cho các dịch vụ khác.
Lerikun

6

Như đã nói ở trên, thay đổi số phiên bản là

  1. Khó làm
  2. An ninh thông qua sự tối tăm
  3. Không linh hoạt

Những gì tôi đề nghị là thực hiện Port Knocking. Đây là một kỹ thuật khá đơn giản để ẩn bất cứ thứ gì đang chạy trên máy chủ của bạn.

Đây là một triển khai tốt: http://www.zeroflux.org/projects/knock

Đây là cách tôi triển khai nó trên các máy chủ của mình (các số khác) để chỉ mở SSH cho những người biết 'tiếng gõ bí mật':

[openSSH]
    sequence = 300,4000,32
    seq_timeout = 5
    command = /opencloseport.sh %IP% 2305
    tcpflags = syn

Điều này sẽ đưa ra một cửa sổ 5 giây trong đó 3 gói tin SYN cần được nhận theo đúng thứ tự. Chọn các cổng cách xa nhau và không tuần tự. Bằng cách đó, một portscanner không thể mở cổng một cách tình cờ. Các cổng này không cần phải được mở bởi iptables.

Kịch bản tôi gọi là cái này. Nó mở một cổng cụ thể trong 5 giây để IP gửi các gói tin.

#!/bin/bash
/sbin/iptables -I INPUT -s $1 -p tcp --dport $2  -j ACCEPT
sleep 5
/sbin/iptables -D INPUT -s $1 -p tcp --dport $2  -j ACCEPT

Việc gửi các gói tin SYN có thể là một nỗi đau thực sự vì vậy tôi sử dụng tập lệnh để kết nối với SSH của các máy chủ của mình:

#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh $5@$1 -p $6

(Nó khá rõ ràng những gì đang xảy ra ở đây ...)

Sau khi kết nối được thiết lập, cổng có thể được đóng lại. Gợi ý: Sử dụng xác thực khóa. Nếu không, bạn cần phải rất nhanh để nhập mật khẩu của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.