Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (vÔi malinoos suvekohvri all)

Artiklis Raspberry Pi + CentOS = Wi-Fi kuumkoht (vĂ”i vaarika ruuter punases mĂŒtsis) RÀÀkisin viisist, kuidas muuta "malino" juhtmeta juurdepÀÀsupunktiks kasutades CentOS operatsioonisĂŒsteemi. Koostades kodrouteri selle plaani jĂ€rgi, rahuldasin oma loome-ego ja sain rahu, teades, et see kriitiliselt oluline element mu mugavas infrastruktuuris on olemas. Siiski, lĂ”petamatuse tunne ja sisemine perfektsionism ei lasknud rahu leida: "puudulik töö on vÀÀriline eksisteerimise Ă”igustel." MĂ”te, et "idee on saavutatud", ei lahkunud mu peast hetkekski.

Ühel pĂ€eval sattusin ĂŒhel foorumil arutusele olemasolevate operatsioonisĂŒsteemide arhitektuuride kohta "malino jaoks" (aarch64 vs armhfp): millised 64-bitised operatsioonisĂŒsteemid saavad ĂŒldse mahutada ja töötada Raspberry versiooniga 3++?

Minu lemmik CentOS ARM arhitektuurile "Userland" ei kiirustanud viimase versiooni tuumale ĂŒleminekuga ja 64-bitiseks muutumisega. EPEL hoidla, mis oli ĂŒhendatud jumal teab kust ilma digitaalse allkirjata, oli Ă”udusunenĂ€gu mu rahututes unedes...

RPM-pĂ”histe levikute pooldajauna avastasin ĂŒllatusega, et "malino" operatsioonisĂŒsteemide aruteludes on tĂ€iesti unustamata Fedora! Ja see tuleb arvestada, et selle vĂ€ljaanne
alates 28. versioonist toetab ametlikult Raspberry Pi 3B+ 64-bitises formaadis!

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (vÔi malinoos suvekohvri all)
Selles artiklis rÀÀgin ma installimise viisist Fedora (aarch64) . Tundub, et Raspberry Pi 3 Model B+ ja ÀÀrmiselt minimaalses vormis. LĂŒhidalt peatun Wi-Fi juurdepÀÀsupunkti seadistamise eripĂ€radel, mis tuvastati minu varasema konfiguratsiooni kasutamise kĂ€igus CentOS 7.

0. Mida on vaja

KÔik sama, mis on loetletud eelnevas artiklis:

  • Raspberry Pi 3 Model B+;
  • microSD >= 4GB (hiljem vĂ”ib sĂŒsteemi "ĂŒle kanda" 2GB mĂ€lukaardile);
  • Tööstusjaam Linuxiga ja microSD kaardilugejaga;
  • Juhtmega vĂ”rguĂŒhendus "malino" ja Linuxi tööstusjaama vahel (sellisel juhul ei ole seadistamiseks vaja tĂ€iendavat monitori ja klaviatuuri), internetiĂŒhendus mĂ”lemas seadmes;
  • Arvuti oskused Linuxis (teada ja mitte karta: parted, dd ja mkfs).

Sarnaselt iteratiivsele LFS- oma Linuxi koostamise protsessis kasutatakse Fedora distributsioonipilti, ja selle alusel luuakse minimaalne sĂŒsteem (ilma "allika koodist kompileerimiseta").

1. Originaal-distreerituse installimine

SĂŒsteemi raw-pildi koordinaadid vĂ”rgus:
https://
/fedora-secondary/releases/
/Spins/aarch64/images/Fedora-Minimal-
xz

PĂ€rast selle kirjutamist microSD-le ja enne kasutamise alustamist tuleb:

  1. Laieneda failisĂŒsteemi „juur“ (3. partitsioon, ext4)
    parted /dev/mmcblk0 resizepart 3 100%
    e2fsck -f /dev/mmcblk0p3; resize2fs /dev/mmcblk0p3; e2fsck -f /dev/mmcblk0p3
    for i in 1 2 3; do mkdir -p /mnt/$i; mount /dev/mmcblk0p$i /mnt/$i; done
    

  2. Sellel tuleb keelata SELinux
    echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
    

  3. Eemaldada esmakordse seadistamise meistriklass:
    find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
    

  4. Lubada ssh-ĂŒhendus:
    mkdir -p /mnt/3/root/.ssh
    cp -fv ~/ .ssh/id_rsa.pub /mnt/3/root/.ssh/authorized_keys
    sed -i 's/#PermitRootLogin.*/PermitRootLogin yes/g' /mnt/3/etc/ssh/sshd_config
    

