SSH là giao thức phổ biến và hiệu quả cho phép đăng nhập và quản lý remote host từ máy local. Hướng dẫn này đi qua các lệnh để kiểm tra kết nối SSH đang hoạt động trên remote host.
Lưu ý: tùy cấu hình hệ thống, một số lệnh thảo luận có thể yêu cầu quyền root hoặc sudo.
1. Dùng lệnh WHO
Lệnh đầu để hiển thị kết nối SSH hoạt động là who.
Lệnh who dùng để hiện ai đang đăng nhập hệ thống. Nó cho phép xem user kết nối và địa chỉ IP nguồn.
Để dùng who, chỉ cần nhập who không tham số.
Trong output trên, bạn thấy một user debian kết nối qua tty và hai phiên SSH từ remote IP.
Bạn cũng có thể thêm tham số cho who để hiện chi tiết.
Ví dụ, để hiện last boot cho user kết nối, thêm cờ -b -u:
who -b -u
Lệnh who cung cấp thêm tùy chọn cho kết quả tùy chỉnh. Xem trang manual để biết thêm.
2. Dùng lệnh W
Lệnh tiếp theo để hiển thị trạng thái phiên SSH và user kết nối server là w. Khác với who, lệnh w cho thêm thông tin tiến trình chạy cho mỗi user.
Thêm vào đó, w cho thông tin về kết nối SSH idle, rất hữu ích khi cần chấm dứt chúng.
Nếu chạy lệnh không tùy chọn khác, bạn nhận output như dưới.
Trong ví dụ, w cho thông tin chi tiết: username, TTY method, source IP, thời gian login, idle time và hơn thế.
Giống who, bạn cũng dùng w với tham số. Bảng dưới hiện các tham số dùng với w.
| Tham số | Chức năng |
|---|---|
| -h, --no-header | Yêu cầu terminal không in header |
| -u, --no-current | Yêu cầu terminal bỏ qua username khi hiển thị tiến trình và CPU time user kết nối |
| -s, --short | Yêu cầu terminal in output rút gọn – loại bỏ login time, JCPU và PCPU |
| -f, --from | Bật/tắt tùy chọn FROM của print output |
| --help | Hiển thị tùy chọn/tham số w và thoát |
| -v, --version | Hiển thị thông tin phiên bản và thoát |
| user | Thu hẹp kết quả đến user chỉ định |
Ví dụ dưới dùng w với -s và -f để hiện output rút gọn phiên SSH hiện tại với phần FROM cắt bớt.
Mặc dù hiếm dùng, bạn cũng dùng w với tham số environment và file. Để học thêm, xem man pages.
3. Dùng lệnh Last
Bạn cũng dùng last để hiển thị tất cả phiên SSH kết nối. Lệnh last hiện danh sách user đăng nhập gần nhất.
Nó hoạt động bằng cách kiểm tra file chỉ định. Ví dụ, "/var/log/wtmp" hiện tất cả user đăng nhập/đăng xuất từ khi file tạo. Lệnh cũng cho thông tin phiên SSH tạo giữa client và server.
Cú pháp chung cho last:
last
Ví dụ.
Vì output từ last rất lớn, dùng grep để hiện chỉ phiên hoạt động.
Ví dụ:
last | grep still
Bạn cũng sửa output last để hiện chi tiết.
Ví dụ, để hiện username và domain đầy đủ, dùng cờ -w.
last -w
Lệnh last hỗ trợ nhiều tùy chọn. Đây là tùy chọn thường dùng nhất.
| Tham số | Chức năng |
|---|---|
| -a, --hostlast | Hiển thị hostname ở cột cuối |
| -d, --dns | Linux lưu hostname và IP remote host. Tham số này chuyển IP thành hostname |
| -file, --file | Yêu cầu last dùng file chỉ định khác /var/log/wtmp |
| -F, --fulltimes | Yêu cầu last in tất cả ngày/giờ login/logout |
| -i, --ip | Tương tự –dns, nhưng thay vì hiện hostname, hiện số IP |
4. Dùng lệnh netstat
Chúng ta không thể quên lệnh netstat. Netstat dùng để hiện tất cả kết nối mạng, interface mạng, bảng định tuyến và hơn thế.
Bạn cũng dùng netstat lọc phiên SSH established hoặc kết nối trên server Linux:
netstat | grep ssh
Lệnh trên chỉ hiện kết nối SSH established.
Để hiện tất cả kết nối bao gồm listening và non-listening, dùng cờ -a:
nestat -a | grep ssh
5. Dùng lệnh ss
Nếu muốn học thêm thông tin về phiên SSH kết nối, dùng lệnh ss, hiển thị dữ liệu socket, tương tự netstat.
Ví dụ, grep output từ ss với tùy chọn -a (all) để hiện tất cả phiên SSH kết nối. Cú pháp:
ss -a | grep ssh
Output trên hiển thị tất cả kết nối SSH trên remote host. Bao gồm SSHD daemon.
Để lọc kết nối SSH established, pipe output trở lại grep.
ss -a | grep ssh | grep ESTAB
Các lệnh trên chỉ trả về kết nối SSH hoạt động.
Lệnh ss cũng có hàng tá tùy chọn khác để học về kết nối server hoạt động. Ví dụ, dùng cờ -e hiện thêm về thông tin socket.
Kết luận
Thực hành tốt là giám sát remote host cho đăng nhập SSH trái phép và thực hiện hành động cần thiết, như bảo mật server hoặc tắt xác thực mật khẩu. Tiếp theo, bạn cũng có thể dùng reverse SSH tunneling cho phép kết nối ngoài vào PC.