사용자:Cerulean/메모장/hostapd

큰숲백과, 나무를 보지 말고 큰 숲을 보라.

장치에서 지원하는 주파수 확인

iw phy1 info

# (disabled) => 사용 불가능
# (radar detection) => 근처 레이더 시설에서 5GHz 대의 레이더가 작동하면 잠시 WIFI가 중단되고 재연결이 될 수 있음. 
# https://www.cisco.com/c/ko_kr/support/docs/wireless-mobility/80211/213882-radar-detection-in-dynamic-frequency-sel.html
..
			* 5180.0 MHz [36] (18.0 dBm)
			* 5200.0 MHz [40] (18.0 dBm)
			* 5220.0 MHz [44] (18.0 dBm)
			* 5240.0 MHz [48] (17.0 dBm)
			* 5260.0 MHz [52] (18.0 dBm) 
			* 5280.0 MHz [56] (18.0 dBm) (radar detection)
			* 5300.0 MHz [60] (18.0 dBm) (radar detection)
			* 5320.0 MHz [64] (18.0 dBm) (radar detection)
			* 5500.0 MHz [100] (18.0 dBm) (radar detection)
			* 5520.0 MHz [104] (18.0 dBm) (radar detection)
			* 5540.0 MHz [108] (18.0 dBm) (radar detection)
			* 5560.0 MHz [112] (18.0 dBm) (radar detection)
			* 5580.0 MHz [116] (18.0 dBm) (radar detection)
			* 5600.0 MHz [120] (18.0 dBm) (radar detection)
			* 5620.0 MHz [124] (18.0 dBm) (radar detection)
			* 5640.0 MHz [128] (18.0 dBm) (radar detection)
			* 5660.0 MHz [132] (18.0 dBm) (radar detection)
			* 5680.0 MHz [136] (18.0 dBm) (radar detection)
			* 5700.0 MHz [140] (18.0 dBm) (radar detection)
			* 5720.0 MHz [144] (18.0 dBm) (radar detection)
			* 5745.0 MHz [149] (18.0 dBm)
			* 5765.0 MHz [153] (18.0 dBm)
			* 5785.0 MHz [157] (18.0 dBm)
			* 5805.0 MHz [161] (18.0 dBm)
			* 5825.0 MHz [165] (18.0 dBm)
			* 5845.0 MHz [169] (disabled)
			* 5865.0 MHz [173] (disabled)
			* 5885.0 MHz [177] (disabled)
iw reg set KR
iw reg get

현지에서 사용 가능한 주파수 대역

global
country KR: DFS-JP
	(2400 - 2483 @ 40), (N/A, 23), (N/A)
	(5150 - 5230 @ 40), (N/A, 23), (N/A), AUTO-BW
	(5230 - 5250 @ 20), (N/A, 17), (N/A), AUTO-BW
	(5250 - 5350 @ 80), (N/A, 20), (0 ms), DFS, AUTO-BW
	(5470 - 5725 @ 160), (N/A, 20), (0 ms), DFS
	(5725 - 5850 @ 80), (N/A, 23), (N/A)
	(5925 - 7125 @ 160), (N/A, 15), (N/A), NO-OUTDOOR
	(57000 - 66000 @ 2160), (N/A, 43), (N/A)

phy#0
country 99: DFS-UNSET
	(2402 - 2472 @ 40), (N/A, 20), (N/A)
	(2457 - 2482 @ 40), (N/A, 20), (N/A), PASSIVE-SCAN
	(5140 - 5360 @ 80), (N/A, 30), (N/A), PASSIVE-SCAN
	(5715 - 5860 @ 80), (N/A, 30), (N/A), PASSIVE-SCAN

iw phy1 info에서 확인한 채널이 위의 범위에 포함되면 사용 가능

40MHz일 때

(5150 - 5230 @ 40) -> 5200(5180-5220) O, 5220(5200-5240) X

20MHz일 때

(5150 - 5230 @ 40) -> 5200(5190-5210) O, 5220(5210-5230) O

hostapd -dd /etc/hostapd를 실행하고 나서 뜨는 로그에 사용 가능한 채널들이 나열되므로 로그를 보고 채널 설정해도 된다.

DNS 서버

DNS를 1.1.1.1이나 8.8.8.8과 같은 공개 DNS를 쓰기도 하고 사설 DNS를 쓰기도 한다.

dhcpd

IP를 네트워크에 있는 각 호스트에서 부여해야 함.

isc-dhcp-server, dnsmasq가 있다.

isc-dhcp-server

주소는 아래 범위의 내부용 주소를 입력해야 한다.

routers 옵션이 없으면 라우터가 10.0.0.1 주소를 차지함에도 불구하고 클라이언트에 10.0.0.1 주소를 부여하는 불상사가 발생할 수 있다. (확인 안한 정보)

172.16.0.0/12, 192.168.1.0/16, 10.0.0.0/8

subnet 10.0.0.0 netmask 255.255.255.0 {
  range 10.0.0.2 10.0.0.100;
  option domain-name-servers 1.1.1.1;
  option domain-name "dhcp";
  option routers 10.0.0.1;
  option broadcast-address 10.0.0.255;
  default-lease-time 600;
  max-lease-time 7200;
  interface *******;
}

https://wiki.archlinux.org/title/Dnsmasq

hostapd/dhcpd 오류 수정

장치가 완전히 로드된 후에 hostapd 데몬이 작동하길 원한다면(dhcpd가 먼저 활성화되면서 인터페이스가 존재하지 않는다는 오류가 발생할 경우) 아래 파일에 작성. wlan0는 자신의 무선 네트워크 인터페이스 이름을 넣는다.

/etc/systemd/system/hostapd.service.d/override.conf

[Unit] BindsTo=sys-subsystem-net-devices-wlan0.device After=sys-subsystem-net-devices-wlan0.device

systemctl edit hostapd 명령어를 이용해서 파일을 작성해도 된다.

끝나고 systemctl restart hostapd 잊지 않는다

NAT 활성화

wifi 연결은 되는 상태여도 NAT를 활성화하지 않으면 인터넷 접근이 불가능.

외부로 나가는(egress) 인터페이스(eth0)는 방화벽이 안전하게 설정되어야 한다.

firewall-cmd --zone=internal --add-interface=wifi0 --permanent
firewall-cmd --zone=external --add-interface=eth0 --permanent

firewall-cmd --permanent --new-policy int2ext
firewall-cmd --permanent --policy int2ext --add-ingress-zone internal
firewall-cmd --permanent --policy int2ext --add-egress-zone external
firewall-cmd --permanent --policy int2ext --set-target ACCEPT
firewall-cmd --reload

아래처럼 해도 되는데 설정 유지가 안되어 별도로 부팅 후 자동 실행 설정이 되어야 함. firewalld가 없는 경우에.

  • iptables -t nat -A POSTROUTING -o internet0 -j MASQUERADE
  • iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  • iptables -A FORWARD -i net0 -o internet0 -j ACCEPT

https://wiki.archlinux.org/title/Internet_sharing