Điều gì ngăn máy chủ của tôi có thể liên lạc được từ internet?


0

Tôi có 3 thiết bị trong mạng gia đình; Netgear ReadyNAS, Raspberry Pi [Pi1] chạy Raspbian Debian và Raspberry Pi [Pi2] chạy XBMC mà tôi nghĩ cũng dựa trên Debian.

Tôi đã thiết lập 3 quy tắc chuyển tiếp cổng tại bộ định tuyến và bây giờ có thể kết nối với ReadyNas & Pi1 mà không gặp sự cố qua web.

Pi2 không liên lạc được, kết nối bị từ chối. Tôi đã chỉ lại quy tắc hoạt động cho ReadyNas cho Pi2 và nó vẫn không hoạt động khiến tôi tin rằng đó là một vấn đề trên Pi. Tôi đã thử cả cổng 22 (SSH) & 8001 (máy chủ web)

Trong nội bộ tôi có thể kết nối với Pi2 mà không gặp vấn đề gì.

Dịch vụ tôi quan tâm nhất là SSH trên cổng 22 đã được sử dụng cho hầu hết các thử nghiệm của tôi. Cuối cùng, tôi cũng muốn chuyển tiếp các cổng máy chủ web.

điều gì sai?


1
Dịch vụ nào bạn đang cố gắng kết nối trên pi thứ hai của mình?
JNevill

1
Bạn có thể truy cập bất kỳ trang web từ Pi2?
abacabadabacaba

1
OpenSSH có được cài đặt trên pi thứ hai không? Bạn nói đó là bản cài đặt XBMC, nó là openelec hay Raspbmc hay đại loại như thế?
JNevill

1
quy tắc iptables trên pi2?
ssnobody

1
Khi bạn nói "Bên trong tôi có thể kết nối với Pi2 mà không gặp vấn đề gì." bạn có nghĩa là bạn có thể ssh ví dụ từ Pi1 đến Pi2? Nếu vậy, có thể có một số quy tắc AllowUsers trong sshd_config để hạn chế quyền truy cập hoặc quy tắc iptables.
tonioc

Câu trả lời:


1

Bạn nên kiểm tra các quy tắc tường lửa của mình trên XMBC Pi. Lý do là vì, ngoài các hầm bảo mật, một số hộp được cấu hình sẵn ngăn chặn tất cả các kết nối có nguồn gốc từ bên ngoài mạng LAN của một người.

Lệnh để làm điều này là

  iptables -t filter -L -n -v

và tương tự cho các bảng khác, natmangle . Nếu bạn có thể hành động theo các quy tắc này, thì đây là giải pháp đơn giản nhất.

Ngoài ra, nếu bộ định tuyến của bạn chạy phần mềm như dd-wrt, OpenWrt, Tomato, v.v., thì quy tắc sau trên bộ định tuyến

 iptables -t nat -A POSTROUTING -o LAN_IFACE -s ! 192.168.0.0/24 -d 192.168.0.15 -p tcp --dport 22 -j MASQUERADE

Điều này giả định rằng mạng gia đình của bạn là 192.168.0.0/24, rằng Pi tính toán lại là 192.168.0.15 và giao diện LAN của bộ định tuyến được gọi là LAN_IFACE. Quy tắc chỉ đơn giản là viết lại nguồn gốc của gói đến từ chính bộ định tuyến (192.168.0.1 theo các giả định ở trên), do đó lừa XMBC để nghĩ rằng các kết nối được khởi tạo cục bộ, thay vì từ xa.

Cuối cùng, nếu bộ định tuyến của bạn không cho phép ở trên, nếu bạn có một số máy Linux khác (như, tôi đoán là Pi đầu tiên), bạn có thể

  1. cổng chuyển tiếp các kết nối cho Pi2 tới một số cổng được đánh số cao của Pi1

  2. chuyển hướng các gói này, sau khi giả mạo, đến Pi2 và cổng thích hợp của nó.

Lần này, trên mỗi cổng, bạn cần hai lệnh: chúng ta hãy xem xét lại ssh và chúng ta hãy nói rằng bộ định tuyến có các kết nối ssh chuyển tiếp cổng cho Pi2 đến cổng 51111 của Pi1 (192.168.0.10 giáp1111). Sau đó:

  iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 51111 -j DNAT --to 192.168.0.15:22
  iptables -A FORWARD -p tcp -d 192.168.0.15 --dport 22 -j ACCEPT

Chỉ cần đảm bảo rằng bạn đã cho phép chuyển tiếp trên Pi1,

  sysctl net.ipv4.conf.eth0.forwarding=1

Có một quy tắc "bỏ" mọi kết nối từ bên ngoài mạng cục bộ. Cảm ơn sự giúp đỡ của bạn
G-.
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.