[TUYÊN BỐ TỪ CHỐI] Tôi nhận ra rằng tôi đến bữa tiệc muộn, nhưng tôi muốn dán một câu trả lời mà tôi đã đưa ra cho một câu hỏi khác , bởi vì tôi cảm thấy như nó có thể cung cấp một cái nhìn sâu sắc tốt cho độc giả, và câu hỏi này dường như là câu hỏi hay nơi cho thông tin ssh cơ bản.
Có một vấn đề tương tự xảy ra với tôi sau khi đọc câu hỏi này ở đây trên AskUbfox và kiểm tra VPS của tôi, chỉ để thấy một lượng lớn các nỗ lực vũ phu. Đó là khi tôi quyết định hành động.
Bây giờ theo câu hỏi tôi đã liên kết đến, nếu bạn muốn thấy các lần đăng nhập thất bại trên máy của bạn qua ssh (có thể là các nỗ lực vũ phu hoặc bất cứ điều gì), hãy thử gõ này:
grep sshd.\*Failed /var/log/auth.log | less
Nếu đầu ra bao gồm nhiều dòng, đó là nhiều nỗ lực vũ phu, đặc biệt nếu chúng xảy ra giữa các khoảng thời gian ngắn, bạn có thể muốn thực hiện các hành động sau:
Thay đổi tập tin cấu hình ssh
Để thực hiện việc này, hãy mở tệp nằm ở / etc / ssh / sshd_config bằng trình chỉnh sửa yêu thích của bạn, như thế này vim /etc/ssh/sshd_config
.
1. Cố gắng di chuyển ssh từ cổng 22 : Bây giờ xác định vị trí dòng đọc:
# What ports, IPs and protocols we listen for
Port 22
và nhận xét Cổng 22, và sử dụng bất cứ ai bạn có thể thích. Thí dụ:
# What ports, IPs and protocols we listen for
# Port 22
Port 28934
Xin nhớ rằng các cổng dưới 1024 cần có sự cho phép đặc biệt (root). Tôi không biết làm thế nào điều này có thể can thiệp vào nó, nhưng tôi chỉ nói.
2. Vô hiệu hóa thông tin đăng nhập Root qua ssh : Vì tên người dùng gốc có thể dự đoán được và cung cấp quyền truy cập hoàn toàn vào hệ thống của bạn, việc cung cấp quyền truy cập không bị chặn vào tài khoản này qua SSH là không khôn ngoan. Xác định vị trí dòng đọc PermitRootLogin và đặt thành không .
PermitRootLogin no
3. Vô hiệu hóa xác thực mật khẩu : Tạo và sử dụng các khóa SSH để đăng nhập vào hệ thống của bạn. Nếu không có mật khẩu được kích hoạt, kẻ tấn công sẽ cần đoán (hoặc đánh cắp) khóa riêng SSH của bạn để có quyền truy cập vào máy chủ của bạn. Một cái gì đó rất rất khó khăn. Tiếp tục tìm dòng đọc Mật khẩu xác thực và đặt thành không
PasswordAuthentication no
!CẢNH BÁO! Trước khi làm như vậy, vui lòng tham khảo hướng dẫn này ở đây về cách thiết lập xác thực chứng chỉ.
LƯU Ý: Sau khi bạn đã thực hiện các thay đổi sử dụng sudo /etc/init.d/ssh restart
. Để kết nối với một cổng khác thông qua ssh sử dụng : ssh username@hostname.com -p <port_number>
.
Thiết lập tường lửa
Vui lòng xem hướng dẫn này về cách thiết lập tường lửa cực kỳ mạnh mẽ và hiệu quả, được tích hợp vào Linux, IPTables .
Thiết lập tập lệnh để giúp bạn bảo mật
Một cái mà tôi sử dụng cá nhân và nhanh chóng xuất hiện trong tâm trí là Fail2Ban . Fail2ban sẽ giám sát các tệp nhật ký của bạn cho các lần đăng nhập thất bại. Sau khi một địa chỉ IP đã vượt quá số lần thử xác thực tối đa, nó sẽ bị chặn ở cấp mạng và sự kiện sẽ được đăng nhập /var/log/fail2ban.log
. Để cài đặt nó:sudo apt-get install fail2ban
Kiểm tra lịch sử lệnh thông qua ssh
Có một lệnh linux, được đặt tên history
, cho phép bạn xem các lệnh nào đã được nhập cho đến thời điểm đó. Hãy thử gõ history
vào một thiết bị đầu cuối để xem tất cả các lệnh cho đến thời điểm đó. Nó có thể giúp nếu bạn đã root .
Để tìm kiếm một lệnh cụ thể, hãy thử:history | grep command-name
Để liệt kê tất cả các lệnh sau ssh :fc -l ssh
Bạn cũng có thể chỉnh sửa các lệnh bằng vi (chưa thử vim, mặc dù tôi cho rằng nó cũng hoạt động):fc -e vi
Bạn cũng có thể xóa lịch sử :history -c
LƯU Ý: Nếu bạn không phải là người hâm mộ của lệnh history
, thì cũng có một tệp trong thư mục chính của bạn ( cd ~
), được gọi là .bash_history (nếu bạn đang sử dụng bash) mà bạn có thể cat
thấy tất cả những gì đã được nhập vào bash shell.
unset HISTFILE
vào bash, và sau đó lịch sử bash của họ sẽ không được ghi lại.