4

Я унаследовал старую коробку Linux и MyBookLive и хотел бы сделать MyBookLive доступным по беспроводной сети, по сути, используя коробку Linux в качестве шлюза.

Я просто вытер коробку с Linux (дома) и установил на нее Ubuntu 12.04. Моя настройка сети в настоящее время выглядит следующим образом:

       (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)

так что 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 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

но я не могу пропинговать этот адрес с моего MacBook. Это, вероятно, ужасно неправильно, но я совершенно нуб в настройке такого рода сети и мог бы использовать некоторую экспертную помощь для правильной настройки.

3 ответа3

0

Я думаю, что простое решение состоит в том, чтобы настроить мостовое устройство br0 на linux-box и добавить интерфейсы eth0 и wlan0 к нему.

  1. Скачайте утилиты bridge-utils на Ubuntu
  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 для создания этой AP на linux-box.

Еще одна вещь, которую я должен упомянуть, это то, что добавление интерфейса wlan0 в моем случае возможно только после того, как я сначала hostapd .

Отличный ресурс для беспроводных сетей hostapd и linux:http://linuxwireless.org/en/users/Documentation/hostapd

0

У меня есть аналогичная установка для краткосрочного тестирования.

Установите 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 без проводов. Пожалуйста, не обращайте внимания на мое решение.

0

Здесь проще всего настроить NAT и перенаправить необходимые порты с домашнего интерфейса wlan0 на эквивалентные порты интерфейса внешнего жесткого диска.

Следующий скрипт представляет собой пример, который настроил бы NAT таким образом, чтобы устройства, подключенные к eth0 дома (через коммутатор или TP), получили доступ к беспроводной сети.

#!/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

Чтобы описанная ситуация работала, устройства из беспроводной сети должны иметь возможность "оглядываться" назад на сеть NAT (которая скрыта за home.lan). Подход, который вы попробовали в этом вопросе, в основном правильный, за исключением того, что он переводит в неправильном направлении. Вы хотите перенаправлять пакеты, поступающие через определенные порты на интерфейсе home.lan, в локальный скрытый IP-адрес NAT для 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

Эта настройка сделает невозможным запуск сервера 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#ss6.2

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .