개요
본 글에서는 라즈베리파이를 이용하여 무선 공유기(Routed Wireless Access Point) 기능을 설정하는 방법을 정리합니다.
필수 패키지 설치
AP 관리 패키지인 "hostapd" 및 "dnsmasq"를 설치합니다.
pi@raspberrypi:~ $ sudo apt update -qq
All packages are up to date.
pi@raspberrypi:~ $ sudo apt install -y hostapd dnsmasq
다음과 같이 "hostapd" 서비스를 활성화합니다.
pi@raspberrypi:~ $ sudo systemctl unmask hostapd
Removed /etc/systemd/system/hostapd.service.
pi@raspberrypi:~ $ sudo systemctl enable hostapd
Synchronizing state of hostapd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable hostapd
그리고, 마스커레이드 구성을 위하여 "netfilter-persistent", "iptables-persistent" 패키지를 설치합니다.
pi@raspberrypi:~ $ sudo DEBIAN_FRONTEND=noninteractive apt install -y netfilter-persistent iptables-persistent
무선 공유기 설정
무선단 DHCP 서비스를 위하여 "/etc/dhcpcd.conf" 파일의 마지막에 다음과 같은 내용을 추가합니다.
interface wlan0
static ip_address=192.168.4.1/24
nohook wpa_supplicant
IP에 대한 마스커레이딩(Masquerading)을 위하여 "/etc/sysctl.d/routed-ap.conf" 파일의 생성하고 다음 내용을 추가해줍니다.
# Enable IPv4 routing
net.ipv4.ip_forward=1
다음과 같이 하여 IP에 대한 마스커레이드(Masquerade) 설정을 저장합니다.
pi@raspberrypi:~ $ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
pi@raspberrypi:~ $ sudo netfilter-persistent save
run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save
run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save
무선망의 DHCP를 위하여 "dnsmasq" 패키지에 대한 설정을 위하여 "/etc/dnsmasq.conf" 파일에 다음 내용을 추가합니다.
pi@raspberrypi:~ $ sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
pi@raspberrypi:~ $ sudo vi /etc/dnsmasq.conf
interface=wlan0 # Listening interface
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h
# Pool of IP addresses served via DHCP
domain=wlan # Local wireless DNS domain
address=/gw.wlan/192.168.4.1
# Alias for this router
라즈베리파이에서 WiFi 가 차단되어 있다면, 차단되지 않도록 하려면 다음 명령을 실행합니다. 이 설정은 재부팅을 하면 복원되므로 매번 다시 적용해 주어야 합니다.
pi@raspberrypi:~ $ sudo rfkill unblock wlan
무선 공유기에 대한 설정을 위하여 "/etc/hostapd/hostapd.conf" 파일을 다음과 같이 생성합니다.
pi@raspberrypi:~ $ sudo vi /etc/hostapd/hostapd.conf
country_code=GB
interface=wlan0
ssid=MY_SSID_NAME
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=MY_P@SSW0RD
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
모든 설정을 마쳤다면 라즈베리파이를 재부팅합니다.
pi@raspberrypi:~ $ sudo systemctl reboot
라즈베리파이가 정상적으로 재부팅을 완료하면, 외부에서 "/etc/hostapd/hostapd.conf"에 설정한 SSID 이름으로 무선 네트워크를 연결할 수 있습니다.
만약 SSID 이름이 검색되지 않는다면, 앞단계들의 설정 파일들을 다시 확인하고, 올바르게 수정하시기 바랍니다.
결론
라즈베리파이를 이용하여 무선 공유기 설정하는 방법에 대해 알아 보았습니다.
실제로 무선 공유기를 대체한다기 보다는 유선망이나 별도의 무선 공유기나 핫스팟을 제공할 수 없는 환경에서 라즈베리파이를 무선으로 접속할 수 있어야 하는 등의 요구사항에 적용하는데 좋습니다.
참고자료
- "Setting up a Routed Wireless Access Point":https://www.raspberrypi.com/documentation/computers/configuration.html#setting-up-a-routed-wireless-access-point
- "HOW TO SETUP RASPBERRY PI AS ACCESS POINT ROUTER (AP + HOTSPOT)":https://peakup.org/blog/how-to-setup-raspberry-pi-as-access-point-router-ap-hotspot/
'Linux,Unix,BSD > RaspberryPI' 카테고리의 다른 글
[RPi] 라즈비안 OS용 부팅 매체 만들기 (2) | 2022.06.30 |
---|---|
[RPi] SD card 및 USB memory serial 정보 구하기 (0) | 2022.06.21 |
RPi - 라즈베리파이에서 파티션 자동 확장하기 (0) | 2022.06.11 |
[RPi] 고정(static) IP 설정하기 (0) | 2021.12.02 |
[RPi] 내장 와이파이(WiFi), 블루투스(Bluetooth) 장치 비활성화 (0) | 2021.06.29 |