Làm cho sshd nghe một giao diện cụ thể


15

Trên máy của tôi, tôi đang sử dụng OpenVPN, sử dụng giao diện tun0. Tôi muốn sshd chỉ nghe trên giao diện này.

Tôi biết, tôi có thể chỉ định địa chỉ IP để nghe

/etc/ssh/sshd_config

với một

ListenAddress 0.0.0.0

chỉ thị Nhưng địa chỉ IP của tôi sẽ thay đổi, vì vậy tôi không thể chọn IP ở đây luôn hợp lệ. Tôi biết rằng tôi chỉ có thể khởi động trình nền khi VPN hoạt động - đó không phải là vấn đề.

Làm cách nào để tạo sshd chỉ nghe trên một giao diện cụ thể (tun0)?


2
Tường lửa tắt cổng 22 trên bất kỳ cổng nào không tun0?
NickW

Câu trả lời:


7

Bạn không thể làm điều đó trực tiếp vì sshd chỉ hiểu địa chỉ IP. Bạn có thể kết hợp một cái gì đó với nhau bằng cách sử dụng tập lệnh openvpn up

-up lệnh cmd Shell để chạy sau khi mở thiết bị TUN / TAP thành công (thay đổi UID của người dùng trước). Kịch bản lên rất hữu ích để chỉ định các lệnh tuyến đường định tuyến lưu lượng IP dành cho các mạng con riêng tồn tại ở đầu kia của kết nối VPN vào đường hầm ...

Xem thêm --downtùy chọn để dọn dẹp và các phần có liên quan của tài liệu chi tiết bảo mật tập lệnh, v.v.

Bạn sẽ thấy địa chỉ IP của thiết bị điều chỉnh được chuyển đến tập lệnh dưới dạng biến môi trường. Ngoài ra sshd có các tùy chọn trên dòng lệnh của biểu mẫu

-oSomeOption=SomeValue

-o tùy chọn Có thể được sử dụng để cung cấp tùy chọn ở định dạng được sử dụng trong tệp cấu hình. Điều này hữu ích để chỉ định các tùy chọn không có cờ dòng lệnh riêng biệt. Để biết chi tiết đầy đủ về các tùy chọn và giá trị của chúng, xem sshd_config (5)

Vì vậy, bạn có thể sử dụng

-o ListenAddress=<some address>

Có lẽ bạn có một số phương pháp nói chuyện với VPS của mình để khi điều này bị hỏng, bạn có thể liên hệ với máy chủ.


1
Hãy thử:-o ListenAddress=$(ip addr | awk '/inet/ && /tun0/{sub(/\/.*$/,"",$2); print $2}')
pjz

@pjz Tôi không nghĩ bạn cần phải làm điều đó vì tôi khá chắc chắn rằng địa chỉ IP của thiết bị có sẵn dưới dạng biến môi trường cho tập lệnh lên. Tôi chỉ không có công cụ để kiểm tra nó.
user9517 được hỗ trợGoFundMonica

1
Thông minh! IP được truyền cho tập lệnh lên dưới dạng ifconfig_local = 10.xx.xx.xx. Toàn bộ dữ liệu khác (dev_type = tun, common_name = myservername, ifconfig_remote, route_gateway_1, unsrusty_ip, ifconfig_local, proto_1, tls_serial_1, tls_serial_0 ...) được truyền cùng.
Philipp

Có tôi biết và bây giờ bạn cũng vậy :)
user9517 được hỗ trợGoFundMonica

3
Có lẽ bạn muốn chỉnh sửa câu trả lời của bạn và thêm tên biến env có liên quan? (dành cho độc giả tương lai)
Philipp
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.