LINUX.ORG.RU
ФорумAdmin

3G точка доступа

 , , ,


1

1

Хочу организовать программную точку доступа. Интернет есть в ppp0, хочу создать локалку на wlan0 и eth0 и раздать интернет туда.
В принципе с этим справляется и NetworkManager, но хочу заюзать hostapd.
Дайте мануалов мудрых. Дистры: arch, debian.

★★★★★

Ставишь hostapd и вдумчиво читаешь комментарии в конфиге. Там всё разжёвано как только можно. Главное поставь каналом число из диапазона 1..13, потому что то что стоит по дефолту большинство карточек не устраивает.

Затем ставь dnsmasq. Аналогично читаешь конфиг. Придумываешь из какой сети раздавать адреса. Главное поставь inerfaces=wlan0 eth0 и раскомментируй bind-interfaces.

Потом запускаешь (в арче) rc.d start hostapd dnsmasq и радуешься - точка доступа работает.

Потом немного думаешь, и объединяешь wlan0 и eth0 в bridge. В netcfg профиль выглядит так:

INTERFACE="br0"
CONNECTION="bridge"
DESCRIPTION=""
BRIDGE_INTERFACES="eth0"
IP='static'
ADDR='192.168.100.1'

wlan0 в бридж добавит сам hostapd, только скажи ему. используешь netcfg для создания brige - он не конфликтует с NetworkManager, главное укажи в /etc/NetworkManager/NetworkManager.conf в конце такие строки:

[keyfile]
unmanaged-devices=mac:$eth0_mac;mac:$wlan0_mac

Тогда NetworkManager не будет лезть к eth0 и wlan0 и они будут в полном распоряжении hostapd и dnsmasq.

Ну и наконец несколько правил фаервола для полного счастья:

iptables -A FORWARD -i br0 -j ACCEPT
iptables -A FORWARD -i wlan0 -j ACCEPT
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

и будет тебе счастье.

KivApple ★★★★★
()
Ответ на: комментарий от KivApple

Да, после создания брижда в dnsmasq пропиши interfaces=br0

KivApple ★★★★★
()
Ответ на: комментарий от vitruss

А зачем так сильно нужен именно мост? почему натом не обойтись?

Мост нужен для объединения проводной и вафельной локалки в одну сеть. Можно и без этого, но получается менее удобно.

Deleted
()
Ответ на: комментарий от KivApple

К правилам iptables можно ещё добавить

iptables -t mangle -A POSTROUTING -o ppp+ -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Deleted
()
Ответ на: комментарий от KivApple

На самом деле читать все 800 строк комментариев в конфиге я не стал, я посмотрел разные конфиги в интернете и сочинил самую простую конфигурацию.
На eth0 пока ничего не раздаю, только wlan0, потому мост временно не нужен.
hostapd.conf

interface=wlan0
driver=nl80211
#bridge=br0

ssid=CYB3R_Wi-Fi
hw_mode=g
channel=6
dnsmasq.conf
# Bind to only one interface
bind-interfaces
# Choose interface for binding
interface=wlan0
# Specify range of IP addresses for DHCP leasses
dhcp-range=192.168.130.2,192.168.130.10
И запускается вещание таким скриптиком (тоже подсмотрел, кто как делает и спёр интересующие меня части чужих скриптов):
#!/bin/bash

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

# flush all settings
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X

ifconfig wlan0 192.168.130.1
sysctl net.ipv4.ip_forward=1
iptables -A FORWARD -i wlan0 -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
rc.d start dnsmasq

echo "starting hostapd. ^C to stop"
hostapd hostapd.conf

iptables -D POSTROUTING -t nat -o eth0 -j MASQUERADE
sysctl net.ipv4.ip_forward=0
rc.d stop dnsmasq
Может быть, кому-то пригодится.

CYB3R ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.