Rasipiberi Pi + CentOS = Wi-Fi Hotspot (kapena rauta ya rasipiberi yokhala ndi chipewa chofiyira)

Pali zambiri zambiri pa intaneti pakupanga malo ofikira pa Wi-Fi kutengera Raspberry singleboard PC. Monga lamulo, izi zikutanthauza kugwiritsa ntchito pulogalamu ya Raspbian yochokera ku Raspberry.

Pokhala wotsatira machitidwe a RPM, sindinathe kudutsa chozizwitsa chaching'ono ichi ndikuyesa CentOS wanga wokondedwa pa izo.

Nkhaniyi imapereka malangizo opangira rauta ya 5GHz/AC Wi-Fi kuchokera pa Raspberry Pi 3 Model B+ kutengera makina opangira a CentOS. Padzakhala zidule zingapo zodziwika koma zodziwika pang'ono, komanso ngati bonasi - chojambula cholumikizira zida zowonjezera za Wi-Fi ku Raspberry, kulola kuti igwire ntchito nthawi imodzi m'njira zingapo (2,4 + 5GHz).

Rasipiberi Pi + CentOS = Wi-Fi Hotspot (kapena rauta ya rasipiberi yokhala ndi chipewa chofiyira)
(kusakanikirana kwa zithunzi zomwe zilipo kwaulere)

Tiyeni tizindikire nthawi yomweyo kuti maulendo ena a cosmic sangagwire ntchito. Ndimafinya mpaka 100 Mbps kuchokera mu Rasipiberi wanga pamlengalenga, ndipo izi zimaphimba liwiro la omwe ndimapereka intaneti. Nchifukwa chiyani mukufunikira AC yaulesi yotere, ngati mungatenge theka la gigabit ngakhale pa N? Ngati mwadzifunsa nokha funso ili, ndiye pitani ku sitolo kuti mugule rauta yeniyeni yokhala ndi tinyanga zisanu ndi zitatu zakunja.

0. Zomwe mudzafunika

  • Kwenikweni, "rasipiberi" palokha ndi yamtundu: Pi 3 Model B+ (kuti mukwaniritse kuthamanga ndi ma tchanelo a 5GHz);
  • MicroSD yabwino> = 4GB;
  • Workstation ndi Linux ndi microSD owerenga / wolemba;
  • Kupezeka kwa luso lokwanira mu Linux, nkhaniyi ndi ya Geek yophunzitsidwa;
  • Kulumikizana kwa mawaya (eth0) pakati pa Raspberry ndi Linux, kuyendetsa seva ya DHCP pa netiweki yapafupi ndi intaneti kuchokera ku zida zonse ziwiri.

Ndemanga yaying'ono pa mfundo yomaliza. "Chimene chinabwera poyamba, dzira kapena ..." momwe mungapangire rauta ya Wi-Fi popanda zida zilizonse zolowera pa intaneti? Tiyeni tisiye zochitika zosangalatsa izi kunja kwa nkhaniyo ndikungoganiza kuti Raspberry imalumikizidwa ndi netiweki yakomweko kudzera pawaya ndipo ili ndi intaneti. Pankhaniyi, sitidzafunika TV yowonjezera komanso chowongolera kuti tikhazikitse "rasipiberi".

1. Ikani CentOS

Tsamba lofikira la polojekiti

Panthawi yolemba nkhaniyi, CentOS yomwe ikuyenda pa chipangizocho ndi 32-bit. Kwinakwake pa Webusaiti Yadziko Lonse Ndidapeza malingaliro oti machitidwe a ma OS otere pamapangidwe a 64-bit ARM amachepetsedwa ndi 20%. Ndisiya mphindi ino popanda ndemanga.

Pa Linux, tsitsani chithunzi chochepa ndi kernel "- RaspberryPI-"ndipo lembani ku microSD:

# xzcat CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw.xz | 
  dd of=/dev/mmcblk0 bs=4M
# sync

