Lời khuyên, ví dụ thực tế và đường hầm SSH

Lời khuyên, ví dụ thực tế và đường hầm SSH
Ví dụ thực tế SSH, điều này sẽ nâng kỹ năng quản trị hệ thống từ xa của bạn lên một tầm cao mới. Các lệnh và mẹo sẽ không chỉ giúp sử dụng SSH, mà còn điều hướng mạng thành thạo hơn.

Biết một số thủ thuật ssh hữu ích cho bất kỳ quản trị viên hệ thống, kỹ sư mạng hoặc chuyên gia bảo mật nào.

Ví dụ SSH thực tế

  1. Proxy vớ SSH
  2. Đường hầm SSH (chuyển tiếp cổng)
  3. Đường hầm SSH đến máy chủ thứ ba
  4. Đảo ngược đường hầm SSH
  5. Proxy ngược SSH
  6. Cài đặt VPN qua SSH
  7. Sao chép khóa SSH (ssh-copy-id)
  8. Thực thi lệnh từ xa (không tương tác)
  9. Chụp và xem gói từ xa trong Wireshark
  10. Sao chép thư mục cục bộ sang máy chủ từ xa thông qua SSH
  11. Ứng dụng GUI từ xa với Chuyển tiếp SSH X11
  12. Sao chép tệp từ xa bằng rsync và SSH
  13. SSH qua mạng Tor
  14. Phiên bản SSH tới EC2
  15. Chỉnh sửa tệp văn bản bằng VIM qua ssh/scp
  16. Gắn SSH từ xa làm thư mục cục bộ với SSHFS
  17. Ghép kênh SSH với ControlPath
  18. Truyền phát video qua SSH bằng VLC và SFTP
  19. Xác thực hai yếu tố
  20. Nhảy máy chủ bằng SSH và -J
  21. Chặn các nỗ lực tấn công SSH bằng cách sử dụng iptables
  22. SSH Escape để thay đổi chuyển tiếp cổng

cơ bản đầu tiên

Phân tích dòng lệnh SSH

Ví dụ sau sử dụng các tham số phổ biến thường gặp khi kết nối với máy chủ từ xa SSH.

localhost:~$ ssh -v -p 22 -C neo@remoteserver

  • -v: Đầu ra gỡ lỗi đặc biệt hữu ích khi phân tích các vấn đề xác thực. Có thể được sử dụng nhiều lần để hiển thị thông tin bổ sung.
  • - p 22: cổng kết nối đến một máy chủ SSH từ xa. 22 không cần phải được chỉ định vì đây là giá trị mặc định, nhưng nếu giao thức nằm trên một số cổng khác thì chúng tôi chỉ định nó bằng tham số -p. Cổng nghe được chỉ định trong tệp sshd_config trong định dạng Port 2222.
  • -C: Nén để kết nối. Nếu bạn có kết nối chậm hoặc xem nhiều văn bản, điều này có thể tăng tốc độ kết nối.
  • neo@: Dòng trước ký hiệu @ cho biết tên người dùng để xác thực trên máy chủ từ xa. Nếu bạn không chỉ định nó, nó sẽ mặc định là tên người dùng của tài khoản bạn hiện đang đăng nhập (~$whoami). Người dùng cũng có thể được chỉ định bằng tham số -l.
  • remoteserver: tên của máy chủ để kết nối ssh, đây có thể là tên miền đủ điều kiện, địa chỉ IP hoặc bất kỳ máy chủ nào trong tệp máy chủ cục bộ. Để kết nối với máy chủ hỗ trợ cả IPv4 và IPv6, bạn có thể thêm tham số vào dòng lệnh -4 hoặc -6 để có độ phân giải phù hợp.

Tất cả các tham số trên là tùy chọn ngoại trừ remoteserver.

Sử dụng tập tin cấu hình

