socat TCP-LISTEN:22,fork TCP:192.168.0.15:5900
Làm thế nào tôi có thể nói với socat
, cổng 22 chỉ được tin cậy từ địa chỉ IP từ xa 8.8.8.8 và nó không nên chấp nhận kết nối từ các địa chỉ IP khác? Đây là trên một máy chủ Linux.
socat TCP-LISTEN:22,fork TCP:192.168.0.15:5900
Làm thế nào tôi có thể nói với socat
, cổng 22 chỉ được tin cậy từ địa chỉ IP từ xa 8.8.8.8 và nó không nên chấp nhận kết nối từ các địa chỉ IP khác? Đây là trên một máy chủ Linux.
Câu trả lời:
Bạn có thể thêm range
tùy chọn vào địa chỉ nghe socat:
socat TCP-LISTEN:22,fork,range=8.8.8.8/32 TCP:192.168.0.15:5900
Hoặc bạn có thể thêm tcpwrap=vnc_forward
tùy chọn và xác định quy tắc chung cho vnc_forward
dịch vụ đó theo hosts_access (5) .
Điều đó sẽ không ngăn các kết nối tiếp cận socat
, nhưng socat
sẽ bỏ qua chúng (với một cảnh báo) nếu chúng không đến từ 8.8.8.8.
Một cái gì đó như thế này hoạt động với tôi để làm cho socat chỉ nghe trên localhost.
socat TCP-LISTEN:22,fork,bind=127.0.0.1 TCP:192.168.0.15:5900
Vì vậy, bạn có thể thử điều này.
socat TCP-LISTEN:22,fork,bind=8.8.8.8 TCP:192.168.0.15:5900
bind=8888
máy chủ xã hội sẽ cố gắng liên kết với giao diện cục bộ 8.8.8.8 - không tồn tại ở phía máy chủ. Vì vậy, range=
như được sử dụng trong câu trả lời được chấp nhận là con đường để đi.
listen connections from a single IP address
không có ý nghĩa, bạn không lắng nghe địa chỉ IP mà bạn không sở hữu.
Hầu hết mọi người sử dụng tường lửa cho điều đó. Có một cái nhìn iptables
để hạn chế lưu lượng truy cập vào cổng 22 tức là:
iptables -I INPUT -p tcp '!' -s 8.8.8.8 --dport 22 -j REJECT
Hoặc, nếu tường lửa đã bị hạn chế, chỉ cho phép một địa chỉ:
iptables -A INPUT -p tcp -s 8.8.8.8 --dport 22 -j ACCEPT
Xin lưu ý rằng đây không phải là cấu hình đầy đủ cho tường lửa iptables, trước tiên bạn cần thiết lập cấu hình phù hợp trước khi sử dụng ở trên.
Nếu mục tiêu chính của bạn là bảo mật và bạn điều khiển máy khách thì kết nối với máy chủ socat của bạn thông qua đường hầm SSL là đặt cược an toàn hơn, khiến máy chủ xác minh chứng chỉ ứng dụng khách trước khi chấp nhận kết nối.
Gần đây tôi đã cố gắng bảo mật thiết lập máy khách / máy chủ.
Hướng dẫn này giải thích thiết lập rõ ràng
http://www.dest-unreach.org/socat/doc/socat-openssltunnel.html
Một sai lệch so với các hướng dẫn mà tôi tìm thấy là thư viện SSL máy khách của bạn sẽ từ chối khóa máy chủ theo mặc định do bản vá cho logjam
Áp dụng những điều sau vào máy chủ PEM làm cho mọi thứ hoạt động
openssl dhparam 2048 >> "$FILENAME".pem
Cơ chế trao đổi dựa trên khóa này có thẩm quyền hơn nhiều khi xác thực các máy chủ qua xác thực dựa trên IP.