hostapd + dnsmasq + firewalld · 인터넷 포워딩 포함
| 항목 | 값 |
|---|---|
| OS | Ubuntu 20.04+ |
| 유선 인터페이스 | enp4s0 (예: 192.168.0.119) |
| 무선 인터페이스 | wlp6s0 |
| 핫스팟 IP | 10.0.0.1/24 |
| SSID | HOTSPOT |
| DHCP 범위 | 10.0.0.50 ~ 10.0.0.150 |
| 방화벽 | firewalld (ufw 비활성화) |
sudo apt install hostapd dnsmasq
sudo systemctl stop ufw
sudo systemctl disable ufw
Ubuntu 20.04+에서는 NetworkManager가 기본으로 동작합니다. wlp6s0를 NetworkManager 관리에서 제외한 뒤 /etc/network/interfaces로 고정 IP를 설정합니다.
sudo tee /etc/NetworkManager/conf.d/wlp6s0-unmanaged.conf <<EOF
[keyfile]
unmanaged-devices=interface-name:wlp6s0
EOF
sudo systemctl restart NetworkManager
auto wlp6s0
iface wlp6s0 inet static
address 10.0.0.1
netmask 255.255.255.0
interface=wlp6s0
driver=nl80211
ssid=HOTSPOT
hw_mode=g
channel=6
wmm_enabled=0
macaddr_acl=0
auth_algs=1
wpa=2
wpa_passphrase=비밀번호
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
아래 줄 주석 해제:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd
파일: /etc/dnsmasq.conf
interface=wlp6s0
dhcp-range=10.0.0.50,10.0.0.150,12h
dhcp-option=3,10.0.0.1 # 클라이언트 게이트웨이 주소
dhcp-option=6,8.8.8.8 # 클라이언트 DNS 서버
bind-interfaces
server=8.8.8.8
sudo systemctl enable dnsmasq
sudo systemctl start dnsmasq
sudo firewall-cmd --zone=internal --add-interface=wlp6s0 --permanent
sudo firewall-cmd --zone=internal --add-service=dhcp --permanent
sudo firewall-cmd --zone=internal --add-service=dns --permanent
sudo firewall-cmd --zone=internal --add-masquerade --permanent
sudo firewall-cmd --zone=public --add-masquerade --permanent
sudo firewall-cmd --reload
/etc/sysctl.conf 에서 아래 줄 주석 해제:
net.ipv4.ip_forward=1
sudo sysctl -p
sudo systemctl status hostapd
sudo systemctl status dnsmasq
ip addr show wlp6s0
sudo firewall-cmd --zone=internal --list-all
sudo iptables -L FORWARD -n -v
sudo journalctl -u dnsmasq -f
sudo tcpdump -i wlp6s0 port 67 or port 68 # DHCP 요청 확인
댓글목록
등록된 댓글이 없습니다.