Thiết lập hộp Linux làm WAP cho MyBookLive?


4

Tôi đã thừa hưởng một hộp Linux cũ cũng như MyBookLive và muốn cung cấp MyBookLive qua mạng không dây của tôi, chủ yếu sử dụng hộp Linux làm cổng.

Tôi vừa xóa hộp Linux (nhà) và cài đặt Ubuntu 12.04 trên đó. Thiết lập mạng của tôi hiện tại trông như thế này:

       (192.168.0.1
    netmask 255.255.255.0)     
ISP --- wireless router --- wlan0 on home (192.168.0.12)
               |             eth0 on home --- MyBookLive
            MacBook
        (192.168.0.11)

do đó, MyBookLive về cơ bản là một ổ cứng ngoài được tôn vinh. Bộ định tuyến có cổng Ethernet, nhưng nó đang được sử dụng bởi máy tính của bạn cùng phòng của tôi nên tôi không thể cắm MyBookLive trực tiếp vào nó.

Ngay bây giờ tôi có thể ping MyBookLive.local và MacBook.local từ nhà, nhưng tôi gặp khó khăn trong việc hiểu và tìm ra các lệnh iptables chính xác để làm cho MacBook của tôi thấy MyBookLive của tôi thông qua mạng Bonjour. Ngoài ra, tôi không chắc chắn nếu tôi cần thiết lập DNS để chuyển tiếp địa chỉ xxx.local Bonjour / Zeroconf.

Tôi đã thử cách sau để chuyển tiếp toàn bộ mạng có dây của mình (chỉ có MyBookLive của tôi) đến một địa chỉ IP duy nhất:

sysctl net.ipv4.ip_forward=1
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp -j DNAT --to 192.168.0.66
iptables -t nat -A PREROUTING -i eth0 -p udp -j DNAT --to 192.168.0.66

nhưng tôi không thể ping địa chỉ này từ MacBook của mình. Điều này có thể là sai lầm khủng khiếp, nhưng tôi hoàn toàn không biết gì về việc thiết lập loại mạng này và có thể sử dụng một số trợ giúp chuyên gia để thiết lập mạng này đúng cách.

Câu trả lời:


0

Cách dễ nhất để làm ở đây là thiết lập NAT và chuyển tiếp các cổng cần thiết từ giao diện wlan0 của nhà sang các cổng tương đương trên giao diện của ổ cứng ngoài.

Kịch bản sau đây là một ví dụ sẽ thiết lập NAT sao cho các thiết bị được kết nối với eth0 ở nhà (thông qua bộ chuyển mạch hoặc TP chéo) sẽ có quyền truy cập vào mạng không dây.

#!/bin/sh
INTERNAL_IP=home.lan
INTERNAL_NM=255.255.255.0
INTERNAL=eth0
EXTERNAL=wlan0

ifconfig $INTERNAL $INTERNAL_IP netmask $INTERNAL_NM up

echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $EXTERNAL -s 192.168.0.0/24 -j MASQUERADE
iptables -A FORWARD -i $EXTERNAL -o $INTERNAL -m state \
    --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $INTERNAL -o $EXTERNAL -j ACCEPT

Để tình huống được mô tả hoạt động, các thiết bị từ mạng không dây phải được bật để "nhìn lại" vào mạng NAT (được ẩn đằng sau home.lan). Cách tiếp cận bạn đã thử trong câu hỏi về cơ bản là chính xác, ngoại trừ nó dịch sai hướng. Bạn muốn chuyển tiếp các gói đến tại các cổng cụ thể trên giao diện home.lan vào ip ẩn của NAT cục bộ của mbl.lan

#(continued)
iptables -t nat -A PREROUTING -i $EXTERNAL -p tcp --dport 445 -j DNAT \
      --to mbl.lan:445
iptables -t nat -A PREROUTING -i $EXTERNAL -p tcp --dport 139 -j DNAT \
      --to mbl.lan:139

Thiết lập này sẽ khiến không thể chạy máy chủ samba trên máy chủ gia đình, bởi vì lưu lượng truy cập đến các cổng samba mặc định được gửi đến ổ cứng ngoài. Đây không phải là một phần của câu hỏi, nhưng một giải pháp khả thi sẽ là chạy dịch vụ samba tại nhà trên một cổng khác hoặc sử dụng giá trị --dport như 4455 và thiết lập thủ công các máy khách để kết nối với một cổng khác khi truy cập sách của tôi trực tiếp.

Lưu ý rằng câu trả lời này giả định samba đang được sử dụng trên ổ đĩa và các cổng sẽ cần điều chỉnh nếu sử dụng một giao thức khác.

Một hạn chế đáng chú ý của phương pháp này là tất cả các kết nối đến ổ đĩa ngoài sẽ trông giống như chúng bắt nguồn từ home.lan.

