Raspberry Pi беспроводная точка доступа (WiFi access point)

Будем считать, что Raspberry Pi с ОС Raspbian Wheezy, а также подключенными wi-fi “свистком” и lan кабелем с доступом к Интернету у нас уже есть (также рассмотрим ситуацию с 3G-модемом вместо ethernet).

1. Установка программного обеспечения
Для начала установим dhcp-сервер и программное обеспечение hostapd для организации беспроводной точки доступа

sudo apt-get update
sudo apt-get install hostapd isc-dhcp-server

2. Настройка dhcp-сервера
Теперь настроим dhcp-сервер. Правим файлик /etc/dhcp/dhcpd.conf, который поднимает наш сервер (позволяет wifi подключениям автоматически получать IP адреса и т.д.)

sudo nano /etc/dhcp/dhcpd.conf

Находим строки

option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

и меняем их закомментировав решеткой #

#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

Находим строки

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

и убераем решотку #

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

raspberry_pi_authoritatinve

Теперь прокручиваем в самый низ и добавляем строки

subnet 192.168.42.0 netmask 255.255.255.0 {
range 192.168.42.10 192.168.42.50;
option broadcast-address 192.168.42.255;
option routers 192.168.42.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}

raspberry_pi_iscdhcpconf

Сохраняем файл Control-X дальше Y и Enter или Control-O потом Enter и Control-X

Наберем

sudo nano /etc/default/isc-dhcp-server

спускаемся вниз к INTERFACES=”” и правим на INTERFACES=”wlan0″

raspberry_pi_dhcpwlan0

Сохраняем и закрываем файл.

3. Настройка wlan0 для статического IP
Отключаем wlan0

sudo ifdown wlan0

raspberry_pi_ifdownwlan0

Дальше мы установим wlan0 соединение статическим и входным

sudo nano /etc/network/interfaces

находим auto wlan0, комментируем # и добавляем строки

iface wlan0 inet static
address 192.168.42.1
netmask 255.255.255.0

после allow-hotplug wlan0 (см. на скриншоте). Все остальные строки надо закомментировать.

raspberry_pi_staticip
Сохраняем и закрываем файл.
Устанавливаем статический адрес для wifi адаптера

sudo ifconfig wlan0 192.168.42.1

4. Настройка точки доступа
Теперь мы можем детальнее настроить нашу точку доступа. Установим пароль для нашей сети. Создадим новый кофигурацийний файл

sudo nano /etc/hostapd/hostapd.conf

наполним его следующим содержимым

interface=wlan0
driver=rtl871xdrv
ssid=Pi_AP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Raspberry
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

ssid= можно изменить на любое другое имя вашей сети. Поле wpa_passphrase= служит для установки пароля к сети. В поле driver= нужно установить driver=rtl871xdrv или driver=nl80211

raspberry_pi_edithostapdconf

Сохраняем и закрываем.
Теперь укажем “малинке” где искать наш конфигурационный файл

sudo nano /etc/default/hostapd

находим #DAEMON_CONF=”” и правим на DAEMON_CONF=”/etc/hostapd/hostapd.conf”. Не забудьте убрать решетку в начале строки! Сохраняем файл.

raspberry_pi_hostapdconf

5. Настройка сетевой трансляции адресов (NAT – Network Address Translation)
Установка NAT позволит многим клиентам подключаться к WiFi и получать все данные через единую Ethernet IP.

sudo nano /etc/sysctl.conf

прокручиваем вниз и добавляем в конец net.ipv4.ip_forward=1. Сохраняем.
Также делаем

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

raspberry_pi_sysctrl

Запускаем следующие команды для настройки сетевой трансляции между ethernet портом eth0 и wifi портом wlan0. Если вы используете USB 3G модем для доступа в Интернет, то замените везде eth0 на ppp0.

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

Можете проверить, что теперь в IP-таблицах

sudo iptables -t nat -S
sudo iptables -S

Для выполнения команд при перезагрузке делаем так

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

raspberry_pi_iptables

Исполняем sudo nano /etc/network/interfaces и добавляем в самый конец

up iptables-restore < /etc/iptables.ipv4.nat

raspberry_pi_etcnetworkinterface

6. Обновление hostapd
Прежде чем запускать программное обеспечение для точки доступа, мы должны обновить его до версии, которая поддерживает WiFi адаптер. Для начала получим новую версию

wget http://adafruit-download.s3.amazonaws.com/adafruit_hostapd_14128.zip
unzip adafruit_hostapd_14128.zip
sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG
sudo mv hostapd /usr/sbin
sudo chmod 755 /usr/sbin/hostapd

raspberry_pi_swaphostapd

7. Тестирование
Наконец мы можем испытать нашу точку доступа

sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf

Мы запустили hostapd с нашим конфигурационным файлом. Теперь наша сеть должна появиться в зоне видимости других WiFi адаптеров.
raspberry_pi_testap

8. Завершення
Теперь, когда мы знаем, что все работает установим запуск всего при загрузке Raspbery Pi

sudo service hostapd start
sudo service isc-dhcp-server start

Проверить статус программного обеспечения можно так

sudo service hostapd status
sudo service isc-dhcp-server status

Запуск каждый раз при загрузке

sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable

raspberry_pi_updaterc

Вот и все. Дружно благодарим adafruit за замечательный “титориал”
(https://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point/install-software)
😉


1 комментарий

Оставить ответ

Обязательные поля помечены*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.