Raspberry Pi + CentOS = Wi-Fi Hotspot (kana raspberry router ine ngowani tsvuku)

Pane huwandu hukuru hweruzivo paInternet pakugadzira nzvimbo dzeWi-Fi dzekuwana zvichibva paRaspberry single-board PC. Sezvo mutemo, izvi zvinoreva kushandisa iyo Raspbian inoshanda sisitimu yekuzvarwa kuRaspberry.

Kuve muteveri weRPM-yakavakirwa masisitimu, ini handina kukwanisa kupfuura neichi chishamiso uye kusayedza wangu wandinoda CentOS pairi.

Chinyorwa chinopa mirairo yekugadzira 5GHz/AC Wi-Fi router kubva kuRaspberry Pi 3 Model B+ zvichibva paCentOS inoshanda system. Pachave neakati wandei akajairwa asi mashoma-anozivikanwa matekiniki, uye sebhonasi - dhizaini yekubatanidza yakawedzera Wi-Fi michina kuRaspberry, ichiibvumira kuti ishande panguva imwe chete mune akati wandei modes (2,4 + 5GHz).

Raspberry Pi + CentOS = Wi-Fi Hotspot (kana raspberry router ine ngowani tsvuku)
(musanganiswa wemifananidzo inowanikwa pachena)

Ngationei ipapo ipapo kuti mamwe mavheti emuchadenga haashande. Ini ndinosvina huwandu hwe100 Mbps kubva muRaspberry yangu pamusoro pemhepo, uye izvi zvinovhara kumhanya kwemupi weInternet. Sei uchida ine usimbe AC, kana mune dzidziso unogona kuwana hafu yegigabit kunyange paN? Kana iwe wakazvibvunza mubvunzo uyu, zvino enda kuchitoro kunotenga router chaiyo ine masere ekunze antennas.

0. Zvauchazoda

  • Chaizvoizvo, iyo "raspberry chigadzirwa" pachayo ndeye caliber: Pi 3 Model B + (kuzadzisa inoshuvira 5GHz kumhanya uye chiteshi);
  • yakanaka microSD> = 4GB;
  • Workstation neLinux uye microSD muverengi / munyori;
  • Kuwanikwa kwehunyanzvi hwakakwana muLinux, chinyorwa ndecheGeek akadzidziswa;
  • Wired network (eth0) yekubatanidza pakati peRaspberry neLinux, inoshandisa DHCP server pane network yemuno uye kuwana Internet kubva kune ese maturusi.

Mhinduro diki pane yekupedzisira poindi. "Ndeipi yakauya pakutanga, zai kana ..." maitiro ekugadzira Wi-Fi router mukushayikwa kwemidziyo yeInternet? Ngatisiyei ichi chinonakidza chiitiko kunze kwechikamu chechinyorwa uye tongofunga kuti Raspberry yakabatana kune yemunharaunda network newaya uye inokwanisa kuwana Internet. Muchiitiko ichi, hatizodi imwe TV uye manipulator kuti tigadzire "raspberry".

1. Isa CentOS

Peji yekumba yeprojekiti

Panguva yekunyora chinyorwa ichi, iyo inomhanya vhezheni yeCentOS pamudziyo ndeye 32-bit. Pane imwe nzvimbo paWorld Wide Web ndakasangana nemafungiro ekuti kuita kwemaOS akadaro pa64-bit ARM architecture kunodzikiswa ne20%. Ndichasiya nguva ino pasina kutaura.

PaLinux, dhawunirodha mufananidzo mudiki ne kernel "-RaspberryPI-"uye nyora kune microSD:

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

Tisati tatanga kushandisa chifananidzo, tichabvisa chikamu cheSWAP kubva pairi, kuwedzera mudzi kusvika kuhuwandu huripo uye kubvisa SELinux. Iyo algorithm iri nyore: ita kopi yemudzi paLinux, bvisa zvese zvikamu kubva kuMicroSD kunze kwekutanga (/ bhutsu), gadzira mudzi mutsva uye dzosera zvirimo kubva kukopi.

Muenzaniso wezviito zvinodiwa (yakaoma console kubuda)

# 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

Mushure mekusunungura zviri mukati memudziyo wekuparadzanisa, inguva yekuita shanduko pairi.

Dzima SELinux mukati /mnt/etc/selinux/config:

SELINUX=disabled

Kugadzirisa /mnt/etc/fstab, ichisiya mairi maviri chete mapindiro pamusoro pezvikamu: boot (/ bhutsu, hapana shanduko) uye mudzi (tino shandura iyo UUID kukosha, iyo inogona kuwanikwa nekudzidza kubuda kweiyo blkid command paLinux):

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

Pakupedzisira, isu tinoshandura kernel boot parameters: tinotsanangura nzvimbo itsva yemudziyo wekuparadzanisa, kudzima kuburitsa kweruzivo rwekugadzirisa uye (nekuda) kurambidza kernel kugovera IPv6 kero pane network interfaces:

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

Hezvino zviri mukati /mnt/cmdline.txt kune inotevera fomu (mutsetse mumwe usina hyphens):

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

Zvaitwa:

# cd
# umount /mnt
# sync

Isu tinorongazve iyo microSD mu "raspberry", itange iyo uye uwane network yekuwana nayo kuburikidza ne ssh (mudzi / centos).

2. Kuisa CentOS

Matatu ekutanga asingazungunuke mafambiro: passwd, yum -y update, reboot.

Isu tinopa kure network management networkd:

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

Gadzira faira (pamwe chete nemadhairekitori) /etc/systemd/network/eth0.network:

[Match]
Name=eth0

[Network]
DHCP=ipv4

Isu tinotangazve "raspberry" uye zvakare kuwana network yekuwana nayo kuburikidza ne ssh (iyo IP kero inogona kuchinja). Chenjerera kune zvinoshandiswa /etc/resolv.conf, yakagadzirwa kare neNetwork Manager. Naizvozvo, kana paine matambudziko nekugadziriswa, gadzirisa zvirimo. Shandisa systemd-yakagadziriswa hatizodaro.

Isu tinobvisa "zvisina basa", gadzirisa uye nekumhanyisa kurodha kweOS:

# 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

Ndiani anoda cron they uye ndiani asingagaye zvakavakwa systemd timers, anogona kuona kuti chii chisipo. / var / log- uye tarisa mutori. Kana iwe uchida nhoroondo yelogi (nekusarudzika, ruzivo rwunochengetwa chete kubva panotanga system):

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

Dzima kushandiswa kweIPv6 nemasevhisi ekutanga (kana zvichidikanwa)/ etc / ssh / sshd_config:

AddressFamily inet

/etc/sysconfig/chronyd:

OPTIONS="-4"

Kukosha kwenguva pa "raspberry" chinhu chakakosha. Sezvo kunze kwebhokisi pasina hunyanzvi hwehudhivhari hwekuchengetedza iyo ikozvino mamiriro ewachi paunotangazve, kuwiriranisa kunodiwa. Daemon yakanaka kwazvo uye inokurumidza yeiyi chrony - yakatoiswa uye inotanga otomatiki. Unogona kushandura maseva eNTP kune ari pedyo.

/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

Kuseta nguva yenguva yatichashandisa trick. Sezvo chinangwa chedu chiri chekugadzira Wi-Fi router inoshanda pa5GHz frequencies, isu tichagadzirira zvinoshamisa pamberi. mutongi:

# yum info crda
Pfupiso: Regulatory kutevedzera daemon ye802.11 isina waya network

Iyi dhizaini yakaipa, zvakare yakavakirwa pane yenguva, "inorambidza" kushandiswa (muRussia) kwe5GHz mafrequency nemachaneli ane "pamusoro" nhamba. Uchenjeri hwekumisa nzvimbo yenguva usingashandisi mazita emakondinendi/maguta, kureva, pachinzvimbo che:

# timedatectl set-timezone Europe/Moscow

Tinodzvanya:

# timedatectl set-timezone Etc/GMT-3

Uye iyo yekupedzisira kubata kune bvudzi reiyo system:

# 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 Add-ons

Zvese zvakataurwa pamusoro zvinogona kutariswa zvizere mirairo yekuisa "vanilla" CentOS paRaspberry Pi. Iwe unofanirwa kuguma nePC iyo (re) boots isingasviki masekonzi gumi, inoshandisa isingasviki 10 Megabytes ye RAM uye 15 Gigabytes ye microSD (chaizvoizvo isingasviki 1.5 Gigabyte nekuda kwekusakwana / bhutsu, asi ngative vakatendeseka).

Kuisa Wi-Fi yekuwana poindi software pane ino system, iwe unozofanirwa kuwedzera zvishoma kugona kweiyo yakajairwa CentOS kugovera. Chekutanga pane zvese, ngatisimudzire mutyairi (firmware) yeakavakirwa-mukati Wi-Fi adapta. Peji yekumba yeprojekiti inoti:

Wifi paRaspberry 3B uye 3B+

Iyo Raspberry PI 3B/3B+ firmware mafaera haatenderwe kugovaniswa neCentOS Project. Iwe unogona kushandisa zvinyorwa zvinotevera kuti unzwisise nyaya yacho, tora firmware uye ugadzire wifi.

Izvo zvinorambidzwa purojekiti yeCentOS hazvina kurambidzwa isu kuti tishandise isu pachedu. Isu tinotsiva iyo yekugovera Wi-Fi firmware muCentOS neinoenderana kubva kune Broadcom vanogadzira (iwo akafanana anovengwa mabhinari mabhurobhu ...). Izvi, kunyanya, zvinokutendera kuti ushandise AC mune yekuwana nzvimbo modhi.

Wi-Fi firmware upgradeTsvaga iyo modhi yemudziyo uye yazvino firmware vhezheni:

# 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 

Isu tinoona kuti iyo firmware vhezheni ndeye 7.45.18 yemusi 01.03.2015/XNUMX/XNUMX, uye rangarira inotevera seti yenhamba: 43455 (brcmfmac43455-sdio.bin).

Dhawunirodha ikozvino Raspbian mufananidzo. Vanhu vane usimbe vanogona kunyora mufananidzo kune microSD uye kutora mafaira ne firmware kubva ipapo. Kana kuti iwe unogona kukwira midzi yechikamu chemufananidzo muLinux uye kukopa zvaunoda kubva ipapo:

# 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

Iyo inoguma Wi-Fi adapta firmware mafaera anofanirwa kukopwa uye kutsiviwa ne "raspberry" mudhairekitori /usr/lib/firmware/brcm/

Isu tinotangazve remangwana router uye kunyemwerera nekugutsikana:

# 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 

Shanduro: 7.45.154 yakaitwa 27.02.2018/XNUMX/XNUMX.

Uye zvechokwadi 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. Network configuration uye matambudziko mberi

Sezvatakabvumirana pamusoro apa, "raspberry" yakabatanidzwa ne "waya" kune network yemunharaunda. Ngatifungei kuti mupi anopa mukana weInternet nenzira imwecheteyo: kero paruzhinji network inopihwa zvine simba neDHCP server (pamwe ine MAC inosunga). Muchiitiko ichi, mushure mekugadzirisa kwekupedzisira kwe raspberry, iwe unongoda "kuvhara" tambo yemupi mairi uye wapedza. Mvumo uchishandisa systemd-networkd - musoro wechinyorwa chakasiyana uye hauna kukurukurwa pano.

Raspberry's Wi-Fi interface(s) inzvimbo yenzvimbo, uye yakavakirwa-mukati Ethernet adapta (eth0) ndeyekunze. Ngativerengei network yemuno statically, semuenzaniso: 192.168.0.0/24. Raspberry kero: 192.168.0.1. Sevha yeDHCP ichashanda pane network yekunze (Internet).

Dambudziko rekusagadzikana ΠΈ ane mukurumbira Guatemalan programmer - matambudziko maviri akamirira chero munhu anogadzirisa network interfaces uye masevhisi mune systemd kugovera.

Parallel chaos (lyrical digression)Lennart Pottering yakanyora purogiramu yayo systemd Kugona chose. Izvi systemd vanotangisa zvimwe zvirongwa nekukasira zvekuti ivo vasina nguva yekupora pakuridza muridzo nemuridzo, vanogumburwa nekudonha pakutanga vasina kana kutanga nzira yavo yezvipingaidzo.

Asi zvakakomba, kuenzanirana kwehasha kwemaitiro akatangwa pakutanga kweiyo systemd OS imhando ye "dhongi zambuko" kune vane ruzivo vakatevedzana veLSB nyanzvi. Neraki, kuunza kurongeka kune iyi "parallel chaos" inoshanduka kuve nyore, kunyangwe isiri pachena nguva dzose.

Isu tinogadzira maviri chaiwo mabhiriji ekusangana ane anogara aine mazita: Lan ΠΈ wan. Isu "tichabatanidza" iyo Wi-Fi adapta (s) kune yekutanga, uye eth0 "raspberry" kune yechipiri.

/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=hongu inobvisa kukosha kwekunongedza kernel kuburikidza ne sysctl kuti igone kuitisa.
MACAaddress= Ngatisiyanei uye tishandure kana zvichidikanwa.

Kutanga isu "tinobatanidza" eth0. Isu tinorangarira "dambudziko rakafanana" uye tinoshandisa chete kero yeMAC yeiyi interface, yaunogona kuziva, semuenzaniso, seizvi:

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

Isu tinosika /etc/systemd/network/eth.network:

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

[Network]
Bridge=wan

Isu tinodzima iyo yapfuura faira yekumisikidza eth0, tangazve iyo Raspberry uye uwane network yekuwana mairi (iyo IP kero ingangochinja):

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

5.DNSMASQ

Pakugadzira maWi-Fi mapoinzi, hapana chinokunda vaviri vanotapira dnsmasq + hostapd handisati ndazvinzwisisa. Mukufunga kwangu.

Kana munhu akakanganwa, ipapo ...hostapd - ichi ndicho chinhu chinodzora Wi-Fi adapters (kunyanya, ichatarisira kuvabatanidza kune chaiyo. Lan "raspberries"), inobvumira uye inonyoresa vatengi vasina waya.

dnsmasq - inogadzirisa network stack yevatengi: nyaya IP kero, DNS maseva, default gedhi uye zvakafanana zvinofadza.

Ngatitangei ne dnsmasq:

# yum install dnsmasq

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

gadzirisa sezvaunoda.

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

Iwo "mashiripiti" pano ari muparameter bind-dynamic, iyo inoudza dnsmasq daemon kuti imirire kusvika yaonekwa pane system interface=lan, uye kwete kupera simba nokusurukirwa kwokuzvikudza pashure pokutanga.

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

6. HOSTAPD

Uye pakupedzisira, iyo mashiripiti hostapd zvigadziriso. Ini handina kupokana kuti mumwe munhu ari kuverenga chinyorwa ichi achitsvaga chaizvo aya anokosheswa mitsara.

Usati waisa hostapd, unofanirwa kukunda "dambudziko rekufanana". Iyo yakavakirwa-mukati Wi-Fi adapta wlan0 inogona kushandura nyore zita rayo kuita wlan1 kana ichibatanidza yakawedzera USB Wi-Fi michina. Naizvozvo, isu tichagadzirisa mazita echiratidziro nenzira inotevera: isu tichauya nemazita akasiyana eiyo (isina waya) adapta uye tinoisunga kune MAC kero.

Kune yakavakirwa-mukati Wi-Fi adapta, iyo ichiri wlan0:

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

Isu tinosika /etc/systemd/network/wl0.link:

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

[Link]
Name=wl0

Zvino tichava nechokwadi kuti wl0 - Iyi yakavakirwa-mukati Wi-Fi. Isu tinotangazve Raspberry kuti tive nechokwadi cheizvi.

Isa:

# yum install hostapd wireless-tools

Configuration file /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

Pasina kukanganwa kwechinguva State Emergency Committee, shandura maparamendi atinoda uye tarisa nemaoko kushanda:

# hostapd /etc/hostapd/hostapd.conf

hostapd ichatanga mune inopindirana modhi, kutepfenyura mamiriro ayo kune iyo console. Kana pasina zvikanganiso, saka vatengi vanotsigira AC modhi vanozokwanisa kubatana kune yekuwana nzvimbo. Kumisa hostapd - Ctrl-C.

Chasara ndechekugonesa hostapd mukutanga system. Kana iwe ukaita zvakajairwa chinhu (systemctl inogonesa hostapd), ipapo mushure meiyo inotevera reboot unogona kuwana dhimoni "rikunguruka muropa" nekuongororwa "interface wl0 haina kuwanikwa". Nekuda kwe "parallel chaos," hostapd yakatanga nekukurumidza kupfuura iyo kernel yakawana iyo isina waya adapta.

IInternet yakazara nemishonga: kubva panguva yekumanikidzwa isati yatanga daemon (maminetsi akati wandei), kune imwe daemon inotarisisa kutaridzika kweiyo interface uye (re) inotanga hostpad. Mhinduro dzacho dzinoshanda, asi dzakaipa zvikuru. Tinodaidza mukuru kuti atibatsire systemd ne "zvinangwa" uye "mabasa" uye "zvinotsamira".

Kopa faira rebasa rekugovera ku /etc/systemd/system/hostapd.service:

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

uye kuderedza zviri mukati maro kune inotevera fomu:

[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

Iwo mashiripiti eiyo yakagadziridzwa sevhisi faira iri mukusunga kwesimbapd kune chitsva chinangwa - iyo wl0 interface. Kana iyo interface ikabuda, daemon inotanga; kana yanyangarika, inomira. Uye izvi zvese zviri online - pasina reboot system. Iyi nzira ichanyanya kubatsira kana uchibatanidza USB Wi-Fi adapta kune Raspberry.

Iye zvino unogona:

# systemctl enable hostapd
# reboot

7. IPTABLES

"Chii???" Β© Hongu, hongu! Hapana systemd. Hapana newfangled inosanganiswa (mune fomu firewall), izvo zvinopedzisira zvaita chinhu chimwe chete.

Ngatishandise yakare yakanaka iptables, avo masevhisi, mushure mekutanga, achaisa mitemo yetiweki mu kernel uye akanyarara achivhara pasina kuramba achigara uye pasina kushandisa zviwanikwa. systemd ine inoyevedza IPMasquerade=, asi isu ticharamba tichipa shanduro yekero (NAT) uye firewall kune iptables.

Isa:

# yum install iptables-services
# systemctl enable iptables ip6tables

Ini ndinosarudza kuchengeta iyo iptables gadziriso sechinyorwa (muenzaniso):

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

Isu tinoshandisa script iri pamusoro uye tinorasikirwa nekukwanisa kumisikidza itsva waya SSH yekubatanidza neRaspberry. Ndizvozvo, takagadzira Wi-Fi router, kuwana iyo "kuburikidza neInternet" inorambidzwa nekusingaperi - ikozvino chete "pamusoro pemhepo". Isu tinobatanidza mupi weEthernet tambo uye tanga kusefa!

8. Bhonasi: +2,4GHz

Pandakaunganidza yekutanga Raspberry router ndichishandisa iyo dhizaini yatsanangurwa pamusoro, ndakawana akati wandei emagetsi mumba mangu ayo, nekuda kwekutadza kwavo kweWi-Fi dhizaini, aisakwanisa kuona "raspberry" zvachose. Kugadzirisazve router kuti ishande muna 802.11b/g/n yakanga isingasviki, sezvo kukurumidza kukuru "pamusoro pemhepo" munyaya iyi hakuna kudarika 40 Mbit, uye mupi weInternet wandinoda anondipa 100 (kuburikidza netambo).

Muchokwadi, mhinduro yedambudziko yakatogadzirwa: yechipiri Wi-Fi interface inoshanda pane frequency ye2,4 GHz, uye yechipiri yekusvika nzvimbo. Pane imwe chitoro chiri padyo handina kutenga kwete yekutanga, asi yechipiri USB Wi-Fi "muridzo" ndakasangana nayo. Mutengesi akashungurudzwa nemibvunzo nezve chipset, kuenderana neARM Linux kernels uye mukana wekushanda muAP mode (ndiye aive wekutanga kutanga).

Isu tinogadzirisa "muridzo" nekuenzanisa neiyo yakavakirwa-mukati Wi-Fi adapta.

Kutanga, ngatiipe zita rekuti 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

Isu tichapa manejimendi eiyo itsva Wi-Fi interface kune yakaparadzana hostapd daemon, iyo inotanga nekumira zvichienderana nekuvapo kweiyo yakanyatsotsanangurwa "muridzo" muhurongwa: wl1.

Configuration file /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]

Zviri mukati meiyi faira zvakananga zvinoenderana nemuenzaniso weiyo USB Wi-Fi adapta, saka banal kopi / paste inogona kukutadza.

Kopa faira rebasa rekugovera ku /etc/systemd/system/hostapd2.service:

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

uye kuderedza zviri mukati maro kune inotevera fomu:

[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

Chasara ndechekugonesa imwe nyowani yehostapd:

# systemctl enable hostapd2

Ndizvo zvose! Dhonza "muridzo" uye "raspberry" pachayo, tarisa mawaya asina waya akakupoteredza.

Uye pakupedzisira, ndinoda kukuyambira nezvemhando ye USB Wi-Fi adapta uye magetsi eiyo Raspberry. Yakabatanidzwa "kuridza muridzo" dzimwe nguva inogona kukonzera "raspberry kutonhora" nekuda kwematambudziko emagetsi enguva pfupi.

Source: www.habr.com

Voeg