Установить 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 к этому.

  1. Скачать bridge-utils на убунту
  2. Добавить мост brctl addbr br0
  3. Добавить сетевые устройства для моста brctl addif br0 eth0 а также brctl addif br0 wlan0
  4. Установите IP для вашего br0 интерфейс (не устанавливайте IP-адреса на eth0 или wlan0)
  5. Удалить эти правила DNAT из iptables
  6. Отредактируйте свой 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

Другие вопросы по тегам