NĂŒĂŒd saab laadida „malinat“ microSD-lt ja sellelevĂ”rgus juurde pÀÀseda.

KĂŒlm kĂ€ivitamine vĂ”tab aega umbes poolteist minutit. SĂŒsteemi tehnilised nĂ€itajad pĂ€rast kĂ€ivitamist:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (vÔi malinoos suvekohvri all)

rpm -qa | wc -l
444

2. Minimaalset sĂŒsteemi koguda

Kahjuks ei osutu arendajate „minimaalne distributsioon“ kaugel kĂ”ige tagasihoidlikumaks ressursside tarbimisel. SĂŒsteemi pilti on vĂ”imalik veelgi vĂ€iksemaks teha.

Selleks tuleb „malinas“ kĂ€ivitada skript:

#!/bin/bash

. /etc/os-release
P=$(mktemp --directory $(pwd)/$ID-$VERSION_ID.XXX)

dnf --installroot=$P --releasever=$VERSION_ID --setopt=install_weak_deps=false 
--assumeyes install  
    bcm283x-firmware 
    dnf              
    grub2-efi-aa64   
    kernel           
    openssh-server   
    shim-aa64

for f in /boot/efi/EFI/fedora/grub.cfg 
         /boot/efi/EFI/fedora/grubenv  
         /boot/efi/rpi3-u-boot.bin     
         /etc/default/grub             
         /etc/fstab
do
  cp -fv $f $P$f
done

