I-Raspberry Pi + CentOS = i-Wi-Fi Hotspot (noma i-raspberry router enesigqoko esibomvu)

Kunenani elikhulu lolwazi ku-inthanethi ekudaleni izindawo zokufinyelela ze-Wi-Fi ngokusekelwe ku-Raspberry single-board PC. Njengomthetho, lokhu kusho ukusebenzisa uhlelo lokusebenza lwe-Raspbian oludabuka ku-Raspberry.

Ukuba ngumlandeli wezinhlelo ezisekelwe ku-RPM, angikwazanga ukudlula lesi simangaliso esincane futhi ngingazami i-CentOS yami ethandekayo kuso.

I-athikili ihlinzeka ngemiyalo yokwenza irutha ye-5GHz/AC Wi-Fi kusuka ku-Raspberry Pi 3 Model B+ esekelwe ohlelweni lokusebenza lwe-CentOS. Kuzoba namaqhinga amaningana ajwayelekile kodwa angaziwa kancane, futhi njengebhonasi - umdwebo wokuxhuma imishini eyengeziwe ye-Wi-Fi ku-Raspberry, ukuyivumela ukuthi isebenze ngesikhathi esisodwa ngezindlela ezimbalwa (2,4 + 5GHz).

I-Raspberry Pi + CentOS = i-Wi-Fi Hotspot (noma i-raspberry router enesigqoko esibomvu)
(ingxube yezithombe ezitholakala mahhala)

Masiqaphele zisuka nje ukuthi amanye ama-cosmic velocities ngeke asebenze. Ngicindezela ubuningi obungu-100 Mbps ku-Raspberry yami emoyeni, futhi lokhu kumboza isivinini somhlinzeki wami we-inthanethi. Kungani udinga i-AC evilaphayo, uma ngombono ungathola isigamu segigabit ngisho naku-N? Uma uke wazibuza lo mbuzo, bese uya esitolo uyothenga umzila wangempela onezimpondo eziyisishiyagalombili zangaphandle.

0. Yini ozoyidinga

  • Empeleni, "umkhiqizo wokusajingijolo" ngokwawo usezingeni: I-Pi 3 Model B+ (ukufeza isivinini namashaneli angu-5GHz);
  • I-microSD enhle> = 4GB;
  • Indawo yokusebenza ene-Linux kanye nomfundi/umbhali we-microSD;
  • Ukutholakala kwamakhono anele ku-Linux, indatshana ingeyeGeek eqeqeshiwe;
  • Uxhumano lwenethiwekhi enezintambo (eth0) phakathi kwe-Raspberry ne-Linux, esebenzisa iseva ye-DHCP kunethiwekhi yendawo kanye nokufinyelela ku-inthanethi kusuka kumadivayisi womabili.

Amazwana amancane ngephuzu lokugcina. “Yikuphi okufike kuqala, iqanda noma ...” indlela yokwenza irutha ye-Wi-Fi lapho kungekho mishini yokufinyelela i-inthanethi? Masishiye lo msebenzi wokuzijabulisa ngaphandle kobubanzi be-athikili futhi simane sicabange ukuthi i-Raspberry ixhunywe kunethiwekhi yendawo ngocingo futhi inokufinyelela ku-inthanethi. Kulesi simo, ngeke sidinge i-TV eyengeziwe kanye ne-manipulator ukuze simise "i-raspberry".

1. Faka i-CentOS

Ikhasi lasekhaya lephrojekthi

Ngesikhathi sokubhala lesi sihloko, inguqulo esebenzayo ye-CentOS kudivayisi i-32-bit. Ndawana-thile ku-World Wide Web ngithole imibono yokuthi ukusebenza kwama-OS anjalo ku-architecture ye-64-bit ARM kwehliswe cishe ngo-20%. Ngizohamba kulo mzuzu ngaphandle kokuphawula.

Ku-Linux, landa isithombe esincane nge-kernel "-RaspberryPI-"bese uyibhala ku-microSD:

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

