반응형

안녕하세요.


지난 포스팅에선 라즈베리 파이에 OS 설치 (http://harryp.tistory.com/133) 및 SSH, 원격제어 설정 (http://harryp.tistory.com/150)에 대해 알아보았습니다.


이번 포스팅에서는 USB 무선 인터넷 카드를 이용하여 라즈베리 파이를 무선 공유기 처럼 사용할 수 있는 핫 스팟 AP 설정을 다뤄보도록 하겠습니다.


라즈베리 파이를 핫 스팟으로 사용할 수 있다면 여행지나 출장지 등 이동이 필요한 곳에서도 몇 가지 설정 만으로 간단하게 무선인터넷을 사용할 수 있을겁니다.


그럼 시작해보도록 하겠습니다.



1. 하드웨어 준비


이번 포스팅에서 필요한 하드웨어는


① 유선랜에 연결되어 있는 라즈베리 파이


② USB 무선 인터넷 카드


입니다.


저는 구입했던 라즈베리파이 키트에 netis의 USB 무선 인터넷 카드가 들어있어 이것을 사용했습니다.




위와 같은 USB 무선 랜카드를 라즈베리파이에 연결한 후 부팅을 합니다.


만약 제대로 연결이 되었다면, 라즈베리파이 네트워크 설정에서 무선 랜이 잡히는 것을 확인하실 수 있습니다.






UI 상에서 확인이 어렵다면, 터미널에서 ifconfig 명령어를 사용하여 'wlan' 항목이 있는지 확인해 보시면 됩니다.


parkch0708@chpark-pi:~$ ifconfig wlan0

wlan0     Link encap:Ethernet  HWaddr 04:8d:38:c8:f9:2d  

          inet6 addr: fe80::68d:38ff:fec8:f92d/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:3485 errors:0 dropped:11 overruns:0 frame:0

          TX packets:35 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:16319 (16.3 KB)  TX bytes:8553 (8.5 KB)


parkch0708@chpark-pi:~$ 



2. 네트워크 구성


본격적인 설정에 앞서 네트워크를 어떻게 구성할 것인지 부터 정해야 합니다.


먼저 라즈베리 파이가 연결되어있는 유선 네트워크의 구성 부터 알아야 합니다.


고정 IP를 사용하고 있다면 해당 IP에 맞는 설정을 사용하시면 되고,


자동으로 할당 (DHCP) 받는다면 ifconfig 명령어를 통해 알아보시면 됩니다.


그리고 다른 기기들에게 무선 인터넷으로 할당해 줄 IP 대역을 정해주면 됩니다.




저의 네트워크 구성 예시 입니다.


먼저 저는 라즈베리파이를 eth0 인터페이스로 유선 연결을 하였습니다.


고정 IP (10.21.1.88/255.255.0.0)를 사용중이고, 게이트 웨이는 10.21.0.1 입니다.


그리고 무선 인터페이스인 wlan0를 사용하여 다른 기기들에게 무선 인터넷을 제공할 예정입니다.


wlan0 역시 고정 IP (192.168.1.1/255.255.255.0)를 사용 할 예정이고,


할당 범위는 192.168.1.10 - 192.168.1.20 입니다.



유선 인터넷의 IP 및 G/W와 무선 인터넷의 IP 및 할당 범위는 상황에 따라 바꾸시면 됩니다.



3. 소프트웨어 설치


몇몇 소프트웨어를 설치하셔야 합니다.


(1) isc-dhcp-server


다음의 명령어를 통해 간단하게 설치 가능합니다.


$ sudo apt-get install isc-dhcp-server


(2) hostapd


hostapd는 사용하는 무선 인터넷 카드 종류에 따라 바뀔 수 있습니다.


만약 리얼텍의 rtl871xdrv 드라이버를 사용하는 무선 랜 카드를 사용하신다면, 다음과 같은 방법을 통해 설치하셔야 합니다.



$ sudo apt-get install make gcc


$ wget https://github.com/jenssegers/RTL8188-hostapd/archive/v2.0.tar.gz


$ tar zxvf v2.0.tar.gz


$ cd RTL8188-hostapd-2.0/hostapd


$ sudo make


$ sudo make install



만약 위의 드라이버를 사용하지 않는다면


$ sudo apt-get install hostapd


명령어를 통해 설치해 주시면 됩니다.


제가 가지고 있는 netis의 무선 네트워크 카드는 리얼텍 드라이버를 사용해서 직접 소스를 받아 컴파일 후 설치하였습니다.


(3) iw


간단하게 설치 가증합니다.


$ sudo apt-get install iw



4. 무선 네트워크 인터페이스 설정


먼저 무선 네트워크 인터페이스 (wlan0)를 설정해주셔야 합니다.


root 권한으로 /etc/network/interfaces 파일을 열어 수정합니다.


$ sudo vi /etc/network/interfaces


마지막 줄 부터 다음의 내용을 추가 후 저장 합니다.



allow-hotplug wlan0


auto wlan0

iface wlan0 inet static

address 192.168.1.1

netmask 255.255.255.0

gateway 10.21.0.1


IPV4_FORWARD_ENABLE=yes 


gateway 항목은 유선랜 (eth0)의 gateway와 동일하게 지정하면 됩니다.


저장 후 리부팅을 한번 해줍니다.



5. DHCP 서버 설정


/etc/dhcp/dhcpd.conf 파일을 root 권한으로 열어 수정합니다.


$ sudo vi /etc/dhcp/dhcpd.conf


"option domain-name' 을 문자열 검색 하여 다음의 두 줄을 주석처리 (앞에 # 추가) 합니다.


#option domain-name "example.org";

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



'authoritative;' 를 문자열 검색 하여 앞에 #을 제거하여 주석처리를 없앱니다.



authoritative;


제일 마지막 줄부터 다음의 내용을 추가합니다.



subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.10 192.168.1.20;


subnet 항목에는 무선 네트워크 인터페이스 (wlan0)의 네트워크 대역과 넷마스크를,

range 항목에는 할당 할 대역의 시작과 끝을 입력해 주시면 됩니다.


그리고 /etc/default/isc-dhcp-server 파일도 root 권한으로 열어 무선 네트워크 인터페이스 정보를 입력합니다.


$ sudo vi /etc/default/isc-dhcp-server


INTERFACES="" 라고 되어있는 항목에 무선 네트워크 인터페이스 정보를 기록합니다.


INTERFACES="wlan0" 


설정이 완료 되었으면 dhcp-server를 재시작 합니다.


$ sudo service isc-dhcp-server restart



6. hostapd 설정


/etc/hostapd/hostapd.conf 파일을 root 권한으로 열어 설정을 해 줍니다.


이 파일은 hostapd 설치 방법에 따라 미리 생성이 되있을수도 있습니다.


$ sudo vi /etc/hostapd/hostapd.conf



무선 네트워크 인터페이스 종류에 따라 설정 방법이 약간 다릅니다.


만약 리얼텍의 rtl871xdrv 드라이버를 사용한다면 다음과 같이 설정을 해줍니다.


# Basic configuration

interface=wlan0

ssid=무선_핫스팟_이름

channel=1

#bridge=br0

# WPA and WPA2 configuration

macaddr_acl=0

auth_algs=1

ignore_broadcast_ssid=0

wpa=2

wpa_passphrase=무선_핫스팟_비밀번호

wpa_key_mgmt=WPA-PSK

wpa_pairwise=TKIP

rsn_pairwise=CCMP

# Hardware configuration

driver=rtl871xdrv

ieee80211n=1

hw_mode=g

device_name=RTL8192CU

manufacturer=Realtek


그 이외에는 다음과 같이 설정을 해주시면 됩니다.


interface=wlan0

driver=nl80211

#driver=rtl871xdrv

ssid=무선_핫스팟_이름

hw_mode=g

channel=6

macaddr_acl=0

auth_algs=1

ignore_broadcast_ssid=0

wpa=2

wpa_passphrase=무선_핫스팟_비밀번호

wpa_key_mgmt=WPA-PSK

wpa_pairwise=TKIP

rsn_pairwise=CCMP



무선_핫스팟_이름에 입력한 값이 WIFI 검색 시 확인되는 이름입니다.


그리고 무선_핫스팟_비밀번호를 입력해 접속을 하게 됩니다.


마지막으로 /etc/default/hostapd 파일을 root 권한으로 열어 방금 설정한 conf 파일의 위치를 지정해 줍니다.


$ sudo vi /etc/default/hostapd


DAEMON_CONF 항목이 주석처리 되어있는데, #을 제거하여 주석처리를 풀고, 위에서 설정한 conf 파일 경로를 적어주시면 됩니다.



 DAEMON_CONF="/etc/hostapd/hostapd.conf"



7. 라우팅 설정


/etc/sysctl.conf 파일을 root 권한으로 열어 다음 내용을 수정합니다.


$ sudo vi /etc/sysctl.conf

'net.ipv4.ip_forward=1' 항목이 주석 처리 되어있는데, #을 제거하여 주석처리 되어있는 것을 없애줍니다.



net.ipv4.ip_forward=1 


마지막으로 포워딩 설정을 위해 다음의 명령어들을 입력해줍니다.


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


$ 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


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



위 과정을 모두 마치셨으면 라즈베리 파이를 리부팅 하시면 됩니다.


부팅이 끝나면 스마트폰 등으로 테스트 해보시면 됩니다.



-참고 사이트-


https://www.maketecheasier.com/set-up-raspberry-pi-as-wireless-access-point/


http://www.jenssegers.be/43/Realtek-RTL8188-based-access-point-on-Raspberry-Pi


https://fleshandmachines.wordpress.com/2012/10/04/wifi-acces-point-on-beaglebone-with-dhcp/

반응형
Posted by 해리팍
BLOG main image

Chanhyun Park (해리팍)
Software Engineer @ SK hynix

Contact Info.
parkch0708@hanmail.net
chanhyun0708@gmail.com
chanhyun.park@sk.com

카테고리

All (1502)
Profile (2)
Park's Life (600)
Computer System (165)
Computer Programming (39)
Computer Study (54)
Computer Etc. (189)
Scuba Diving (137)
Golf (8)
Traveling (245)
생활 정보 (12)
Pokemon GO (50)