Установить Linux box как WAP для MyBookLive?
Я унаследовал старую коробку Linux и MyBookLive и хотел бы сделать MyBookLive доступным по беспроводной сети, по сути, используя коробку Linux в качестве шлюза.
Я просто вытер коробку с Linux (дома) и установил на нее Ubuntu 12.04. Моя настройка сети в настоящее время выглядит следующим образом:
(192.168.0.1 маска сети 255.255.255.0) ISP --- беспроводной маршрутизатор --- wlan0 на дому (192.168.0.12) | eth0 на дому --- MyBookLive MacBook (192.168.0.11)
так что MyBookLive - это прославленный внешний жесткий диск. Маршрутизатор имеет порт Ethernet, но он используется компьютером моего соседа по комнате, поэтому я не могу подключить MyBookLive непосредственно к нему.
Прямо сейчас я могу пропинговать MyBookLive.local и MacBook.local из дома, но у меня возникают проблемы с пониманием и выяснением правильных команд iptables, чтобы мой MacBook мог видеть мой MyBookLive через сеть Bonjour. Кроме того, я не уверен, нужно ли мне настроить DNS для пересылки адресов xxx.local Bonjour/Zeroconf.
Я попробовал следующее, чтобы переслать всю мою проводную сеть (в которой есть только мой MyBookLive) на один IP-адрес:
sysctl net.ipv4.ip_forward = 1 iptables -A FORWARD -i wlan0 -o eth0 -j ПРИНЯТЬ iptables -A FORWARD -i eth0 -o wlan0 -j ПРИНЯТЬ iptables -t nat -A PREROUTING -i eth0 -p tcp -j DNAT - до 192.168.0.66 iptables -t nat -A ПРЕДУПРЕЖДЕНИЕ -i eth0 -p udp -j DNAT --в 192.168.0.66
но я не могу пропинговать этот адрес с моего MacBook. Это, вероятно, ужасно неправильно, но я совершенно нуб в настройке такого рода сети и мог бы использовать некоторую экспертную помощь для правильной настройки.
3 ответа
У меня есть аналогичная установка для краткосрочного тестирования.
Установите hostapd следующим образом: (hostapd - это демон беспроводной точки доступа)
sudo apt-get install hostapd
Вот действительно минимальный файл конфигурации hostapd.conf (обратите внимание, что вам понадобится больше настроек для защиты вашей сети с помощью 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
Затем я запускаю демон hostapd и пересылаю его так:
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
Наконец, я определяю статический IP на своем клиенте (например, 172.20.99.2, с маской сети 255.255.255.0, шлюзом 172.20.99.1 и DNS 8.8.8.8).
Это действительно простое решение, так как ему не хватает беспроводной безопасности и DHCP, но оно должно работать, и вы можете строить в зависимости от ваших потребностей.
Также обратите внимание, что это решение требует вашего адаптера Wi-Fi для поддержки режима AP:
- ath9k будет работать в большинстве случаев
- rtl8187 не будет работать AFAIK
РЕДАКТИРОВАТЬ: я неправильно понял вашу фразу "использование Linux в качестве беспроводной точки доступа". Я думал, что вы хотите подключить вашу Linux-коробку к MyBookLive без проводов. Пожалуйста, не обращайте внимания на мое решение.
Здесь проще всего настроить NAT и перенаправить необходимые порты с домашнего интерфейса wlan0 на эквивалентные порты интерфейса внешнего жесткого диска.
Следующий скрипт представляет собой пример, который настроил бы NAT так, чтобы устройства, подключенные к eth0 дома (через коммутатор или TP), получили доступ к беспроводной сети.
#! / Bin / ш INTERNAL_IP=home.lan INTERNAL_NM=255.255.255.0 INTERNAL=eth0 ВНЕШНЕЕ = wlan0 ifconfig $ INTERNAL $ INTERNAL_IP маска сети $ 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 $ ВНЕШНИЙ -o $ ВНУТРЕННИЙ -m состояние \ - СОСТОЯНИЕ ОТНОШЕНО, УСТАНОВЛЕНО -j ПРИНЯТЬ iptables -A FORWARD -i $ ВНУТРЕННИЙ -o $ ВНЕШНИЙ -j ПРИНЯТЬ
Чтобы описанная ситуация работала, устройства из беспроводной сети должны иметь возможность "оглядываться назад" на сеть NAT (которая скрыта за home.lan). Подход, который вы попробовали в этом вопросе, в основном правильный, за исключением того, что он переводит в неправильном направлении. Вы хотите перенаправлять пакеты, поступающие через определенные порты на интерфейсе home.lan, в локальный скрытый IP-адрес NAT для mbl.lan
# (Продолжение) iptables -t nat -A ПРЕДОХРАНИТЕЛЬНОЕ -i $ ВНЕШНЕЕ -p tcp --dport 445 -j DNAT \ - до мбл.лан:445 iptables -t nat -A ПРЕДУПРЕЖДЕНИЕ -i $ ВНЕШНИЙ -p tcp --dport 139 -j DNAT \ - до мбл.лан:139
Эта настройка сделает невозможным запуск сервера samba на домашнем хосте, поскольку трафик, поступающий на порты samba по умолчанию, отправляется на внешний жесткий диск. Это не является частью вопроса, но возможное решение состояло бы в том, чтобы запустить службу samba home на другом порту или использовать значение --dport, такое как 4455, и вручную настроить клиентов для подключения к другому порту, когда доступ к моей книге в прямом эфире.
Обратите внимание, что в этом ответе предполагается, что на диске используется samba, и порты необходимо будет настроить, если используется другой протокол.
Заметным ограничением этого метода является то, что все соединения, поступающие на внешний диск, будут выглядеть так, как будто они созданы на home.lan.
Сетевые псевдонимы:
mbl.lan (мой IP-адрес в прямом эфире; 192.160.0.66)
home.lan (home wlan0 ip address; 192.168.0.12)
Рекомендации:
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
Я думаю, что простое решение заключается в настройке устройства моста br0
на linux-box и добавить интерфейсы eth0
а также wlan0
к этому.
- Скачать
bridge-utils
на убунту - Добавить мост
brctl addbr br0
- Добавить сетевые устройства для моста
brctl addif br0 eth0
а такжеbrctl addif br0 wlan0
- Установите IP для вашего
br0
интерфейс (не устанавливайте IP-адреса на eth0 или wlan0) - Удалить эти правила DNAT из
iptables
- Отредактируйте свой
iptables
конфиг, и заменить параметры-i
а также-o
с-m physdev --physdev-in
а также-m physdev --physdev-out
Это создаст виртуальный br0
интерфейс, который действует так, как если бы wlan0 и eth0 были одним интерфейсом в одной сети. Это позволяет вам получить доступ к сетевому диску с любого компьютера в вашей сети.
РЕДАКТИРОВАТЬ:
Это работает, если вы используете wlan0
как AP в master mode
, Я полагаю, вы используете hostapd
создать эту точку доступа на linux-box.
Еще одна вещь, которую я должен упомянуть, это то, что добавление интерфейса wlan0 в моем случае возможно только после того, как я выполню hostapd
первый.
Большой ресурс для hostapd
и linux беспроводные сети: http://linuxwireless.org/en/users/Documentation/hostapd