Mặc dù nhiều người đã quen thuộc với tập tin sshd_config, ngoài ra còn có tệp cấu hình máy khách cho lệnh ssh. Giá trị mặc định ~/.ssh/config, nhưng nó có thể được định nghĩa là tham số cho một tùy chọn -F.

Host *
     Port 2222

Host remoteserver
     HostName remoteserver.thematrix.io
     User neo
     Port 2112
     IdentityFile /home/test/.ssh/remoteserver.private_key

Có hai mục máy chủ trong tệp cấu hình ssh ví dụ ở trên. Cái đầu tiên có nghĩa là tất cả các máy chủ, tất cả đều sử dụng tham số cấu hình Cổng 2222. Cái thứ hai nói rằng đối với máy chủ máy chủ từ xa nên sử dụng tên người dùng, cổng, FQDN và IdentityFile khác.

Tệp cấu hình có thể tiết kiệm rất nhiều thời gian gõ bằng cách cho phép tự động áp dụng cấu hình nâng cao khi kết nối với các máy chủ cụ thể.

Sao chép tệp qua SSH bằng SCP

Máy khách SSH đi kèm với hai công cụ rất tiện dụng khác để sao chép tệp qua kết nối ssh được mã hóa. Xem bên dưới để biết ví dụ về cách sử dụng tiêu chuẩn của lệnh scp và sftp. Lưu ý rằng nhiều tùy chọn ssh cũng áp dụng cho các lệnh này.

localhost:~$ scp mypic.png neo@remoteserver:/media/data/mypic_2.png

Trong ví dụ này, tập tin mypic.png sao chép vào máy chủ từ xa vào thư mục /phương tiện/dữ liệu và đổi tên thành mypic_2.png.

Đừng quên sự khác biệt trong tham số cổng. Đây là nơi nhiều người bị bắt khi ra mắt scp từ dòng lệnh. Đây là tham số cổng -P, А не -p, giống như trong ứng dụng khách ssh! Bạn sẽ quên, nhưng đừng lo lắng, mọi người đều quên.

Dành cho những ai đã quen với console ftp, nhiều lệnh tương tự trong sftp... Bạn có thể làm đẩy, đặt и lsnhư trái tim mong muốn.

sftp neo@remoteserver

Ví dụ thực tế

Trong nhiều ví dụ này, kết quả có thể đạt được bằng các phương pháp khác nhau. Như trong tất cả của chúng tôi sách giáo khoa và các ví dụ, ưu tiên dành cho các ví dụ thực tế chỉ đơn giản thực hiện công việc của chúng.

1. Proxy vớ SSH

Tính năng SSH Proxy là số 1 vì một lý do chính đáng. Nó mạnh hơn nhiều người nhận ra và cho phép bạn truy cập vào bất kỳ hệ thống nào mà máy chủ từ xa có quyền truy cập, sử dụng hầu như mọi ứng dụng. Máy khách ssh có thể tạo đường hầm lưu lượng truy cập thông qua proxy SOCKS bằng một lệnh đơn giản. Điều quan trọng là phải hiểu rằng lưu lượng truy cập đến các hệ thống từ xa sẽ đến từ một máy chủ từ xa, điều này sẽ được chỉ ra trong nhật ký máy chủ web.

localhost:~$ ssh -D 8888 user@remoteserver

localhost:~$ netstat -pan | grep 8888
tcp        0      0 127.0.0.1:8888       0.0.0.0:*               LISTEN      23880/ssh

Ở đây chúng tôi chạy proxy vớ trên cổng TCP 8888, lệnh thứ hai kiểm tra xem cổng có hoạt động ở chế độ nghe hay không. 127.0.0.1 chỉ ra rằng dịch vụ chỉ chạy trên localhost. Chúng tôi có thể sử dụng một lệnh hơi khác để nghe trên tất cả các giao diện, bao gồm ethernet hoặc wifi, điều này sẽ cho phép các ứng dụng khác (trình duyệt, v.v.) trên mạng của chúng tôi kết nối với dịch vụ proxy thông qua proxy ssh vớ.

