Það er mikið magn upplýsinga á netinu um að búa til Wi-Fi aðgangsstaði byggða á Raspberry eins borðs tölvu. Að jafnaði þýðir þetta að nota Raspbian stýrikerfið sem er innbyggt í Raspberry.
Þar sem ég er fylgjandi RPM-undirstaða kerfa gat ég ekki farið framhjá þessu litla kraftaverki og ekki prófað ástkæra CentOS minn á því.
Greinin veitir leiðbeiningar um gerð 5GHz/AC Wi-Fi beins úr Raspberry Pi 3 Model B+ byggt á CentOS stýrikerfinu. Það verða nokkur stöðluð en lítt þekkt brellur, og sem bónus - teikning til að tengja viðbótar Wi-Fi búnað við Raspberry, sem gerir það kleift að starfa samtímis í nokkrum stillingum (2,4+5GHz).
(blanda af frjálsum myndum)
Við skulum athuga strax að sumir kosmískir hraðar munu ekki virka. Ég kreisti að hámarki 100 Mbps úr Raspberry mínum yfir loftið, og þetta nær yfir hraða netþjónustunnar minnar. Af hverju þarf svona slakan AC, ef í orði er hægt að fá hálfan gígabit jafnvel á N? Ef þú hefur spurt sjálfan þig þessarar spurningar skaltu fara í búðina til að kaupa alvöru leið með átta ytri loftnetum.
0. Það sem þú þarft
- Reyndar er „hindberjavaran“ sjálf af stærðargráðu: Pi 3 Model B+ (til að ná hinum eftirsótta 5GHz hraða og rásum);
- Gott microSD >= 4GB;
- Vinnustöð með Linux og microSD lesanda/ritara;
- Framboð á nægilegri færni í Linux, greinin er fyrir þjálfaðan Geek;
- Þráðlaus nettenging (eth0) milli Raspberry og Linux, keyrandi DHCP miðlara á staðarnetinu og internetaðgangur frá báðum tækjum.
Smá athugasemd við síðasta atriðið. „Hvort kom á undan, eggið eða...“ hvernig á að búa til Wi-Fi bein án netaðgangsbúnaðar? Skiljum þessa skemmtilegu æfingu utan við greinina og gerum einfaldlega ráð fyrir að Raspberryið sé tengt staðarnetinu með þráðum og hafi aðgang að internetinu. Í þessu tilfelli þurfum við ekki auka sjónvarp og stjórntæki til að setja upp „hindberja“.
1. Settu upp CentOS
Þegar þessi grein er skrifuð er hlaupandi útgáfan af CentOS á tækinu 32-bita. Einhvers staðar á veraldarvefnum rakst ég á þær skoðanir að frammistaða slíkra stýrikerfa á 64-bita ARM arkitektúr minnki um allt að 20%. Ég mun skilja þessa stund eftir án athugasemda.
Á Linux skaltu hlaða niður lágmarksmyndinni með kjarnanum "-RaspberryPI-"og skrifaðu það á microSD:
# xzcat CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw.xz |
dd of=/dev/mmcblk0 bs=4M
# sync
Áður en byrjað er að nota myndina munum við fjarlægja SWAP skiptinguna úr henni, stækka rótina í allt tiltækt magn og losa okkur við SELinux. Reikniritið er einfalt: Búðu til afrit af rótinni á Linux, eyddu öllum skiptingum úr microSD nema þeirri fyrstu (/boot), búðu til nýja rót og skilaðu innihaldi hennar úr afritinu.
Dæmi um nauðsynlegar aðgerðir (alvarlegt stjórnborðsúttak)
# 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
Eftir að hafa pakkað upp innihaldi rótar skiptingarinnar er kominn tími til að gera nokkrar breytingar á því.
Slökktu á SELinux í /mnt/etc/selinux/config:
SELINUX=disabled
Klippingu /mnt/etc/fstab, skilur eftir í henni aðeins tvær færslur um skiptingarnar: boot (/boot, engar breytingar) og root (við breytum UUID gildinu, sem hægt er að finna út með því að rannsaka úttak blkid skipunarinnar á Linux):
UUID=6a1a0694-8196-4724-a58d-edde1f189b31 / ext4 defaults,noatime 0 0
UUID=6938-F4F2 /boot vfat defaults,noatime 0 0
Að lokum breytum við ræsibreytum kjarna: við tilgreinum nýja staðsetningu fyrir rótarskiptingu, slökkva á framleiðslu kembiupplýsinga og (valfrjálst) banna kjarnanum að úthluta IPv6 vistföngum á netviðmót:
# cd
# umount /mnt
# mount /dev/mmcblk0p1 /mnt
Hér er innihaldið /mnt/cmdline.txt í eftirfarandi form (ein lína án bandstrik):
root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait quiet ipv6.disable_ipv6=1
Lokið:
# cd
# umount /mnt
# sync
Við endurraða microSD í „hindberjum“, ræsum það og fáum netaðgang að því í gegnum ssh (rót/centos).
2. Uppsetning CentOS
Fyrstu þrjár óhagganlegu hreyfingarnar: passwd, yum-uppfærsla, endurræsa.
Við gefum netstjórnun nettengdur:
# yum install systemd-networkd
# systemctl enable systemd-networkd
# systemctl disable NetworkManager
# chkconfig network off
Búðu til skrá (ásamt möppum) /etc/systemd/network/eth0.network:
[Match]
Name=eth0
[Network]
DHCP=ipv4
Við endurræsum „hindberið“ og fáum aftur netaðgang að því í gegnum ssh (IP-talan gæti breyst). Gefðu gaum hvað er notað /etc/resolv.conf, búin til áðan af Network Manager. Þess vegna, ef upp koma vandamál við að leysa, breyttu innihaldi þess. Notaðu systemd-leyst við munum ekki.
Við fjarlægjum „óþarfa“, viðgerðum og flýtum hleðslu stýrikerfisins:
# 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
Hver þarf cron og hver meltir ekki hið innbyggða
# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
# vi /etc/systemd/journald.conf
Slökktu á notkun IPv6 með grunnþjónustu (ef þess er krafist)/ etc / ssh / sshd_config:
AddressFamily inet
/etc/sysconfig/chronyd:
OPTIONS="-4"
Mikilvægi tímans á „hindberjum“ er mikilvægur hlutur. Þar sem út úr kassanum er engin vélbúnaðargeta til að vista núverandi stöðu klukkunnar við endurræsingu, þarf samstillingu. Mjög góður og fljótur púki fyrir þetta er kórónía - þegar uppsett og byrjar sjálfkrafa. Þú getur breytt NTP netþjónum í þá næstu.
/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
Til að stilla tímabeltið sem við munum nota brellu. Þar sem markmið okkar er að búa til Wi-Fi bein sem starfar á 5GHz tíðnum, munum við undirbúa okkur fyrir óvart fyrirfram eftirlitsstofnanna:
# namm upplýsingar crda
Samantekt: Reglugerðarpúkinn fyrir 802.11 þráðlaust net
Þessi vonda hönnun, einnig byggð á tímabeltinu, „bannar“ notkun (í Rússlandi) á 5GHz tíðnum og rásum með „háum“ tölum. Galdurinn er að stilla tímabelti án þess að nota nöfn heimsálfa/borga, það er í stað þess að:
# timedatectl set-timezone Europe/Moscow
Við ýtum á:
# timedatectl set-timezone Etc/GMT-3
Og lokahnykkurinn á hárgreiðslu kerfisins:
# hostnamectl set-hostname router
/rót/.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 viðbætur
Allt sem sagt var hér að ofan getur talist fullkomnar leiðbeiningar um uppsetningu „vanillu“ CentOS á Raspberry Pi. Þú ættir að enda með tölvu sem (endur)ræsir sig á innan við 10 sekúndum, notar minna en 15 megabæti af vinnsluminni og 1.5 gígabæt af microSD (reyndar minna en 1 gígabæti vegna ófullkomins /ræsingar, en við skulum vera heiðarleg).
Til að setja upp hugbúnað fyrir Wi-Fi aðgangsstað á þessu kerfi þarftu að auka aðeins getu venjulegu CentOS dreifingarinnar. Fyrst af öllu skulum við uppfæra bílstjórann (fastbúnað) innbyggða Wi-Fi millistykkisins. Á heimasíðu verkefnisins segir:
Wifi á Raspberry 3B og 3B+
Ekki er heimilt að dreifa Raspberry PI 3B/3B+ fastbúnaðarskrám af CentOS Project. Þú getur notað eftirfarandi greinar til að skilja málið, fá fastbúnaðinn og setja upp wifi.
Það sem er bannað fyrir CentOS verkefnið er ekki bannað okkur til einkanota. Við skiptum út Wi-Fi fastbúnaði fyrir dreifingu í CentOS fyrir samsvarandi frá Broadcom þróunaraðilum (þeir sömu hatuðu tvöfalda kubbarnir...). Þetta gerir þér sérstaklega kleift að nota AC í aðgangsstaðaham.
Wi-Fi vélbúnaðar uppfærslaFinndu út gerð tækisins og núverandi fastbúnaðarútgáfu:
# 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
Við sjáum að fastbúnaðarútgáfan er 7.45.18 dagsett 01.03.2015/XNUMX/XNUMX og muna eftir eftirfarandi númerasetti: 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
Fastbúnaðarskrár Wi-Fi millistykkisins sem myndast verður að afrita og skipta út fyrir „hindberja“ í möppuna /usr/lib/firmware/brcm/
Við endurræsum framtíðarbeini og brosum ánægð:
# 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
Útgáfa: 7.45.154 dagsett 27.02.2018.
Og auðvitað 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. Netstillingar og áskoranir framundan
Eins og við samþykktum hér að ofan er „hindberið“ tengt með „vír“ við staðarnetið. Gerum ráð fyrir að veitandinn veiti internetaðgang á nákvæmlega sama hátt: heimilisfangið á almenningsnetinu er gefið út með virkum hætti af DHCP-þjóninum (kannski með MAC-bindingu). Í þessu tilfelli, eftir lokauppsetningu hindbersins, þarftu bara að „stinga“ snúru þjónustuveitunnar inn í það og þú ert búinn. Heimild með því að nota systemd-networkd - efni sérstakrar greinar og er ekki fjallað um það hér.
Wi-Fi tengi Raspberry er staðarnet og innbyggði Ethernet millistykkið (eth0) er utanaðkomandi. Við skulum númera staðarnetið með kyrrstöðu, til dæmis: 192.168.0.0/24. Raspberry heimilisfang: 192.168.0.1. DHCP þjónn mun starfa á ytra netinu (internetinu).
Samhliða glundroði (lýrísk útrás)Lennart Pottering hefur tekið saman sitt eigið forrit systemd Mjög gott. Þetta systemd ræsir önnur forrit svo hratt að þeir, sem hafa ekki tíma til að jafna sig eftir flautuhögg dómarans, hrasa og detta í byrjun án þess að byrja á hindrunarbrautinni.
En í alvöru talað, árásargjarn samhliða ræst ferla í upphafi systemd OS er eins konar „asnabrú“ fyrir vana raðbundna LSB sérfræðinga. Sem betur fer reynist það einfalt að koma reglu á þennan „samhliða glundroða“, þó ekki alltaf augljóst.
Við búum til tvö sýndarbrúarviðmót með stöðugum nöfnum: lan и dvína. Við munum „tengja“ Wi-Fi millistykkið við þann fyrsta og eth0 „hindberja“ við þann síðari.
/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=já útilokar þörfina á að gefa vísbendingu um kjarnann í gegnum sysctl til að virkja leið.
MACaddress= Sleppum athugasemdum og breytum ef þörf krefur.
Fyrst „tengjum“ við eth0. Við munum eftir „jafnvægisvandamálinu“ og notum aðeins MAC vistfang þessa viðmóts, sem má finna út, til dæmis, svona:
# cat /sys/class/net/eth0/address
Við sköpum /etc/systemd/network/eth.network:
[Match]
MACAddress=b8:27:eb:xx:xx:xx
[Network]
Bridge=wan
Við eyðum fyrri stillingarskránni eth0, endurræsum Raspberry og fáum netaðgang að henni (IP-talan mun líklega breytast):
# rm -fv /etc/systemd/network/eth0.network
# reboot
5.DNSMASQ
Fyrir að búa til Wi-Fi aðgangsstaði er ekkert betra en sætt par dnsmasq + hostapd hef ekki fattað það ennþá. Að mínu mati.
Ef einhver gleymdi, þá...
Byrjum á dnsmasq:
# yum install dnsmasq
Mynstur /etc/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
breyttu því að þínu skapi.
naumhyggju /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
„Galdurinn“ hér liggur í stikunni bind-dýnamískt, sem segir dnsmasq púknum að bíða þar til hann birtist á kerfinu tengi=lan, og falla ekki yfir af stoltri einmanaleika eftir ræsingu.
# systemctl enable dnsmasq
# systemctl start dnsmasq; journalctl -f
6. HOSTAPD
Og að lokum, magic hostapd stillingarnar. Ég efast ekki um að einhver sé að lesa þessa grein í leit að þessum dýrmætu línum.
Áður en þú setur upp hostapd þarftu að sigrast á „jafnvægisvandamálinu“. Innbyggði Wi-Fi millistykkið wlan0 getur auðveldlega breytt nafni sínu í wlan1 þegar viðbótar USB Wi-Fi búnaður er tengdur. Þess vegna munum við laga viðmótsnöfnin á eftirfarandi hátt: við munum koma með einstök nöfn fyrir (þráðlausu) millistykkin og binda þau við MAC vistföng.
Fyrir innbyggða Wi-Fi millistykkið, sem er enn wlan0:
# cat /sys/class/net/wlan0/address
b8:27:eb:xx:xx:xx
Við sköpum /etc/systemd/network/wl0.link:
[Match]
MACAddress=b8:27:eb:xx:xx:xx
[Link]
Name=wl0
Nú munum við vera viss um það wl0 - Þetta er innbyggt Wi-Fi. Við endurræsum Raspberry til að ganga úr skugga um þetta.
Setja upp:
# yum install hostapd wireless-tools
Stillingarskrá /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
Án þess að gleyma í augnablik
# hostapd /etc/hostapd/hostapd.conf
hostapd mun ræsast í gagnvirkum ham og senda út ástand þess til stjórnborðsins. Ef það eru engar villur munu viðskiptavinir sem styðja AC-stillingu geta tengst aðgangsstaðnum. Til að stöðva hostapd - Ctrl-C.
Allt sem er eftir er að virkja hostapd í ræsingu kerfisins. Ef þú gerir staðlaða hlutinn (systemctl virkja hostapd), þá geturðu eftir næstu endurræsingu fengið púka sem „rúllar í blóði“ með greiningunni „tengi wl0 fannst ekki". Sem afleiðing af „samhliða glundroða“ byrjaði hostapd hraðar en kjarninn fann þráðlausa millistykkið.
Netið er fullt af úrræðum: allt frá þvinguðum tímamörkum áður en púkinn er ræstur (nokkrar mínútur), yfir í annan púka sem fylgist með útliti viðmótsins og (endur)ræsir hostpad. Lausnirnar eru alveg framkvæmanlegar, en hræðilega ljótar. Við köllum til hinnar frábæru um hjálp systemd með sínum „markmiðum“ og „verkefnum“ og „háðum“.
Afritaðu dreifingarþjónustuskrána til /etc/systemd/system/hostapd.service:
# cp -fv /usr/lib/systemd/system/hostapd.service /etc/systemd/system
og minnka innihald þess í eftirfarandi form:
[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
Galdurinn við uppfærðu þjónustuskrána liggur í kraftmikilli bindingu hostapd við nýja skotmarkið - wl0 viðmótið. Þegar viðmótið birtist byrjar púkinn; þegar hann hverfur hættir hann. Og þetta er allt á netinu - án þess að endurræsa kerfið. Þessi tækni mun vera sérstaklega gagnleg þegar USB Wi-Fi millistykki er tengt við hindberja.
Nú geturðu:
# systemctl enable hostapd
# reboot
7. IPTAFLAR
"Hvað???" © Já, já! Enginn systemd. Engar nýmóðins keðjur (í formi firewalld), sem á endanum gera það sama.
Notum gamla góða iptables, þar sem þjónusta þeirra mun hlaða netreglum inn í kjarnann og leggja hljóðlega niður án þess að vera áfram búsettur og án þess að neyta auðlinda eftir að hún er hafin. systemd hefur glæsilegan IPMasquerade=, en við munum samt fela heimilisfangsþýðingu (NAT) og eldvegg til iptables.
Setja upp:
# yum install iptables-services
# systemctl enable iptables ip6tables
Ég vil frekar geyma iptables stillingar sem handrit (dæmi):
#!/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
Við keyrum ofangreinda skriftu og missum getu til að koma á nýjum hlerunarbúnaði SSH tengingum við Raspberry. Það er rétt, við höfum búið til Wi-Fi bein, sem aðgangur að "í gegnum internetið" er sjálfgefið bannaður - nú aðeins "í loftinu". Við tengjum Ethernet snúru þjónustuveitunnar og byrjum að vafra!
8. Bónus: +2,4GHz
Þegar ég setti saman fyrsta hindberjabeini með teikningunni sem lýst er hér að ofan, uppgötvaði ég fjölda græja á heimilinu mínu sem, vegna takmarkana á Wi-Fi hönnun þeirra, sáu alls ekki „hindberið“. Að endurstilla beininn til að virka í 802.11b/g/n var óíþróttamannslegt, þar sem hámarkshraðinn „í loftinu“ í þessu tilfelli fór ekki yfir 40 Mbit og uppáhalds netveitan mín býður mér 100 (í gegnum kapal).
Reyndar hefur lausn á vandanum þegar verið fundin upp: annað Wi-Fi tengi sem starfar á tíðninni 2,4 GHz og annar aðgangsstaður. Í bás í nágrenninu keypti ég ekki það fyrsta, heldur annað USB Wi-Fi „flautið“ sem ég rakst á. Seljandinn var þjakaður af spurningum um kubbasettið, samhæfni við ARM Linux kjarna og möguleikann á að vinna í AP ham (hann var fyrstur til að byrja).
Við stillum „flautið“ á hliðstæðan hátt með innbyggða Wi-Fi millistykkinu.
Fyrst skulum við endurnefna það í 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
Við munum fela stjórnun nýja Wi-Fi viðmótsins sérstökum hostapd púka, sem mun ræsa og hætta eftir því að strangt skilgreint „flaut“ er í kerfinu: wl1.
Stillingarskrá /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]
Innihald þessarar skráar fer beint eftir gerð USB Wi-Fi millistykkisins, þannig að banal copy/paste gæti brugðist þér.
Afritaðu dreifingarþjónustuskrána til /etc/systemd/system/hostapd2.service:
# cp -fv /usr/lib/systemd/system/hostapd.service /etc/systemd/system/hostapd2.service
og minnka innihald þess í eftirfarandi form:
[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
Allt sem er eftir er að virkja nýtt tilvik af hostapd:
# systemctl enable hostapd2
Það er allt og sumt! Dragðu í „flautuna“ og „hindberið“ sjálft, skoðaðu þráðlausu netin í kringum þig.
Og að lokum vil ég vara þig við gæðum USB Wi-Fi millistykkisins og aflgjafa Raspberry. Tengd „heit flaut“ getur stundum valdið „hindberjafrystingu“ vegna skammtíma rafmagnsvandamála.
Heimild: www.habr.com