Ngaphambi kokuqala ukusebenzisa isithombe, sizosusa ukwahlukanisa kwe-SWAP kuso, sandise impande kuyo yonke ivolumu etholakalayo futhi sisuse i-SELinux. I-algorithm ilula: yenza ikhophi yempande ku-Linux, susa zonke izingxenye ze-microSD ngaphandle kweyokuqala (/ebhuthini), dala impande entsha bese ubuyisela okuqukethwe kwayo ekhophi.

Isibonelo sezenzo ezidingekayo (okuphumayo kwekhonsoli eqinile)

# 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

Ngemva kokuqaqa okuqukethwe kokuhlukaniswa kwezimpande, yisikhathi sokwenza izinguquko ezithile kukho.

Khubaza i-SELinux ku /mnt/etc/selinux/config:

SELINUX=disabled

Iyahlela /mnt/etc/fstab, ishiya kuyo okufakiwe okubili kuphela mayelana nokuhlukaniswa: i-boot (/i-boot, akukho zinguquko) kanye nezimpande (sishintsha inani le-UUID, elingatholakala ngokutadisha okukhipha umyalo we-blkid ku-Linux):

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

Ekugcineni, sishintsha amapharamitha e-kernel boot: sicacisa indawo entsha yokuhlukanisa impande, sikhubaza okukhiphayo kolwazi lokulungisa iphutha futhi (ngokuzithandela) sinqabele i-kernel ekwabeleni amakheli e-IPv6 kuzixhumi ezibonakalayo zenethiwekhi:

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

Nakhu okuqukethwe /mnt/cmdline.txt kuleli fomu elilandelayo (umugqa owodwa ngaphandle kwamakhonco):

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

Kwenziwe:

# cd
# umount /mnt
# sync

Sihlela kabusha i-microSD ibe “ku-raspberry”, siyivule futhi sithole ukufinyelela kwenethiwekhi kuyo nge-ssh (impande/centos).

2. Ukusetha i-CentOS

Izinyathelo ezintathu zokuqala ezingenakunyakaziswa: i-passwd, yum -y update, qala kabusha.

Sinikeza ukuphathwa kwenethiwekhi inethiwekhi:

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

Dala ifayela (kanye nezinkomba) /etc/systemd/network/eth0.network:

[Match]
Name=eth0

[Network]
DHCP=ipv4

Siqalisa kabusha “okusajingijolo” futhi siphinde sithole ukufinyelela kwenethiwekhi kuyo nge-ssh (ikheli le-IP lingashintsha). Naka lokho okusetshenziswayo /etc/resolv.conf, idalwe ngaphambilini nguMphathi Wenethiwekhi. Ngakho-ke, uma kunezinkinga ngokuxazululwa, hlela okuqukethwe kwayo. Sebenzisa ixazululwe ngohlelo thina ngeke.

Sisusa "okungenasidingo", silungise futhi sisheshise ukulayishwa kwe-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

Odingayo cron futhi ongagayeki okwakhelwe ngaphakathi izibali sikhathi zesistimu, angathola ukuthi yini engekho. / var / log- futhi ubheke iphephandaba. Uma udinga umlando welogi (ngokuzenzakalelayo, ulwazi lugcinwa kuphela kusukela ngesikhathi uhlelo luqala):

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

Khubaza ukusetshenziswa kwe-IPv6 ngamasevisi ayisisekelo (uma kudingeka)/ njll / ssh / sshd_config:

AddressFamily inet

/etc/sysconfig/chronyd:

OPTIONS="-4"

Ukuhambisana kwesikhathi ku-"raspberry" kuyinto ebalulekile. Njengoba ngaphandle kwebhokisi lingekho ikhono lehadiwe lokulondoloza isimo samanje sewashi lapho liqalisa kabusha, ukuvumelanisa kuyadingeka. I-daemon enhle kakhulu futhi esheshayo yalokhu chrony - isivele ifakiwe futhi iqala ngokuzenzakalelayo. Ungashintsha amaseva e-NTP uwayise aseduze.

/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

Ukusetha izoni yesikhathi esizoyisebenzisa iqhinga. Njengoba inhloso yethu kuwukudala irutha ye-Wi-Fi esebenza kumafrikhwensi angu-5GHz, sizolungiselela izimanga kusenesikhathi. umlawuli:

# yum info crda
Isifinyezo: I-daemon yokuthobela imithetho yenethiwekhi engenantambo ye-802.11

Lo mklamo omubi, nawo osekelwe endaweni yesikhathi, "uvimbela" ukusetshenziswa (e-Russia) kwamafrikhwensi angu-5GHz namashaneli anezinombolo "eziphezulu". Iqhinga ukusetha izoni yesikhathi ngaphandle kokusebenzisa amagama amazwekazi/amadolobha, okungukuthi, esikhundleni sokuthi:

# timedatectl set-timezone Europe/Moscow

Sicindezela:

# timedatectl set-timezone Etc/GMT-3

Futhi ukuthinta kokugcina kwezinwele zesistimu:

# hostnamectl set-hostname router

/impande/.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. Izengezo ze-CentOS

Konke okushiwo ngenhla kungabhekwa njengemiyalo ephelele yokufaka i-“vanilla” CentOS ku-Raspberry Pi. Kufanele ugcine usune-PC eqalisa kabusha ngaphansi kwemizuzwana eyi-10, isebenzisa ngaphansi kwamaMegabhayithi angu-15 e-RAM kanye no-1.5 Gigabytes we-microSD (empeleni ingaphansi kwe-1 Gigabyte ngenxa yokungaphelele/ibhuthi, kodwa masithembeke).

Ukuze ufake isofthiwe yephoyinti lokufinyelela le-Wi-Fi kulolu hlelo, uzodinga ukwandisa kancane amandla okusabalalisa okujwayelekile kwe-CentOS. Okokuqala, ake sithuthukise umshayeli (i-firmware) ye-adaptha ye-Wi-Fi eyakhelwe ngaphakathi. Ikhasi lasekhaya lephrojekthi lithi:

I-Wifi ku-Raspberry 3B ne-3B+

Amafayela e-firmware e-Raspberry PI 3B/3B+ awavunyelwe ukuthi asatshalaliswe yi-CentOS Project. Ungasebenzisa izihloko ezilandelayo ukuze uqonde inkinga, uthole i-firmware futhi usethe i-wifi.

Okunqatshelwe iphrojekthi ye-CentOS akuvunyelwe kithi ukuze sikusebenzisele mathupha. Sishintsha i-firmware ye-Wi-Fi yokusabalalisa ku-CentOS nehambisanayo evela kubathuthukisi be-Broadcom (lawo mabhulobhu kanambambili azondwayo afanayo...). Lokhu, ikakhulukazi, kuzokuvumela ukuthi usebenzise i-AC kumodi yephoyinti lokufinyelela.

Ukuthuthukiswa kwe-firmware ye-Wi-FiThola imodeli yedivayisi nenguqulo yamanje ye-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 

Siyabona ukuthi inguqulo ye-firmware ingu-7.45.18 yangomhla ka-01.03.2015/XNUMX/XNUMX, futhi sikhumbula isethi yezinombolo ezilandelayo: 43455 (brcmfmac43455-sdio.bin).

Landa isithombe samanje se-Raspbian. Abantu abangamavila bangabhala isithombe ku-microSD futhi bathathe amafayela nge-firmware kusuka lapho. Noma ungakwazi ukukhweza ukuhlukaniswa kwezimpande zesithombe ku-Linux bese ukopisha okudingayo lapho:

# 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

Amafayela we-adaptha ye-Wi-Fi ewumphumela kufanele akopishwe futhi esikhundleni sawo kufakwe “okusajingijolo” ohlwini lwemibhalo /usr/lib/firmware/brcm/

Siqalisa kabusha irutha yesikhathi esizayo futhi simamatheka ngokwaneliseka:

# 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 

Inguqulo: 7.45.154 yangomhla ka-27.02.2018/XNUMX/XNUMX.

Futhi kunjalo 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. Ukucushwa kwenethiwekhi nezinselelo ezizayo