Tisanayambe kugwiritsa ntchito chithunzichi, tidzachotsa gawo la SWAP, kukulitsa muzu ku voliyumu yonse yomwe ilipo ndikuchotsa SELinux. Ma aligorivimu ndi osavuta: pangani kopi ya mizu pa Linux, chotsani magawo onse ku microSD kupatula woyamba (/ boot), pangani muzu watsopano ndikubweza zomwe zili mukope.

Chitsanzo cha zochita zofunika (zotulutsa kwambiri za console)

# 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

Pambuyo pomasula zomwe zili mugawo la mizu, ndi nthawi yoti musinthe.

Letsani SELinux mu /mnt/etc/selinux/config:

SELINUX=disabled

Kusintha /mnt/etc/fstab, kusiyamo malemba awiri okha okhudza magawowo: boot (/boot, palibe kusintha) ndi mizu (timasintha mtengo wa UUID, womwe ungapezeke pophunzira kutuluka kwa lamulo la blkid pa Linux):

UUID=6a1a0694-8196-4724-a58d-edde1f189b31  /     ext4    defaults,noatime 0 0
UUID=6938-F4F2                             /boot vfat    defaults,noatime 0 0

Pomaliza, timasintha magawo a kernel boot: timafotokozera malo atsopano ogawa mizu, kuletsa kutulutsa kwa chidziwitso ndikuletsa (mwakufuna) kuletsa kernel kuti isagawire ma adilesi a IPv6 pamanetiweki:

# cd
# umount /mnt
# mount /dev/mmcblk0p1 /mnt

Nazi zomwe zili /mnt/cmdline.txt ku mawonekedwe otsatirawa (mzere umodzi wopanda ma hyphens):

root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait quiet ipv6.disable_ipv6=1

Zachitika:

# cd
# umount /mnt
# sync

Timakonzanso microSD mu "rasipiberi", tiyiyambitsa ndikupeza mwayi wogwiritsa ntchito ssh (root/centos).

2. Kukhazikitsa CentOS

Zoyamba zitatu zosagwedezeka mayendedwe: passwd, yum -yomaliza, kuyambiransoko.

Timapereka ma network management networkd:

# yum install systemd-networkd
# systemctl enable systemd-networkd
# systemctl disable NetworkManager
# chkconfig network off

Pangani fayilo (pamodzi ndi zolemba) /etc/systemd/network/eth0.network:

[Match]
Name=eth0

[Network]
DHCP=ipv4

Timayambiranso "rasipiberi" ndikufikiranso maukonde kudzera ssh (adilesi ya IP ingasinthe). Samalani ndi zomwe zimagwiritsidwa ntchito /etc/resolv.conf, yopangidwa kale ndi Network Manager. Chifukwa chake, pakakhala zovuta, sinthani zomwe zili mkati mwake. Gwiritsani ntchito kusinthidwa sitidzatero.

Timachotsa "zosafunika", kukonza ndikufulumizitsa kutsitsa kwa 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

Ndani akufuna cron ndi amene sagaya zomangidwa systemd zowerengera, akhoza kuzindikira zomwe zikusowa. / var / logi- ndi kuyang'ana journctl. Ngati mukufuna mbiri yakale (mwachikhazikitso, zidziwitso zimasungidwa kuyambira pomwe dongosolo likuyamba):

# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
# vi /etc/systemd/journald.conf

Letsani kugwiritsa ntchito IPv6 ndi ntchito zoyambira (ngati pakufunika)/ etc / ssh / sshd_config:

AddressFamily inet

/etc/sysconfig/chronyd:

OPTIONS="-4"

Kufunika kwa nthawi pa "rasipiberi" ndikofunikira. Popeza kunja kwa bokosi mulibe luso la hardware kuti musunge momwe wotchi ilili panopa pakuyambiranso, kugwirizanitsa kumafunika. Daemon yabwino kwambiri komanso yachangu pa izi chrony - yakhazikitsidwa kale ndipo imayamba zokha. Mutha kusintha ma seva a NTP kukhala apafupi.

/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

