Franbwaz Pi + CentOS = Wi-Fi Hotspot (oswa Franbwaz routeur ak yon chapo wouj)

Gen yon gwo kantite enfòmasyon sou entènèt la sou kreye pwen aksè Wi-Fi ki baze sou yon PC Raspberry sèl. Kòm yon règ, sa vle di itilize sistèm operasyon Raspbian natif natal nan Franbwaz la.

Kòm yon aderan nan sistèm ki baze sou RPM, mwen pa t 'kapab pase pa ti mirak sa a epi yo pa eseye CentOS mwen renmen anpil sou li.

Atik la bay enstriksyon pou fè yon routeur Wi-Fi 5GHz/AC soti nan yon Raspberry Pi 3 Modèl B + ki baze sou sistèm operasyon CentOS la. Pral gen plizyè ke trik nouvèl estanda men ti kras li te ye, ak kòm yon bonis - yon desen pou konekte plis ekipman Wi-Fi nan Franbwaz la, ki pèmèt li an menm tan opere nan plizyè mòd (2,4 + 5GHz).

Franbwaz Pi + CentOS = Wi-Fi Hotspot (oswa Franbwaz routeur ak yon chapo wouj)
(melanj imaj ki disponib gratis)

Se pou nou sonje touswit ke kèk vitès cosmic pa pral travay. Mwen peze yon maksimòm de 100 Mbps soti nan Franbwaz mwen an sou lè a, epi sa a kouvri vitès la nan founisè entènèt mwen an. Poukisa ou bezwen tankou yon AC paresseux, si nan teyori ou ka jwenn mwatye yon gigabit menm ak N? Si ou te poze tèt ou kesyon sa a, Lè sa a, ale nan magazen an achte yon routeur reyèl ak uit antèn ekstèn.

0. Sa w ap bezwen

  • Aktyèlman, "pwodwi Franbwaz la" tèt li se kalib: Pi 3 Modèl B + (pou reyalize vitès ak chanèl 5GHz yo te sitèlman anvi);
  • Bon microSD>= 4GB;
  • Workstation ak Linux ak microSD lektè / ekriven;
  • Disponibilite de konpetans ase nan Linux, atik la se pou yon Geek ki resevwa fòmasyon;
  • Rezo filaire (eth0) koneksyon ant Franbwaz ak Linux, kouri sèvè DHCP sou rezo lokal la ak aksè Entènèt nan tou de aparèy.

Yon ti kòmantè sou dènye pwen an. "Ki te vini an premye, ze a oswa..." ki jan fè yon routeur Wi-Fi nan absans nenpòt ekipman aksè entènèt? Ann kite egzèsis sa a amizan andeyò sijè ki abòde lan atik la epi tou senpleman asime ke Franbwaz la konekte ak rezo lokal la pa fil epi li gen aksè a entènèt la. Nan ka sa a, nou pa pral bezwen yon televizyon adisyonèl ak yon manipilatè yo mete kanpe "franbwaz la".

1. Enstale CentOS

Paj lakay pwojè a

Nan moman w ap ekri atik sa a, vèsyon an kouri nan CentOS sou aparèy la se 32-bit. Yon kote sou World Wide Web mwen te rankontre opinyon ke pèfòmans nan OS sa yo sou achitekti ARM 64-bit redwi pa otan ke 20%. Mwen pral kite moman sa a san kòmantè.

Sou Linux, telechaje imaj minim la ak nwayo a "-RaspberryPI-"epi ekri li sou microSD:

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

Anvan w kòmanse sèvi ak imaj la, nou pral retire patisyon SWAP nan li, elaji rasin lan nan tout volim ki disponib epi debarase m de SELinux. Algorithm a se senp: fè yon kopi rasin lan sou Linux, efase tout patisyon nan microSD a eksepte premye a (/boot), kreye yon nouvo rasin epi retounen sa ki nan kopi a.

Egzanp aksyon obligatwa (pwodiksyon konsole grav)

# 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

Apre debake sa ki nan patisyon rasin lan, li lè yo fè kèk chanjman nan li.

Enfim SELinux nan /mnt/etc/selinux/config:

SELINUX=disabled

Modification /mnt/etc/fstab, kite ladan l sèlman de antre sou patisyon yo: bòt (/boot, pa gen okenn chanjman) ak rasin (nou chanje valè UUID, ki ka jwenn soti nan etidye pwodiksyon an nan lòd blkid sou Linux):

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

Finalman, nou chanje paramèt bòt nwayo yo: nou presize yon nouvo kote pou patisyon rasin lan, enfim pwodiksyon enfòmasyon debogaj la epi (opsyonèlman) entèdi nwayo a bay adrès IPv6 sou koòdone rezo yo:

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

Men kontni an /mnt/cmdline.txt nan fòm sa a (yon liy san tire):

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

Fè:

# cd
# umount /mnt
# sync

Nou ordonne microSD a nan "franbwaz la", lanse li epi jwenn aksè nan rezo a atravè ssh (rasin/centos).

2. Mete kanpe CentOS

Twa premye mouvman yo inebranlab: Passwd, Yum - aktyalizasyon, rdemare.

Nou bay jesyon rezo a rezo:

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

Kreye yon fichye (ansanm ak anyè) /etc/systemd/network/eth0.network:

[Match]
Name=eth0

[Network]
DHCP=ipv4

Nou rdemare "franbwaz la" epi ankò jwenn aksè nan rezo a atravè ssh (adrès IP la ka chanje). Peye atansyon sou sa ki itilize /etc/resolv.conf, ki te kreye pi bonè pa Manadjè Rezo. Se poutèt sa, nan ka ta gen pwoblèm ak rezoud, modifye kontni li yo. Sèvi ak systemd-rezoud nou pa pral.

Nou retire "pa nesesè", repare ak akselere loading OS la:

# 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

Ki moun ki bezwen kron epi ki pa dijere bati-an an timer systemd, ka etabli sa ki manke. / var / log- epi gade nan journalctl. Si w bezwen istwa ouvri sesyon an (pa defo, enfòmasyon yo estoke sèlman apati moman sistèm lan kòmanse):

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

Enfim itilizasyon IPv6 pa sèvis debaz yo (si sa nesesè)/ etc / ssh / sshd_config:

AddressFamily inet

/etc/sysconfig/chronyd:

OPTIONS="-4"

Enpòtans tan sou "franbwaz la" se yon bagay enpòtan. Depi soti nan bwat la pa gen okenn kapasite pyès ki nan konpitè pou konsève pou eta aktyèl la nan revèy la sou rdemare, senkronizasyon nesesè. Yon demon trè bon ak rapid pou sa a se kwonie - deja enstale epi li kòmanse otomatikman. Ou ka chanje serveurs NTP yo ak sa ki pi pre yo.

/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

Pou mete zòn nan lè nou pral itilize jwe fent. Piske objektif nou se kreye yon routeur Wi-Fi opere nan frekans 5GHz, nou pral prepare pou sipriz davans. regilatè:

# yum info crda
Rezime: Daemon konfòmite regilasyon pou rezo san fil 802.11

Sa a konsepsyon sa ki mal, ki baze tou sou zòn tan an, "entèdi" itilizasyon (nan Larisi) frekans 5GHz ak chanèl ak nimewo "segondè". Trik la se mete yon zòn tan san yo pa itilize non kontinan/vil yo, se sa ki, olye pou yo:

# timedatectl set-timezone Europe/Moscow

Nou peze:

# timedatectl set-timezone Etc/GMT-3

Ak manyen final yo nan kwafur nan sistèm nan:

# 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

Tout sa ki te di pi wo a ka konsidere kòm enstriksyon konplè pou enstale "vaniy" CentOS sou Franbwaz Pi a. Ou ta dwe fini ak yon PC ki (re)demarre nan mwens pase 10 segonn, sèvi ak mwens pase 15 Megabytes nan RAM ak 1.5 Gigaokte nan microSD (aktyèlman mwens pase 1 Gigaokte akòz yon / demaraj enkonplè, men an nou onèt).

