LinuxForum.Fans
Тема

Интернет-шлюз с двумя интерфейсами LAN

Автор: Neuro75 3 сообщений 2909 просмотров
#350369

Достаточно долго в домашней сети трудился шлюз, настроенный по статье "Простой шлюз и firewall для Debian" из "Готовых решений..."
Недавно заменил старичка на новую машину, в которую взял мать со встроенным WiFi, что достаточно удобно с точки зрения отсутствия необходимости держать за сервером роутер для раздачи по вайфаю.
Подскажите, пожалуйста, как настроить шлюз на конфигурацию WAN+ 2 LAN, при этом, желательно, чтобы два внутренних интерфейса имели IP из одного диапазона.

#350392

Neuro75, все то же, только надо поднять hostapd, интерфейсы настроить бриджем, ну и в скрипт iptables добавить сетевую карту по аналогии с LAN.
ы. Наигравшись с hostapd вдоль и поперек, могу сказать, что обычная wifi карта для раздачи всегда будет уступать точке доступа/роутеру.
Мой совет использовать роутер с wifi как точку либо взять просто точку.

#351440

Решено.
Не претендуя на полноту изложения, опишу как я это сделал в моем конкретном случае.
Исходные данные:
- материнская плата с двумя сетевыми и одним модулем WiFi (интерфейсы eth0, eth1, wlan0). WiFi - Intel Corporation Centrino Wireless-N 2230 (rev c4);
- интернет через pppoe (на eth1).
Требуется: использование компьютера в качестве интернет-шлюза, раздающего интернет в локалку (через hub, подключенный к eth0 и по WiFi).

Как уже было сказано, за основу решения взята статья "Простой шлюз и firewall для Debian" из "Готовых решений..." с небольшими коррективами.
Драйвера под все сетевые карты и WiFi установлены при установке Debian путем подсовывания флешек с запрошенными при определении интерфейсов пакетами. Также, при установке поднят pppoe.

1. Проверяем что драйвер WiFi установлен

text

lspci -k | grep -A 3 -i "network"

Мой вывод:

Показать

04:00.0 Network controller: Intel Corporation Centrino Wireless-N 2230 (rev c4)
Subsystem: Intel Corporation Centrino Wireless-N 2230 BGN
Kernel driver in use: iwlwifi

2. Устанавливаем необходимые пакеты:

text

# apt-get install wireless-tools bridge-utils hostapd

3. Переводим WiFi в режим точки доступа.
Комментарий: на большинстве сайтов адаптер переводится в данный режим командой

text

# iwconfig wlan0 mode Master

У меня так не завелось, адаптер в режим "Master" переходить отказывался. Получилось как указано тут:http://help.ubuntu.ru/wiki/wifi_ap:

Однако, в некоторых случаях, этот способ не сработает, тогда вам нужно сначала «удалить» старый интерфейс и «создать» новый, с режимом ТД. Для этого вам понадобится утилита iw установить которую можно например так:
text

# apt-get install iw

Далее выполните:

text

# iw dev wlan0 del
# iw phy phy0 interface add wlan0 type __ap

Если у кого и так не заведется, там же указана процедура перевода для случая когда используется madwifi
По окончанию данного пункта iwconfig, запущенный без параметров должен показать, что Wifi работает в режиме Master. Мой вывод:

Показать

ppp0 no wireless extensions.

lo no wireless extensions.

br0 no wireless extensions.

eth1 no wireless extensions.

wlan0 IEEE 802.11bgn Mode:Master Frequency:2.462 GHz Tx-Power=16 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off

eth0 no wireless extensions.

mon.wlan0 IEEE 802.11bgn Mode:Monitor Tx-Power=16 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off

4. Прописываем интерфейсы в /etc/network/interfaces (в моем случае - c учетом способа перевода WiFi в режим AP и объединения eth0 и wlan0 в мост):

Показать

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# PPPoE connection
auto provider
iface provider inet ppp
pre-up /sbin/ifconfig eth1 up
provider provider

