Raspberry Pi + CentOS = Wi-Fi Hotspot (atanapi router raspberry nganggo topi beureum)

Aya seueur inpormasi dina Internét ngeunaan nyiptakeun titik aksés Wi-Fi dumasar kana PC papan tunggal Raspberry. Sakumaha aturan, ieu hartosna nganggo sistem operasi Raspbian asli tina Raspberry.

Janten anu taat kana sistem berbasis RPM, kuring henteu tiasa ngaliwat kaajaiban sakedik ieu sareng henteu nyobian CentOS anu dipikacinta ku éta.

Tulisan éta nyayogikeun pitunjuk pikeun ngadamel router Wi-Fi 5GHz / AC tina Raspberry Pi 3 Modél B + dumasar kana sistem operasi CentOS. Bakal aya sababaraha trik standar tapi saeutik-dipikawanoh, sarta salaku bonus - gambar pikeun nyambungkeun alat Wi-Fi tambahan ka Raspberry, sahingga eta bisa sakaligus beroperasi dina sababaraha modeu (2,4 + 5GHz).

Raspberry Pi + CentOS = Wi-Fi Hotspot (atanapi router raspberry nganggo topi beureum)
(campuran gambar anu sayogi gratis)

Hayu urang perhatikeun langsung yén sababaraha laju kosmis moal jalan. Kuring squeeze maksimum 100 Mbps kaluar tina buah prambus kuring ngaliwatan hawa, sarta ieu nyertakeun speed panyadia Internet kuring. Naha anjeun peryogi AC sluggish sapertos, upami dina téori anjeun tiasa nampi satengah gigabit bahkan dina N? Upami anjeun naroskeun patarosan ieu ka diri anjeun, teras angkat ka toko kanggo mésér router nyata kalayan dalapan anteneu éksternal.

0. Naon anu anjeun peryogikeun

  • Sabenerna, "produk buah prambus" sorangan haliber: Pi 3 Modél B + (pikeun ngahontal speeds 5GHz coveted jeung saluran);
  • Alus microSD> = 4GB;
  • Workstation sareng Linux sareng microSD maca / panulis;
  • Kasadiaan kaahlian cukup dina Linux Ubuntu, artikel pikeun Geek dilatih;
  • Jaringan kabel (eth0) konektipitas antara Raspberry sareng Linux, ngajalankeun server DHCP dina jaringan lokal sareng aksés Internét tina kadua alat éta.

A comment leutik dina titik panungtungan. "Mana anu mimiti, endog atanapi ..." kumaha carana ngadamel router Wi-Fi dina henteuna alat aksés Internét? Hayu urang tinggalkeun latihan ngahibur ieu di luar ruang lingkup tulisan sareng ngan saukur nganggap yén Raspberry disambungkeun ka jaringan lokal ku kawat sareng gaduh aksés kana Internét. Dina hal ieu, urang moal butuh TV tambahan sarta manipulator pikeun nyetél "raspberry".

1. Pasang CentOS

Kaca imah proyék

Dina waktos nyerat tulisan ieu, versi ngajalankeun CentOS dina alatna nyaéta 32-bit. Di mana waé dina World Wide Web kuring mendakan pendapat yén kinerja OS sapertos dina arsitéktur ARM 64-bit dikirangan ku 20%. Kuring bakal ninggalkeun moment ieu tanpa komentar.

Dina Linux, unduh gambar minimal nganggo kernel "-RaspberryPI-"Sareng nyerat kana microSD:

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

Sateuacan ngawitan nganggo gambar, urang bakal nyabut partisi SWAP ti dinya, dilegakeun akar kana sakabéh volume sadia tur meunang leupas tina SELinux. Algoritma saderhana: ngadamel salinan akar dina Linux, ngahapus sadaya partisi tina microSD kecuali anu kahiji (/boot), nyiptakeun akar énggal sareng uih deui eusina tina salinan.

Conto tindakan anu diperyogikeun (kaluaran konsol parah)

# 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

Saatos ngabongkar eusi partisi akar, waktosna pikeun ngalakukeun sababaraha parobihan.

Pareuman SELinux dina /mnt/etc/selinux/config:

SELINUX=disabled