localhost:~$ ssh -D 0.0.0.0:8888 user@remoteserver

Bây giờ chúng ta có thể định cấu hình trình duyệt để kết nối với proxy vớ. Trong Firefox, chọn Cài đặt | Cơ bản | Thiết lạp mạng lưới. Chỉ định địa chỉ IP và cổng để kết nối.

Lời khuyên, ví dụ thực tế và đường hầm SSH

Vui lòng lưu ý tùy chọn ở cuối biểu mẫu để yêu cầu DNS của trình duyệt của bạn cũng đi qua proxy SOCKS. Nếu bạn đang sử dụng máy chủ proxy để mã hóa lưu lượng truy cập web trên mạng cục bộ của mình, có thể bạn sẽ muốn chọn tùy chọn này để các yêu cầu DNS được chuyển qua kết nối SSH.

Kích hoạt proxy vớ trong Chrome

Việc khởi chạy Chrome với một số tham số dòng lệnh nhất định sẽ kích hoạt proxy vớ cũng như tạo đường hầm cho các yêu cầu DNS từ trình duyệt. Hãy tin tưởng nhưng hãy kiểm tra. Sử dụng tcpdump để kiểm tra xem các truy vấn DNS không còn hiển thị nữa.

localhost:~$ google-chrome --proxy-server="socks5://192.168.1.10:8888"

Sử dụng các ứng dụng khác bằng proxy

Hãy nhớ rằng nhiều ứng dụng khác cũng có thể sử dụng proxy vớ. Trình duyệt web đơn giản là phổ biến nhất trong số đó. Một số ứng dụng có các tùy chọn cấu hình để kích hoạt máy chủ proxy. Những người khác cần một chút trợ giúp với chương trình trợ giúp. Ví dụ, móc khóa cho phép bạn chạy qua proxy vớ Microsoft RDP, v.v.

localhost:~$ proxychains rdesktop $RemoteWindowsServer

Các tham số cấu hình proxy của vớ được đặt trong tệp cấu hình proxychains.

Gợi ý: nếu bạn sử dụng máy tính từ xa từ Linux trên Windows? Hãy thử khách hàng RDP miễn phí. Đây là một cách thực hiện hiện đại hơn rdesktop, với trải nghiệm mượt mà hơn rất nhiều.

Tùy chọn sử dụng SSH qua proxy vớ

Bạn đang ngồi trong quán cà phê hoặc khách sạn - và buộc phải sử dụng WiFi khá không đáng tin cậy. Chúng tôi khởi chạy proxy ssh cục bộ từ máy tính xách tay và cài đặt đường hầm ssh vào mạng gia đình trên Rasberry Pi cục bộ. Sử dụng trình duyệt hoặc các ứng dụng khác được định cấu hình cho proxy vớ, chúng tôi có thể truy cập bất kỳ dịch vụ mạng nào trên mạng gia đình hoặc truy cập Internet thông qua kết nối gia đình. Mọi thứ giữa máy tính xách tay và máy chủ gia đình của bạn (qua Wi-Fi và Internet đến nhà bạn) đều được mã hóa trong đường hầm SSH.

2. Đường hầm SSH (chuyển tiếp cổng)

Ở dạng đơn giản nhất, đường hầm SSH chỉ cần mở một cổng trên hệ thống cục bộ của bạn để kết nối với một cổng khác ở đầu kia của đường hầm.

localhost:~$ ssh  -L 9999:127.0.0.1:80 user@remoteserver

Chúng ta hãy nhìn vào thông số -L. Nó có thể được coi là khía cạnh địa phương của việc lắng nghe. Vì vậy, trong ví dụ trên, cổng 9999 đang lắng nghe phía localhost và được chuyển tiếp qua cổng 80 tới máy chủ từ xa. Xin lưu ý rằng 127.0.0.1 đề cập đến localhost trên máy chủ từ xa!

Chúng ta hãy bước lên bậc thang này. Ví dụ sau giao tiếp các cổng nghe với các máy chủ khác trên mạng cục bộ.