Kukhazikitsa nthawi yomwe tidzagwiritse ntchito chinyengo. Popeza cholinga chathu ndikupanga rauta ya Wi-Fi yomwe imagwira ntchito pama frequency a 5GHz, tikonzekera zodabwitsa pasadakhale. wolamulira:

# yum info crda
Chidule: Daemon yotsata malamulo pamanetiweki opanda zingwe a 802.11

Mapangidwe oipawa, omwenso amatengera nthawi yanthawi, "amaletsa" kugwiritsa ntchito (ku Russia) ma frequency ndi ma tchanelo a 5GHz okhala ndi manambala "okwera". Chinyengo ndikukhazikitsa nthawi yanthawi osagwiritsa ntchito mayina a makontinenti/mizinda, ndiye kuti, m'malo mwa:

# timedatectl set-timezone Europe/Moscow

Timasindikiza:

# timedatectl set-timezone Etc/GMT-3

Ndipo kukhudza komaliza kwa tsitsi la dongosolo:

# 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 Zowonjezera

Zonse zomwe zanenedwa pamwambapa zitha kuonedwa ngati malangizo athunthu oyika "vanilla" CentOS pa Raspberry Pi. Muyenera kukhala ndi PC yomwe (re) boots mu masekondi osakwana 10, imagwiritsa ntchito zosakwana 15 Megabytes ya RAM ndi 1.5 Gigabytes ya microSD (kwenikweni zosakwana 1 Gigabyte chifukwa chosakwanira / boot, koma tiyeni tikhale oona mtima).

Kuti muyike pulogalamu yofikira pa Wi-Fi pamakinawa, muyenera kukulitsa pang'ono kuthekera kwa kugawa kwa CentOS. Choyamba, tiyeni tikweze dalaivala (firmware) ya adaputala ya Wi-Fi yomangidwa. Tsamba loyamba la polojekitiyo limati:

Wifi pa Rasipiberi 3B ndi 3B+

Mafayilo a firmware a Raspberry PI 3B/3B+ saloledwa kugawidwa ndi CentOS Project. Mutha kugwiritsa ntchito zolemba zotsatirazi kuti mumvetsetse nkhaniyi, pezani firmware ndikukhazikitsa wifi.

Zomwe zili zoletsedwa pulojekiti ya CentOS sizoletsedwa kwa ife kuti tigwiritse ntchito. Timalowetsanso kugawa kwa Wi-Fi firmware mu CentOS ndi yofananira kuchokera kwa opanga Broadcom (mabulogu a binary omwe amadana nawo ...). Izi, makamaka, zikuthandizani kuti mugwiritse ntchito AC munjira yofikira.

Kusintha kwa firmware ya Wi-FiDziwani mtundu wa chipangizocho komanso mtundu waposachedwa wa firmware:

# 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 

Tikuwona kuti mtundu wa firmware ndi 7.45.18 wa 01.03.2015/XNUMX/XNUMX, ndipo kumbukirani manambala awa: 43455 (bcmfmac43455-sdio.bin).

Tsitsani chithunzi chaposachedwa cha Raspbian. Anthu aulesi amatha kulemba chithunzicho ku microSD ndikutenga mafayilo ndi firmware kuchokera pamenepo. Kapena mutha kuyika magawo azithunzi mu Linux ndikutengera zomwe mukufuna kuchokera pamenepo:

# 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

Mafayilo a firmware a Wi-Fi amayenera kukopera ndikusinthidwa ndi "rasipiberi" mu bukhu /usr/lib/firmware/brcm/

Timayambiranso rauta yamtsogolo ndikumwetulira mokhutira:

# 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 

Mtundu: 7.45.154 wa 27.02.2018/XNUMX/XNUMX.

Ndipo ndithudi 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. Kusintha kwa maukonde ndi zovuta zomwe zikubwera