Njengoba sivumelene ngenhla, "i-raspberry" ixhunywe "ngocingo" kunethiwekhi yendawo. Ake sicabange ukuthi umhlinzeki unikeza ukufinyelela kwe-inthanethi ngendlela efanayo ncamashi: ikheli elikunethiwekhi yomphakathi likhishwa ngamandla yiseva ye-DHCP (mhlawumbe ngokubophezela kwe-MAC). Kulesi simo, ngemva kokusetha kokugcina kwe-raspberry, udinga nje "ukuxhuma" ikhebula lomhlinzeki kuwo futhi usuqedile. Ukugunyazwa usebenzisa systemd-networkd - isihloko se-athikili ehlukile futhi akuxoxwa ngayo lapha.

I-Raspberry's Wi-Fi interface iyinethiwekhi yendawo, futhi i-adaptha ye-Ethernet eyakhelwe ngaphakathi (eth0) ingaphandle. Masibale inethiwekhi yendawo ngokwezibalo, isibonelo: 192.168.0.0/24. Ikheli lokusajingijolo: 192.168.0.1. Iseva ye-DHCP izosebenza kunethiwekhi yangaphandle (I-inthanethi).

Ukuqamba Inkinga Yokungaguquguquki и umhleli odumile waseGuatemala - izinkinga ezimbili ezilindele noma ubani olungisa ukuxhumana kwenethiwekhi namasevisi ekusatshalalisweni kwe-systemd.

Isiphithiphithi esihambisanayo (i-lyrical digression)I-Lennart Pottering ihlanganise uhlelo lwayo i-systemd Kuhle kakhulu. Lokhu i-systemd wethula ezinye izinhlelo ngokushesha kangangokuthi, ngenxa yokungabi naso isikhathi sokululama empempeni kanompempe, bakhubeke bawe ekuqaleni bengakaqali ngisho nokudlala izithiyo zabo.

Kodwa ngokungathí sina, ukufana okunamandla kwezinqubo eziqalisiwe ekuqaleni kwe-systemd OS kuwuhlobo "lwebhuloho lembongolo" lochwepheshe abalandelanayo be-LSB. Ngenhlanhla, ukuletha ukuhleleka kule "chaos parallel" kuba lula, nakuba kungabonakali ngaso sonke isikhathi.

Sakha izixhumanisi ezimbili zamabhuloho ezibonakalayo ezinamagama angashintshi: lan и wan. "Sizoxhuma" i-adaptha ye-Wi-Fi kweyokuqala, kanye ne-eth0 "raspberry" kweyesibili.

/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=yebo iqeda isidingo sokukhomba ku-kernel nge-sysctl ukuze unike amandla umzila.
Ikheli le-MACA= shintsha futhi ushintshe uma kunesidingo.

Okokuqala "sixhuma" i-eth0. Sikhumbula "inkinga efanayo" futhi sisebenzisa kuphela ikheli le-MAC lalesi sikhombimsebenzisi, esingatholakala, ngokwesibonelo, kanje:

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

Siyadala /etc/systemd/network/eth.network:

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

[Network]
Bridge=wan

Sisusa ifayela lokucushwa langaphambilini elithi eth0, siqalise kabusha i-Raspberry futhi sithole ukufinyelela kwenethiwekhi kulo (ikheli le-IP cishe lizoshintsha):

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

5.DNSMASQ

Ngokwenza izindawo zokufinyelela ze-Wi-Fi, akukho okudlula umbhangqwana omnandi dnsmasq + hostapd bengingakakucabangi. Ngombono wami.

Uma ngabe kukhona okhohliwe, ke...hostapd - lena into elawula ama-adaptha e-Wi-Fi (ikakhulukazi, izonakekela ukuwaxhuma ku-virtual lan "ama-raspberries"), igunyaza futhi libhalisa amaklayenti angenantambo.

dnsmasq - ilungiselela inqwaba yenethiwekhi yamakhasimende: ikhipha amakheli e-IP, amaseva e-DNS, isango elizenzakalelayo nokunye okujabulisayo okufanayo.

Ake siqale nge-dnsmasq:

# yum install dnsmasq

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

ihlele ngendlela othanda ngayo.

