Những gì có thể phụ thuộc vào những gì tường lửa cho phép.
Nếu tường lửa cho phép lưu lượng tùy ý trên cổng 443
Một số tường lửa sử dụng cách đơn giản và cho phép mọi thứ trên cổng 443. Nếu đúng như vậy, cách dễ nhất để truy cập máy chủ nhà của bạn là làm cho nó nghe các kết nối SSH trên cổng 443. Nếu máy của bạn được kết nối trực tiếp với Internet, chỉ cần thêm Port 443
vào /etc/ssh/sshd_config
hoặc /etc/sshd_config
ngay dưới dòng nói Port 22
. Nếu máy của bạn ở phía sau bộ định tuyến / tường lửa chuyển hướng các kết nối đến, hãy làm cho nó chuyển hướng các kết nối đến tới cổng 443 sang cổng 22 của máy chủ của bạn bằng một cái gì đó như
iptables -t nat -I PREROUTING -p tcp -i wan0 --dport 443 -j DNAT --to-destination 10.1.2.3:22
nơi wan0
là giao diện WAN trên router của bạn và 10.1.2.3 là địa chỉ IP của máy chủ trên mạng gia đình của bạn.
Nếu bạn muốn cho phép máy chủ gia đình nghe cả kết nối HTTPS và kết nối SSH trên cổng 443, có thể dễ dàng phân biệt lưu lượng SSH và HTTPS (trong SSH, máy chủ sẽ nói trước, trong khi ở HTTP và HTTPS, máy khách sẽ nói chuyện Đầu tiên). Xem http://blog.stalkr.net/2012/02/sshhttps-multiplexing-with-sshttp.html và http://wrouesnel.github.io/articles/Setting%20up%20sshttp/ để biết hướng dẫn về cách đặt này với sshttp và cũng có SSH trên cổng 80 hoặc 443 trong khi máy chủ web (nginx) đang chạy trên các cổng này
Nếu bạn có proxy web cho phép tạo đường hầm CONNECT
Một số tường lửa chặn tất cả các kết nối đi, nhưng cho phép duyệt web thông qua proxy cho phép phương thức HTTPCONNECT
có thể xuyên thủng lỗ hổng trên tường lửa một cách hiệu quả. Các CONNECT
phương pháp có thể được hạn chế đến các cảng nhất định, do đó bạn có thể cần phải kết hợp với lắng nghe trên cổng 443 như trên.
Để làm cho SSH đi qua proxy, bạn có thể sử dụng một công cụ như corkscrew . Trong của bạn ~/.ssh/config
, hãy thêm một ProxyCommand
dòng như bên dưới, nếu proxy web của bạn là http://web-proxy.work.example.com:3128
:
Host home
HostName mmm.dyndns.example.net
ProxyCommand corkscrew web-proxy.work.example.com 3128 %h %p
Gói SSH trong HTTP (S)
Một số tường lửa không cho phép lưu lượng SSH, ngay cả trên cổng 443. Để đối phó với những điều này, bạn cần ngụy trang hoặc đường hầm SSH vào thứ gì đó mà tường lửa cho phép. Xem http://dag.wiee.rs/howto/ssh-http-tunneling/ để biết hướng dẫn về cách làm này với proxytunnel .