I-Raspberry Pi + CentOS = i-Wi-Fi Hotspot (okanye i-raspberry router enomnqwazi obomvu)

Kukho isixa esikhulu solwazi kwi-Intanethi ekudaleni iindawo zokufikelela kwi-Wi-Fi ezisekelwe kwi-Raspberry single-board PC. Njengomthetho, oku kuthetha ukusebenzisa inkqubo yokusebenza yeRaspbian ezalelwa kwiRaspberry.

Ukuba ngumlandeli weenkqubo ezisekwe kwi-RPM, andikwazanga ukudlula kulo mmangaliso omncinci kwaye ndingazami i-CentOS yam endiyithandayo kuyo.

Inqaku linika imiyalelo yokwenza i-5GHz / AC Wi-Fi router ukusuka kwi-Raspberry Pi 3 Model B + esekelwe kwinkqubo yokusebenza ye-CentOS. Kuya kubakho amaqhinga amaninzi aqhelekileyo kodwa awaziwayo, kwaye njengebhonasi - umzobo wokudibanisa izixhobo ezongezelelweyo ze-Wi-Fi kwi-Raspberry, evumela ukuba isebenze ngaxeshanye kwiindlela ezininzi (2,4 + 5GHz).

I-Raspberry Pi + CentOS = i-Wi-Fi Hotspot (okanye i-raspberry router enomnqwazi obomvu)
(umxube wemifanekiso efumaneka simahla)

Masiqaphele kwangoko ukuba ezinye isantya se-cosmic aziyi kusebenza. Ndicudisa ubuninzi be-100 Mbps ngaphandle kweRaspberry yam emoyeni, kwaye oku kugubungela isantya somboneleli wam we-Intanethi. Kutheni ufuna i-AC enobuvila, ukuba kwithiyori unokufumana isiqingatha segigabit nakwi-N? Ukuba ukhe wazibuza lo mbuzo, uze uye evenkileni ukuze uthenge i-router yangempela kunye nee-eriyali ezisibhozo zangaphandle.

0. Yintoni oya kuyidinga

  • Enyanisweni, "imveliso ye-raspberry" ngokwayo isemgangathweni: i-Pi 3 Model B + (ukufezekisa isantya esinqwenelekayo se-5GHz kunye namajelo);
  • I-microSD elungileyo>= 4GB;
  • Indawo yokusebenzela eneLinux kunye nomfundi/umbhali wemicroSD;
  • Ukufumaneka kwezakhono ezaneleyo kwi-Linux, inqaku le-Geek eqeqeshiweyo;
  • Inethiwekhi yeentambo (eth0) uqhagamshelwano phakathi kweRaspberry kunye neLinux, eqhuba iseva yeDHCP kwinethiwekhi yendawo kunye nokufikelela kwi-Intanethi kuzo zombini izixhobo.

Inkcazo encinci kwinqaku lokugqibela. "Yiyiphi eza kuqala, iqanda okanye ..." indlela yokwenza i-Wi-Fi router ngokungabikho kwezixhobo zokufikelela kwi-Intanethi? Masiwushiye lo msebenzi wokonwabisa ngaphandle kobubanzi benqaku kwaye sicinge nje ukuba iRaspberry iqhagamshelwe kwinethiwekhi yendawo ngocingo kwaye inokufikelela kwi-Intanethi. Kule meko, asiyi kufuna iTV eyongezelelweyo kunye ne-manipulator ukuseta "i-raspberry".

1. Faka i-CentOS

Iphepha lasekhaya leprojekthi

Ngexesha lokubhala eli nqaku, inguqulo esebenzayo ye-CentOS kwisixhobo i-32-bit. Kwindawo ethile kwiWebhu yeHlabathi ebanzi ndiye ndadibana nezimvo zokuba ukusebenza kwezi OSes kwi-64-bit ye-ARM yezakhiwo kuncitshiswe ukuya kuthi ga kwi-20%. Ndizowushiya lomzuzu ndingatshongo.

KwiLinux, khuphela umfanekiso omncinci ngekernel "-RaspberryPI-"kwaye uyibhale kwi-microSD:

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

Ngaphambi kokuqala ukusebenzisa umfanekiso, siya kususa isahlulelo se-SWAP kuyo, sandise ingcambu kuwo wonke umthamo okhoyo kwaye ulahle i-SELinux. I-algorithm ilula: yenza ikopi yeengcambu kwi-Linux, cima zonke izahlulo kwi-microSD ngaphandle kweyokuqala (/ boot), yenza ingcambu entsha kwaye ubuyisele imixholo yayo kwikopi.

Umzekelo wezenzo ezifunekayo (imveliso enzima yeconsole)

# 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

Emva kokukhupha imixholo yolwahlulo lweengcambu, lixesha lokwenza utshintsho oluthile kuyo.

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

SELINUX=disabled

Ukuhlela /mnt/etc/fstab, ishiya kuyo amangeno amabini kuphela malunga nezahlulo: isiqalo (/isiqalo, akukho lutshintsho) kunye nengcambu (sitshintsha ixabiso le UUID, elinokufunyanwa ngokufunda imveliso yomyalelo we blkid kwi Linux):

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

Okokugqibela, sitshintsha iparameters zekernel boot: sikhankanya indawo entsha yolwahlulo lweengcambu, khubaza imveliso yolwazi lolungiso lweempazamo kwaye (ngokhetho) thintela ikernel ekunikeni iidilesi ze IPv6 kujongano lomsebenzi womnatha:

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

Nanku umxholo /mnt/cmdline.txt kule ndlela ilandelayo (umgca omnye ngaphandle kweqhagamshela):

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

Kwenziwe:

# cd
# umount /mnt
# sync

Silungisa kwakhona i-microSD kwi "raspberry", siyiqalise kwaye sifumane ukufikelela kwinethiwekhi kuyo nge-ssh (ingcambu / i-centos).

2. Ukumisela i-CentOS

Iintshukumo ezintathu zokuqala ezingashukumiyo: passwd, yum-uhlaziyo, qalisa kwakhona.

Sinika ulawulo lwenethiwekhi inethwekhi:

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

Yenza ifayile (kunye nabalawuli) /etc/systemd/network/eth0.network:

[Match]
Name=eth0

[Network]
DHCP=ipv4

Siqalisa kwakhona "i-raspberry" kwaye siphinde sifumane ukufikelela kwinethiwekhi kuyo nge-ssh (idilesi ye-IP ingatshintsha). Nikelani ingqalelo kwinto esetyenziswayo /etc/resolv.conf, eyenziwe ngaphambili nguMphathi weNethiwekhi. Ke ngoko, kwimeko yeengxaki zokusombulula, hlela imixholo yayo. Sebenzisa isonjululwe ngenkqubo asiyi.

Sisusa "okungeyomfuneko", silungise kwaye sikhawulezise 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

Ngubani ofuna Cron kwaye ngubani ongayityisiyo into eyakhelweyo izibali-xesha zesistim, inokufumanisa into engekhoyo. / var / log- kwaye ujonge iphephancwadi. Ukuba ufuna imbali yelogi (ngokungagqibekanga, ulwazi lugcinwa kuphela ukusuka xa inkqubo iqala):

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

Khubaza ukusetyenziswa kwe-IPv6 ngeenkonzo ezisisiseko (ukuba kuyafuneka)/ njll / ssh / sshd_config:

AddressFamily inet

/etc/sysconfig/chronyd:

OPTIONS="-4"

Ukufaneleka kwexesha kwi "raspberry" yinto ebalulekileyo. Ukusukela ukuba ngaphandle kwebhokisi akukho buchule behardware bokugcina imeko yangoku yewotshi ekuqaliseni kwakhona, ungqamaniso luyafuneka. I-daemon entle kakhulu kwaye ekhawulezayo kule nto ikratshi - sele ifakiwe kwaye iqala ngokuzenzekelayo. Ungatshintsha abancedisi be-NTP baye kwezona zikufutshane.

/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

