Categories
Computer Network

hostapd: PC를 무선 공유기로 만드는 방법

무선 랜카드를 이용해서 PC 를 무선 공유기로 사용하는 방법을 알아보자.

1. 무선 랜카드의 AP 모드 지원 여부 확인

무선 랜카드가 AP 모드를 지원하는지 확인한다.

iw list | grep “Supported interface modes” -A 10

출력 결과에 AP 가 표시되면 무선 랜카드가 AP 모드를 지원하는 것이다. 그렇지 않다면 무선 랜카드를 다른 제품으로 교체해야 작업을 계속할 수 있다.

2. 네트워크 인터페이스 구성

네트워크 인터페이스를 구성하자.

Netplan 구성 파일을 연다.

sudo vi /etc/netplan/00-installer-config.yaml

아래와 같은 내용으로 파일을 작성한다.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:    # 인터넷에 연결된 유선 랜카드.
      dhcp4: true
    wlan0:    # 무선 랜카드
      dhcp4: false
      addresses:
      - 192.168.0.101/24    # 고정 IP 주소를 부여한다.

파일을 저장하고 편집기를 닫는다.

변경한 내용을 시스템에 적용한다.

sudo netplan apply

3. 인터넷 연결 공유 설정하기

인터넷 연결 공유 설정을 한다.

IP 포워딩을 활성화한다.

sudo sysctl -w net.ipv4.ip_forward=1

아래와 같은 iptables 명령으로 FILTER 테이블과 NAT 테이블을 구성한다.

# FILTER 테이블의 모든 체인을 초기화한다.
sudo iptables -F

# NAT 테이블의 모든 체인을 초기화한다.
sudo iptables -t nat -F

# NAT 테이블에 IP 매스커레이딩을 적용한다.
iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE

4. DHCP 서버 설정하기

DHCP 서버 구성 파일을 연다.

sudo vi /etc/dhcp/dhcpd.conf

아래와 같은 내용으로 파일을 작성한다.

default-lease-time 600;
max-lease-time 7200;

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.201 192.168.0.220;
  option routers 192.168.0.101;    # 게이트웨이 주소. 무선 랜카드의 IP 주소이다.
  option domain-name-servers 8.8.8.8, 8.8.4.4;
}

DHCP 서버가 무선 랜카드를 통해 클라이언트의 요청에 응답하도록 한다.

/etc/default/isc-dhcp-server 파일을 열고 아래와 같이 작성한다.

INTERFACESv4="wlan0"    # 무선 랜카드의 인터페이스 이름이다.
INTERFACESv6=""

변경한 내용를 시스템에 적용한다.

sudo systemctl restart isc-dhcp-server

5. hostapd 의 설치와 구성

hostapd 는 액세스 포인트와 인증 서버를 위한 데몬 프로그램이다.

hostapd 패키지를 설치한다.

apt install hostapd

hostapd 의 구성 파일을 만든다.

vi ~/hostapd/hostapd.conf

구성 파일에 아래와 같은 내용을 입력한다.

Wi-Fi 인터페이스를 지정한다.

interface=wlan0

무선 랜카드 드라이버를 지정한다. 대부분의 경우에 nl80211 이면 된다.

driver=nl80211

공유기의 SSID 를 지정한다.

ssid=xtmci

Wi-Fi 인증 방식을 지정한다. 1은 WPA 방식이고 2는 WPA2 방식이다. 3은 2가지 방식을 모두 사용한다는 의미이다.

wpa=2

공유기 암호를 지정한다.

wpa_passphrase=pass1234

암호화 방식을 지정한다.

wpa_key_mgmt=WPA-PSK

인증 방식이 WPA 인 경우에 사용할 암호화 프로토콜을 지정한다.

wpa_pairwise=TKIP

인증 방식이 WPA2 인 경우에 사용할 암호화 프로토콜을 지정한다.

rsn_pairwise=CCMP

Wi-Fi 채널을 지정한다.

channel=6

Wi-Fi 모드를 지정한다. a, b, g, n 중 하나를 지정하면 된다.

hw_mode=g

MAC 주소 필터링 방식을 지정한다.

macaddr_acl=0

인증 알고리즘을 지정한다. 1은 오픈 시스템 인증 방식을 가리킨다. 2는 오픈 시스템 인증 방식과 공유키 인증 방식을 모두 사용한다는 의미이다.

auth_algs=1

SSID 를 공개할 것인지 여부를 지정한다. 0으로 하면 공개하게 되고 1로 하면 공개하지 않게 된다.

ignore_broadcast_ssid=0

완성된 ~/hostapd/hostapd.conf 파일의 내용은 다음과 같다.

interface=wlan0
driver=nl80211
ssid=xtmci
wpa=2
wpa_passphrase=pass1234
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
channel=6
hw_mode=g
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0

hostapd 를 실행한다.

sudo hostapd -B ~/hostapd/hostapd.conf

-B 옵션은 백그라운드 상태에서 실행한다는 의미이다.

6. 테스트

PC와 무선 랜카드를 이용한 무선 공유기가 완성되었다. 스마트폰 등 모바일 기기에서 무선 공유기에 접속해 보자. 접속 방법은 일반 공유기에 접속할 때와 같다. 네트워크 이름 (SSID) 을 찾아 선택한 후 암호를 입력하면 된다.

Leave a Reply

Your email address will not be published. Required fields are marked *