auto wlan0 br0

# Беспроводной интерфейс
iface wlan0 inet manual
pre-up iw dev wlan0 del
pre-up iw phy phy0 interface add wlan0 type __ap

# Мост.
iface br0 inet static
address 192.168.222.222
network 192.168.222.0
netmask 255.255.255.0
broadcast 192.168.222.255
bridge_ports eth0 wlan0

В результате после перезагрузки получаем:
Вывод ifconfig:

Показать

br0 Link encap:Ethernet HWaddr 60:6c:66:84:99:05
inet addr:192.168.222.222 Bcast:192.168.222.255 Mask:255.255.255.0
inet6 addr: fe80::626c:66ff:fe84:9905/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9150 errors:0 dropped:0 overruns:0 frame:0
TX packets:5146 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1062255 (1.0 MiB) TX bytes:1811588 (1.7 MiB)

eth0 Link encap:Ethernet HWaddr 94:de:80:6b:c9:c4
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10016 errors:0 dropped:0 overruns:0 frame:0
TX packets:4123 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2113934 (2.0 MiB) TX bytes:635637 (620.7 KiB)
Interrupt:40 Base address:0xc000

eth1 Link encap:Ethernet HWaddr 94:de:80:6b:c9:c6
inet6 addr: fe80::96de:80ff:fe6b:c9c6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:45117 errors:0 dropped:1 overruns:0 frame:0
TX packets:4593 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5148129 (4.9 MiB) TX bytes:642872 (627.8 KiB)
Interrupt:41 Base address:0xc000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
mon.wlan0 Link encap:UNSPEC HWaddr 60-6C-66-84-99-05-3A-30-00-00-00-00-00-00-00 -00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:84768 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25417774 (24.2 MiB) TX bytes:0 (0.0 B)

ppp0 Link encap:Point-to-Point Protocol
inet addr:ХХХ.ХХХ.ХХХ.ХХХ P-t-P:78.110.145.28 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:5227 errors:0 dropped:0 overruns:0 frame:0
TX packets:4405 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:1790808 (1.7 MiB) TX bytes:534489 (521.9 KiB)

wlan0 Link encap:Ethernet HWaddr 60:6c:66:84:99:05
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5971 errors:0 dropped:0 overruns:0 frame:0
TX packets:11753 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:947231 (925.0 KiB) TX bytes:3738015 (3.5 MiB)

5. Теперь, после того, как все инферфейсы подняты, смотрящие в локалку eth0 и wlan0 объединены в мост, которому присвоен статический IP и прописаны остальные параметры, настраиваем ssid и пароль получившейся точки доступа. Для этого правим /etc/hostapd/hostapd.conf (подробно также написано тут: http://help.ubuntu.ru/wiki/wifi_ap).
Мой hostapd (хххххххххххх заменить соответственно на свой SSID):

Показать

interface=wlan0
bridge=br0
driver=nl80211
hw_mode=g
channel=11
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=xxxxxxxxxxx
ignore_broadcast_ssid=0
auth_algs=3
eapol_key_index_workaround=0
eap_server=0
wpa=3
wpa_psk_file=/etc/hostapd/wpa_psk
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

Пароли прописаны в /etc/hostapd/wpa_psk. Мой:

Показать

# Все остальные:
00:00:00:00:00:00 пароль

Настраиваем hostapd на автоматический запуск при загрузке системы. Для этого редактируем файл /etc/default/hostapd заменив в нем закомментированную строку
DAEMON_CONF=""
на
DAEMON_CONF="/etc/hostapd/hostapd.conf"
и добавив
RUN_DAEMON="yes"

Путем перезагрузки убеждаемся, что все мост и точка доступа работают как требуется.

Ну а дальше - как написано в "Готовых решениях", указав в firewall.sh в качестве интерфейса, смотрящего в локалку br0 и настроив DHCP-сервер на требуемый диапазон адресов.

Войдите или зарегистрируйтесь, чтобы ответить.