Ukuseta indawo yexesha esiza kulisebenzisa iqhinga. Ekubeni injongo yethu kukudala i-Wi-Fi router esebenza kwi-5GHz frequencies, siya kulungiselela izinto ezimangalisayo kwangaphambili. umlawuli:

# yum ulwazi crda
Isishwankathelo: Idaemon yokuthotyelwa yolawulo ye-802.11 networking wireless

Olu yilo olubi, olusekwe kwindawo yexesha, "luthintela" ukusetyenziswa (eRashiya) kwee-frequencies ze-5GHz kunye namajelo anamanani "aphezulu". Iqhinga kukuseta indawo yexesha ngaphandle kokusebenzisa amagama amazwekazi/ezixeko, oko kukuthi, endaweni yokuba:

# timedatectl set-timezone Europe/Moscow

Sicinezela:

# timedatectl set-timezone Etc/GMT-3

Kwaye ukuchukumisa kokugqibela kweenwele zenkqubo:

# hostnamectl set-hostname router

/ingcambu/.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. Izongezo zeCentOS

Yonke into ebithethwa ngasentla inokuqwalaselwa njengemiyalelo epheleleyo yokufaka "i-vanilla" CentOS kwiRaspberry Pi. Kuya kufuneka ugqibezele ngePC ethi (re) iibhutsi ngaphantsi kwemizuzwana ye-10, isebenzisa ngaphantsi kwe-15 Megabytes ye-RAM kunye ne-1.5 Gigabytes ye-microSD (eneneni ingaphantsi kwe-1 Gigabyte ngenxa yokungagqibekanga / i-boot, kodwa masinyaniseke).

Ukufakela i-software yokufikelela kwi-Wi-Fi kule nkqubo, kuya kufuneka wandise kancinane amandla okuhanjiswa kwe-CentOS eqhelekileyo. Okokuqala, masiphucule umqhubi (i-firmware) ye-adapter eyakhelwe-ngaphakathi ye-Wi-Fi. Iphepha lasekhaya leprojekthi lithi:

I-Wifi kwi-Raspberry 3B kunye ne-3B +

I-Raspberry PI 3B / 3B + iifayile ze-firmware azivumelekanga ukuba zisasazwe yiProjekthi ye-CentOS. Ungasebenzisa la manqaku alandelayo ukuqonda umba, fumana i-firmware kwaye usete i-wifi.

Yintoni engavumelekanga kwiprojekthi ye-CentOS ayinqatshelwe thina ukuba siyisebenzise. Sithatha indawo yokusasazwa kwe-Wi-Fi firmware kwi-CentOS kunye nehambelanayo evela kubaphuhlisi be-Broadcom (ezo zibhabhinethi ezithiyelweyo ezifanayo ...). Oku, ngokukodwa, kuya kukuvumela ukuba usebenzise i-AC kwindawo yokufikelela kwindawo.

Uphuculo lwe-firmware ye-Wi-FiFumana imodeli yesixhobo kunye nenguqulelo ye-firmware yangoku:

# 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 ukuba inguqulo ye-firmware yi-7.45.18 yomhla we-01.03.2015/XNUMX/XNUMX, kwaye ukhumbule le seti yamanani alandelayo: 43455 (brcmfmac43455-sdio.bin).

Khuphela umfanekiso weRaspbian wangoku. Abantu abanobuvila banokubhala umfanekiso kwi-microSD kwaye bathathe iifayile kunye ne-firmware ukusuka apho. Okanye unganyusa isahlulelo sengcambu yomfanekiso kwiLinux kwaye ukope into oyifunayo ukusuka apho:

# 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

Iifayile ze-Wi-Fi ze-adapter firmware kufuneka zikhutshelwe kwaye zitshintshwe nge "raspberry" kuluhlu /usr/lib/firmware/brcm/

Siqalisa kwakhona i-router yexesha elizayo kwaye sincume ngolwaneliseko:

# 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 yomhla we-27.02.2018/XNUMX/XNUMX.

Kwaye ngokuqinisekileyo 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. Ubumbeko lwenethiwekhi kunye nemingeni ezayo