i-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

“Umlingo” lapha usepharamitha bopha-ashukumisayo, etshela i-dnsmasq daemon ukuthi ilinde ize ivele ohlelweni isikhombimsebenzisi=lan, futhi angaquleki ngenxa yesizungu esiziqhenyayo ngemva kokuqala.

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

6. I-HOSTAPD

Futhi ekugcineni, ukucushwa kwe-hostapd yomlingo. Angingabazi ukuthi kukhona ofunda lesi sihloko efuna le migqa eyigugu.

Ngaphambi kokufaka i-hostapd, udinga ukunqoba "inkinga yokufana". I-adaptha ye-Wi-Fi eyakhelwe ngaphakathi i-wlan0 ingashintsha kalula igama layo libe yi-wlan1 lapho ixhuma okokusebenza okwengeziwe kwe-USB Wi-Fi. Ngakho-ke, sizolungisa amagama esixhumi esibonakalayo ngendlela elandelayo: sizoqhamuka namagama ahlukile wama-adaptha (angenazintambo) futhi siwabophe kumakheli e-MAC.

Okwe-adaptha ye-Wi-Fi eyakhelwe ngaphakathi, eseyi-wlan0:

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

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

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

[Link]
Name=wl0

Manje sizoqiniseka ukuthi wl0 - Lena i-Wi-Fi eyakhelwe ngaphakathi. Siqala kabusha i-Raspberry ukuze siqiniseke ngalokhu.

Faka:

# yum install hostapd wireless-tools

Ifayela lokucushwa /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

Ngaphandle kokukhohlwa okwesikhashana Ikomidi Lezimo Eziphuthumayo Lombuso, shintsha amapharamitha esiwadingayo futhi uhlolele ukusebenza kwawo:

# hostapd /etc/hostapd/hostapd.conf

i-hostapd izoqala ngemodi yokusebenzisana, isakaze isimo sayo kukhonsoli. Uma kungekho amaphutha, amaklayenti asekela imodi ye-AC azokwazi ukuxhuma endaweni yokufinyelela. Ukumisa i-hostapd - Ctrl-C.

Okusele nje ukunika amandla i-hostapd ekuqaliseni uhlelo. Uma wenza into ejwayelekile (i-systemctl inika amandla i-hostapd), bese ngemuva kokuqalisa kabusha okulandelayo ungathola idemoni "eligoqa egazini" ngokuxilongwa "isikhombimsebenzisi wl0 asitholakali". Njengomphumela "wesiphithiphithi esihambisanayo," i-hostapd iqale ngokushesha kune-kernel ethole i-adaptha engenantambo.

I-inthanethi igcwele amakhambi: kusukela ekuphelelweni kwesikhathi okuphoqelekile ngaphambi kokuqala i-daemon (imizuzu embalwa), ukuya kwenye i-daemon eqapha ukubukeka kwesixhumi esibonakalayo bese (kabusha) iqala i-hostpad. Izixazululo ziyasebenza impela, kepha zimbi kakhulu. Sicela omkhulu usizo i-systemd “nezinjongo” kanye “nemisebenzi” kanye “nokuncika” kwayo.

Kopisha ifayela lesevisi yokusabalalisa ku /etc/systemd/system/hostapd.service:

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

futhi unciphise ekuqukethe kube ngale ndlela elandelayo:

[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

Umlingo wefayela lesevisi elibuyekeziwe usekubopheni okuguquguqukayo kwe-hostapd kuthagethi entsha - isixhumi esibonakalayo se-wl0. Lapho kuvela i-interface, i-daemon iyaqala; lapho inyamalala, iyama. Futhi konke lokhu ku-inthanethi - ngaphandle kokuqalisa kabusha uhlelo. Le nqubo izoba usizo ikakhulukazi lapho uxhuma i-adaptha ye-USB Wi-Fi kuRaspberry.

Manje ungakwazi:

# systemctl enable hostapd
# reboot

7. IPTABLES

"Ini???" © Yebo, yebo! Lutho i-systemd. Akukho okuhlanganisiwe okusha (ngefomu i-firewalld), abagcina benza into efanayo.

Masisebenzise endala enhle iptables, amasevisi ayo, ngemva kokuqala, azolayisha imithetho yenethiwekhi ku-kernel futhi avale ngokuthula ngaphandle kokuhlala ehlala futhi ngaphandle kokusebenzisa izinsiza. i-systemd inenhle IPMasquerade=, kodwa sisazophathisa ukuhumusha kwekheli (NAT) kanye ne-firewall kuma-iptables.

Faka:

# yum install iptables-services
# systemctl enable iptables ip6tables

Ngincamela ukugcina ukucushwa kwe-iptables njengeskripthi (isibonelo):

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

Sisayinda iskripthi esingenhla futhi silahlekelwa ikhono lokusungula ukuxhumana okusha kwe-SSH okunezintambo ngeRaspberry. Kulungile, senze irutha ye-Wi-Fi, ukufinyelela kuyo "nge-inthanethi" okungavunyelwe ngokuzenzakalela - manje kuphela "emoyeni". Sixhuma ikhebuli ye-Ethernet yomhlinzeki bese siqala ukusefa!

8. Ibhonasi: +2,4GHz

Lapho ngihlanganisa irutha yokuqala ye-Raspberry ngisebenzisa umdwebo ochazwe ngenhla, ngathola inqwaba yamagajethi endlini yami, ngenxa yokulinganiselwa kwedizayini ye-Wi-Fi, ayikwazanga nhlobo ukubona “okusajingijolo”. Ukulungisa kabusha i-router ukuthi isebenze ku-802.11b/g/n kwakungeyona ezemidlalo, njengoba isivinini esikhulu “emoyeni” kuleli cala alizange lidlule i-40 Mbit, futhi umhlinzeki wami we-inthanethi oyintandokazi unginikeza i-100 (ngekhebula).

Eqinisweni, isisombululo senkinga sesivele sisungulwe: isixhumi esibonakalayo sesibili se-Wi-Fi esisebenza ngemvamisa ye-2,4 GHz, kanye nendawo yokufinyelela yesibili. Esitolo esiseduze angithenganga eyokuqala, kodwa eyesibili ye-USB Wi-Fi “ikhwelo” engayithola. Umthengisi wayehlushwa imibuzo mayelana ne-chipset, ukuhambisana nezinhlamvu ze-ARM Linux kanye nethuba lokusebenza kumodi ye-AP (wayengowokuqala ukuqala).

Silungisa "ikhwelo" ngokufanisa ne-adaptha ye-Wi-Fi eyakhelwe ngaphakathi.

Okokuqala, masiyiqambe kabusha ibe 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

Sizophathisa ukuphatha isixhumi esibonakalayo esisha se-Wi-Fi ku-daemon ehlukile ye-hostapd, ezoqala futhi ime kuye ngokuba khona "kwekhwela" elichazwe ngokuqinile ohlelweni: wl1.

Ifayela lokucushwa /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]

Okuqukethwe kwaleli fayela kuncike ngokuqondile kumodeli ye-adaptha ye-USB Wi-Fi, ngakho-ke ukukopisha/ukunamathisela okungavumelekile kungase kukwehlule.

Kopisha ifayela lesevisi yokusabalalisa ku /etc/systemd/system/hostapd2.service:

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

futhi unciphise ekuqukethe kube ngale ndlela elandelayo:

[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

Okusele nje ukunika amandla isibonelo esisha se-hostapd:

# systemctl enable hostapd2

Yilokho kuphela! Donsa "ikhwelo" kanye "ne-raspberry" ngokwayo, bheka amanethiwekhi angenawaya akuzungezile.

Futhi ekugcineni, ngifuna ukukuxwayisa ngekhwalithi ye-adaptha ye-USB Wi-Fi kanye nokunikezwa kwamandla kweRaspberry. "Ikhwelo elishisayo" elixhunyiwe kwesinye isikhathi lingabangela "ukuqhwaza okusajingijolo" ngenxa yezinkinga zikagesi zesikhashana.

Source: www.habr.com

Engeza amazwana