Monga tavomereza pamwambapa, "rasipiberi" imalumikizidwa ndi "waya" ku netiweki yakomweko. Tiyerekeze kuti woperekayo amapereka intaneti mofanana ndendende: adilesi yomwe ili pagulu la anthu onse imaperekedwa mwamphamvu ndi seva ya DHCP (mwinamwake yokhala ndi MAC yomanga). Pankhaniyi, mutatha kukhazikitsidwa komaliza kwa rasipiberi, mumangofunika "kulumikiza" chingwe cha wothandizira ndipo mwatha. Kugwiritsa ntchito chilolezo systemd-networkd - mutu wa nkhani yosiyana ndipo sikukambidwa pano.

Raspberry's Wi-Fi interface(s) ndi netiweki yakomweko, ndipo adaputala ya Efaneti yomangidwa (eth0) ndi yakunja. Tiyeni tiwerenge ma netiweki amderali motengera mwachitsanzo: 192.168.0.0/24. Adilesi ya rasipiberi: 192.168.0.1. Seva ya DHCP idzagwira ntchito pa intaneti yakunja (Intaneti).

Kutchula Vuto Losasinthasintha ΠΈ wolemba mapulogalamu wotchuka wa ku Guatemala - zovuta ziwiri zomwe zimadikirira aliyense amene amakonza ma network ndi mautumiki mu magawo a systemd.

Parallel chaos (lyrical digression)Lennart Pottering wapanga pulogalamu yakeyake systemd Zabwino kwambiri. Izi systemd amakhazikitsa mapologalamu ena mwachangu kotero kuti, osapeza nthawi yoti achire pakuyimba mluzu kwa woyimbira, amapunthwa ndikugwa koyambirira osayamba ngakhale njira yawo yolepheretsa.

Koma mozama, kufanana koopsa kwa njira zomwe zidakhazikitsidwa kumayambiriro kwa systemd OS ndi mtundu wa "buluu" wa akatswiri otsatizana a LSB. Mwamwayi, kubweretsa dongosolo ku "chipwirikiti chofanana" kumakhala kosavuta, ngakhale kuti sikudziwika nthawi zonse.

Timapanga maulalo awiri omwe ali ndi mayina osasintha: LAN ΠΈ wan. "Tidzalumikiza" adaputala ya Wi-Fi kupita ku yoyamba, ndi eth0 "rasipiberi" yachiwiri.

/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=inde imachotsa kufunikira kolozera ku kernel kudzera pa sysctl kuti muzitha kuyendetsa.
MACAaddress= Tiyeni tisinthe ndikusintha ngati kuli kofunikira.

Choyamba "timagwirizanitsa" eth0. Timakumbukira "vuto lofanana" ndikugwiritsa ntchito adilesi ya MAC yokha ya mawonekedwe awa, omwe angapezeke, mwachitsanzo, motere:

# cat /sys/class/net/eth0/address 

Timalenga /etc/systemd/network/eth.network:

[Match]
MACAddress=b8:27:eb:xx:xx:xx

[Network]
Bridge=wan

Timachotsa fayilo yosinthidwa yapitayi eth0, yambitsanso Raspberry ndikupeza mwayi wopeza netiweki (adilesi ya IP ingasinthe):

# rm -fv /etc/systemd/network/eth0.network
# reboot

5.DNSMASQ

Pakupanga malo ofikira pa Wi-Fi, palibe chomwe chimaposa angapo okoma dnsmasq + hostapd sindinachimvetse. M'malingaliro anga.

Ngati wina wayiwala, ndiye ...hostapd - ichi ndi chinthu chomwe chimayang'anira ma adapter a Wi-Fi (makamaka, idzasamalira kuwalumikiza ndi pafupifupi LAN "raspberries"), amavomereza ndikulembetsa makasitomala opanda zingwe.

dnsmasq - Imakonza kuchuluka kwamakasitomala: ma adilesi a IP, ma seva a DNS, zipata zokhazikika ndi zokondweretsa zofananira.

Tiyeni tiyambe ndi dnsmasq:

# yum install dnsmasq

Chitsanzo /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

sinthani momwe mukufunira.

minimalist /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

