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

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

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

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