Pou enstale lojisyèl pwen aksè Wi-Fi sou sistèm sa a, w ap bezwen elaji yon ti kras kapasite distribisyon estanda CentOS la. Premye a tout, se pou yo ajou chofè a (firmware) nan adaptè a Wi-Fi entegre. Paj lakay pwojè a di:

Wifi sou Franbwaz 3B ak 3B+

CentOS Project pa gen dwa distribye fichye firmwèr Raspberry PI 3B/3B+ yo. Ou ka sèvi ak atik sa yo pou konprann pwoblèm nan, jwenn firmwèr la epi mete wifi a.

Sa ki entèdi pou pwojè CentOS la pa entèdi pou nou pou itilizasyon pèsonèl. Nou ranplase firmwèr distribisyon Wi-Fi nan CentOS ak youn ki koresponn nan devlopè Broadcom yo (sa yo menm te rayi blob binè...). Sa a, an patikilye, pral pèmèt ou sèvi ak AC nan mòd pwen aksè.

Wi-Fi firmwèr ajouChèche konnen modèl aparèy la ak vèsyon firmwèr aktyèl la:

# 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 

Nou wè vèsyon firmwèr la se 7.45.18 ki gen dat 01.03.2015/XNUMX/XNUMX, epi sonje seri nimewo sa yo: 43455 (brcmfmac43455-sdio.bin).

Telechaje imaj Raspbian aktyèl la. Moun ki parese ka ekri imaj la nan microSD epi pran dosye yo ak firmwèr la soti nan la. Oswa ou ka monte patisyon rasin imaj la nan Linux epi kopye sa ou bezwen soti nan la:

# 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

Fichye firmwèr adaptè Wi-Fi ki kapab lakòz yo dwe kopye epi ranplase ak "franbwaz" nan anyè a /usr/lib/firmware/brcm/

Nou rdemare routeur nan lavni ak souri kontan:

# 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èsyon: 7.45.154 ki gen dat 27.02.2018/XNUMX/XNUMX.

Ak nan kou 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. Rezo konfigirasyon ak defi devan yo

Kòm nou te dakò pi wo a, "franbwaz la" konekte pa "fil" nan rezo lokal la. Ann sipoze ke founisè a bay aksè Entènèt nan egzakteman menm jan an: adrès la sou rezo piblik la bay dinamikman pa sèvè a DHCP (petèt ak MAC obligatwa). Nan ka sa a, apre konfigirasyon final la nan Franbwaz la, ou jis bezwen "ploge" kab founisè a nan li epi w ap fini. Sèvi ak otorizasyon systemd-networkd - sijè a nan yon atik separe epi li pa diskite isit la.

Koòdone Wi-Fi Raspberry a (yo) se yon rezo lokal, ak adaptè Ethernet entegre (eth0) ekstèn. Ann nimewo rezo lokal la statikman, pa egzanp: 192.168.0.0/24. Franbwaz adrès: 192.168.0.1. Yon sèvè DHCP pral opere sou rezo ekstèn lan (Entènèt).

Pwoblèm Konsistans non и pi popilè pwogramè Gwatemala - de pwoblèm ki ap tann nenpòt moun ki konfigirasyon entèfas rezo ak sèvis nan distribisyon systemd.

Dezòd paralèl (digresyon lirik)Lennart Pottering te konpile pwòp pwogram li yo systemd Trè byen. Sa a systemd lanse lòt pwogram tèlman vit ke yo, pa gen tan refè apre yon siflèt abit la, bite epi tonbe nan kòmansman an san yo pa menm kòmanse kou obstak yo.

Men, seryezman, paralèlizasyon agresif nan pwosesis lanse nan kòmansman sistèm OS la se yon kalite "pon bourik" pou espesyalis LSB sekans sezonman. Erezman, pote lòd sa a "dezòd paralèl" vire soti yo dwe senp, byenke pa toujou evidan.

Nou kreye de entèfas pon vityèl ak non konstan: LAN и wan. Nou pral "konekte" adaptè Wi-Fi a (yo) ak premye a, ak eth0 "franbwaz" nan dezyèm lan.