"Matsenga" apa ali mu parameter kumanga-zamphamvu, yomwe imauza dnsmasq daemon kuti idikire mpaka iwonekere padongosolo mawonekedwe=lan, ndipo osakomoka chifukwa cha kusungulumwa kodzikuza pambuyo poyambira.

# systemctl enable dnsmasq
# systemctl start dnsmasq; journalctl -f

6. HOSTAPD

Ndipo potsiriza, masanjidwe amatsenga a hostapd. Sindikukayika kuti wina akuwerenga nkhaniyi pofufuza ndendende mizere yamtengo wapataliyi.

Musanayike hostapd, muyenera kuthana ndi "vuto lofanana". Adaputala ya Wi-Fi wlan0 imatha kusintha dzina lake kukhala wlan1 polumikiza zida zowonjezera za USB Wi-Fi. Choncho, tidzakonza mayina a mawonekedwe motere: tidzakhala ndi mayina apadera a adaputala (opanda zingwe) ndikuwamanga ku maadiresi a MAC.

Kwa adaputala ya Wi-Fi yomangidwa, yomwe ikadali wlan0:

# cat /sys/class/net/wlan0/address 
b8:27:eb:xx:xx:xx

Timalenga /etc/systemd/network/wl0.link:

[Match]
MACAddress=b8:27:eb:xx:xx:xx

[Link]
Name=wl0

Tsopano tikhala otsimikiza kuti wl0 - Iyi ndi Wi-Fi yomangidwa. Timayambiranso Raspberry kuti titsimikizire izi.

Ikani:

# yum install hostapd wireless-tools

Fayilo yosintha /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

Mosaiwala kwa kamphindi Komiti ya State Emergency Committee, sinthani magawo omwe tikufuna ndikuyang'ana pamanja ntchito:

# hostapd /etc/hostapd/hostapd.conf

hostapd iyamba munjira yolumikizirana, kuwulutsa dziko lake ku console. Ngati palibe zolakwika, ndiye kuti makasitomala omwe amathandizira mawonekedwe a AC azitha kulumikizana ndi malo ofikira. Kuti muyimitse hostapd - Ctrl-C.

Zomwe zatsala ndikuyambitsa hospd pakuyambitsa dongosolo. Ngati muchita zomwezo (systemctl thandizani hostapd), ndiye mukayambiranso mutha kupeza chiwanda "chokugudubuza m'magazi" ndikuzindikira kuti "mawonekedwe wl0 sanapezeke". Chifukwa cha "chipwirikiti chofanana," hostapd idayamba mwachangu kuposa momwe kernel idapeza adaputala opanda zingwe.

Intaneti ili ndi zithandizo zambiri: kuyambira nthawi yokakamiza isanayambe daemon (mphindi zingapo), kupita ku daemon ina yomwe imayang'anira maonekedwe a mawonekedwe ndi (kuyambiranso) kuyambitsa hostpad. Zothetserazo ndizothandiza, koma zoyipa kwambiri. Timapempha thandizo kwa wamkulu systemd ndi "zolinga" ndi "ntchito" ndi "zodalira".

Koperani fayilo yotumizira ku /etc/systemd/system/hostapd.service:

# cp -fv /usr/lib/systemd/system/hostapd.service /etc/systemd/system

ndi kuchepetsa zomwe zili mu fomu ili:

[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

Matsenga afayilo yantchito yosinthidwa ali mukamangirira kosunthika kwa hostapd ku chandamale chatsopano - mawonekedwe a wl0. Pamene mawonekedwe akuwonekera, daemon imayamba; ikasowa, imayima. Ndipo zonsezi zili pa intaneti - popanda kuyambiranso dongosolo. Njirayi idzakhala yothandiza makamaka polumikiza adaputala ya USB Wi-Fi ku Rasipiberi.

Tsopano mutha:

# systemctl enable hostapd
# reboot

7. IPTABLES

"Bwanji???" Β© Inde, inde! Palibe systemd. Palibe zophatikiza zatsopano (mu mawonekedwe kuwunika), zomwe zimatha kuchita zomwezo.

Tiyeni tigwiritse ntchito yabwino yakale iptables, omwe mautumiki awo, atatha, adzakweza malamulo a pa intaneti mu kernel ndikutseka mwakachetechete popanda kukhala wokhalamo komanso osagwiritsa ntchito chuma. systemd ili ndi kaso IPMasquerade=, koma tidzaperekabe kumasulira kwa adilesi (NAT) ndi firewall ku iptables.

Ikani:

# yum install iptables-services
# systemctl enable iptables ip6tables

Ndimakonda kusunga kasinthidwe ka iptables ngati script (chitsanzo):

#!/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

Timalemba zomwe zili pamwambapa ndikutaya kuthekera kokhazikitsa ma SSH olumikizana ndi mawaya atsopano ndi Raspberry. Ndiko kulondola, tapanga rauta ya Wi-Fi, kulowa komwe "kudzera pa intaneti" ndikoletsedwa mwachisawawa - tsopano "pamlengalenga". Timalumikiza chingwe cha Ethernet cha omwe amapereka ndikuyamba kusefa!

8. Bonasi: +2,4GHz

Nditasonkhanitsa rauta yoyamba ya Rasipiberi pogwiritsa ntchito chithunzi chomwe tafotokoza pamwambapa, ndidapeza zida zingapo m'nyumba mwanga zomwe, chifukwa cha kuchepa kwa kapangidwe ka Wi-Fi, sizimatha kuwona "rasipiberi" nkomwe. Kukonzanso rauta kuti igwire ntchito mu 802.11b/g/n kunali kopanda masewera, popeza liwiro lalikulu "pamlengalenga" pankhaniyi silinapitirire 40 Mbit, ndipo wondikonda pa intaneti amandipatsa 100 (kudzera chingwe).

M'malo mwake, njira yothetsera vutoli idapangidwa kale: mawonekedwe achiwiri a Wi-Fi omwe amagwira ntchito pafupipafupi 2,4 GHz, ndi malo achiwiri ofikira. Pa khola lapafupi sindinagule woyamba, koma "mluzu" wachiwiri wa USB Wi-Fi ndidakumana nawo. Wogulitsayo adazunzidwa ndi mafunso okhudza chipset, kugwirizana ndi ma ARM Linux kernels komanso kuthekera kogwira ntchito mu AP mode (iye anali woyamba kuyamba).

Timakonza "mluzu" pofanizira ndi adaputala ya Wi-Fi.

Choyamba, tiyeni titchule dzina 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

Tidzapereka kasamalidwe ka mawonekedwe atsopano a Wi-Fi ku daemon yosiyana ya hostapd, yomwe idzayambike ndikuyima kutengera kukhalapo kwa "mluzu" wofotokozedwa bwino m'dongosolo: wl1.

Fayilo yosintha /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]

Zomwe zili mufayiloyi zimatengera mtundu wa adaputala ya USB Wi-Fi, kotero kuti kukopera banal / phala kungakulepheretseni.

Koperani fayilo yotumizira ku /etc/systemd/system/hostapd2.service:

# cp -fv /usr/lib/systemd/system/hostapd.service /etc/systemd/system/hostapd2.service

ndi kuchepetsa zomwe zili mu fomu ili:

[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

Zomwe zatsala ndikuyambitsa chitsanzo chatsopano cha hostapd:

# systemctl enable hostapd2

Ndizomwezo! Kokani "mluzu" ndi "rasipiberi" palokha, yang'anani pa ma intaneti opanda zingwe akuzungulirani.

Ndipo potsiriza, ndikufuna kukuchenjezani za khalidwe la USB Wi-Fi adaputala ndi magetsi a Rasipiberi. Kulumikizidwa "mluzu wotentha" nthawi zina kungayambitse "kuzizira kwa rasipiberi" chifukwa cha zovuta zamagetsi kwakanthawi kochepa.

Source: www.habr.com

Kuwonjezera ndemanga