Ngédit /mnt/etc/fstab, ngan tinggalkeun dua éntri ngeunaan partisi: boot (/boot, teu aya parobahan) sareng root (urang ngarobih nilai UUID, anu tiasa dipendakan ku diajar kaluaran paréntah blkid dina Linux):

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

Tungtungna, urang ngarobah parameter boot kernel: urang tangtukeun lokasi anyar pikeun partisi root, mareuman kaluaran informasi debugging jeung (opsional) nyaram kernel ti assigning alamat IPv6 on interfaces jaringan:

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

Ieu eusina /mnt/cmdline.txt kana formulir di handap ieu (hiji garis tanpa tanda hubung):

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

Rengse:

# cd
# umount /mnt
# sync

Urang nyusun ulang microSD kana "raspberry", ngajalankeun eta tur meunangkeun aksés jaringan ka eta via ssh (root / centos).

2. Nyetél CentOS

Tilu gerakan unshakable munggaran: passwd, Yum update -y, reboot.

Kami masihan manajemén jaringan jaringand:

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

Jieun file (sareng diréktori) /etc/systemd/network/eth0.network:

[Match]
Name=eth0

[Network]
DHCP=ipv4

Urang reboot "raspberry" jeung deui meunang aksés jaringan ka eta via ssh (alamat IP bisa robah). Nengetan naon dipaké /etc/resolv.conf, dijieun saméméhna ku Network Manager. Ku alatan éta, lamun aya masalah jeung ngabéréskeun, edit eusina. Paké systemd-direngsekeun urang moal.

Kami ngahapus "henteu perlu", ngalereskeun sareng nyepetkeun loading 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

Anu peryogi Cron jeung saha teu nyerna diwangun-di timers systemd, tiasa netepkeun naon anu leungit. / var / log- sarta kasampak ngaliwatan journalctl. Upami anjeun peryogi sajarah log (sacara standar, inpormasi ngan ukur disimpen ti mimiti sistem):

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

Pareuman pamakean IPv6 ku jasa dasar (upami diperyogikeun)/ Jsb / ssh / sshd_config:

AddressFamily inet

/etc/sysconfig/chronyd:

OPTIONS="-4"

Relevansi waktos dina "raspberry" mangrupikeun hal anu penting. Kusabab out of the box teu aya kamampuan hardware pikeun ngahemat kaayaan jam ayeuna nalika reboot, singkronisasi diperyogikeun. A daemon pohara alus sarta gancang pikeun ieu chrony - geus dipasang tur dimimitian otomatis. Anjeun tiasa ngarobih server NTP ka anu pangcaketna.

/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

Pikeun nyetél zona waktos anu bakal kami anggo trik. Kusabab tujuan kami nyaéta nyiptakeun router Wi-Fi anu beroperasi dina frékuénsi 5GHz, kami bakal nyiapkeun kejutan sateuacanna regulator:

# yum info crda
Ringkesan: Daemon patuh pangaturan pikeun jaringan nirkabel 802.11

Desain jahat ieu, ogé dumasar kana zona waktos, "ngalarang" pamakean (dina Rusia) frekuensi 5GHz sareng saluran kalayan nomer "luhur". Trikna nyaéta nyetél zona waktos tanpa nganggo nami buana/kota, nyaéta, tibatan:

# timedatectl set-timezone Europe/Moscow

Urang pencét:

# timedatectl set-timezone Etc/GMT-3

Sareng sentuhan akhir pikeun cukuran sistem:

# 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

Sadayana anu disarioskeun di luhur tiasa dianggap petunjuk lengkep pikeun masang "vanili" CentOS dina Raspberry Pi. Anjeun kudu mungkas nepi ka PC nu (deui) sapatu dina kirang ti 10 detik, ngagunakeun kirang ti 15 Megabytes RAM na 1.5 Gigabytes of microSD (sabenerna kirang ti 1 Gigabyte alatan hiji teu lengkep / boot, tapi hayu urang jujur).

Pikeun masang parangkat lunak titik aksés Wi-Fi dina sistem ieu, anjeun kedah rada ngalegaan kamampuan distribusi CentOS standar. Anu mimiti, hayu urang ningkatkeun supir (firmware) tina adaptor Wi-Fi anu diwangun. Kaca imah proyék nyebutkeun:

Wifi dina buah prambus 3B jeung 3B+

File firmware Raspberry PI 3B/3B+ henteu diidinan disebarkeun ku Proyék CentOS. Anjeun tiasa nganggo tulisan di handap ieu pikeun ngartos masalahna, kéngingkeun firmware sareng nyetél wifi.

Naon anu dilarang pikeun proyék CentOS henteu dilarang pikeun kami pikeun panggunaan pribadi. Kami ngagentos firmware distribusi Wi-Fi di CentOS sareng anu saluyu ti pamekar Broadcom (éta gumpalan binér anu sami dibenci ...). Ieu, khususna, bakal ngamungkinkeun anjeun nganggo AC dina modeu titik aksés.

pamutahiran firmware Wi-FiPanggihan model alat sareng versi firmware ayeuna:

# 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 

Urang tingali yen versi firmware nyaeta 7.45.18 tanggal 01.03.2015/XNUMX/XNUMX, jeung inget set handap tina angka: 43455 (brcmfmac43455-sdio.bin).

Unduh gambar Raspbian ayeuna. Jalma anu puguh tiasa nyerat gambar ka microSD sareng nyandak file nganggo firmware ti dinya. Atanapi anjeun tiasa pasang partisi akar gambar dina Linux sareng nyalin naon anu anjeun peryogikeun ti dinya:

# 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

File firmware adaptor Wi-Fi anu dihasilkeun kedah disalin sareng diganti ku "raspberry" kana diréktori /usr/lib/firmware/brcm/

Urang reboot router hareup jeung seuri contentedly:

# 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 

Vérsi: 7.45.154 tanggal 27.02.2018/XNUMX/XNUMX.

Sareng tangtosna 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. Konfigurasi jaringan sareng tantangan payun

Salaku urang sapuk di luhur, "raspberry" disambungkeun ku "kawat" ka jaringan lokal. Hayu urang nganggap yén panyadia nyadiakeun aksés Internet dina cara nu sarua: alamat dina jaringan umum dikaluarkeun dinamis ku server DHCP (meureun MAC mengikat). Dina hal ieu, sanggeus setelan ahir buah prambus, Anjeun ngan perlu "nyolok" kabel panyadia kana eta jeung anjeun geus rengse. Otorisasina ngagunakeun systemd-jaringand - topik artikel misah tur teu dibahas di dieu.

Antarbeungeut Wi-Fi buah prambus mangrupikeun jaringan lokal, sareng adaptor Ethernet anu diwangun (eth0) éksternal. Hayu urang angka jaringan lokal statik, contona: 192.168.0.0/24. Alamat buah prambus: 192.168.0.1. A server DHCP bakal beroperasi dina jaringan éksternal (Internet).

Ngaran Masalah Konsistensi и programmer Guatemalan kawentar - dua masalah anu ngantosan saha waé anu ngonpigurasikeun antarmuka sareng jasa jaringan dina distribusi systemd.

Parallel chaos (liris digression)Lennart Pottering geus disusun program sorangan systemd Saé pisan. Ieu systemd ngajalankeun program séjén jadi gancang yén maranéhna, teu boga waktu pikeun cageur tina niup wasit tina kacapi, titajong jeung ragrag di mimiti tanpa malah dimimitian tangtu halangan maranéhna.

Tapi sacara serius, paralelisasi agrésif tina prosés anu diluncurkeun dina mimiti sistem OS mangrupikeun jinis "sasak kalde" pikeun spesialis LSB sequential anu berpengalaman. Untungna, bringing urutan ka ieu "huru-hara paralel" tétéla basajan, sanajan teu salawasna atra.

Urang nyieun dua interfaces sasak virtual kalawan ngaran konstan: LAN и wan. Urang bakal "nyambungkeun" adaptor Wi-Fi ka anu kahiji, sareng eth0 "raspberry" ka anu kadua.

/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 = enya ngaleungitkeun kabutuhan pikeun hint kana kernel via sysctl pikeun ngaktipkeun routing.
MACAddress= Hayu urang uncomment sarta ngarobah lamun perlu.

Mimiti urang "nyambungkeun" eth0. Urang émut "masalah keseragaman" sareng ngan ukur nganggo alamat MAC tina antarmuka ieu, anu tiasa dipendakan, contona, sapertos kieu:

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

Urang nyieun /etc/systemd/network/eth.network:

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

[Network]
Bridge=wan

Kami ngahapus file konfigurasi saméméhna eth0, reboot Raspberry sareng kéngingkeun aksés jaringan ka éta (alamat IP sigana bakal robih):

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

5.DNSMASQ

Pikeun nyieun titik aksés Wi-Fi, euweuh ngéléhkeun sababaraha amis tina dnsmasq + hostapd teu acan kahartos. Dina pendapat abdi.

Bisi aya nu poho, teras...hostapd - ieu mangrupikeun hal anu ngatur adaptor Wi-Fi (khususna, éta bakal ngurus nyambungkeunana ka virtual LAN "raspberries"), otorisasi sareng ngadaptarkeun klien nirkabel.

dnsmasq - ngonpigurasikeun tumpukan jaringan klien: ngaluarkeun alamat IP, server DNS, gateway standar sareng nikmat anu sami.

Hayu urang mimitian ku dnsmasq:

# yum install dnsmasq

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

edit sesuai selera.

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

The "magic" didieu perenahna di parameter meungkeut-dinamis, nu ngabejaan daemon dnsmasq ngantosan nepi ka nembongan dina sistem panganteur = lan, tur teu pingsan tina fit tina katiisan reueus sanggeus mimiti.

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

6. HOSTAPD

Sarta pamustunganana, konfigurasi hostapd magic. Kuring henteu ragu yén aya anu maca tulisan ieu pikeun milarian persis garis anu berharga ieu.

Sateuacan masang hostapd, anjeun kedah ngatasi "masalah seragam". Adaptor Wi-Fi anu diwangun wlan0 tiasa kalayan gampang ngarobih namina janten wlan1 nalika nyambungkeun alat Wi-Fi USB tambahan. Ku alatan éta, kami bakal ngalereskeun nami antarmuka ku cara kieu: kami bakal ngahasilkeun nami unik pikeun adaptor (nirkabel) sareng ngabeungkeut kana alamat MAC.

Pikeun adaptor Wi-Fi anu diwangun, anu masih wlan0:

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

Urang nyieun /etc/systemd/network/wl0.link:

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

[Link]
Name=wl0

Ayeuna urang bakal yakin éta wl0 - Ieu diwangun-di Wi-Fi. Urang reboot Raspberry pikeun mastikeun ieu.

Masang:

# yum install hostapd wireless-tools

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

Tanpa hilap sakedapan Komite Darurat Nagara, robih parameter anu urang peryogikeun sareng pariksa fungsionalitas sacara manual:

# hostapd /etc/hostapd/hostapd.conf

hostapd bakal ngamimitian dina modeu interaktif, nyiarkeun kaayaanana ka konsol. Upami teu aya kasalahan, teras klien anu ngadukung modeu AC tiasa nyambung ka titik aksés. Pikeun ngeureunkeun hostapd - Ctrl-C.

Sadaya anu tetep nyaéta ngaktipkeun hostapd dina ngamimitian sistem. Upami anjeun ngalakukeun hal standar (systemctl ngaktifkeun hostapd), teras saatos reboot salajengna anjeun tiasa nampi sétan "ngagulung dina getih" kalayan diagnosis "panganteur wl0 teu kapanggih". Salaku hasil tina "huru-hara paralel," hostapd ngamimitian langkung gancang tibatan kernel anu mendakan adaptor nirkabel.

Internét pinuh ku remedies: ti waktu kaluar kapaksa saméméh ngamimitian daemon (sababaraha menit), nepi ka daemon sejen nu monitor penampilan interface jeung (deui) ngamimitian hostpad. Solusi anu cukup bisa dipake, tapi sangar awon. Urang nelepon kana hiji hébat pikeun pitulung systemd kalawan "tujuan" na "tugas" na "dependensi".

Nyalin file layanan distribusi ka /etc/systemd/system/hostapd.service:

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

sarta ngurangan eusina kana wangun handap:

[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

Keajaiban file jasa anu diropéa aya dina beungkeutan dinamis hostapd kana udagan énggal - antarmuka wl0. Nalika antarmuka muncul, daemon dimimitian; nalika ngaleungit, éta eureun. Sareng ieu sadayana online - tanpa rebooting sistem. Téhnik ieu bakal mangpaat hususna nalika nyambungkeun adaptor Wi-Fi USB ka Raspberry.

Ayeuna anjeun tiasa:

# systemctl enable hostapd
# reboot

7. IPTABLES

“Naon???” © Sumuhun, nuhun! Euweuh systemd. Henteu aya gabungan anyar (dina bentuk firewalld), anu tungtungna ngalakukeun hal anu sami.

Hayu urang nganggo anu lami iptables, anu jasana, saatos ngamimitian, bakal ngamuat aturan jaringan kana kernel sareng pareum sacara tenang tanpa tetep nyicingan sareng henteu nganggo sumber daya. systemd ngabogaan elegan IPMasquerade=, tapi urang tetep bakal mercayakeun tarjamahan alamat (NAT) sareng firewall ka iptables.

Masang:

# yum install iptables-services
# systemctl enable iptables ip6tables

Kuring resep nyimpen konfigurasi iptables salaku naskah (conto):

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

Urang ngaéksekusi naskah di luhur sarta leungit kamampuhan pikeun ngadegkeun sambungan kabel SSH anyar jeung buah prambus. Éta leres, kami parantos ngadamel router Wi-Fi, aksés anu "ngaliwatan Internét" dilarang sacara standar - ayeuna ngan ukur "dina hawa". Urang sambungkeun kabel Ethernet panyadia tur mimitian surfing!

8. bonus: + 2,4GHz

Nalika kuring ngumpul router Raspberry munggaran nganggo gambar anu dijelaskeun di luhur, kuring mendakan sababaraha gadget di rumah tangga kuring anu, kusabab watesan desain Wi-Fi na, henteu tiasa ningali "raspberry" pisan. Reconfiguring router pikeun digawé di 802.11b / g / n éta unsporting, saprak speed maksimum "leuwih hawa" dina hal ieu teu ngaleuwihan 40 Mbit, sarta panyadia Internet favorit kuring nawarkeun kuring 100 (via kabel).

Nyatana, solusi pikeun masalah éta parantos diciptakeun: antarbeungeut Wi-Fi kadua anu beroperasi dina frékuénsi 2,4 GHz, sareng titik aksés kadua. Di lapak caket dieu mah meuli teu kahiji, tapi kadua USB Wi-Fi "pisel" Kuring datang di sakuliah. Anu ngajual disiksa ku patarosan ngeunaan chipset, kasaluyuan sareng kernel Linux ARM sareng kamungkinan damel dina modeu AP (anjeunna anu mimiti ngamimitian).

Kami ngonpigurasikeun "whistle" ku analogi sareng adaptor Wi-Fi anu diwangun.

Kahiji, hayu urang ngaganti ngaran ka 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

Kami bakal mercayakeun manajemén antarbeungeut Wi-Fi énggal ka daemon hostapd anu misah, anu bakal ngamimitian sareng ngeureunkeun gumantung kana ayana "whistle" anu ditetepkeun sacara ketat dina sistem: wl1.

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

Eusi file ieu langsung gumantung kana model adaptor USB Wi-Fi, jadi salinan banal / némpelkeun bisa gagal anjeun.

Nyalin file layanan distribusi ka /etc/systemd/system/hostapd2.service:

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

sarta ngurangan eusina kana wangun handap:

[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

Sadaya anu tetep nyaéta pikeun ngaktipkeun conto anyar hostapd:

# systemctl enable hostapd2

Éta hungkul! Tarik "whistle" sareng "raspberry" sorangan, tingali jaringan nirkabel di sabudeureun anjeun.

Tungtungna, kuring hoyong ngingetkeun anjeun ngeunaan kualitas adaptor Wi-Fi USB sareng catu daya buah prambus. Sambungan "hot whistle" kadang bisa ngabalukarkeun "raspberry katirisan" alatan troubles listrik jangka pondok.

sumber: www.habr.com

Tambahkeun komentar