/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=wi elimine nesesite pou allusion pou nwayo a atravè sysctl pou pèmèt routage.
MACAddress = Ann retire kòmantè epi chanje si sa nesesè.

Premye nou "konekte" eth0. Nou sonje "pwoblèm inifòmite" epi sèvi ak sèlman adrès MAC nan koòdone sa a, ki ka jwenn, pou egzanp, tankou sa a:

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

Nou kreye /etc/systemd/network/eth.network:

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

[Network]
Bridge=wan

Nou efase dosye konfigirasyon anvan an eth0, rdemare Franbwaz la epi jwenn aksè nan rezo a (adrès IP a pral gen plis chans chanje):

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

5.DNSMASQ

Pou fè pwen aksè Wi-Fi, pa gen anyen bat yon koup dous nan dnsmasq + hostapd poko kalkile li. Nan opinyon mwen.

Nan ka yon moun bliye, lè sa a...hostapd - sa a se bagay ki kontwole adaptè Wi-Fi (an patikilye, li pral pran swen nan konekte yo nan vityèl la LAN "franbwaz"), otorize ak anrejistre kliyan san fil.

dnsmasq - konfigirasyon pil rezo kliyan an: pwoblèm adrès IP, sèvè dns, pòtay default ak plezi menm jan an.

Ann kòmanse ak dnsmasq:

# yum install dnsmasq

Modèl /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

edite li jan ou renmen.

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

"Majik la" isit la manti nan paramèt la mare-dinamik, ki di dnsmasq daemon pou tann jiskaske li parèt sou sistèm lan koòdone = lan, epi yo pa endispoze nan yon anfòm nan solitid fyè apre kòmansman an.

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

6. HOSTAPD

Epi finalman, konfigirasyon hostapd majik yo. Mwen pa gen okenn dout ke yon moun ap li atik sa a nan rechèch jisteman liy trezò sa yo.

Anvan ou enstale hostapd, ou bezwen simonte "pwoblèm inifòmite". Adaptè Wi-Fi wlan0 entegre a ka fasilman chanje non li an wlan1 lè w konekte plis ekipman USB Wi-Fi. Se poutèt sa, nou pral ranje non koòdone yo nan fason sa a: nou pral vini ak non inik pou adaptè yo (san fil) epi mare yo nan adrès MAC.

Pou adaptè Wi-Fi entegre, ki toujou wlan0:

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

Nou kreye /etc/systemd/network/wl0.link:

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

[Link]
Name=wl0

Koulye a, nou pral asire w ke wl0 - Sa a se bati nan Wi-Fi. Nou rdemare Franbwaz la pou asire w ke sa a.

Enstale:

# yum install hostapd wireless-tools

Fichye konfigirasyon /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

San bliye pou yon minit Komite Eta Ijans, chanje paramèt nou bezwen yo epi tcheke manyèlman pou fonksyonalite:

# hostapd /etc/hostapd/hostapd.conf

hostapd pral kòmanse nan mòd entèaktif, difize eta li nan konsole a. Si pa gen okenn erè, Lè sa a, kliyan ki sipòte mòd AC yo pral kapab konekte ak pwen an aksè. Pou sispann hostapd - Ctrl-C.

Tout sa ki rete se pèmèt hostapd nan demaraj sistèm lan. Si ou fè bagay estanda a (systemctl pèmèt hostapd), Lè sa a, apre pwochen rdemare ou ka jwenn yon move lespri sou "woule nan san" ak dyagnostik la ".koòdone wl0 pa jwenn". Kòm yon rezilta nan "dezòd paralèl," hostapd te kòmanse moute pi vit pase nwayo a te jwenn adaptè san fil la.

Entènèt la plen ak remèd: soti nan yon timeout fòse anvan ou kòmanse demon an (plizyè minit), nan yon lòt demon ki kontwole aparans nan koòdone a ak (re)kòmanse hostpad la. Solisyon yo se byen travayabl, men fò anpil lèd. Nou rele gwo a pou èd systemd ak "objektif" li yo ak "travay" ak "depandans".

Kopi fichye sèvis distribisyon an /etc/systemd/system/hostapd.service:

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

epi redwi kontni li yo nan fòm sa 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

