Raspberry ๋จ์ผ ๋ณด๋ PC๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Wi-Fi ์ก์ธ์ค ํฌ์ธํธ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ฒญ๋ ์์ ์ ๋ณด๊ฐ ์ธํฐ๋ท์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๋ Raspberry ๊ณ ์ ์ Raspbian ์ด์ ์ฒด์ ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
RPM ๊ธฐ๋ฐ ์์คํ ์ ๊ณ ์ํ๋ ์ ๋ ์ด ์์ ๊ธฐ์ ์ ์ง๋์น ์ ์์๊ณ ์ ๊ฐ ์ฌ๋ํ๋ CentOS๋ฅผ ์ฌ์ฉํด ๋ณด์ง ์์ ์ ์์์ต๋๋ค.
์ด ๋ฌธ์์์๋ CentOS ์ด์ ์ฒด์ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ Raspberry Pi 5 Model B+์์ 3GHz/AC Wi-Fi ๋ผ์ฐํฐ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ์ ์ ๊ณตํฉ๋๋ค. ๋ช ๊ฐ์ง ํ์ค์ด์ง๋ง ๊ฑฐ์ ์๋ ค์ง์ง ์์ ํธ๋ฆญ์ด ์์ผ๋ฉฐ, ๋ณด๋์ค๋ก ์ถ๊ฐ Wi-Fi ์ฅ๋น๋ฅผ Raspberry์ ์ฐ๊ฒฐํ์ฌ ์ฌ๋ฌ ๋ชจ๋(2,4+5GHz)์์ ๋์์ ์๋ํ ์ ์๋๋ก ํ๋ ๊ทธ๋ฆผ์ด ์์ต๋๋ค.
(๋ฌด๋ฃ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ์ด๋ฏธ์ง ํผํฉ)
์ผ๋ถ ์ฐ์ฃผ ์๋๋ ์๋ํ์ง ์๋๋ค๋ ์ ์ ์ฆ์ ์์๋๊ฒ ์ต๋๋ค. ์ ๋ ๋ฌด์ ์ผ๋ก Raspberry์์ ์ต๋ 100Mbps๋ฅผ ์ง๋๋๋ฐ, ์ด๋ ์ธํฐ๋ท ์ ๊ณต์
์ฒด์ ์๋๋ฅผ ์ปค๋ฒํฉ๋๋ค. ์ด๋ก ์ ์ผ๋ก N์์๋ XNUMX๊ธฐ๊ฐ๋นํธ๋ฅผ ์ป์ ์ ์๋ค๋ฉด ๊ทธ๋ ๊ฒ ๋๋ฆฐ AC๊ฐ ํ์ํ ์ด์ ๋ ๋ฌด์์
๋๊น? ์ด ์ง๋ฌธ์ ์ค์ค๋ก์๊ฒ ๋ฌผ์ด๋ดค๋ค๋ฉด ๋งค์ฅ์ ๊ฐ์ XNUMX๊ฐ์ ์ธ๋ถ ์ํ
๋๊ฐ ์๋ ์ค์ ๋ผ์ฐํฐ๋ฅผ ๊ตฌ์
ํ์ญ์์ค.
0. ๋น์ ์๊ฒ ํ์ํ ๊ฒ
- ์ค์ ๋ก "๋ผ์ฆ๋ฒ ๋ฆฌ ์ ํ" ์์ฒด๋ ๋ค์๊ณผ ๊ฐ์ด ํ๋ฅญํฉ๋๋ค. Pi 3 Model B+(ํ๋๋ 5GHz ์๋ ๋ฐ ์ฑ๋ ๋ฌ์ฑ);
- ์ข์ microSD >= 4GB;
- Linux ๋ฐ microSD ๋ฆฌ๋/๋ผ์ดํฐ๋ฅผ ๊ฐ์ถ ์ํฌ์คํ ์ด์ ;
- Linux์์ ์ถฉ๋ถํ ๊ธฐ์ ์ ์ฌ์ฉํ ์ ์๋์ง ์ฌ๋ถ์ ๋ํ ๊ธฐ์ฌ๋ ์๋ จ๋ ๊ดด์ง๋ฅผ ์ํ ๊ฒ์ ๋๋ค.
- Raspberry์ Linux ๊ฐ์ ์ ์ ๋คํธ์ํฌ(eth0) ์ฐ๊ฒฐ, ๋ก์ปฌ ๋คํธ์ํฌ์์ DHCP ์๋ฒ ์คํ ๋ฐ ๋ ์ฅ์น ๋ชจ๋์์ ์ธํฐ๋ท ์ก์ธ์ค.
๋ง์ง๋ง ์์ ์ ๋ํ ์์ ์๊ฒฌ. "๊ณ๋์ด ๋จผ์ ๋, ์๋๋ฉด..." ์ธํฐ๋ท ์ ์ ์ฅ๋น ์์ด Wi-Fi ๋ผ์ฐํฐ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ์ด ์ฌ๋ฏธ์๋ ์ฐ์ต์ ๊ธฐ์ฌ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋์ ๋จ์ํ Raspberry๊ฐ ๋ก์ปฌ ๋คํธ์ํฌ์ ์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๊ณ ์ธํฐ๋ท์ ์ก์ธ์คํ ์ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ๊ฒฝ์ฐ "๋ผ์ฆ๋ฒ ๋ฆฌ"๋ฅผ ์ค์ ํ๊ธฐ ์ํด ์ถ๊ฐ TV์ ์กฐ์๊ธฐ๊ฐ ํ์ํ์ง ์์ต๋๋ค.
1. CentOS ์ค์น
์ด ๊ธฐ์ฌ๋ฅผ ์์ฑํ๋ ์์ ์์ ์ฅ์น์์ ์คํ๋๋ CentOS ๋ฒ์ ์ 32๋นํธ์ ๋๋ค. World Wide Web ์ด๋๊ฐ์์ ๋๋ 64๋นํธ ARM ์ํคํ ์ฒ์์ ์ด๋ฌํ OS์ ์ฑ๋ฅ์ด ์ต๋ 20%๊น์ง ๊ฐ์ํ๋ค๋ ์๊ฒฌ์ ์ ํ์ต๋๋ค. ์ด ์๊ฐ์ ์ฝ๋ฉํธ ์์ด ๋จ๊ธฐ๊ฒ ์ต๋๋ค.
Linux์์๋ ์ปค๋์ด ํฌํจ๋ ์ต์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค.-๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด-"๊ทธ๋ฆฌ๊ณ microSD์ ์๋๋ค.
# xzcat CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw.xz |
dd of=/dev/mmcblk0 bs=4M
# sync
์ด๋ฏธ์ง ์ฌ์ฉ์ ์์ํ๊ธฐ ์ ์ SWAP ํํฐ์ ์ ์ ๊ฑฐํ๊ณ ๋ฃจํธ๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ฒด ๋ณผ๋ฅจ์ผ๋ก ํ์ฅํ ๋ค์ SELinux๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋จํฉ๋๋ค. Linux์์ ๋ฃจํธ ๋ณต์ฌ๋ณธ์ ๋ง๋ค๊ณ , microSD์์ ์ฒซ ๋ฒ์งธ(/boot) ํํฐ์ ์ ์ ์ธํ ๋ชจ๋ ํํฐ์ ์ ์ญ์ ํ๊ณ , ์ ๋ฃจํธ๋ฅผ ์์ฑํ๊ณ ๋ณต์ฌ๋ณธ์์ ํด๋น ๋ด์ฉ์ ๋ฐํํฉ๋๋ค.
ํ์ ์กฐ์น์ ์(์ฌ๊ฐํ ์ฝ์ ์ถ๋ ฅ)
# mount /dev/mmcblk0p3 /mnt
# cd /mnt
# tar cfz ~/pi.tgz . --no-selinux
# cd
# umount /mnt
# parted /dev/mmcblk0
(parted) unit s
(parted) print free
Model: SD SC16G (sd/mmc)
Disk /dev/mmcblk0: 31116288s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
63s 2047s 1985s Free Space
1 2048s 1370111s 1368064s primary fat32 boot, lba
2 1370112s 2369535s 999424s primary linux-swap(v1)
3 2369536s 5298175s 2928640s primary ext4
5298176s 31116287s 25818112s Free Space
(parted) rm 3
(parted) rm 2
(parted) print free
Model: SD SC16G (sd/mmc)
Disk /dev/mmcblk0: 31116288s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
63s 2047s 1985s Free Space
1 2048s 1370111s 1368064s primary fat32 boot, lba
1370112s 31116287s 29746176s Free Space
(parted) mkpart
Partition type? primary/extended? primary
File system type? [ext2]? ext4
Start? 1370112s
End? 31116287s
(parted) set
Partition number? 2
Flag to Invert? lba
New state? on/[off]? off
(parted) print free
Model: SD SC16G (sd/mmc)
Disk /dev/mmcblk0: 31116288s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
63s 2047s 1985s Free Space
1 2048s 1370111s 1368064s primary fat32 boot, lba
2 1370112s 31116287s 29746176s primary ext4
(parted) quit
# mkfs.ext4 /dev/mmcblk0p2
mke2fs 1.44.6 (5-Mar-2019)
/dev/mmcblk0p2 contains a swap file system labelled '_swap'
Proceed anyway? (y,N) y
Discarding device blocks: done
Creating filesystem with 3718272 4k blocks and 930240 inodes
Filesystem UUID: 6a1a0694-8196-4724-a58d-edde1f189b31
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
# mount /dev/mmcblk0p2 /mnt
# tar xfz ~/pi.tgz -C /mnt --no-selinux
๋ฃจํธ ํํฐ์ ์ ๋ด์ฉ์ ํ๊ณ ๋๋ฉด ์ด์ ์ผ๋ถ ๋ด์ฉ์ ๋ณ๊ฒฝํ ์ฐจ๋ก์ ๋๋ค.
SELinux ๋นํ์ฑํ /mnt/etc/selinux/config:
SELINUX=disabled
ํธ์ง /mnt/etc/fstab, ํํฐ์ ์ ๋ํด boot(/boot, ๋ณ๊ฒฝ ์ฌํญ ์์) ๋ฐ root(Linux์์ blkid ๋ช ๋ น์ ์ถ๋ ฅ์ ์ฐ๊ตฌํ์ฌ ์ ์ ์๋ UUID ๊ฐ์ ๋ณ๊ฒฝํจ)๋ผ๋ ๋ ๊ฐ์ ํญ๋ชฉ๋ง ๋จ๊ฒจ ๋ก๋๋ค.
UUID=6a1a0694-8196-4724-a58d-edde1f189b31 / ext4 defaults,noatime 0 0
UUID=6938-F4F2 /boot vfat defaults,noatime 0 0
๋ง์ง๋ง์ผ๋ก ์ปค๋ ๋ถํ ๋งค๊ฐ๋ณ์๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ๋ฃจํธ ํํฐ์ ์ ์ ์์น๋ฅผ ์ง์ ํ๊ณ , ๋๋ฒ๊น ์ ๋ณด ์ถ๋ ฅ์ ๋นํ์ฑํํ๊ณ , (์ ํ์ ์ผ๋ก) ์ปค๋์ด ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ IPv6 ์ฃผ์๋ฅผ ํ ๋นํ๋ ๊ฒ์ ๊ธ์งํฉ๋๋ค.
# cd
# umount /mnt
# mount /dev/mmcblk0p1 /mnt
๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค /mnt/cmdline.txt ๋ค์ ํ์์ผ๋ก ๋ณํํฉ๋๋ค(ํ์ดํ ์์ด ํ ์ค):
root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait quiet ipv6.disable_ipv6=1
์๋ฃ :
# cd
# umount /mnt
# sync
microSD๋ฅผ "raspberry"๋ก ์ฌ๋ฐฐ์นํ๊ณ ์คํํ ํ ssh(root/centos)๋ฅผ ํตํด ๋คํธ์ํฌ ์ก์ธ์ค๋ฅผ ์ป์ต๋๋ค.
2. CentOS ์ค์
์ฒ์ ์ธ ๊ฐ์ง ํ๋ค๋ฆฌ์ง ์๋ ์์ง์: passwd, yum -y ์ ๋ฐ์ดํธ, ์ฌ๋ถํ .
์ฐ๋ฆฌ๋ ๋คํธ์ํฌ ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐ๋จ:
# yum install systemd-networkd
# systemctl enable systemd-networkd
# systemctl disable NetworkManager
# chkconfig network off
ํ์ผ ์์ฑ(๋๋ ํ ๋ฆฌ์ ํจ๊ป) /etc/systemd/network/eth0.network:
[Match]
Name=eth0
[Network]
DHCP=ipv4
"raspberry"๋ฅผ ์ฌ๋ถํ ํ๊ณ ssh๋ฅผ ํตํด ๋ค์ ๋คํธ์ํฌ ์ก์ธ์ค๋ฅผ ์ป์ต๋๋ค(IP ์ฃผ์๋ ๋ณ๊ฒฝ๋ ์ ์์). ์ฌ์ฉ๋๋ ๊ฒ์์ฃผ์ํ์ญ์์ค / ๊ธฐํ / resolv.conf์, ์ด์ ์ Network Manager์์ ์์ฑ๋์์ต๋๋ค. ๋ฐ๋ผ์ ํด๊ฒฐ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ํด๋น ๋ด์ฉ์ ํธ์งํ์ญ์์ค. ์ฌ์ฉ ์์คํ ํด๊ฒฐ ์ฐ๋ฆฌ๋ํ์ง ์์ต๋๋ค.
"๋ถํ์ํ" ํญ๋ชฉ์ ์ ๊ฑฐํ๊ณ ์๋ฆฌํ๋ฉฐ OS ๋ก๋ฉ ์๋๋ฅผ ๋์ ๋๋ค.
# systemctl set-default multi-user.target
# yum remove GeoIP Network* aic* alsa* cloud-utils-growpart
cronie* dhc* firewal* initscripts iwl* kexec* logrotate
postfix rsyslog selinux-pol* teamd wpa_supplicant
ํ์ํ ์ฌ๋ ํฌ๋ก ๋ด์ฅ๋ ๊ฒ์ ์ํํ์ง ๋ชปํ๋ ์ฌ๋
# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
# vi /etc/systemd/journald.conf
๊ธฐ๋ณธ ์๋น์ค์์ IPv6 ์ฌ์ฉ ๋นํ์ฑํ(ํ์ํ ๊ฒฝ์ฐ)/ etc / ssh / sshd_config:
AddressFamily inet
/etc/sysconfig/chronyd:
OPTIONS="-4"
"๋ผ์ฆ๋ฒ ๋ฆฌ"์ ๋ํ ์๊ฐ์ ๊ด๋ จ์ฑ์ ์ค์ํ ๊ฒ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ๋ถํ ์ ์๊ณ์ ํ์ฌ ์ํ๋ฅผ ์ ์ฅํ๋ ํ๋์จ์ด ๊ธฐ๋ฅ์ด ์์ผ๋ฏ๋ก ๋๊ธฐํ๊ฐ ํ์ํฉ๋๋ค. ์ด๋ฅผ ์ํ ๋งค์ฐ ํ๋ฅญํ๊ณ ๋น ๋ฅธ ๋ฐ๋ชฌ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํฌ๋ก ๋ - ์ด๋ฏธ ์ค์น๋์ด ์์ผ๋ฉฐ ์๋์ผ๋ก ์์๋ฉ๋๋ค. NTP ์๋ฒ๋ฅผ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฒ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
/etc/chrony.conf:
server 0.ru.pool.ntp.org iburst
server 1.ru.pool.ntp.org iburst
server 2.ru.pool.ntp.org iburst
server 3.ru.pool.ntp.org iburst
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ ์๊ฐ๋๋ฅผ ์ค์ ํ๋ ค๋ฉด ์ฅ๋. ์ฐ๋ฆฌ์ ๋ชฉํ๋ 5GHz ์ฃผํ์์์ ์๋ํ๋ Wi-Fi ๋ผ์ฐํฐ๋ฅผ ๋ง๋๋ ๊ฒ์ด๋ฏ๋ก ๋ฏธ๋ฆฌ ๋๋ผ์์ ์ค๋นํ๊ฒ ์ต๋๋ค. ์กฐ์ ๊ธฐ:
# ๋ ์ ๋ณด crda
์์ฝ: 802.11 ๋ฌด์ ๋คํธ์ํน์ ๋ํ ๊ท์ ์ค์ ๋ฐ๋ชฌ
์ญ์ ์๊ฐ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์ด ์ฌ์ ํ ์ค๊ณ๋ (๋ฌ์์์์) 5GHz ์ฃผํ์์ "๋์" ์ซ์์ ์ฑ๋ ์ฌ์ฉ์ "๊ธ์ง"ํฉ๋๋ค. ์๋ น์ ๋๋ฅ/๋์ ์ด๋ฆ์ ์ฌ์ฉํ์ง ์๊ณ ์๊ฐ๋๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋๋ค. ์ฆ, ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
# timedatectl set-timezone Europe/Moscow
์ฐ๋ฆฌ๋ ๋ค์์ ๋๋ฆ ๋๋ค:
# timedatectl set-timezone Etc/GMT-3
๊ทธ๋ฆฌ๊ณ ์์คํ ์ ํค์ด์คํ์ผ์ ๋ํ ๋ง์ง๋ง ์๊ธธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
# hostnamectl set-hostname router
/root/.bash_profile:
. . .
# User specific environment and startup programs
export PROMPT_COMMAND="vcgencmd measure_temp"
export LANG=en_US.UTF-8
export PATH=$PATH:$HOME/bin
3. CentOS ์ ๋์จ
์์์ ๋งํ ๋ชจ๋ ๋ด์ฉ์ Raspberry Pi์ "๋ฐ๋๋ผ" CentOS๋ฅผ ์ค์นํ๊ธฐ ์ํ ์์ ํ ์ง์นจ์ผ๋ก ๊ฐ์ฃผ๋ ์ ์์ต๋๋ค. 10์ด ์ด๋ด์ (์ฌ)๋ถํ ๋๊ณ 15MB ๋ฏธ๋ง์ RAM๊ณผ 1.5GB์ microSD๋ฅผ ์ฌ์ฉํ๋ PC๊ฐ ์์ฑ๋์ด์ผ ํฉ๋๋ค(์ค์ ๋ก๋ ๋ถ์์ ํ /boot๋ก ์ธํด 1GB ๋ฏธ๋ง์ด์ง๋ง ์์งํ ๋งํด์).
์ด ์์คํ ์ Wi-Fi ์ก์ธ์ค ํฌ์ธํธ ์ํํธ์จ์ด๋ฅผ ์ค์นํ๋ ค๋ฉด ํ์ค CentOS ๋ฐฐํฌํ์ ๊ธฐ๋ฅ์ ์ฝ๊ฐ ํ์ฅํด์ผ ํฉ๋๋ค. ์ฐ์ ๋ด์ฅ Wi-Fi ์ด๋ํฐ์ ๋๋ผ์ด๋ฒ(ํ์จ์ด)๋ฅผ ์ ๊ทธ๋ ์ด๋ํด ๋ณด๊ฒ ์ต๋๋ค. ํ๋ก์ ํธ ํ ํ์ด์ง๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค.
Raspberry 3B ๋ฐ 3B+์ Wi-Fi
Raspberry PI 3B/3B+ ํ์จ์ด ํ์ผ์ CentOS ํ๋ก์ ํธ์์ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๋ค์ ๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ์ดํดํ๊ณ ํ์จ์ด๋ฅผ ๋ค์ด๋ก๋ํ๊ณ Wi-Fi๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
CentOS ํ๋ก์ ํธ์์ ๊ธ์ง๋ ๋ด์ฉ์ ๊ฐ์ธ์ ์ธ ์ฉ๋๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ๊ธ์ง๋์ง ์์ต๋๋ค. CentOS์ ๋ฐฐํฌ Wi-Fi ํ์จ์ด๋ฅผ Broadcom ๊ฐ๋ฐ์์ ํด๋น ํ์จ์ด(๋์ผํ๊ฒ ์ซ์ดํ๋ ๋ฐ์ด๋๋ฆฌ blob...)๋ก ๊ต์ฒดํฉ๋๋ค. ํนํ ์ด๋ฅผ ํตํด ์ก์ธ์ค ํฌ์ธํธ ๋ชจ๋์์ AC๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Wi-Fi ํ์จ์ด ์ ๊ทธ๋ ์ด๋์ฅ์น ๋ชจ๋ธ๊ณผ ํ์ฌ ํ์จ์ด ๋ฒ์ ์ ํ์ธํ์ธ์.
# journalctl | grep $(basename $(readlink /sys/class/net/wlan0/device/driver))
Jan 01 04:00:03 router kernel: brcmfmac: F1 signature read @0x18000000=0x15264345
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006
Jan 01 04:00:03 router kernel: usbcore: registered new interface driver brcmfmac
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Mar 1 2015 07:29:38 version 7.45.18 (r538002) FWID 01-6a2c8ad4
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 7.14.8 Compiler: 1.24.9 ClmImport: 1.24.9 Creation: 2014-09-02 03:05:33 Inc Data: 7.17.1 Inc Compiler: 1.26.11 Inc ClmImport: 1.26.11 Creation: 2015-03-01 07:22:34
ํ์จ์ด ๋ฒ์ ์ 7.45.18๋ 01.03.2015์ XNUMX์ผ์ XNUMX์ด๋ฉฐ ๋ค์ ์ซ์ ์งํฉ์ ๊ธฐ์ตํฉ๋๋ค. 43455 (brcmfmac43455-sdio.bin).
# wget https://downloads.raspberrypi.org/raspbian_lite_latest
# unzip -p raspbian_lite_latest > raspbian.img
# fdisk -l raspbian.img
Disk raspbian.img: 2 GiB, 2197815296 bytes, 4292608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x17869b7d
Device Boot Start End Sectors Size Id Type
raspbian.img1 8192 532480 524289 256M c W95 FAT32 (LBA)
raspbian.img2 540672 4292607 3751936 1.8G 83 Linux
# mount -t ext4 -o loop,offset=$((540672 * 512)) raspbian.img /mnt
# cp -fv /mnt/lib/firmware/brcm/*43455* ...
'/mnt/lib/firmware/brcm/brcmfmac43455-sdio.bin' -> ...
'/mnt/lib/firmware/brcm/brcmfmac43455-sdio.clm_blob' -> ...
'/mnt/lib/firmware/brcm/brcmfmac43455-sdio.txt' -> ...
# umount /mnt
๊ฒฐ๊ณผ Wi-Fi ์ด๋ํฐ ํ์จ์ด ํ์ผ์ ๋๋ ํฐ๋ฆฌ์ ๋ณต์ฌํ๊ณ "raspberry"๋ก ๋ฐ๊ฟ์ผ ํฉ๋๋ค. /usr/lib/ํ์จ์ด/brcm/
์ฐ๋ฆฌ๋ ๋ฏธ๋์ ๋ผ์ฐํฐ๋ฅผ ์ฌ๋ถํ ํ๊ณ ๋ง์กฑ์ค๋ฝ๊ฒ ์์ต๋๋ค.
# journalctl | grep $(basename $(readlink /sys/class/net/wlan0/device/driver))
Jan 01 04:00:03 router kernel: brcmfmac: F1 signature read @0x18000000=0x15264345
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006
Jan 01 04:00:03 router kernel: usbcore: registered new interface driver brcmfmac
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Feb 27 2018 03:15:32 version 7.45.154 (r684107 CY) FWID 01-4fbe0b04
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 9.10.105 Compiler: 1.29.4 ClmImport: 1.36.3 Creation: 2018-03-09 18:56:28
๋ฒ์ : 7.45.154๋ 27.02.2018์ XNUMX์ผ์ XNUMX.
๊ทธ๋ฆฌ๊ณ ๋ฌผ๋ก EPEL:
# cat > /etc/yum.repos.d/epel.repo << EOF
[epel]
name=Epel rebuild for armhfp
baseurl=https://armv7.dev.centos.org/repodir/epel-pass-1/
enabled=1
gpgcheck=0
EOF
# yum clean all
# rm -rfv /var/cache/yum
# yum update
4. ๋คํธ์ํฌ ๊ตฌ์ฑ๊ณผ ์์ผ๋ก์ ๊ณผ์
์์์ ๋์ํ ๊ฒ์ฒ๋ผ "๋ผ์ฆ๋ฒ ๋ฆฌ"๋ "์์ด์ด"๋ฅผ ํตํด ๋ก์ปฌ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ๊ณต๊ธ์๊ฐ ์ ํํ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ธํฐ๋ท ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ฆ, ๊ณต์ฉ ๋คํธ์ํฌ์ ์ฃผ์๋ DHCP ์๋ฒ์ ์ํด ๋์ ์ผ๋ก ๋ฐ๊ธ๋ฉ๋๋ค(์๋ง๋ MAC ๋ฐ์ธ๋ฉ์ ํตํด). ์ด ๊ฒฝ์ฐ, ๋ผ์ฆ๋ฒ ๋ฆฌ๋ฅผ ์ต์ข ์ค์ ํ ํ ๊ณต๊ธ์์ ์ผ์ด๋ธ์ ๋ผ์ฆ๋ฒ ๋ฆฌ์ "์ฐ๊ฒฐ"ํ๊ธฐ๋ง ํ๋ฉด ์์ ์ด ์๋ฃ๋ฉ๋๋ค. ๋ค์์ ์ฌ์ฉํ์ฌ ์น์ธ ์์คํ ๋คํธ์ํฌ -๋ณ๋์ ๊ธฐ์ฌ ์ฃผ์ ์ด๋ฉฐ ์ฌ๊ธฐ์๋ ๋ ผ์๋์ง ์์ต๋๋ค.
Raspberry์ Wi-Fi ์ธํฐํ์ด์ค๋ ๋ก์ปฌ ๋คํธ์ํฌ์ด๊ณ ๋ด์ฅ๋ ์ด๋๋ท ์ด๋ํฐ(eth0)๋ ์ธ๋ถ์ ๋๋ค. ๋ก์ปฌ ๋คํธ์ํฌ์ ์ ์ ์ผ๋ก ๋ฒํธ๋ฅผ ๋งค๊ธฐ๊ฒ ์ต๋๋ค(์: 192.168.0.0/24). ๋ผ์ฆ๋ฒ ๋ฆฌ ์ฃผ์: 192.168.0.1. DHCP ์๋ฒ๋ ์ธ๋ถ ๋คํธ์ํฌ(์ธํฐ๋ท)์์ ์๋ํฉ๋๋ค.
ํํ ํผ๋ (์์ ์ ์ฌ๋ด)Lennart Pottering์ ์์ฒด ํ๋ก๊ทธ๋จ์ ํธ์งํ์ต๋๋ค. ์์คํ ๋งค์ฐ ์ข์. ์ด๊ฒ ์์คํ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ๋๋ฌด ๋นจ๋ฆฌ ์์ํ์ฌ ์ฌํ์ ํํ๋ ์๋ฆฌ์์ ํ๋ณต ํ ์๊ฐ์ด ์์ด ์ฅ์ ๋ฌผ ์ฝ์ค๋ฅผ ์์ํ์ง๋ ์๊ณ ์ฒ์์ ๋์ด์ง๊ณ ๋์ด์ง๋๋ค.
๊ทธ๋ฌ๋ ์ง์งํ๊ฒ, ์์คํ OS ์์ ์ ์คํ๋ ํ๋ก์ธ์ค์ ๊ณต๊ฒฉ์ ์ธ ๋ณ๋ ฌํ๋ ๋ ธ๋ จํ ์์ฐจ LSB ์ ๋ฌธ๊ฐ์๊ฒ๋ ์ผ์ข ์ "๋น๋๊ท ๋ธ๋ฆฌ์ง"์ ๋๋ค. ๋คํ์ค๋ฝ๊ฒ๋ ์ด "๋ณ๋ ฌ ํผ๋"์ ์ง์๋ฅผ ๋ถ์ฌํ๋ ๊ฒ์ ๋น๋ก ํญ์ ๋ช ๋ฐฑํ์ง๋ ์์ง๋ง ๊ฐ๋จํ๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค.
์์ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ ๊ฐ์ ๋ธ๋ฆฌ์ง ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ญ๋๋ค. ๋ ะธ ํ๊ธฐ์๋. Wi-Fi ์ด๋ํฐ๋ฅผ ์ฒซ ๋ฒ์งธ ์ด๋ํฐ์ "์ฐ๊ฒฐ"ํ๊ณ eth0 "๋ผ์ฆ๋ฒ ๋ฆฌ"๋ฅผ ๋ ๋ฒ์งธ ์ด๋ํฐ์ "์ฐ๊ฒฐ"ํฉ๋๋ค.
/etc/systemd/network/lan.netdev:
[NetDev]
Name=lan
Kind=bridge
/etc/systemd/network/lan.network:
[Match]
Name=lan
[Network]
Address=192.168.0.1/24
IPForward=yes
/etc/systemd/network/wan.netdev:
[NetDev]
Name=wan
Kind=bridge
#MACAddress=xx:xx:xx:xx:xx:xx
/etc/systemd/network/wan.network:
[Match]
Name=wan
[Network]
DHCP=ipv4
IPForward=yes
IPForward=์ ๋ผ์ฐํ
์ ํ์ฑํํ๊ธฐ ์ํด sysctl์ ํตํด ์ปค๋์ ํํธ๋ฅผ ์ค ํ์๊ฐ ์์ต๋๋ค.
MAC์ฃผ์= ์ฃผ์์ ์ ๊ฑฐํ๊ณ ํ์ํ ๊ฒฝ์ฐ ๋ณ๊ฒฝํด ๋ณด๊ฒ ์ต๋๋ค.
๋จผ์ eth0์ "์ฐ๊ฒฐ"ํฉ๋๋ค. ์ฐ๋ฆฌ๋ "๊ท ์ผ์ฑ ๋ฌธ์ "๋ฅผ ๊ธฐ์ตํ๊ณ ์ด ์ธํฐํ์ด์ค์ MAC ์ฃผ์๋ง ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
# cat /sys/class/net/eth0/address
์ฐฝ์กฐํ๋ค /etc/systemd/network/eth.network:
[Match]
MACAddress=b8:27:eb:xx:xx:xx
[Network]
Bridge=wan
์ด์ ๊ตฌ์ฑ ํ์ผ eth0์ ์ญ์ ํ๊ณ Raspberry๋ฅผ ์ฌ๋ถํ ํ ํ ์ด์ ๋ํ ๋คํธ์ํฌ ์ก์ธ์ค ๊ถํ์ ์ป์ต๋๋ค(IP ์ฃผ์๋ ๋ณ๊ฒฝ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค).
# rm -fv /etc/systemd/network/eth0.network
# reboot
5.DNSMASQ
Wi-Fi ์ก์ธ์ค ํฌ์ธํธ๋ฅผ ๋ง๋๋ ๋ฐ ์์ด ๋ช ๊ฐ์ง ์ข์ ๋ฐฉ๋ฒ๋ณด๋ค ์ข์ ๊ฒ์ ์์ต๋๋ค. DNS ๋ง์คํฌ + hostapd ์์ง ๊ทธ๊ฒ์ ์์๋ด์ง ๋ชปํ์ต๋๋ค. ๋ด ์๊ฐ์๋.
ํน์ ์์ด๋ฒ๋ฆฐ ์ฌ๋์ด ์๋ค๋ฉด...
dnsmasq๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค.
# yum install dnsmasq
ํจํด / ๊ธฐํ / resolv.conf์:
nameserver 1.1.1.1
nameserver 1.0.0.1
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 77.88.8.8
nameserver 77.88.8.1
domain router.local
search router.local
์ํ๋ ๋๋ก ํธ์งํ์ธ์.
๋ฏธ๋๋ฉ๋ฆฌ์คํธ /etc/dnsmasq.conf:
domain-needed
bogus-priv
interface=lan
bind-dynamic
expand-hosts
domain=#
dhcp-range=192.168.0.100,192.168.0.199,255.255.255.0,24h
conf-dir=/etc/dnsmasq.d
์ฌ๊ธฐ์ "๋ง๋ฒ"์ ๋งค๊ฐ๋ณ์์ ์์ต๋๋ค. ๋ฐ์ธ๋ฉ ๋์ , ์ด๋ dnsmasq ๋ฐ๋ชฌ์ด ์์คํ ์ ๋ํ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋๋ก ์ง์ํฉ๋๋ค. ์ธํฐํ์ด์ค=lan, ๊ทธ๋ฆฌ๊ณ ์์ ํ ์๋์ค๋ฌ์ด ์ธ๋ก์์ ๊ธฐ์ ํ์ง ์์ต๋๋ค.
# systemctl enable dnsmasq
# systemctl start dnsmasq; journalctl -f
6. ํธ์คํPD
๋ง์ง๋ง์ผ๋ก ๋ง๋ฒ์ Hostapd ๊ตฌ์ฑ์ ๋๋ค. ๋๋ ๋๊ตฐ๊ฐ๊ฐ ๋ฐ๋ก ์ด ์์คํ ๊ตฌ์ ์ ์ฐพ๊ธฐ ์ํด ์ด ๊ธ์ ์ฝ๊ณ ์๋ค๋ ๊ฒ์ ์์ฌํ์ง ์์ต๋๋ค.
Hostapd๋ฅผ ์ค์นํ๊ธฐ ์ ์ "๊ท ์ผ์ฑ ๋ฌธ์ "๋ฅผ ๊ทน๋ณตํด์ผ ํฉ๋๋ค. ๋ด์ฅ๋ Wi-Fi ์ด๋ํฐ wlan0์ ์ถ๊ฐ USB Wi-Fi ์ฅ๋น๋ฅผ ์ฐ๊ฒฐํ ๋ ์ฝ๊ฒ ์ด๋ฆ์ wlan1๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ธํฐํ์ด์ค ์ด๋ฆ์ ์์ ํฉ๋๋ค. (๋ฌด์ ) ์ด๋ํฐ์ ๊ณ ์ ํ ์ด๋ฆ์ ์ฐพ์ ์ด๋ฅผ MAC ์ฃผ์์ ๋ฐ์ธ๋ฉํฉ๋๋ค.
์ฌ์ ํ wlan0์ธ ๋ด์ฅ Wi-Fi ์ด๋ํฐ์ ๊ฒฝ์ฐ:
# cat /sys/class/net/wlan0/address
b8:27:eb:xx:xx:xx
์ฐฝ์กฐํ๋ค /etc/systemd/network/wl0.link:
[Match]
MACAddress=b8:27:eb:xx:xx:xx
[Link]
Name=wl0
์ด์ ์ฐ๋ฆฌ๋ ํ์ ํ ๊ฒ์ด๋ค wl0 - Wi-Fi๊ฐ ๋ด์ฅ๋์ด ์์ต๋๋ค. ์ด๋ฅผ ํ์ธํ๊ธฐ ์ํด Raspberry๋ฅผ ์ฌ๋ถํ ํฉ๋๋ค.
์ค์นํ๋ค:
# yum install hostapd wireless-tools
๊ตฌ์ฑ ํ์ผ /etc/hostapd/hostapd.conf:
ssid=rpi
wpa_passphrase=1234567890
channel=36
country_code=US
interface=wl0
bridge=lan
driver=nl80211
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
macaddr_acl=0
hw_mode=a
wmm_enabled=1
# N
ieee80211n=1
require_ht=1
ht_capab=[MAX-AMSDU-3839][HT40+][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]
# AC
ieee80211ac=1
require_vht=1
ieee80211d=0
ieee80211h=0
vht_capab=[MAX-AMSDU-3839][SHORT-GI-80]
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42
ํ์๋ ์์ง ์๊ณ
# hostapd /etc/hostapd/hostapd.conf
Hostapd๋ ๋ํํ ๋ชจ๋๋ก ์์ํ์ฌ ์ํ๋ฅผ ์ฝ์์ ๋ธ๋ก๋์บ์คํ ํฉ๋๋ค. ์ค๋ฅ๊ฐ ์์ผ๋ฉด AC ๋ชจ๋๋ฅผ ์ง์ํ๋ ํด๋ผ์ด์ธํธ๊ฐ ์ก์ธ์ค ํฌ์ธํธ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. Hostapd๋ฅผ ์ค์งํ๋ ค๋ฉด - Ctrl-C.
๋จ์ ๊ฒ์ ์์คํ ์์ ์ Hostapd๋ฅผ ํ์ฑํํ๋ ๊ฒ๋ฟ์ ๋๋ค. ํ์ค ์์ (systemctl ํ์ฑํ hostapd)์ ์ํํ๋ฉด ๋ค์ ์ฌ๋ถํ ํ "ํผ์ ๊ตด๋ฌ๋ค๋๋" ์ ๋ง๊ฐ ์ง๋จ์ ๋ฐ์ ์ ์์ต๋๋ค.์ธํฐํ์ด์ค wl0์ ์ฐพ์ ์ ์์ต๋๋ค". "๋ณ๋ ฌ ํผ๋"์ ๊ฒฐ๊ณผ๋ก, ํธ์คํธ๋ ์ปค๋์ด ๋ฌด์ ์ด๋ํฐ๋ฅผ ๋ฐ๊ฒฌํ ๊ฒ๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ์์๋์์ต๋๋ค.
์ธํฐ๋ท์๋ ๋ฐ๋ชฌ์ ์์ํ๊ธฐ ์ ๊ฐ์ ์๊ฐ ์ด๊ณผ(๋ช ๋ถ)๋ถํฐ ์ธํฐํ์ด์ค์ ๋ชจ์์ ๋ชจ๋ํฐ๋งํ๊ณ ํธ์คํธ ํจ๋๋ฅผ (๋ค์) ์์ํ๋ ๋ค๋ฅธ ๋ฐ๋ชฌ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ค์ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์๋ฃจ์ ์ ์๋นํ ์คํ ๊ฐ๋ฅํ์ง๋ง ๋งค์ฐ ์ถ์ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์๋ํ ๋ถ์๊ฒ ๋์์ ์์ฒญํฉ๋๋ค ์์คํ "๋ชฉํ", "๊ณผ์ ", "์ข ์์ฑ"์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
๋ฐฐํฌ ์๋น์ค ํ์ผ์ ๋ค์ ์์น์ ๋ณต์ฌํฉ๋๋ค. /etc/systemd/system/hostapd.service:
# cp -fv /usr/lib/systemd/system/hostapd.service /etc/systemd/system
๋ด์ฉ์ ๋ค์ ํ์์ผ๋ก ์ค์ ๋๋ค.
[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
After=sys-subsystem-net-devices-wl0.device
BindsTo=sys-subsystem-net-devices-wl0.device
[Service]
Type=forking
PIDFile=/run/hostapd.pid
ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd.conf -P /run/hostapd.pid -B
[Install]
WantedBy=sys-subsystem-net-devices-wl0.device
์ ๋ฐ์ดํธ๋ ์๋น์ค ํ์ผ์ ๋ง๋ฒ์ ์๋ก์ด ๋์์ธ wl0 ์ธํฐํ์ด์ค์ ๋ํ Hostapd์ ๋์ ๋ฐ์ธ๋ฉ์ ์์ต๋๋ค. ์ธํฐํ์ด์ค๊ฐ ๋ํ๋๋ฉด ๋ฐ๋ชฌ์ด ์์๋๊ณ ์ฌ๋ผ์ง๋ฉด ์ค์ง๋ฉ๋๋ค. ์์คํ ์ ์ฌ๋ถํ ํ์ง ์๊ณ ๋ ์ด ๋ชจ๋ ์์ ์ด ์จ๋ผ์ธ์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค. ์ด ๊ธฐ์ ์ USB Wi-Fi ์ด๋ํฐ๋ฅผ ๋ผ์ฆ๋ฒ ๋ฆฌ์ ์ฐ๊ฒฐํ ๋ ํนํ ์ ์ฉํฉ๋๋ค.
์ด์ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
# systemctl enable hostapd
# reboot
7. IPํ ์ด๋ธ
โ๋ญ???โ ยฉ ์, ์! ์์ ์์คํ . ์๋ก์ด ๊ฒฐํฉ์ด ์์ต๋๋ค (ํํ๋ก ๋ฐฉํ๋ฒฝ) ๊ฒฐ๊ตญ ๋์ผํ ์์ ์ ์ํํ๊ฒ ๋ฉ๋๋ค.
์ข์ ์ค๋๋ ๊ฒ์ ์ฌ์ฉํ์ iptables์, ํด๋น ์๋น์ค๋ ์์๋ ํ ๋คํธ์ํฌ ๊ท์น์ ์ปค๋์ ๋ก๋ํ๊ณ ์์ฃผํ์ง ์๊ณ ๋ฆฌ์์ค๋ฅผ ์๋นํ์ง ์๊ณ ์กฐ์ฉํ ์ข ๋ฃ๋ฉ๋๋ค. systemd์๋ ์ฐ์ํจ์ด ์์ต๋๋ค IPMasquerade=ํ์ง๋ง NAT(์ฃผ์ ๋ณํ)์ ๋ฐฉํ๋ฒฝ์ iptables์ ๋งก๊ธธ ์์ ์ ๋๋ค.
์ค์นํ๋ค:
# yum install iptables-services
# systemctl enable iptables ip6tables
๋๋ iptables ๊ตฌ์ฑ์ ์คํฌ๋ฆฝํธ๋ก ์ ์ฅํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค(์):
#!/bin/bash
#
# Disable IPv6
#
ip6tables --flush
ip6tables --delete-chain
ip6tables --policy INPUT DROP
ip6tables --policy FORWARD DROP
ip6tables --policy OUTPUT DROP
ip6tables-save > /etc/sysconfig/ip6tables
systemctl restart ip6tables
#
# Cleaning
#
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#
# Loopback, lan
#
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i lan -j ACCEPT
#
# Ping, Established
#
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# NAT
#
iptables -t nat -A POSTROUTING -o wan -j MASQUERADE
#
# Saving
#
iptables-save > /etc/sysconfig/iptables
systemctl restart iptables
์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ฉด Raspberry์ ์๋ก์ด ์ ์ SSH ์ฐ๊ฒฐ์ ์ค์ ํ๋ ๊ธฐ๋ฅ์ด ์์ค๋ฉ๋๋ค. ๊ทธ๋ ์ต๋๋ค. ์ฐ๋ฆฌ๋ "์ธํฐ๋ท์ ํตํ" ์ก์ธ์ค๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธ์ง๋์ด ์๋ Wi-Fi ๋ผ์ฐํฐ๋ฅผ ๋ง๋ค์์ต๋๋ค. ์ด์ ๋ "๋ฌด์ "์ผ๋ก๋ง ์ก์ธ์คํ ์ ์์ต๋๋ค. ๊ณต๊ธ์์ ์ด๋๋ท ์ผ์ด๋ธ์ ์ฐ๊ฒฐํ๊ณ ์ํ์ ์์ํฉ๋๋ค!
8. ๋ณด๋์ค: +2,4GHz
์์์ ์ค๋ช ํ ๊ทธ๋ฆผ์ ์ฌ์ฉํ์ฌ ์ฒซ ๋ฒ์งธ ๋ผ์ฆ๋ฒ ๋ฆฌ ๋ผ์ฐํฐ๋ฅผ ์กฐ๋ฆฝํ์ ๋ Wi-Fi ์ค๊ณ ์ ํ์ผ๋ก ์ธํด "๋ผ์ฆ๋ฒ ๋ฆฌ"๋ฅผ ์ ํ ๋ณผ ์ ์๋ ์ฐ๋ฆฌ ์ง์ ์ฌ๋ฌ ์ฅ์น๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. 802.11b/g/n์์ ์๋ํ๋๋ก ๋ผ์ฐํฐ๋ฅผ ์ฌ๊ตฌ์ฑํ๋ ๊ฒ์ ๋น์ ์์ ์ด์์ต๋๋ค. ์ด ๊ฒฝ์ฐ "๋ฌด์ "์ ์ต๋ ์๋๋ 40Mbit๋ฅผ ์ด๊ณผํ์ง ์์๊ณ ์ ๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ์ธํฐ๋ท ์ ๊ณต์ ์ฒด๋ ์ผ์ด๋ธ์ ํตํด 100Mbit๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ค์ ๋ก ์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ด๋ฏธ ๊ฐ๋ฐ๋์์ต๋๋ค. ์ฆ, 2,4GHz ์ฃผํ์์์ ์๋ํ๋ ๋ ๋ฒ์งธ Wi-Fi ์ธํฐํ์ด์ค์ ๋ ๋ฒ์งธ ์ก์ธ์ค ํฌ์ธํธ์ ๋๋ค. ๊ทผ์ฒ ๋ ธ์ ์์ ๋๋ ์ฒซ ๋ฒ์งธ USB Wi-Fi "ํํ๋"์ ๊ตฌ์ ํ์ง ์๊ณ ๋ ๋ฒ์งธ๋ก ๊ตฌ์ ํ์ต๋๋ค. ํ๋งค์๋ ์นฉ์ , ARM Linux ์ปค๋๊ณผ์ ํธํ์ฑ ๋ฐ AP ๋ชจ๋์์ ์์ ํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ๋ํ ์ง๋ฌธ์ผ๋ก ๊ดด๋ก์ํ์ต๋๋ค(๊ทธ๊ฐ ์ฒ์ ์์ํ์ต๋๋ค).
๋ด์ฅ๋ Wi-Fi ์ด๋ํฐ๋ฅผ ์ฌ์ฉํ์ฌ "ํํ๋"์ ๊ตฌ์ฑํฉ๋๋ค.
๋จผ์ ์ด๋ฆ์ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊พธ๊ฒ ์ต๋๋ค. wl1:
# cat /sys/class/net/wlan0/address
b0:6e:bf:xx:xx:xx
/etc/systemd/network/wl1.link:
[Match]
MACAddress=b0:6e:bf:xx:xx:xx
[Link]
Name=wl1
์ฐ๋ฆฌ๋ ์๋ก์ด Wi-Fi ์ธํฐํ์ด์ค์ ๊ด๋ฆฌ๋ฅผ ๋ณ๋์ Hostapd ๋ฐ๋ชฌ์ ๋งก๊ธธ ๊ฒ์ ๋๋ค. ์ด ๋ฐ๋ชฌ์ ์์คํ ์ ์๊ฒฉํ๊ฒ ์ ์๋ "ํํ๋"์ ์กด์ฌ ์ฌ๋ถ์ ๋ฐ๋ผ ์์ ๋ฐ ์ค์ง๋ฉ๋๋ค: wl1.
๊ตฌ์ฑ ํ์ผ /etc/hostapd/hostapd2.conf:
ssid=rpi2
wpa_passphrase=1234567890
#channel=1
#channel=6
channel=11
interface=wl1
bridge=lan
driver=nl80211
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
macaddr_acl=0
hw_mode=g
wmm_enabled=1
# N
ieee80211n=1
require_ht=1
ht_capab=[HT40][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]
์ด ํ์ผ์ ๋ด์ฉ์ USB Wi-Fi ์ด๋ํฐ ๋ชจ๋ธ์ ๋ฐ๋ผ ์ง์ ์ ์ผ๋ก ๋ฌ๋ผ์ง๋ฏ๋ก ํ๋ฒํ ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ๊ฐ ์คํจํ ์ ์์ต๋๋ค.
๋ฐฐํฌ ์๋น์ค ํ์ผ์ ๋ค์ ์์น์ ๋ณต์ฌํฉ๋๋ค. /etc/systemd/system/hostapd2.service:
# cp -fv /usr/lib/systemd/system/hostapd.service /etc/systemd/system/hostapd2.service
๋ด์ฉ์ ๋ค์ ํ์์ผ๋ก ์ค์ ๋๋ค.
[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
After=sys-subsystem-net-devices-wl1.device
BindsTo=sys-subsystem-net-devices-wl1.device
[Service]
Type=forking
PIDFile=/run/hostapd2.pid
ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd2.conf -P /run/hostapd2.pid -B
[Install]
WantedBy=sys-subsystem-net-devices-wl1.device
์ด์ ๋จ์ ๊ฒ์ ์๋ก์ด Hostapd ์ธ์คํด์ค๋ฅผ ํ์ฑํํ๋ ๊ฒ์ ๋๋ค:
# systemctl enable hostapd2
๊ทธ๊ฒ ๋ค์ผ! "ํํ๋"๊ณผ "๋ผ์ฆ๋ฒ ๋ฆฌ" ์์ฒด๋ฅผ ๋น๊ฒจ์ ์ฃผ๋ณ์ ๋ฌด์ ๋คํธ์ํฌ๋ฅผ ์ดํด๋ณด์ญ์์ค.
๋ง์ง๋ง์ผ๋ก Raspberry์ USB Wi-Fi ์ด๋ํฐ์ ์ ์ ๊ณต๊ธ ์ฅ์น์ ํ์ง์ ๋ํด ๊ฒฝ๊ณ ํ๊ณ ์ถ์ต๋๋ค. ์ฐ๊ฒฐ๋ "๋จ๊ฑฐ์ด ํํ๋"์ ๋๋๋ก ๋จ๊ธฐ์ ์ธ ์ ๊ธฐ ๋ฌธ์ ๋ก ์ธํด "๋ผ์ฆ๋ฒ ๋ฆฌ ๋๊ฒฐ"์ ์ผ์ผํฌ ์ ์์ต๋๋ค.
์ถ์ฒ : habr.com