Bí danh mạng:
mbl.lan (cuốn sách của tôi địa chỉ IP trực tiếp; 192.160.0.66)
home.lan (địa chỉ IP nhà wlan0; 192.168.0.12)

Tài liệu tham khảo:
http://www.centos.org/docs/4/html/rhel-sg-en-4/s1-firewall-ipt-fwd.html
http://www.netfilter.org/documentation/HOWTO//NAT-HOWTO-6.html#ss6.2


0

Tôi nghĩ rằng giải pháp đơn giản là thiết lập thiết bị cầu br0 trên linux-box và thêm giao diện eth0wlan0 với nó

  1. Tải về bridge-utils trên Ubuntu
  2. Thêm cầu brctl addbr br0
  3. Thêm thiết bị mạng vào cầu nối brctl addif br0 eth0brctl addif br0 wlan0
  4. Đặt IP thành của bạn br0 giao diện (không đặt IP thành eth0 hoặc wlan0)
  5. Xóa quy tắc DNAT đó khỏi iptables
  6. Chỉnh sửa của bạn iptables cấu hình và thay thế các tham số -i-o với -m physdev --physdev-in-m physdev --physdev-out

Điều này sẽ tạo ra ảo br0 giao diện, hoạt động như thể cả wlan0 và eth0 là một giao diện trên một mạng. Điều đó cho phép bạn truy cập đĩa mạng của bạn từ bất kỳ máy tính nào từ mạng của bạn.

CHỈNH SỬA:

Điều này đang hoạt động nếu bạn đang sử dụng wlan0 như AP trong master mode. Tôi cho rằng bạn đang sử dụng hostapd để tạo AP đó trên linux-box.

Một điều khác tôi nên đề cập là việc thêm giao diện wlan0 trong trường hợp của tôi chỉ có thể sau khi tôi thực thi hostapd Đầu tiên.

Tài nguyên tuyệt vời để hostapd và mạng không dây linux: http: // linuxwpered.org/en/users/Documentation/hostapd


Bạn đã thực sự thử điều này với một thẻ không dây? Vui lòng đặt tên cho một hoặc nhiều thẻ không dây (trình điều khiển) hỗ trợ này.
Ярослав Рахматуллин

Vâng, vâng, đôi khi tôi sử dụng điều này để kết nối điện thoại của tôi với mạng mà không có wifi. Thẻ wifi của tôi là Intel Centrino Advanced-N 6205. Tôi cũng dùng hostapd, mà tôi nên đề cập trong bài viết của mình và wlan0 của tôi được đặt ở chế độ chính.
week

Tôi đồng ý rằng đây là cách đúng đắn để làm điều đó. Tôi đã thử phương pháp bắc cầu trước đây nhưng thẻ wifi tích hợp khủng khiếp của tôi không hỗ trợ chế độ chính.
Jiahao Chen

0

Tôi có một thiết lập tương tự để thử nghiệm ngắn hạn.

Cài đặt hostapd theo cách này: (hostapd là trình nền điểm truy cập không dây)

sudo apt-get install hostapd

Đây là một tệp cấu hình hostapd.conf thực sự tối thiểu (lưu ý rằng bạn sẽ cần thêm cấu hình để bảo vệ mạng của mình bằng WPA / WPA2).

interface=wlan0
driver=nl80211
ssid=AcidFlask
channel=9
hw_mode=g
country_code=NO
auth_algs=1
wpa=0
ignore_broadcast_ssid=0

Sau đó, tôi khởi chạy daemon hostapd và chuyển tiếp theo cách này:

sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1
ifconfig wlan0 172.20.99.1 netmask 255.255.255.0
iptables -t nat -A POSTROUTING -s 172.20.99.0/24 -o eth0 -j MASQUERADE
hostapd -d hostapd.conf

Cuối cùng, tôi xác định một IP tĩnh trên máy khách của mình (ví dụ: 172.20.99.2, với netmask 255.255.255.0, gateway 172.20.99.1 và DNS 8.8.8.8).

Đây thực sự là một giải pháp barebone, vì nó thiếu bảo mật không dây và DHCP, nhưng nó sẽ hoạt động và bạn có thể xây dựng tùy theo nhu cầu của bạn trên đầu trang này.

Cũng lưu ý rằng giải pháp này yêu cầu bộ điều hợp wifi của bạn hỗ trợ chế độ AP:

  • ath9k sẽ hoạt động trong hầu hết các trường hợp
  • rtl8187 sẽ không hoạt động AFAIK

CHỈNH SỬA: Tôi đã hiểu nhầm cụm từ của bạn "sử dụng hộp Linux làm điểm truy cập không dây". Tôi nghĩ rằng bạn muốn kết nối không dây hộp Linux của mình với MyBookLive không dây. Hãy bỏ qua giải pháp của tôi.

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.