무선 랜카드를 이용해서 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) 을 찾아 선택한 후 암호를 입력하면 된다.