RaspberryPi WIFI AP Mode

강윤경·2022년 10월 31일

RaspberryPi

목록 보기
1/1

WIFI AP Mode?

  • AP : Access Point , 공유기
  • AP 모드 사용 시 독립적인 무선 기기로 사용 가능
  • 라즈베리파이에 무선으로 접속 가능
  • 보드에 내장된 BCM43438 칩이 AP Mode를 지원

패키지 설치

$ sudo apt-get install dnsmasq
$ sudo apt-get install hostapd
  • dnsmasq : 와이파이를 사용하고자하는 사용자가 오면 그 사용자에게 IP 주소 및 DNS 서버를 할당해주는 역할

  • hostapd : 무선 네트워크 인터페이스를 AP모드로 전환하여 서비스 가능

  • 무선 네트워크 인터페이스 AP 모드 지원 유무 확인

    $ iw list

dnsmasq & hostapd 정지

$ sudo systemctl stop dnsmasq
$ sudo systemctl stop hostapd

고정 IP 생성

  • 독립형 네트워클르 구성하는 서버로 작동하기 위해 무선 네트워크 인터페이스에 고정 IP 주소가 할당되어야 한다.
$ sudo vi /etc/dhcpcd.conf
  • 파일 가장 아래 입력
  • 라즈베리파이 wlan0 인터페이스에 192.168.2.1의 IP를 할당해준다.
💡 `interface wlan0 static ip_address=192.168.2.1/24 nohook wpa_supplicant`
$ sudo service dhcpcd restart

DHCP 서버 소프트웨어 구성

  • dnsmasq에서 제공
  • DHCP : Dynamic Host Configuration Protocl , 동적 호스트 구성 프로토콜로 호스트 IP 구성 관리를 단순화하는 IP 표준
$ sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.old
  • /etc/dnsmasq.conf 파일을 다시 만들기 위해 이름 수정
$ sudo vi /etc/dnsmasq.conf
💡 `interface=wlan0 dhcp-range=192.168.2.2,192.168.2.20,255.255.255.0,24h`
  • wlan 인터페이스에 192.168.2.2 ~ 192.168.2.20 사이의 IP 주소 할당

액세스 포인트 소프트웨어 구성

  • hostapd로 무선 네트워크를 설정
$ sudo vi /etc/hostapd/hostpad.conf
💡 interface=wlan0 driver=nl80211 ssid=yunWIFI hw_mode=g channel=7 wmm_enabled=0 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=123456789 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
$ sudo vi /etc/default/hostapd
💡 `#Demon_conf="" ⇒ Demon_conf="/etc/hostapd/hostapd.conf"` 수정

시스템 시작

$ sudo reboot
$ sudo systemctl start hostapd
$ sudo systemctl start dnsmasq
  • Failed to start hostapd.service : Unit hostapd.service is maske 오류 발생 시
$ sudo systemctl unmask hostapd.service
$ sudo systemctl start hostapd
$ sudo systemctl start dnsmasq

시스템 설정

$ sudo vi /etc/sysctl.conf
  • 패킷 포워딩을 활성화 패킷 포워딩 : 패킷의 목적지 주소를 보고 테이블을 참조하여 적절한 포트로 패킷을 보내는 과정
💡 `#net.ipv4.ip_forward=1 ⇒ net.ipv4.ip_forward=1` 주석 제거 수정
$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  • 밖으로 나가는 ip를 eth0로 변경되어 나가게 해주는 명령어
  • 외부에서는 설정한 AP Mode의 네트워크 대역 또는 내부 인터페이스를 알 수 없기 때문에 외부에서 알 수 있는 ip로 변경
  • iptables : 리눅스에서 방화벽을 설정하는 도구
  • MASQUERADE : 외부 인터넷 자원을 공유 가능
$ sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
  • iptables의 설정 저장
$ sudo vi/etc/rc.local
  • 부팅 시 설정 저장
  • exit 0 윗 줄에 입력
💡 `iptables-restore < /etc/iptables.ipv4.nat sudo systemctl start hostapd`
$ sudo reboot
  • 재부팅

0개의 댓글