Njengoko sivumelene ngasentla, "i-raspberry" ixhunywe "ngocingo" kwinethiwekhi yendawo. Makhe sicinge ukuba umboneleli unikezela ukufikelela kwi-Intanethi ngendlela efanayo: idilesi kuthungelwano lukawonkewonke ikhutshwe ngamandla ngumncedisi we-DHCP (mhlawumbi kunye ne-MAC yokubopha). Kule meko, emva kokusekwa kokugqibela kwe-raspberry, kufuneka nje "ufake" ikhebula lomnikezeli kuyo kwaye uyenziwe. Ugunyaziso usebenzisa systemd-networkd - isihloko senqaku elahlukileyo kwaye asixoxwa apha.

I-Raspberry's Wi-Fi interface (s) yinethiwekhi yendawo, kwaye i-adapter ye-Ethernet eyakhelwe ngaphakathi (eth0) ingaphandle. Masifake inombolo yothungelwano lwengingqi ngokwezibalo, umzekelo: 192.168.0.0/24. Idilesi yeRaspberry: 192.168.0.1. Umncedisi we-DHCP uya kusebenza kwinethiwekhi yangaphandle (i-Intanethi).

Ukubizwa kweNgxaki yokuZimba ΠΈ umdwelisi odumileyo waseGuatemala Iingxaki ezimbini ezilindele nabani na oqwalasela ujongano lwenethiwekhi kunye neenkonzo kunikezelo lwe-systemd.

Isiphithiphithi esinxuseneyo (i-lyrical digression)I-Lennart Pottering iqulunqe inkqubo yayo inkqubo Kakuhle kakhulu. Oku inkqubo usungula ezinye iinkqubo ngokukhawuleza kangangokuba bathi, bengenaxesha lokuchacha ekubetheni kwempempe kasompempe, bakhubeke bawe ekuqaleni bengakhange baqalise nokuqala ikhondo labo lomqobo.

Kodwa ngokunzulu, ukuhambelana okundlongondlongo kweenkqubo ezisungulwe ekuqaleni kwe-OS ye-systemd luhlobo "lwebhulorho yedonki" kwiingcali ze-LSB ezilandelelanayo. Ngethamsanqa, ukuzisa ucwangco kule "chaos parallel" ijika ibe lula, nangona ingasoloko ibonakala.

Senza ujongano lweebhulorho ezimbini ezinenyani ezinamagama angatshintshiyo: Lan ΠΈ wan. Siza "kuxhuma" i-adapter ye-Wi-Fi ukuya kweyokuqala, kunye ne-eth0 "i-raspberry" ukuya kweyesibini.

/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=ewe kuphelisa imfuno yokuthelekelela ikernel nge sysctl ukwenza indlela.
Idilesi ye-MACA= Masikhuphe izimvo kwaye sitshintshe ukuba kukho imfuneko.

Okokuqala "sidibanisa" eth0. Sikhumbula "ingxaki efanayo" kwaye sisebenzisa kuphela idilesi ye-MAC yolu jongano, enokufunyanwa, umzekelo, ngolu hlobo:

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

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

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

[Network]
Bridge=wan

Sicima ifayile yoqwalaselo yangaphambili eth0, qalisa kwakhona iRaspberry kwaye ufumane ufikelelo lwenethiwekhi kuyo (idilesi yeIP iya kutshintsha kakhulu):

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

5.DNSMASQ

Ukwenza iindawo zokufikelela kwi-Wi-Fi, akukho nto idlula isibini esimnandi dnsmasq + umphathi andikayiqondi. Kwiingcinga zam.

Ukuba umntu uyalibala, ngoko...umphathi -Le yinto elawula iiadaptha ze-Wi-Fi (ngokukodwa, iya kuthatha unonophelo lokuzidibanisa nenyani Lan "i-raspberries"), igunyazisa kwaye ibhalise abathengi abangenazingcingo.

dnsmasq β€” imisela isitakhi sothungelwano sabaxumi: imiba yeedilesi ze-IP, iiseva ze-DNS, isango elingagqibekanga kunye nolonwabo olufanayo.

Masiqale nge-dnsmasq:

# yum install dnsmasq

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

yihlele ngokuthanda kwakho.

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" apha ulele kwipharamitha bopha-oguqukayo, exelela i-dnsmasq daemon ukuba ilinde de ivele kwindlela ujongano=lan, yaye ungatyhafi ngenxa yobulolo obunekratshi emva kokuqala.

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

6. I-HOSTAPD

Kwaye ekugqibeleni, ulungelelwaniso lwe-hostapd yomlingo. Andithandabuzi ukuba kukho umntu ofunda eli nqaku ekhangela ngokuchanekileyo le migca ixabisekileyo.

Ngaphambi kokufaka i-hostapd, kufuneka unqobe "ingxaki efanayo". I-adapter ye-Wi-Fi eyakhelwe-ngaphakathi i-wlan0 inokutshintsha ngokulula igama layo kwi-wlan1 xa idibanisa izixhobo ezongezelelweyo ze-USB Wi-Fi. Ngoko ke, siya kulungisa amagama e-interface ngendlela elandelayo: siya kuza namagama akhethekileyo kwii-adapters (ezingenacingo) kwaye zibophe kwiidilesi ze-MAC.

Yeadaptha eyakhelwe-ngaphakathi ye-Wi-Fi, 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

Ngoku siza kuqiniseka ukuba wl0 - Le yakhiwe-kwi-Wi-Fi. Siqalisa kwakhona iRaspberry ukuqinisekisa oku.

Faka:

# yum install hostapd wireless-tools

Ifayile yoqwalaselo /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 kokulibala okomzuzwana IKomiti yeSizwe eNgxamisekileyo, tshintsha iiparameters esizifunayo kwaye ujonge ngesandla ukusebenza:

# hostapd /etc/hostapd/hostapd.conf

i-hostapd iya kuqala kwimo yonxibelelwano, isasaza imeko yayo kwi-console. Ukuba akukho ziphoso, ke abathengi abaxhasa imodi ye-AC baya kukwazi ukudibanisa kwindawo yokufikelela. Ukumisa i-hostapd - Ctrl-C.

Konke okuseleyo kukuvumela i-hostapd kuqaliso lwenkqubo. Ukuba wenza into esemgangathweni (i-systemctl yenza i-hostapd), emva kokuba uqalise kwakhona unokufumana idemoni "iqengqeleka egazini" ngokuxilongwa "ujongano wl0 alufunyenwanga". Ngenxa yesiphithiphithi esinxuseneyo, i-hostapd yaqala ngokukhawuleza kunokuba i-kernel ifumene iadaptha engenazingcingo.

I-Intanethi igcwele amayeza: ukusuka kwixesha elinyanzelweyo ngaphambi kokuba uqalise i-daemon (imizuzu embalwa), ukuya kwenye i-daemon ebeka iliso kwinkangeleko yojongano kwaye (phinda) iqalise i-hostpad. Izisombululo ziyasebenza kakhulu, kodwa zimbi kakhulu. Sicela uncedo koyena mkhulu inkqubo kunye "neenjongo" kunye "nemisebenzi" kunye "nokuxhomekeka".

Khuphela ifayile yenkonzo yonikezelo kuyo /etc/systemd/system/hostapd.service:

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

kwaye unciphise imixholo yayo ibe ngolu hlobo lulandelayo:

[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 wefayile yenkonzo ehlaziyiweyo ilele kwisibophelelo esiguqukayo se-hostapd kwithagethi entsha - i-wl0 interface. Xa ujongano luvela, i-daemon iyaqala; xa inyamalala, iyayeka. Kwaye oku konke kwi-intanethi - ngaphandle kokuvuselela inkqubo. Obu buchule buya kuba luncedo ngakumbi xa udibanisa iadaptha ye-USB Wi-Fi kwiRaspberry.

Ngoku unako:

# systemctl enable hostapd
# reboot

7. IIPTABILE

β€œYintoni???” Β© Ewe, ewe! Akukho nanye inkqubo. Akukho zidibaniselwano ezintsha (kwimo umlilo), ezigqibela ngokwenza into enye.

Masisebenzise endala elungileyo iptables, iinkonzo zabo, emva kokuqala, ziya kulayisha imithetho yenethiwekhi kwi-kernel kwaye ivale ngokuthula ngaphandle kokuhlala umhlali kwaye ngaphandle kokutya izixhobo. systemd inobuhle IPMasquerade=, kodwa siya kuqhubeka sinikezela ngedilesi yokuguqulela (NAT) kunye ne-firewall kwii-iptables.

Faka:

# yum install iptables-services
# systemctl enable iptables ip6tables

Ndikhetha ukugcina uqwalaselo lwe-iptables njengeskripthi (umzekelo):

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

Senza esi script singasentla kwaye silahlekelwe ukukwazi ukuseka imidibaniso emitsha ye-SSH eneentambo kunye neRaspberry. Kulungile, senze i-router ye-Wi-Fi, ukufikelela kuyo "nge-Intanethi" kuthintelwe ngokungagqibekanga - ngoku kuphela "ngomoya". Siqhagamshela intambo ye-Ethernet yomboneleli kwaye siqalise ukusefa!

8. Ibhonasi: + 2,4GHz

Xa ndihlanganisa i-router yokuqala ye-Raspberry usebenzisa umzobo ochazwe ngasentla, ndafumanisa inani leegajethi endlwini yam, ngenxa yokunciphisa i-Wi-Fi yoyilo, ayikwazanga ukubona "i-raspberry" kwaphela. Ukuhlaziya kwakhona i-router ukuba isebenze kwi-802.11b / g / n yayingekho ezemidlalo, ekubeni isantya esiphezulu "phezu kwe-air" kule meko ayizange idlule i-40 Mbit, kwaye umnikezeli wam owuthandayo we-Intanethi undinika i-100 (ngentambo).

Enyanisweni, isisombululo sengxaki sele senziwe: i-interface ye-Wi-Fi yesibini esebenza kwi-frequency ye-2,4 GHz, kunye nendawo yokufikelela okwesibini. Kwivenkile ekufutshane andithenganga eyokuqala, kodwa eyesibini i-USB Wi-Fi β€œikhwelo” ndiye ndadibana nayo. Umthengisi wayexhatshazwa yimibuzo malunga ne-chipset, ukuhambelana ne-ARM Linux kernels kunye nokwenzeka kokusebenza kwimodi ye-AP (wayengowokuqala ukuqala).

Siqwalasela "impempe" ngokufanisa kunye ne-adapter ye-Wi-Fi eyakhelwe-ngaphakathi.

Okokuqala, masiyinike igama kwakhona 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

Siza kuphathisa ulawulo lwe-interface entsha ye-Wi-Fi kwi-daemon ye-hostapd eyahlukileyo, eya kuqalisa kwaye iyeke ngokuxhomekeke kubukho be "mpempe" echazwe ngokungqongqo kwinkqubo: wl1.

Ifayile yoqwalaselo /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]

Imixholo yale fayile ngokuthe ngqo ixhomekeke kumzekelo we-USB Wi-Fi iadaptha, ngoko ke ikopi ye-banal/uncamathiselo inokusilela.

Khuphela ifayile yenkonzo yonikezelo kuyo /etc/systemd/system/hostapd2.service:

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

kwaye unciphise imixholo yayo ibe ngolu hlobo lulandelayo:

[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

Konke okuseleyo kukuvumela umzekelo omtsha we-hostapd:

# systemctl enable hostapd2

Kuko konke! Tsala "impempe" kunye ne "raspberry" ngokwayo, jonga iinethiwekhi ezingenazintambo ezikujikelezile.

Kwaye ekugqibeleni, ndifuna ukukulumkisa malunga nomgangatho we-USB Wi-Fi iadaptha kunye nonikezelo lwamandla lweRaspberry. "Impempe eshushu" edityanisiweyo ngamanye amaxesha inokubangela "ukukhenkceza kwamaqunube" ngenxa yeengxaki zombane zexesha elifutshane.

umthombo: www.habr.com

Yongeza izimvo