Majik la nan fichye sèvis mete ajou nan manti nan dinamik nan obligatwa nan hostapd nan nouvo sib la - koòdone nan wl0. Lè koòdone a parèt, demon an kòmanse; lè li disparèt, li sispann. Lè sa a se tout sou entènèt - san yo pa rdemare sistèm nan. Teknik sa a pral itil espesyalman lè w konekte yon adaptè USB Wi-Fi ak yon Franbwaz.

Kounye a ou kapab:

# systemctl enable hostapd
# reboot

7. IPTABLES

"Kisa???" © Wi, wi! Okenn systemd. Pa gen okenn konbinezon newfangled (nan fòm lan firewalld), ki fini fè menm bagay la.

Ann sèvi ak bon ansyen an iptables, ki gen sèvis, apre yo fin kòmanse, yo pral chaje règ rezo yo nan nwayo a epi tou dousman fèmen san yo pa rete rezidan ak san yo pa konsome resous. systemd gen yon elegant IPMasquerade=, men nou pral toujou konfye tradiksyon adrès la (NAT) ak firewall bay iptables.

Enstale:

# yum install iptables-services
# systemctl enable iptables ip6tables

Mwen pito estoke konfigirasyon iptables la kòm yon script (egzanp):

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

Nou egzekite script ki anwo a epi nou pèdi kapasite pou etabli nouvo koneksyon SSH branche ak Franbwaz la. Se vre, nou te fè yon routeur Wi-Fi, aksè nan ki "via entènèt la" entèdi pa default - kounye a sèlman "sou lè a". Nou konekte kab Ethernet founisè a epi kòmanse navige!

8. Bonis: +2,4GHz

Lè mwen te rasanble premye routeur Franbwaz la lè l sèvi avèk desen ki dekri pi wo a, mwen te dekouvri yon kantite gadjèt nan kay mwen an ki, akòz limit konsepsyon Wi-Fi yo, pa t 'kapab wè "franbwaz la" ditou. Rekonfigirasyon routeur la pou travay nan 802.11b/g/n pa te spòtif, depi vitès maksimòm nan "sou lè a" nan ka sa a pa t 'depase 40 Mbit, ak founisè entènèt pi renmen m' ofri m '100 (via kab).

An reyalite, yon solisyon a pwoblèm nan te deja envante: yon dezyèm koòdone Wi-Fi opere nan yon frekans nan 2,4 GHz, ak yon dezyèm pwen aksè. Nan yon nòmal ki tou pre mwen te achte pa premye a, men dezyèm USB Wi-Fi "sifle" mwen te rankontre. Te vandè a toumante pa kesyon sou chipset la, konpatibilite ak nwayo ARM Linux ak posibilite pou travay nan mòd AP (li te premye moun ki kòmanse).

Nou konfigirasyon "sifle" pa analoji ak adaptè Wi-Fi entegre.

Premyèman, ann chanje non li 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

Nou pral konfye jesyon an nan nouvo koòdone Wi-Fi nan yon demon hostapd separe, ki pral kòmanse ak sispann depann sou prezans nan yon "siflèt" entèdi defini nan sistèm nan: wl1.

Fichye konfigirasyon /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]

Sa ki nan fichye sa a depann dirèkteman sou modèl USB Wi-Fi adaptè a, kidonk yon kopi / keratin ordinèr ka febli ou.

Kopi fichye sèvis distribisyon an /etc/systemd/system/hostapd2.service:

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

epi redwi kontni li yo nan fòm sa 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

Tout sa ki rete se pèmèt yon nouvo egzanp hostapd:

# systemctl enable hostapd2

Se tout! Rale "siflèt la" ak "franbwaz la" tèt li, gade nan rezo san fil bò kote ou.

Epi finalman, mwen vle avèti ou sou bon jan kalite a nan USB Wi-Fi adaptè a ak ekipman pou pouvwa nan Franbwaz la. Konekte "siflèt cho" ka pafwa lakòz "konjelasyon Franbwaz" akòz pwoblèm elektrik kout tèm.

Sous: www.habr.com

Add nouvo kòmantè