localhost:~$ ssh  -L 0.0.0.0:9999:127.0.0.1:80 user@remoteserver

Trong các ví dụ này, chúng tôi đang kết nối với một cổng trên máy chủ web, nhưng đây có thể là máy chủ proxy hoặc bất kỳ dịch vụ TCP nào khác.

3. Đường hầm SSH tới máy chủ của bên thứ ba

Chúng ta có thể sử dụng các tham số tương tự để kết nối đường hầm từ máy chủ từ xa đến dịch vụ khác chạy trên hệ thống thứ ba.

localhost:~$ ssh  -L 0.0.0.0:9999:10.10.10.10:80 user@remoteserver

Trong ví dụ này, chúng tôi đang chuyển hướng một đường hầm từ máy chủ từ xa đến máy chủ web chạy trên 10.10.10.10. Lưu lượng truy cập từ máy chủ từ xa đến 10.10.10.10 không còn trong đường hầm SSH. Máy chủ web vào ngày 10.10.10.10 sẽ coi máy chủ từ xa là nguồn yêu cầu web.

4. Đảo ngược đường hầm SSH

Ở đây chúng tôi sẽ định cấu hình một cổng nghe trên máy chủ từ xa sẽ kết nối trở lại cổng cục bộ trên localhost của chúng tôi (hoặc hệ thống khác).

localhost:~$ ssh -v -R 0.0.0.0:1999:127.0.0.1:902 192.168.1.100 user@remoteserver

Phiên SSH này thiết lập kết nối từ cổng 1999 trên máy chủ từ xa đến cổng 902 trên máy khách cục bộ của chúng tôi.

5. Proxy ngược SSH

Trong trường hợp này, chúng tôi đang thiết lập proxy vớ trên kết nối ssh của mình, nhưng proxy đang lắng nghe ở đầu từ xa của máy chủ. Các kết nối tới proxy từ xa này hiện xuất hiện từ đường hầm dưới dạng lưu lượng truy cập từ máy chủ cục bộ của chúng tôi.

localhost:~$ ssh -v -R 0.0.0.0:1999 192.168.1.100 user@remoteserver

Khắc phục sự cố với đường hầm SSH từ xa

Nếu bạn gặp vấn đề với các tùy chọn SSH từ xa đang hoạt động, hãy kiểm tra với netstat, cổng nghe được kết nối với những giao diện nào khác. Mặc dù chúng tôi đã chỉ ra 0.0.0.0 trong các ví dụ, nhưng nếu giá trị Cổng vào в sshd_config đặt thành Không, thì người nghe sẽ chỉ bị ràng buộc với localhost (127.0.0.1).

Cảnh báo an ninh

Xin lưu ý rằng bằng cách mở các đường hầm và proxy tất, tài nguyên mạng nội bộ có thể bị truy cập bởi các mạng không đáng tin cậy (chẳng hạn như Internet!). Đây có thể là một rủi ro bảo mật nghiêm trọng, vì vậy hãy đảm bảo bạn hiểu người nghe là gì và họ có quyền truy cập vào những gì.

6. Cài đặt VPN qua SSH

Một thuật ngữ phổ biến giữa các chuyên gia về phương pháp tấn công (pentesters, v.v.) là “điểm tựa trong mạng”. Khi kết nối được thiết lập trên một hệ thống, hệ thống đó sẽ trở thành cổng để truy cập thêm vào mạng. Một điểm tựa cho phép bạn di chuyển theo chiều rộng.

Để có chỗ đứng như vậy, chúng ta có thể sử dụng proxy SSH và móc khóa, tuy nhiên vẫn có một số hạn chế. Ví dụ: sẽ không thể làm việc trực tiếp với ổ cắm, vì vậy chúng tôi sẽ không thể quét các cổng trong mạng thông qua Nmap SYN.

Sử dụng tùy chọn VPN nâng cao hơn này, kết nối sẽ giảm xuống còn cấp 3. Sau đó, chúng ta có thể định tuyến lưu lượng truy cập qua đường hầm bằng cách sử dụng định tuyến mạng tiêu chuẩn.

Phương pháp sử dụng ssh, iptables, tun interfaces và định tuyến.

Đầu tiên bạn cần thiết lập các thông số này trong sshd_config. Vì chúng tôi đang thực hiện các thay đổi đối với giao diện của cả hệ thống từ xa và máy khách, nên chúng tôi cần quyền root cả XNUMX bên.

PermitRootLogin yes
PermitTunnel yes

Sau đó, chúng tôi sẽ thiết lập kết nối ssh bằng cách sử dụng tham số yêu cầu khởi tạo thiết bị điều chỉnh.

localhost:~# ssh -v -w any root@remoteserver

Bây giờ chúng ta sẽ có một thiết bị điều chỉnh khi hiển thị giao diện (# ip a). Bước tiếp theo sẽ thêm địa chỉ IP vào giao diện đường hầm.

Phía máy khách SSH:

localhost:~# ip addr add 10.10.10.2/32 peer 10.10.10.10 dev tun0
localhost:~# ip tun0 up

Phía máy chủ SSH:

remoteserver:~# ip addr add 10.10.10.10/32 peer 10.10.10.2 dev tun0
remoteserver:~# ip tun0 up

Bây giờ chúng tôi có đường dẫn trực tiếp đến máy chủ khác (route -n и ping 10.10.10.10).

Bạn có thể định tuyến bất kỳ mạng con nào thông qua máy chủ ở phía bên kia.

localhost:~# route add -net 10.10.10.0 netmask 255.255.255.0 dev tun0

Ở phía xa, bạn phải kích hoạt ip_forward и iptables.

remoteserver:~# echo 1 > /proc/sys/net/ipv4/ip_forward
remoteserver:~# iptables -t nat -A POSTROUTING -s 10.10.10.2 -o enp7s0 -j MASQUERADE

Bùm! VPN qua đường hầm SSH ở lớp mạng 3. Bây giờ đó là một chiến thắng.

Nếu có vấn đề xảy ra, hãy sử dụng tcpdump и pingđể xác định nguyên nhân. Vì chúng ta đang chơi ở lớp 3 nên các gói icmp của chúng ta sẽ đi qua đường hầm này.

7. Sao chép khóa SSH (ssh-copy-id)

Có một số cách để thực hiện việc này, nhưng lệnh này tiết kiệm thời gian bằng cách không sao chép tệp theo cách thủ công. Nó chỉ đơn giản sao chép ~/.ssh/id_rsa.pub (hoặc khóa mặc định) từ hệ thống của bạn sang ~/.ssh/authorized_keys trên một máy chủ từ xa.

localhost:~$ ssh-copy-id user@remoteserver

8. Thực thi lệnh từ xa (không tương tác)

đội ssh Có thể liên kết với các lệnh khác để có giao diện chung, thân thiện với người dùng. Chỉ cần thêm lệnh bạn muốn chạy trên máy chủ từ xa làm tham số cuối cùng trong dấu ngoặc kép.

localhost:~$ ssh remoteserver "cat /var/log/nginx/access.log" | grep badstuff.php

Trong ví dụ này grep được thực thi trên hệ thống cục bộ sau khi nhật ký được tải xuống qua kênh ssh. Nếu file lớn thì chạy sẽ thuận tiện hơn grep ở phía xa bằng cách đặt cả hai lệnh trong dấu ngoặc kép.

Một ví dụ khác thực hiện chức năng tương tự như ssh-copy-id từ ví dụ 7.

localhost:~$ cat ~/.ssh/id_rsa.pub | ssh remoteserver 'cat >> .ssh/authorized_keys'

9. Chụp và xem gói từ xa trong Wireshark

Tôi lấy một cái của chúng tôi ví dụ về tcpdump. Sử dụng nó để chụp các gói từ xa và hiển thị kết quả trực tiếp trong GUI Wireshark cục bộ.

:~$ ssh root@remoteserver 'tcpdump -c 1000 -nn -w - not port 22' | wireshark -k -i -

10. Sao chép thư mục cục bộ sang máy chủ từ xa thông qua SSH

Một thủ thuật hay để nén thư mục bằng cách sử dụng bzip2 (đây là tùy chọn -j trong lệnh tar), sau đó truy xuất luồng bzip2 ở phía bên kia, tạo một thư mục trùng lặp trên máy chủ từ xa.

localhost:~$ tar -cvj /datafolder | ssh remoteserver "tar -xj -C /datafolder"

11. Ứng dụng GUI từ xa với Chuyển tiếp SSH X11

Nếu X được cài đặt trên máy khách và máy chủ từ xa thì bạn có thể thực thi lệnh GUI từ xa bằng một cửa sổ trên màn hình cục bộ của mình. Tính năng này đã có từ lâu nhưng vẫn rất hữu ích. Khởi chạy trình duyệt web từ xa hoặc thậm chí bảng điều khiển VMWawre Workstation như tôi làm trong ví dụ này.

localhost:~$ ssh -X remoteserver vmware

Chuỗi bắt buộc X11Forwarding yes trong tập tin sshd_config.

12. Sao chép file từ xa bằng rsync và SSH

rsync thuận tiện hơn nhiều scp, nếu bạn cần sao lưu định kỳ một thư mục, một số lượng lớn tệp hoặc các tệp rất lớn. Có chức năng khôi phục sau lỗi truyền và chỉ sao chép các tệp đã thay đổi, giúp tiết kiệm lưu lượng và thời gian.

Ví dụ này sử dụng nén gzip (-z) và chế độ lưu trữ (-a), cho phép sao chép đệ quy.

:~$ rsync -az /home/testuser/data remoteserver:backup/

13. SSH qua mạng Tor

Mạng Tor ẩn danh có thể tạo đường hầm lưu lượng SSH bằng lệnh torsocks. Lệnh sau sẽ chuyển proxy ssh thông qua Tor.

localhost:~$ torsocks ssh myuntracableuser@remoteserver

Áo khoác ngoài sẽ sử dụng cổng 9050 trên localhost cho proxy. Như mọi khi, khi sử dụng Tor, bạn cần kiểm tra nghiêm túc lưu lượng truy cập nào đang được tạo đường hầm và các vấn đề bảo mật vận hành (opsec) khác. Truy vấn DNS của bạn đi đâu?

14. Phiên bản SSH tới EC2

Để kết nối với phiên bản EC2, bạn cần có khóa riêng. Tải xuống (phần mở rộng .pem) từ bảng điều khiển Amazon EC2 và thay đổi quyền (chmod 400 my-ec2-ssh-key.pem). Giữ chìa khóa ở nơi an toàn hoặc đặt nó trong thư mục riêng của bạn ~/.ssh/.

localhost:~$ ssh -i ~/.ssh/my-ec2-key.pem ubuntu@my-ec2-public

Thông số -i chỉ cần yêu cầu khách hàng ssh sử dụng khóa này. Tài liệu ~/.ssh/config Lý tưởng để tự động định cấu hình việc sử dụng khóa khi kết nối với máy chủ ec2.

Host my-ec2-public
   Hostname ec2???.compute-1.amazonaws.com
   User ubuntu
   IdentityFile ~/.ssh/my-ec2-key.pem

15. Chỉnh sửa file văn bản bằng VIM qua ssh/scp

Dành cho tất cả những người yêu thích vim Mẹo này sẽ tiết kiệm được thời gian. Bằng cách sử dụng vim các tập tin được chỉnh sửa thông qua scp bằng một lệnh. Phương pháp này chỉ đơn giản là tạo tệp cục bộ trong /tmpvà sau đó sao chép lại sau khi chúng tôi lưu nó từ vim.

localhost:~$ vim scp://user@remoteserver//etc/hosts

Lưu ý: định dạng hơi khác so với thông thường scp. Sau chủ nhà chúng ta có gấp đôi //. Đây là một tham chiếu đường dẫn tuyệt đối. Một dấu gạch chéo sẽ chỉ ra đường dẫn liên quan đến thư mục chính của bạn users.

**warning** (netrw) cannot determine method (format: protocol://[user@]hostname[:port]/[path])

Nếu bạn thấy lỗi này, hãy kiểm tra kỹ định dạng lệnh. Điều này thường có nghĩa là một lỗi cú pháp.

16. Gắn SSH từ xa làm thư mục cục bộ với SSHFS

Bằng phương tiện sshfs - máy khách hệ thống tập tin ssh - chúng tôi có thể kết nối một thư mục cục bộ với một vị trí từ xa với tất cả các tương tác tệp trong phiên được mã hóa ssh.

localhost:~$ apt install sshfs

Cài đặt gói trên Ubuntu và Debian sshfs, sau đó chỉ cần gắn vị trí từ xa vào hệ thống của chúng tôi.

localhost:~$ sshfs user@remoteserver:/media/data ~/data/

17. Ghép kênh SSH với ControlPath

Theo mặc định, nếu hiện có kết nối tới máy chủ từ xa bằng cách sử dụng ssh kết nối thứ hai bằng cách sử dụng ssh hoặc scp thiết lập một phiên mới với xác thực bổ sung. Lựa chọn ControlPath cho phép phiên hiện có được sử dụng cho tất cả các kết nối tiếp theo. Điều này sẽ tăng tốc đáng kể quá trình: hiệu ứng có thể nhận thấy ngay cả trên mạng cục bộ và thậm chí còn hơn thế khi kết nối với các tài nguyên từ xa.

Host remoteserver
        HostName remoteserver.example.org
        ControlMaster auto
        ControlPath ~/.ssh/control/%r@%h:%p
        ControlPersist 10m

ControlPath chỉ định ổ cắm để kiểm tra các kết nối mới để xem có phiên hoạt động nào không ssh. Tùy chọn cuối cùng có nghĩa là ngay cả sau khi bạn thoát khỏi bảng điều khiển, phiên hiện tại sẽ vẫn mở trong 10 phút, vì vậy trong thời gian này, bạn có thể kết nối lại trên ổ cắm hiện có. Để biết thêm thông tin, hãy xem trợ giúp. ssh_config man.

18. Truyền phát video qua SSH bằng VLC và SFTP

Kể cả người dùng lâu năm ssh и vlc (Video Lan Client) không phải lúc nào cũng biết đến tùy chọn tiện lợi này khi bạn thực sự cần xem video qua mạng. Trong phần cài đặt Tập tin | Luồng mạng mở chương trình vlc bạn có thể nhập vị trí như sftp://. Nếu cần mật khẩu, lời nhắc sẽ xuất hiện.

sftp://remoteserver//media/uploads/myvideo.mkv

19. Xác thực hai yếu tố

Xác thực hai yếu tố tương tự như tài khoản ngân hàng hoặc tài khoản Google của bạn áp dụng cho dịch vụ SSH.

Tất nhiên, ssh ban đầu có chức năng xác thực hai yếu tố, nghĩa là mật khẩu và khóa SSH. Ưu điểm của mã thông báo phần cứng hoặc ứng dụng Google Authenticator là nó thường là một thiết bị vật lý khác.

Xem hướng dẫn 8 phút của chúng tôi để sử dụng Google Authenticator và SSH.

20. Nhảy máy chủ bằng ssh và -J

Nếu việc phân đoạn mạng có nghĩa là bạn phải chuyển qua nhiều máy chủ ssh để đến mạng đích cuối cùng thì phím tắt -J sẽ giúp bạn tiết kiệm thời gian.

localhost:~$ ssh -J host1,host2,host3 [email protected]

Điều chính cần hiểu ở đây là lệnh này không giống với lệnh ssh host1, sau đó user@host1:~$ ssh host2 v.v. Tùy chọn -J sử dụng chuyển tiếp một cách khéo léo để buộc localhost thiết lập phiên với máy chủ tiếp theo trong chuỗi. Vì vậy, trong ví dụ trên, localhost của chúng ta được xác thực thành hosting4. Tức là, các khóa localhost của chúng tôi đã được sử dụng và phiên từ localhost đến Host4 được mã hóa hoàn toàn.

Đối với khả năng như vậy trong ssh_config chỉ định tùy chọn cấu hình ProxyNhảy. Nếu bạn thường xuyên phải đi qua nhiều máy chủ thì việc tự động hóa thông qua config sẽ tiết kiệm được rất nhiều thời gian.

21. Chặn các nỗ lực tấn công SSH bằng iptables

Bất kỳ ai đã quản lý dịch vụ SSH và xem nhật ký đều biết về số lượng các nỗ lực tấn công bạo lực xảy ra hàng giờ, hàng ngày. Một cách nhanh chóng để giảm tiếng ồn trong nhật ký là chuyển SSH sang một cổng không chuẩn. Thực hiện thay đổi đối với tập tin sshd_config thông qua tham số cấu hình Hải cảng##.

Với iptables Bạn cũng có thể dễ dàng chặn các nỗ lực kết nối với một cổng khi đạt đến một ngưỡng nhất định. Một cách dễ dàng để làm điều này là sử dụng OSSEC, bởi vì nó không chỉ chặn SSH mà còn thực hiện một loạt các biện pháp phát hiện xâm nhập dựa trên tên máy chủ (HIDS) khác.

22. SSH Escape để thay đổi chuyển tiếp cổng

Và ví dụ cuối cùng của chúng tôi ssh được thiết kế để thay đổi chuyển tiếp cổng một cách nhanh chóng trong phiên hiện có ssh. Hãy tưởng tượng kịch bản này. Bạn đang ở sâu trong mạng lưới; có thể đã nhảy qua nửa tá máy chủ và cần một cổng cục bộ trên máy trạm được chuyển tiếp tới Microsoft SMB của hệ thống Windows 2003 cũ (có ai nhớ ms08-67 không?).

Sự nhấp chuột enter, hãy thử nhập vào bảng điều khiển ~C. Đây là trình tự điều khiển phiên cho phép thực hiện các thay đổi đối với kết nối hiện có.

localhost:~$ ~C
ssh> -h
Commands:
      -L[bind_address:]port:host:hostport    Request local forward
      -R[bind_address:]port:host:hostport    Request remote forward
      -D[bind_address:]port                  Request dynamic forward
      -KL[bind_address:]port                 Cancel local forward
      -KR[bind_address:]port                 Cancel remote forward
      -KD[bind_address:]port                 Cancel dynamic forward
ssh> -L 1445:remote-win2k3:445
Forwarding port.

Ở đây bạn có thể thấy rằng chúng tôi đã chuyển tiếp cổng cục bộ 1445 sang máy chủ Windows 2003 mà chúng tôi tìm thấy trên mạng nội bộ. Bây giờ chỉ cần chạy msfconsolevà bạn có thể tiếp tục (giả sử bạn dự định sử dụng máy chủ này).

Hoàn thành

Những ví dụ, mẹo và lệnh này ssh nên đưa ra điểm khởi đầu; Thông tin thêm về từng lệnh và khả năng có sẵn trên các trang hướng dẫn (man ssh, man ssh_config, man sshd_config).

Tôi luôn bị mê hoặc bởi khả năng truy cập hệ thống và thực thi lệnh ở mọi nơi trên thế giới. Bằng cách phát triển kỹ năng của bạn với các công cụ như ssh bạn sẽ trở nên hiệu quả hơn trong bất kỳ trò chơi nào bạn chơi.

Nguồn: www.habr.com

Thêm một lời nhận xét