Yêu cầu socat lắng nghe các kết nối từ một địa chỉ IP duy nhất


8
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:


13

Bạn có thể thêm rangetù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_forwardtùy chọn và xác định quy tắc chung cho vnc_forwarddị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 socatsẽ bỏ qua chúng (với một cảnh báo) nếu chúng không đến từ 8.8.8.8.


WOW - điều đó giải quyết vấn đề của tôi. cảm ơn rất nhiều!!

5

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

Ví dụ thứ 2 của bạn không trả lời câu hỏi. OP muốn hạn chế các địa chỉ máy khách được phép kết nối với máy chủ. Với bind=8888má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.
maxschlepzig

Điều này là do tiêu đề của câu hỏi là sai: listen connections from a single IP addresskhông có ý nghĩa, bạn không lắng nghe địa chỉ IP mà bạn không sở hữu.
Xorax

3

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.


Cảm ơn bạn. Nếu tôi có thể sử dụng iptables tôi cũng sẽ sử dụng nó. Nhưng hãy nhớ tại sao tôi lại đề cập đến bộ vi xử lý, họ loại bỏ tất cả các công cụ như IPTables, SELinux, v.v. bởi vì các thiết bị nhúng vi mô của nó. kết quả là bạn chỉ còn vài công cụ như socat mà thôi. Nhưng cảm ơn bạn.

2
Tôi hiểu rằng không phải tất cả các công cụ sẽ có sẵn theo mặc định trên một số thiết bị nhưng trong trường hợp đó tôi sẽ khuyên bạn nên định cấu hình tường lửa / bộ định tuyến thay thế để tránh các cuộc tấn công DDoS. Tôi thích câu trả lời của @ Stéfane rằng có thể bỏ qua các phiên có nguồn gốc từ các nguồn khác nhưng bộ vi xử lý của bạn vẫn cần thực hiện một số xử lý.
Lambert

1
@YumYumYum - những công cụ không phải là - đó là những móc nhân tích hợp. Nếu bạn không có bộ lọc mạng, và rắc rối của bạn liên quan đến một thiết bị năng lượng thấp và phát hiện / bảo vệ xâm nhập, thì bạn có thể đặt cược rằng việc thực hiện công việc đó trong không gian người dùng sẽ làm tổn thương thiết bị nhỏ đó nhiều hơn những gì nó sẽ làm không gian hạt nhân. Bạn nên xây dựng một kernel phù hợp hơn với bạn.
mikeerv

0

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.

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.