rm  -fv $P/dev/*
rm -rfv $P/var/cache/dnf

echo "--------------------------------------------------------------------------------"
du -hs $P

PÀrast skripti kÀivitamist luuakse praeguses kataloogis alamkataloog ($P) koos uue minimaalsete versiooni OS-i juure sisu.

3. Minimaalse sĂŒsteemi installimine

Installatsioon hĂ”lmab minimaalse „pildi“ OS-i (saadud eelmisel sammul) failide kopeerimist spetsiaalselt ettevalmistatud microSD-le vastavatesse kataloogidesse.

Piisab 2GB kaardist ja kahest partitsioonist:

  1. /boot/efi — EFI+FAT32, kĂ€ivitus, 100MB;
  2. / (juur) — EXT4, kogu ĂŒlejÀÀnud ruum.

PĂ€rast microSD ettevalmistamist ja failide kopeerimist tuleb:

  • parandada OS-i kĂ€ivitamine;
  • lĂŒlitada sisse vĂ”rk;
  • seada ĂŒles ssh-ĂŒhendus.

SĂŒsteemi kĂ€vitamise parandamine seisneb UUID partitsioonide muutmises failides:

microSD:/boot/efi/EFI/fedora/grub.cfg
microSD:/boot/efi/EFI/fedora/grubenv

ja parameeter saved_entry= viimas failis

Failis:

microSD:/etc/fstab

saab leida vanad vÀÀrtused, praegused (aktuaalsed) — kĂ€su vĂ€ljundis:

blkid | grep mmcblk | sort

PĂ€rast muutmist tuleb samuti kohandada sisu fstab microSD-l, et montaaĆŸipunktid vastaksid uutele UUID-dele.

VĂ”rgutöökindluse saavutamiseks „malina“ esimesel kĂ€ivitamisel saab kasutada vĂ€ikest „kĂ”rvakatet“ — luua link (skeemiliselt):

ln -s /usr/lib/systemd/system/systemd-networkd.service 
microSD:/etc/systemd/system/multi-user.target.wants

ja fail:

mkdir -p microSD:/etc/systemd/network
cat > microSD:/etc/systemd/network/dhcp.network << EOF
[Match]
Name=*
[Network]
DHCP=ipv4
EOF

PÀrast edukat laadimist - korda kÀivitamine systemd-networkd:

systemctl disable systemd-networkd
systemctl enable systemd-networkd

Superkasutajale ssh kaudu juurde pÀÀsemine seadistatakse sarnaselt p.1.

Kui kĂ”ik on hoolikalt ja vigadeta tehtud, vĂ”ib microSD kaardi „malinasse” paigaldada ja alustada tööga 64-bitise OS-i ÀÀrmiselt minimalistlikus versioonis.

4. Valmis sĂŒsteem

Valmis sĂŒsteemi „pilt”, loodud ĂŒlaltoodud juhendi kohaselt, on vĂ”imalik alla laadida jĂ€rgmisel lingil:
Fedora-Tiny-31-5.5.7-200.aarch64

See on arhiv, mis sisaldab kahte faili: installatsiooniskripti ja TGZ OS-failidega. Arhiv tuleb vÀlja pakkida Linuxi töökohas, sisestada microSD (2GB kaardi kasutamine on piisav) ja kÀivitada skript jÀrgmise parameetriga - seadme nimega:

.\/install \/dev\/.mmcblk0

Ole ettevaatlik!

Ilma igasuguste hoiatusteta vormindatakse seade ja sellele - installitakse operatsioonisĂŒsteem.

PĂ€rast skripti vigadeta tĂ€itmist vĂ”ib mĂ€lukaardi paigaldada „malinasse” ja kasutada: saada ip dhcp kaudu, parool - „1”.

SĂŒsteem on puhastatud igasugustest ID-dest ja vĂ”tmetest, mistĂ”ttu on iga uus installatsioon ainulaadne.

Kordan veel kord, sĂŒsteem - minimaalne! Ärge kartke: DNF on olemas, selle töökindluse tagamiseks tuleb „vĂ€ljamĂ”elda” Ă”ige /etc/resolv.conf.

KĂŒlm kĂ€ivitamine „malinast” kestab umbes 40 sekundit. SĂŒsteemi TTH pĂ€rast kĂ€ivitamist:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (vÔi malinoos suvekohvri all)

rpm -qa | wc -l
191

5. Wi-Fi

Veidi peatun Wi-Fi juurdepÀÀsupunkti rakendamise eripÀradel. Konkreetse info saamiseks vÔib viidata minu varasemale artiklis.

EPEL ei ole nĂŒĂŒd vajalik - kĂ”ik paketid on ametlikes hoidlatest.

VĂ”ib-olla oleks pidanud loobuma dnsmasq, kuna Fedoral, erinevalt CentOS-ist, on piisavalt vĂ€rske systemd-networkd, milles - normaalsed sisseehitatud DHCP/DNS serverid. Kuid fakt, et RHEL8 arendajad loobusid vĂ”rgu steki toetamisest midagi muud kui NM, ei sisenda usku projekti heasse tulevikku (reprobates). LĂŒhidalt, ei ole proovinud.

Edasi, praeguseid sisseehitatud Wi-Fi adapteri draivereid ei pea “varastama” Raspbiani distributsioonist, vaid saab alla laadida otse github.

Nii nĂ€evad minu „malinas” Broadcomi pĂŒsivara failid (scheematiliselt):

ls \/usr\/lib\/firmware\/brcm | grep 43455

 [612775] brcmfmac43455-sdio.bin
  [14828] brcmfmac43455-sdio.clm_blob
[symlink] brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt -> brcmfmac43455-sdio.txt
   [2099] brcmfmac43455-sdio.txt

Ilma nendeta ei saa 5GHz/AC.

Seoses liideste arvu ja nimetustega. NĂŒĂŒd soovitan kĂ”igile tungivalt mitte kasutada "teenuseid" tarkvaraliste switch'ide kohta,sillutus), mis lisavad olulise koormuse vĂ”rgustikku ja pĂ€rsivad marsruutimist. Kui ei plaanita mitmeid traadita adaptereid, tuleks kasutada vaid fĂŒĂŒsilisi liideseid. Mul on kaks Wi-Fi-d, seega liidan vaid need tarkvarasillaks (kuigi saab hakkama ka ilma selleta, kui vaadata hostapd seadeid teisiti).

Ja ma armastan liideseid ĂŒmber nimetada.

Selleks tuleb Fedora'is luua sĂŒmboolne link:

/etc/systemd/network/99-default.link -> /dev/null

ja siis saab mÔistlikke nimesid anda, nuputamata udev, vaid ainult systemd-networkd vahenditega.

NÀiteks minu ruuteri vÔrguadapterid on nimetatud jÀrgmiselt:

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

2: wan:  mtu 1500 qdisc fq_codel state UP group default qlen 1000

3: lan:  mtu 1500 qdisc noqueue state UP group default qlen 1000

4: int:  mtu 1500 qdisc fq_codel master lan state UP group default qlen 1000

5: ext:  mtu 1500 qdisc mq master lan state UP group default qlen 1000

  • int — sisseehitatud, ext — vĂ€line (USB) Wi-Fi adapter, mis on kokku pandud "sillaks" lan;
  • wan — Ethernet adapter, kuhu on ĂŒhendatud internet.

Kas mĂ€rkate? fq_codel — tĂ”eliselt hea asi. Koos uue Linuxi tuumaga teevad nad traadita sagedusalas tĂ”elisi imesid: ulatuslik "torrent-tĂ”mme" ei pĂ”hjusta naabrite kiirusel jĂ€rsku langust. Isegi "Ă”hus" töötav kodune IP-TV ei "lagune" ja ei "kĂ”hise" koormatud kanali korral ĂŒleĂŒldse!

Teenusefail demonile on veidi muutunud hostapd.

NĂŒĂŒd nĂ€eb see vĂ€lja nii (sisseehitatud adapteri nĂ€itel):

[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS autentifikaator
After=network.target
BindsTo=sys-subsystem-net-devices-int.device

[Service]
Type=forking
PIDFile=/run/hostapd-int.pid
#ExecStartPre=/usr/sbin/iw dev int set power_save off
ExecStart=/usr/sbin/hostapd /path/to/hostapd-int.conf -P /run/hostapd-int.pid -B

[Install]
RequiredBy=sys-subsystem-net-devices-int.device

Ja "maagiline" hostapd-int.conf 5GHz/AC töökeskkonnaks:

ssid=rpi
wpa_passphrase=FedoRullezZ

# 5180 MHz  [36] (20.0 dBm)
# 5200 MHz  [40] (20.0 dBm)
# 5220 MHz  [44] (20.0 dBm)
# 5240 MHz  [48] (20.0 dBm)
# 5745 MHz [149] (20.0 dBm)
# 5765 MHz [153] (20.0 dBm)
# 5785 MHz [157] (20.0 dBm)
# 5805 MHz [161] (20.0 dBm)
# 5825 MHz [165] (20.0 dBm)

channel=36
#channel=149

# channel+6
# http://blog.fraggod.net/2017/04/27/wifi-hostapd-configuration-for-80211ac-networks.html

vht_oper_centr_freq_seg0_idx=42
#vht_oper_centr_freq_seg0_idx=155

country_code=US

interface=int
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=[HT40+][SHORT-GI-40][SHORT-GI-20]

# AC
ieee80211ac=1
ieee80211d=0
ieee80211h=0
vht_oper_chwidth=1
require_vht=1
vht_capab=[SHORT-GI-80]

Veidi „Photoshop“, mis on tehtud minu „Ericsson A1018s“ telefoniga:

(ĂŒhendus Internetiga — 100 Mbit/s)Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (vĂ”i malinoos suvekohvri all)
Ja lÔpetuseks vÀike KKK.

6. KKK

6.1 Miks teha Wi-Fi ruuter Raspberry'l?

Lihtsalt vastates vĂ”iks öelda, et „huvitav proovida ja nii edasi“.

Aga tegelikult on see teema minu arvates piisavalt tĂ”sine. Ajal, mil internet on 'veretuks' muutunud, on poodides ruuteri ostmine ja tootja Ă”nnele jÀÀmine ĂŒsna igav perspektiiv. Paljudele on nĂŒĂŒd selge, et ei saa istuda CVE- vĂ”i sisse ehitatud tagauste otsas.

Mugavalt saab minna ĂŒle entusiastide WRT-firmware'idele. Neile usaldatakse tĂ”enĂ€oliselt rohkem, kuid kui ei soovi neistki sĂ”ltuda, siis ainus vĂ”imalus — oma toode. Ideaalis — tĂ”eline arvuti, millel on vĂ”imalik ellu viia kĂ”ik, mida soovid. Muidugi, ruutimise osas.

SeetĂ”ttu, valik 'malinki' — puhtalt majanduslik samm: tĂ”eline arvuti ja samas — odav. Kuigi, vĂ”imalik, sellel on ka oma 'kahemĂ”ttelisused'.

6.2 Aga Raspberry on ju 'odavruuter': aeglane ja ĂŒhe Etherneti pordiga!

Koduse Wi-Fi ruuterina rahuldab 'malinka' mind rohkem kui piisavalt. Kiirus 'Ă”hus' on nagu juba eespool mainitud. Ja ĂŒksainus Ethernet, noh, sarnases Apple'i tootes on peaaegu sama!

Aga tĂ”siselt öeldes, muidugi tahaks rohkem. Ja kuigi kĂ”ik minu seadmed on ĂŒhendatud juhtmevabalt, on mĂ”nikord ikka vajalik ka vaskĂŒhendus. Sellisteks juhtudeks on mul varuks 'mobiilne hub':

seade — sellineRaspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (vĂ”i malinoos suvekohvri all)

6.3 Kui see on ruuter, siis ei öelda midagi TCP/IP „tuunimise“ kohta, kuna see on oluline!

Lisaks vĂ”rgu stack'i seadistamisele (tcp_fastopen, YeAH jne) ei kĂ€sitletud selles ega eelnevas artiklis teisi nĂŒansse, sealhulgas microSD ettevalmistamise protseduuri optimaalseks kasutamiseks (tĂ”si, installer proovib mĂ€lukaarti nutikal viisil vormindada). TĂ€iendamise protsess on lĂ”putu, tuleb lihtsalt Ă”igel ajal peatuda.

6.4 Miks Fedora?

Sest mulle meeldib! Fedora on "peavool" - geeniusĂŒsteem, kellele see artikkel on mĂ”eldud. Artikli kirjutamise hetkel on see vĂ”ib-olla ainus operatsioonisĂŒsteem, mis on Raspberry jaoks ametlikult 64-bitise variandina toetatud arendajate suure meeskonna poolt (kellelt ma pole kuidagi vastust saanud). kernel 5.6).

6.5 Kas Bluetooth töötab? Kuidas on video/heli/GPIO-ga?

Ei tea. Artikkel kĂ€sitleb sĂŒsteemi minimaalselt installimist ja selle jĂ€rgmist kasutamist Wi-Fi ruuterina.

6.6 Miks kĂ”ik artiklid CentOS/Fedora/RedHat kohta algavad SELinux'i vĂ€ljalĂŒlitamisega?

Sest sĂŒsteem on minimaalne, selles pole isegi tulemĂŒra ja seadistamise utiliite. Kellel on vajadus, saavad lisada kĂ”ik vajalikud tööriistad.

6.7 SĂŒsteemi ei ole vĂ”imalik kasutada, parooli ei saa muuta — ei ole passwd'i. Pole ping'i, pole midagi!

Jah DNF. VĂ”i see installimise variant ei sobi teile – kasutage arendajate distribuutorit.

6.8 Aga kus on SWAP? Ilma selleta ei saa!

TÔesti? Noh, hea:

fallocate -l 1G /swap
chmod -v 0600 /swap
mkswap -f /swap
swapon -v /swap
grep "/swap" /etc/fstab || echo "/swap swap swap defaults 0 0" >> /etc/fstab

6.9 Tahaksin kohe valmis kujundatud pilti Wi-Fi juurdepÀÀsupunktiga alla laadida!

Installatori ettevalmistamine "kĂ”igile" vĂ”tab veidi aega ja jĂ”upingutusi. Kui (kui!) kellelegi see tĂ”esti huvitav ja vajalik paistab – kirjutage, mĂ”tleme midagi vĂ€lja.

Sellega lÔpetan.

Soovin kĂ”igile turvalist surfamist ja maksimaalset kontrolli infrastruktuuri ĂŒle!

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster