Raspberry Pi + CentOS = Wi-Fi Hotspot (ma ọ bụ raspberry router nwere okpu uhie)

Enwere nnukwu ozi na ịntanetị maka ịmepụta ebe ịnweta Wi-Fi dabere na PC Raspberry single-board. Dịka iwu, nke a pụtara iji sistemụ arụmọrụ Raspbian nke sitere na Raspberry.

N'ịbụ onye na-agbaso usoro dabere na RPM, enweghị m ike ịgafe obere ọrụ ebube a ma ghara ịnwale CentOS m hụrụ n'anya na ya.

Edemede a na-enye ntuziaka maka ịme rawụta 5GHz/AC Wi-Fi site na Raspberry Pi 3 Model B+ dabere na sistemụ arụmọrụ CentOS. A ga-enwe ọtụtụ ọkọlọtọ mana aghụghọ amachaghị nke ọma, yana dịka onyinye - eserese maka ijikọ akụrụngwa Wi-Fi ndị ọzọ na Raspberry, na-enye ya ohere ịrụ ọrụ n'otu oge n'ọtụtụ ụdị (2,4+5GHz).

Raspberry Pi + CentOS = Wi-Fi Hotspot (ma ọ bụ raspberry router nwere okpu uhie)
(ngwakọta onyonyo dị n'efu)

Ka anyị mara ozugbo na ụfọdụ ọsọ mbara igwe agaghị arụ ọrụ. Ana m ewepụ ihe kacha 100 Mbps na Raspberry m n'ikuku, nke a na-ekpuchikwa ọsọ nke ndị na-eweta ịntanetị m. Kedu ihe kpatara ịchọrọ AC dị umengwụ dị otú ahụ, ma ọ bụrụ na tiori ị nwere ike nweta ọkara gigabit ọbụna na N? Ọ bụrụ na ị jụrụ onwe gị ajụjụ a, gaa na ụlọ ahịa ịzụta ezigbo rawụta nwere antenna mpụga asatọ.

0. Ihe ị ga-achọ

  • N'ezie, "ngwaahịa raspberry" n'onwe ya bụ nke caliber: Pi 3 Model B+ (iji nweta ọsọ ọsọ na ọwa 5GHz na-achọsi ike);
  • Ezigbo microSD>= 4GB;
  • Ụlọ ọrụ na Linux na microSD onye na-agụ / onye edemede;
  • Nnweta nka zuru oke na Linux, isiokwu a bụ maka Geek a zụrụ azụ;
  • Njikọ netwọk ikuku (eth0) n'etiti Raspberry na Linux, na-arụ ọrụ nkesa DHCP na netwọk mpaghara yana ịnweta ịntanetị site na ngwaọrụ abụọ ahụ.

Obere okwu na isi ihe ikpeazụ. "Olee nke bịara mbụ, akwa ma ọ bụ ..." ka esi eme rawụta Wi-Fi na enweghị akụrụngwa ịntanetị ọ bụla? Ka anyị hapụ mmega ahụ na-atọ ụtọ na-abụghị akụkụ nke akụkọ ahụ wee chee na ejiri waya jikọọ Raspberry na netwọkụ mpaghara wee nweta ịntanetị. N'okwu a, anyị agaghị achọ TV ọzọ na onye na-emegharị ihe iji guzobe "raspberry".

1. Wụnye CentOS

Ibe ụlọ ọrụ

N'oge edere akụkọ a, ụdị CentOS na-agba ọsọ na ngwaọrụ ahụ bụ 32-bit. N'ebe dị na Webụsaịtị ụwa, ahụrụ m echiche na arụmọrụ OS ndị dị otú ahụ na 64-bit ARM architecture na-ebelata ihe ruru 20%. M ga-ahapụ oge a na-enweghị ikwu.

Na Linux, jiri kernel budata onyonyo pere mpe"-RaspberryPI-"Ma dee ya na microSD:

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

Tupu ịmalite iji ihe onyonyo a, anyị ga-ewepụ akụkụ SWAP na ya, gbasaa mgbọrọgwụ na olu niile dịnụ wee wepụ SELinux. Algọridim dị mfe: mee otu mgbọrọgwụ na Linux, hichapụ akụkụ niile na microSD ma e wezụga nke mbụ (/ buut), mepụta mgbọrọgwụ ọhụrụ wee weghachite ọdịnaya ya na oyiri.

Ọmụmaatụ nke omume achọrọ (mpụta njikwa njikwa siri ike)

# 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

Mgbe ịmepechara ọdịnaya nke nkebi mgbọrọgwụ, ọ bụ oge ịme mgbanwe ụfọdụ na ya.

Gbanyụọ SELinux n'ime /mnt/etc/selinux/config:

SELINUX=disabled

Na-edezi /mnt/etc/fstab, na-ahapụ n'ime ya naanị ntinye abụọ banyere nkebi: buut (/ buut, enweghị mgbanwe) na mgbọrọgwụ (anyị na-agbanwe uru UUID, nke a pụrụ ịchọta site n'ịmụ mmepụta nke blkid iwu na Linux):

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

N'ikpeazụ, anyị na-agbanwe kernel boot parameters: anyị ezipụta ọnọdụ ọhụrụ maka mgbọrọgwụ nkebi, gbanyụọ mmepụta nke debugging ozi na (nhọrọ) machibido kernel ikenye IPv6 adreesị na netwọk interfaces:

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

Nke a bụ ọdịnaya /mnt/cmdline.txt n'ụdị a (otu ahịrị na-enweghị hyphen):

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

Emela:

# cd
# umount /mnt
# sync

Anyị na-ahazi microSD n'ime "utu", malite ya wee nweta netwọk site na ssh (mgbọrọgwụ / centos).

2. Ịtọlite ​​​​CentOS

Mmegharị atọ ndị mbụ a na-apụghị ịma jijiji: passwd, yum -y melite, reboot.

Anyị na-enye ohere netwọk njikwa netwọk:

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

Mepụta faịlụ (yana akwụkwọ ndekọ aha) /etc/systemd/network/eth0.network:

[Match]
Name=eth0

[Network]
DHCP=ipv4

Anyị na-amalitegharị “raspberry” wee nweta netwọkụ ọzọ site na ssh (adreesị IP nwere ike ịgbanwe). Lezienụ anya na ihe eji eme ihe /etc/resolv.conf, nke Onye njikwa netwọk mepụtara na mbụ. Ya mere, ọ bụrụ na enwere nsogbu na mkpebi, dezie ọdịnaya ya. Jiri edozi usoro anyị agaghị.

Anyị na-ewepụ "enweghị isi", rụkwaa ma mee ngwa ngwa nke 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

Onye choro cron na onye na-adịghị agbaze ihe wuru usoro ngụ oge, nwere ike guzobe ihe na-efu. / var / log- ma lelee anya akwụkwọ akụkọ. Ọ bụrụ na ịchọrọ akụkọ ndekọ aha (site na ndabara, a na-echekwa ozi naanị site na mgbe usoro ahụ malitere):

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

Gbanyụọ iji IPv6 site na ọrụ ndị bụ isi (ọ bụrụ na achọrọ ya)/ wdg / ssh / sshd_config:

AddressFamily inet

/etc/sysconfig/chronyd:

OPTIONS="-4"

Mkpa oge na "utu" bụ ihe dị mkpa. Ebe ọ bụ na n'ime igbe ahụ enweghị ike ngwaike iji chekwaa ọnọdụ elekere ugbu a ma malitegharịa, mmekọrịta dị mkpa. Daemon dị oke mma na ngwa ngwa maka nke a bụ ogologo oge - arụnyerelarị wee malite na-akpaghị aka. Ị nwere ike ịgbanwe sava NTP ka ọ bụrụ ndị kacha nso.

/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

Ka ịtọọ mpaghara oge anyị ga-eji aghụghọ. Ebe ebumnuche anyị bụ ịmepụta Wi-Fi rawụta na-arụ ọrụ na ugboro 5GHz, anyị ga-akwado maka ihe ịtụnanya n'ọdịnihu. nchịkwa:

# yum info crda
Nchịkọta: Daemon nrubeisi na-achịkwa maka netwọk ikuku 802.11

Nhazi ọjọọ a, dabere na mpaghara oge, "machibidoro" iji (na Russia) ugboro ugboro 5GHz na ọwa nwere nọmba "elu". Aghụghọ a bụ ịtọ mpaghara oge na-ejighị aha kọntinent/obodo, ya bụ, kama:

# timedatectl set-timezone Europe/Moscow

Anyị pịa:

# timedatectl set-timezone Etc/GMT-3

Na njedebe ikpeazụ na-emetụ ntutu isi nke usoro ahụ:

# hostnamectl set-hostname router

/mgbọrọgwụ/.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. Ihe mgbakwunye CentOS

Enwere ike ịtụle ihe niile ekwuru n'elu ntuziaka zuru oke maka ịwụnye “vanilla” CentOS na Raspberry Pi. Ị ga-ejedebe na PC na (re) akpụkpọ ụkwụ na-erughị 10 sekọnd, na-eji ihe na-erughị 15 Megabytes nke RAM na 1.5 Gigabyte nke microSD (n'ezie ihe na-erughị 1 Gigabyte n'ihi ezughị ezu / buut, ma ka anyị kwuo eziokwu).

Iji wụnye sọftụwia nnweta Wi-Fi na sistemụ a, ị ga-achọ ịgbasawanye ike nke ọkọlọtọ CentOS. Nke mbụ, ka anyị kwalite ọkwọ ụgbọala (firmware) nke nkwụnye Wi-Fi arụnyere n'ime ya. Ibe ụlọ ọrụ ahụ kwuru:

Wifi na Raspberry 3B na 3B+

A naghị ekwe ka CentOS Project kesaa faịlụ firmware Raspberry PI 3B/3B+. Ị nwere ike iji akụkọ ndị na-esonụ iji ghọta okwu a, nweta firmware ma melite wifi.

A machibidoro iwu maka ọrụ CentOS maka ojiji nkeonwe. Anyị na-eji nkesa nkesa Wi-Fi firmware na CentOS dochie nkesa sitere na ndị mmepe Broadcom (ndị ahụ na-akpọ ọnụọgụ ọnụọgụ abụọ asị…). Nke a, ọkachasị, ga-enye gị ohere iji AC na ọnọdụ ohere ịnweta.

Nkwalite ngwa ngwa Wi-FiChọpụta ụdị ngwaọrụ na ụdị firmware dị ugbu a:

# 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 

Anyị na-ahụ na ụdị firmware bụ 7.45.18 ụbọchị 01.03.2015/XNUMX/XNUMX, ma cheta nọmba ndị a: 43455 (brcmfmac43455-sdio.bin).

Budata onyonyo Raspbian dị ugbu a. Ndị umengwụ nwere ike ide ihe onyonyo a na microSD wee buru faịlị na ngwa ngwa n'ebe ahụ. Ma ọ bụ ị nwere ike bulie mgbọrọgwụ nkebi nke onyonyo na Linux wee detuo ihe ịchọrọ n'ebe ahụ:

# 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

A ga-edomita faịlụ ngwa ngwa nkwụnye Wi-Fi ga-apụta ma jiri “utu” dochie ya n'ime ndekọ. /usr/lib/firmware/brcm/

Anyị na-amalitegharị rawụta n'ọdịnihu wee mụmụọ ọnụ ọchị:

# 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 

Ụdị: 7.45.154 ụbọchị 27.02.2018/XNUMX/XNUMX.

Ma n'ezie 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. Nhazi netwọk na ihe ịma aka dị n'ihu

Dịka anyị kwenyere n'elu, "utu" na-ejikọta "waya" na netwọk mpaghara. Ka anyị chee na onye na-eweta ya na-enye ohere ịntanetị n'otu ụzọ ahụ: a na-enye adreesị na netwọk ọha na eze site na DHCP nkesa (ma eleghị anya na-ejikọta MAC). N'okwu a, mgbe nhazi ikpeazụ nke raspberry ahụ gasịrị, naanị ị ga-achọ "ịkụnye" eriri onye na-eweta ya na imecha ya. Ikike iji sistemu-netwọk - isiokwu nke isiokwu dị iche iche na anaghị atụle ebe a.

Wi-Fi interface Raspberry bụ netwọk mpaghara, yana ihe nkwụnye Ethernet arụnyere (eth0) dị na mpụga. Ka anyị gụọ netwọkụ mpaghara n'ụzọ ọ bụla, dịka ọmụmaatụ: 192.168.0.0/24. adreesị rasberi: 192.168.0.1. Ihe nkesa DHCP ga-arụ ọrụ na netwọk mpụga (Internet).

Nsogbu Ịkpọ aha и onye mmemme Guatemala a ma ama - nsogbu abụọ na-echere onye ọ bụla na-ahazi oghere netwọkụ na ọrụ na nkesa sistemu.

Ọgbaaghara (ọgbaaghara lyrical)Lennart Pottering achịkọtala mmemme nke ya systemd Ọ dị ezigbo mma. Nke a systemd na-ebupụta mmemme ndị ọzọ ngwa ngwa nke na ha enweghị oge iji gbakee site na ọkpọ ọkpọ nke onye ọka ikpe, sụọ ngọngọ ma daa na mmalite na-enweghị ọbụna ịmalite usoro mgbochi ha.

Mana nke ọma, myirịta ike nke usoro ewepụtara na mmalite nke sistemu OS bụ ụdị “akwa inyinya” maka ndị ọkachamara n'usoro LSB. N'ụzọ dị mma, iweta usoro na "ọgba aghara yiri ya" na-eme ka ọ dị mfe, ọ bụ ezie na ọ bụghị mgbe niile.

Anyị na-eke abụọ mebere àkwà mmiri interfaces na mgbe niile aha: LAN и wan. Anyị ga-ejikọta ihe nkwụnye (s) Wi-Fi na nke mbụ, yana eth0 "raspberry" na nke abụọ.

/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=ee na-ewepụ mkpa ịkọwapụta na kernel site na sysctl iji mee ka ntụgharị.
MACAdrees = Ka anyị ghara ikwu okwu ma gbanwee ma ọ bụrụ na ọ dị mkpa.

Mbụ anyị "jikọọ" eth0. Anyị na-echeta "nsogbu n'ụdị" ma na-eji naanị adreesị MAC nke interface a, nke enwere ike ịchọpụta, dịka ọmụmaatụ, dị ka nke a:

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

Anyị na-eke /etc/systemd/network/eth.network:

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

[Network]
Bridge=wan

Anyị na-ehichapụ faịlụ nhazi gara aga eth0, malitegharịa Raspberry wee nweta netwọk na ya (adreesị IP ga-enwe ike ịgbanwe):

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

5.DNSMASQ

Maka ime ebe ịnweta Wi-Fi, ọ nweghị ihe na-akụda ọmarịcha di na nwunye Uchechukwu + nnabata echebebeghi ya. N'uche nke m.

Ọ bụrụ na onye ọ bụla chefuru, mgbe ahụ ...nnabata - Nke a bụ ihe na-achịkwa ihe nkwụnye Wi-Fi (karịsịa, ọ ga-elekọta ijikọ ha na mebere. LAN "raspberries"), na-enye ikike ma deba aha ndị ahịa ikuku.

Uchechukwu - na-ahazi nchịkọta netwọkụ nke ndị ahịa: adreesị IP, sava DNS, ọnụ ụzọ ndabara na ihe ụtọ ndị yiri ya.

Ka anyị bido na dnsmasq:

# yum install dnsmasq

.Аблон /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

dezie ya ka ọ masịrị gị.

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

"Anwansi" ebe a dabere na oke kechie-ike, nke na-agwa dnsmasq daemon ka ọ chere ruo mgbe ọ pụtara na sistemụ interface = lan, ma ghara ịda mbà n'ihi ịdị mpako nke owu ọmụma mgbe mmalite gasịrị.

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

6. HOSTAPD

Na n'ikpeazụ, anwansi hostapd nhazi. Enweghị m obi abụọ ọ bụla na mmadụ na-agụ akụkọ a na-achọ kpọmkwem ahịrị ndị a bara uru.

Tupu ịwụnye hostapd, ị ga-emeri "nsogbu enweghị ụdị". Ihe nkwụnye Wi-Fi arụnyere n'ime wlan0 nwere ike ịgbanwe aha ya n'ụzọ dị mfe ka ọ bụrụ wlan1 mgbe ị na-ejikọta akụrụngwa Wi-Fi USB ọzọ. Ya mere, anyị ga-edozi aha interface ahụ n'ụzọ dị otú a: anyị ga-eji aha pụrụ iche maka ihe nkwụnye (ikuku) na-ejikọta ha na adreesị MAC.

Maka ihe nkwụnye Wi-Fi arụnyere, nke ka dị wlan0:

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

Anyị na-eke /etc/systemd/network/wl0.link:

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

[Link]
Name=wl0

Ugbu a, anyị ga-ejide n'aka na wl0 - Nke a bụ Wi-Fi arụnyere n'ime ya. Anyị na-amalitegharị Raspberry iji jide n'aka na nke a.

Wụnye:

# yum install hostapd wireless-tools

faịlụ nhazi /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

Na-echefughị ​​nwa oge Kọmitii Mberede steeti, gbanwee paramita anyị chọrọ ma jiri aka nyochaa ọrụ:

# hostapd /etc/hostapd/hostapd.conf

hostapd ga-amalite na ọnọdụ mmekọrịta, na-agbasa ọnọdụ ya na njikwa. Ọ bụrụ na enweghị njehie, mgbe ahụ ndị ahịa na-akwado ọnọdụ AC ga-enwe ike jikọọ na ebe nnweta. Iji kwụsị hostapd - Ctrl-C.

Naanị ihe fọdụrụ bụ ime ka hostapd na mmalite sistemụ. Ọ bụrụ na ịmee ihe ọkọlọtọ (systemctl nyeere hostapd), mgbe ịmalitegharị ọzọ, ị nwere ike nweta mmụọ ọjọọ "na-atụgharị n'ọbara" na nchoputa "interface wl0 ahụghị". N'ihi "ọgbaghara yiri," hostapd malitere ngwa ngwa karịa kernel ahụ chọtara nkwụnye ikuku.

Ịntanetị juputara na ọgwụgwọ: site na oge mmanye tupu ịmalite daemon (ọtụtụ nkeji), gaa na daemon ọzọ na-enyocha ọdịdị nke interface na (re) malite hostpad. Ngwọta ndị a na-arụ ọrụ nke ọma, mana ọ jọrọ njọ. Anyị na-akpọ onye ukwu maka enyemaka systemd ya na "ebumnobi" na "ọrụ" na "ndabere".

Detuo faịlụ ọrụ nkesa na /etc/systemd/system/hostapd.service:

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

ma belata ọdịnaya ya n'ụdị a:

[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

Anwansi nke faịlụ ọrụ emelitere dabere na njikọ siri ike nke hostapd na ebumnuche ọhụrụ - interface wl0. Mgbe interface pụtara, daemon na-amalite; mgbe ọ na-apụ, ọ na-akwụsị. Na nke a niile bụ online - na-enweghị rebooting usoro. Usoro a ga-aba uru karịsịa mgbe ị na-ejikọta ihe nkwụnye Wi-Fi USB na Raspberry.

Ugbu a ị nwere ike:

# systemctl enable hostapd
# reboot

7. IPTABLES

"Gịnị???" © Ee, ee! Ọ dịghị systemd. Ọ nweghị ihe jikọrọ ọnụ ọhụrụ (n'ụdị onye na -agba ọkụ), nke na-emecha mee otu ihe ahụ.

Ka anyị were ezigbo ochie iptables, onye ọrụ ya, mgbe ịmalitechara, ga-ebunye iwu netwọkụ n'ime kernel wee mechie nwayọ na-enweghị onye bi na enweghị ihe onwunwe. systemd nwere ihe mara mma IPMasquerade=, mana anyị ka ga-enyefe ntụgharị adreesị (NAT) na firewall n'aka iptables.

Wụnye:

# yum install iptables-services
# systemctl enable iptables ip6tables

Ọ masịrị m ịchekwa nhazi iptables dị ka edemede (ihe atụ):

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

Anyị na-eme edemede a dị n'elu wee tufuo ikike iji wepụta njikọ SSH ọhụrụ na Raspberry. Nke ahụ ziri ezi, anyị emeela Wi-Fi rawụta, ịnweta nke “site na ịntanetị” amachibidoro na ndabara - ugbu a naanị “n'ikuku”. Anyị jikọọ eriri Ethernet nke onye na-eweta wee malite sọfụ!

8. Ego: +2,4GHz

Mgbe m kpọkọtara raspberry nke mbụ site na iji eserese akọwara n'elu, achọpụtara m ọtụtụ ngwa n'ime ezinụlọ m nke, n'ihi oke imewe Wi-Fi ha, enweghị ike ịhụ "utu" ma ọlị. Ịhazigharị rawụta ka ọ rụọ ọrụ na 802.11b / g / n enweghị egwuregwu, ebe ọ bụ na oke ọsọ "n'elu ikuku" na nke a agafeghị 40 Mbit, na onye na-ahụ maka ịntanetị kachasị amasị m na-enye m 100 (site na eriri).

N'ezie, e mepụtalarị ihe ngwọta maka nsogbu ahụ: Wi-Fi interface nke abụọ na-arụ ọrụ na ugboro 2,4 GHz, na ebe ịnweta nke abụọ. N'ebe a na-ere ahịa dị nso, azụrụ m abụghị nke mbụ, mana Wi-Fi USB nke abụọ ka m nwetara. Onye na-ere ahịa ahụ tara ahụhụ site na ajụjụ gbasara chipset, ndakọrịta na kernel ARM Linux na ohere nke ịrụ ọrụ na ọnọdụ AP (ọ bụ onye mbụ malitere).

Anyị na-ahazi “ọfụfụ” site na ntụnyere na nkwụnye Wi-Fi arụnyere n'ime ya.

Mbụ, ka anyị nyegharịa ya aha 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

Anyị ga-enyefe njikwa nke interface Wi-Fi ọhụrụ n'aka hostapd daemon dị iche, nke ga-amalite ma kwụsị dabere na ọnụnọ nke "ụfụ" akọwapụtara nke ọma na sistemụ: wl1.

faịlụ nhazi /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]

Ọdịnaya dị na faịlụ a dabere ozugbo n'ụdị ihe nkwụnye Wi-Fi USB, yabụ nnomi/paste banal nwere ike ịda gị.

Detuo faịlụ ọrụ nkesa na /etc/systemd/system/hostapd2.service:

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

ma belata ọdịnaya ya n'ụdị a:

[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

Naanị ihe fọdụrụ bụ iji mee ka ihe atụ ọhụrụ nke hostapd:

# systemctl enable hostapd2

Ọ gwụla! Dọrọ "ụfụ" na "utu" n'onwe ya, lelee netwọk ikuku gburugburu gị.

N'ikpeazụ, achọrọ m ịdọ gị aka ná ntị banyere ịdị mma nke nkwụnye Wi-Fi USB na ọkụ ọkụ nke Raspberry. “ụfụ na-ekpo ọkụ” ejikọrọ nwere ike mgbe ụfọdụ ịkpata “friza rasberi” n'ihi nsogbu eletrik dị mkpụmkpụ.

isi: www.habr.com

Tinye a comment