Rasipibẹri Pi + CentOS = Wi-Fi Hotspot (tabi olulana rasipibẹri pẹlu ijanilaya pupa)

Alaye nla wa lori Intanẹẹti lori ṣiṣẹda awọn aaye iwọle Wi-Fi ti o da lori PC-ọkọ-ọkọ Rasipibẹri kan. Gẹgẹbi ofin, eyi tumọ si lilo ẹrọ ṣiṣe Raspbian abinibi si Rasipibẹri.

Jije olufaramọ ti awọn eto orisun RPM, Emi ko le kọja nipasẹ iṣẹ iyanu kekere yii ati pe ko gbiyanju CentOS olufẹ mi lori rẹ.

Nkan naa n pese awọn itọnisọna fun ṣiṣe olulana Wi-Fi 5GHz/AC lati Rasipibẹri Pi 3 Awoṣe B+ ti o da lori ẹrọ ṣiṣe CentOS. Iwọnwọn yoo wa pupọ ṣugbọn awọn ẹtan ti a ko mọ diẹ, ati bi ẹbun - iyaworan fun sisopọ ohun elo Wi-Fi afikun si Rasipibẹri, gbigba lati ṣiṣẹ ni nigbakannaa ni awọn ipo pupọ (2,4 + 5GHz).

Rasipibẹri Pi + CentOS = Wi-Fi Hotspot (tabi olulana rasipibẹri pẹlu ijanilaya pupa)
(adapọ awọn aworan ti o wa larọwọto)

Jẹ ki a ṣe akiyesi lẹsẹkẹsẹ pe diẹ ninu awọn iyara aye kii yoo ṣiṣẹ. Mo fun pọ ti o pọju 100 Mbps lati Rasipibẹri mi lori afẹfẹ, ati pe eyi ni wiwa iyara ti olupese Intanẹẹti mi. Kini idi ti o nilo iru AC onilọra, ti o ba jẹ pe ni imọran o le gba idaji gigabit paapaa lori N? Ti o ba ti beere lọwọ ararẹ ni ibeere yii, lẹhinna lọ si ile itaja lati ra olulana gidi kan pẹlu awọn eriali ita mẹjọ.

0. Ohun ti o yoo nilo

  • Lootọ, “ọja rasipibẹri” funrararẹ jẹ ti iwọn: Pi 3 Awoṣe B+ (lati ṣaṣeyọri awọn iyara 5GHz ti o ṣojukokoro ati awọn ikanni);
  • microSD ti o dara >= 4GB;
  • Ṣiṣẹ pẹlu Lainos ati microSD oluka / onkqwe;
  • Wiwa ti awọn ọgbọn ti o to ni Linux, nkan naa jẹ fun Geek oṣiṣẹ;
  • Nẹtiwọọki ti a firanṣẹ (eth0) Asopọmọra laarin Rasipibẹri ati Lainos, nṣiṣẹ olupin DHCP lori nẹtiwọọki agbegbe ati iraye si Intanẹẹti lati awọn ẹrọ mejeeji.

A kekere ọrọìwòye lori awọn ti o kẹhin ojuami. “Ewo ni o kọkọ wa, ẹyin tabi…” bawo ni a ṣe le ṣe olulana Wi-Fi ni laisi eyikeyi ohun elo iwọle Intanẹẹti? Jẹ ki a fi adaṣe ere idaraya yii silẹ ni ita aaye ti nkan naa ki o ro pe Rasipibẹri ti sopọ si nẹtiwọọki agbegbe nipasẹ okun waya ati ni iwọle si Intanẹẹti. Ni idi eyi, a kii yoo nilo TV afikun ati olufọwọyi kan lati ṣeto “rasipibẹri”.

1. Fi sori ẹrọ CentOS

Oju-iwe ile ise agbese

Ni akoko kikọ nkan yii, ẹya ti nṣiṣẹ ti CentOS lori ẹrọ jẹ 32-bit. Ibikan lori Oju opo wẹẹbu Jakejado Agbaye Mo wa awọn imọran pe iṣẹ ṣiṣe ti iru awọn OS lori faaji ARM 64-bit dinku nipasẹ bii 20%. Emi yoo lọ kuro ni akoko yii laisi asọye.

Lori Linux, ṣe igbasilẹ aworan ti o kere julọ pẹlu ekuro"-RaspberryPI-"ki o si kọ si microSD:

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

Ṣaaju ki o to bẹrẹ lati lo aworan naa, a yoo yọ ipin SWAP kuro, faagun gbongbo si gbogbo iwọn didun ti o wa ati yọ SELinux kuro. Algoridimu jẹ rọrun: ṣe ẹda ti gbongbo lori Linux, paarẹ gbogbo awọn ipin lati microSD ayafi akọkọ (/ bata), ṣẹda gbongbo tuntun ati da awọn akoonu rẹ pada lati ẹda naa.

Apẹẹrẹ ti awọn iṣe ti a beere (igbejade console ti o lagbara)

# 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

Lẹhin ṣiṣi silẹ awọn akoonu ti ipin root, o to akoko lati ṣe awọn ayipada diẹ si.

Mu SELinux ṣiṣẹ ninu /mnt/etc/selinux/config:

SELINUX=disabled

Ṣatunkọ /mnt/etc/fstab, nlọ ninu rẹ nikan awọn titẹ sii meji nipa awọn ipin: bata (/ bata, ko si awọn ayipada) ati root (a yi iye UUID pada, eyiti o le rii nipa kikọ abajade ti blkid pipaṣẹ lori Linux):

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

Lakotan, a yipada awọn paramita bata kernel: a pato ipo tuntun fun ipin root, mu iṣẹjade ti alaye n ṣatunṣe aṣiṣe ati (iyan) ṣe idiwọ ekuro lati yiyan awọn adirẹsi IPv6 lori awọn atọkun nẹtiwọọki:

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

Eyi ni akoonu /mnt/cmdline.txt si fọọmu atẹle (ila kan laisi awọn hyphens):

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

Ṣetan:

# cd
# umount /mnt
# sync

A tunto microSD sinu “rasipibẹri”, ṣe ifilọlẹ ati gba iraye si nẹtiwọọki nipasẹ ssh (root/centos).

2. Ṣiṣeto CentOS

Awọn agbeka ti ko ṣee ṣe mẹta akọkọ: passwd, yum -y imudojuiwọn, atunbere.

A fun kuro isakoso nẹtiwọki nẹtiwọki:

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

Ṣẹda faili kan (pẹlu awọn ilana) /etc/systemd/network/eth0.network:

[Match]
Name=eth0

[Network]
DHCP=ipv4

A tun atunbere “rasipibẹri” ati tun gba iraye si nẹtiwọọki nipasẹ ssh (adirẹsi IP le yipada). San ifojusi si ohun ti a lo /etc/resolv.conf, ti a ṣẹda tẹlẹ nipasẹ Oluṣakoso Nẹtiwọọki. Nitorinaa, ni ọran ti awọn iṣoro pẹlu ipinnu, ṣatunkọ awọn akoonu rẹ. Lo siseto-yanju a ko ni.

A yọ “ti ko wulo” kuro, tunṣe ati iyara ikojọpọ OS naa:

# 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

Tani o nilo cron ati awọn ti o ko Daijesti awọn-itumọ ti ni awọn aago eto, le fi idi ohun ti o padanu. / var / log- ati ki o wo nipasẹ iwe iroyin. Ti o ba nilo itan akọọlẹ (nipasẹ aiyipada, alaye ti wa ni ipamọ nikan lati akoko ti eto naa bẹrẹ):

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

Pa lilo IPv6 kuro nipasẹ awọn iṣẹ ipilẹ (ti o ba nilo)/ ati be be / ssh / sshd_config:

AddressFamily inet

/etc/sysconfig/chronyd:

OPTIONS="-4"

Ibaramu akoko lori "rasipibẹri" jẹ ohun pataki kan. Niwọn igba ti ko si agbara ohun elo lati fi ipo aago lọwọlọwọ pamọ sori atunbere, a nilo amuṣiṣẹpọ. Daemon ti o dara pupọ ati iyara fun eyi ni igba - ti fi sori ẹrọ tẹlẹ ati bẹrẹ laifọwọyi. O le yi awọn olupin NTP pada si awọn ti o sunmọ julọ.

/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

Lati ṣeto agbegbe aago a yoo lo omoluabi. Niwọn igba ti ibi-afẹde wa ni lati ṣẹda olulana Wi-Fi ti n ṣiṣẹ ni awọn igbohunsafẹfẹ 5GHz, a yoo mura silẹ fun awọn iyanilẹnu ni ilosiwaju. olutọsọna:

# yum alaye crda
Lakotan: Daemon ibamu ilana ilana fun Nẹtiwọọki alailowaya 802.11

Apẹrẹ buburu yii, tun da lori agbegbe aago, “fi ofin de” lilo (ni Russia) ti awọn igbohunsafẹfẹ 5GHz ati awọn ikanni pẹlu awọn nọmba “giga”. Ẹtan naa ni lati ṣeto agbegbe aago kan laisi lilo awọn orukọ ti awọn agbegbe/awọn ilu, iyẹn ni, dipo:

# timedatectl set-timezone Europe/Moscow

A tẹ:

# timedatectl set-timezone Etc/GMT-3

Ati awọn fọwọkan ipari si irundidalara ti eto naa:

# 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. Awọn afikun CentOS

Ohun gbogbo ti a sọ loke ni a le gbero awọn ilana pipe fun fifi “vanilla” CentOS sori Rasipibẹri Pi. O yẹ ki o pari pẹlu PC kan ti (tun) awọn bata orunkun ni o kere ju awọn aaya 10, lo kere ju 15 Megabytes ti Ramu ati 1.5 Gigabyte ti microSD (gangan kere ju 1 Gigabyte nitori pe / bata, ṣugbọn jẹ ki a jẹ ooto).

Lati fi sọfitiwia aaye wiwọle Wi-Fi sori eto yii, iwọ yoo nilo lati faagun awọn agbara diẹ ti pinpin CentOS boṣewa. Ni akọkọ, jẹ ki a ṣe igbesoke awakọ (famuwia) ti ohun ti nmu badọgba Wi-Fi ti a ṣe sinu. Oju-iwe ile ise agbese sọ:

Wifi lori Rasipibẹri 3B ati 3B+

Awọn faili famuwia Rasipibẹri PI 3B/3B+ ko gba laaye lati pin nipasẹ Ise agbese CentOS. O le lo awọn nkan atẹle lati loye ọran naa, gba famuwia ati ṣeto wifi naa.

Ohun ti a ka leewọ fun iṣẹ akanṣe CentOS ko ni eewọ fun wa fun lilo ti ara ẹni. A rọpo famuwia Wi-Fi pinpin ni CentOS pẹlu eyiti o baamu lati ọdọ awọn olupilẹṣẹ Broadcom (awọn blobs alakomeji ti o korira kanna…). Eyi, ni pataki, yoo gba ọ laaye lati lo AC ni ipo aaye wiwọle.

Wi-Fi famuwia igbesokeWa awoṣe ẹrọ ati ẹya famuwia lọwọlọwọ:

# 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 

A rii pe ẹya famuwia jẹ 7.45.18 ti ọjọ 01.03.2015/XNUMX/XNUMX, ati ranti ṣeto awọn nọmba wọnyi: 43455 (brcmfmac43455-sdio.bin).

Ṣe igbasilẹ aworan Raspbian lọwọlọwọ. Awọn ọlẹ le kọ aworan si microSD ati mu awọn faili pẹlu famuwia lati ibẹ. Tabi o le gbe ipin root ti aworan ni Linux ati daakọ ohun ti o nilo lati ibẹ:

# 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

Abajade Wi-Fi ohun ti nmu badọgba famuwia awọn faili gbọdọ jẹ daakọ ati rọpo pẹlu “rasipibẹri” sinu itọsọna naa /usr/lib/famuwia/brcm/

A tun atunbere olulana iwaju ati ki o rẹrin musẹ:

# 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 

Version: 7.45.154 ọjọ 27.02.2018/XNUMX/XNUMX.

Ati pe dajudaju 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. Iṣeto nẹtiwọki ati awọn italaya iwaju

Gẹgẹbi a ti gba loke, "rasipibẹri" ti wa ni asopọ nipasẹ "waya" si nẹtiwọki agbegbe. Jẹ ki a ro pe olupese n pese iraye si Intanẹẹti ni deede ni ọna kanna: adirẹsi lori nẹtiwọọki gbogbogbo ti funni ni agbara nipasẹ olupin DHCP (boya pẹlu isopọ MAC). Ni idi eyi, lẹhin iṣeto ikẹhin ti rasipibẹri, o kan nilo lati "pulọọgi" okun ti olupese sinu rẹ ati pe o ti pari. Aṣẹ lilo systemd-nẹtiwọki - koko ọrọ ti nkan lọtọ ati pe ko ṣe ijiroro nibi.

Ni wiwo Wi-Fi Rasipibẹri jẹ nẹtiwọọki agbegbe, ati ohun ti nmu badọgba Ethernet ti a ṣe sinu (eth0) jẹ ita. Jẹ ki a nọmba nẹtiwọki agbegbe ni iṣiro, fun apẹẹrẹ: 192.168.0.0/24. Rasipibẹri adirẹsi: 192.168.0.1. Olupin DHCP yoo ṣiṣẹ lori nẹtiwọki ita (ayelujara).

Iṣoro Iṣeduro lorukọ и olokiki Guatemalan pirogirama - awọn wahala meji ti o duro de ẹnikẹni ti o tunto awọn atọkun nẹtiwọọki ati awọn iṣẹ ni awọn ipinpinpin eto.

Idarudapọ ti o jọra (digression lyrical)Lennart Pottering ti ṣe akojọpọ eto tirẹ eto eto O dara pupọ. Eyi eto eto ṣe ifilọlẹ awọn eto miiran ni yarayara pe wọn, laisi akoko lati gba pada lati inu ifunti apaniyan ti súfèé, kọsẹ ati ṣubu ni ibẹrẹ laisi paapaa bẹrẹ ipa-ọna idiwọ wọn.

Ṣugbọn ni pataki, isọdọkan ibinu ti awọn ilana ifilọlẹ ni ibẹrẹ ti OS ti eto jẹ iru “Afara kẹtẹkẹtẹ” fun awọn alamọja LSB ti igba ti igba. O da, mimu aṣẹ wa si “idarudapọ ti o jọra” yi jade lati rọrun, botilẹjẹpe kii ṣe kedere nigbagbogbo.

A ṣẹda awọn atọkun afara foju meji pẹlu awọn orukọ igbagbogbo: lan и wan. A yoo “so” ohun ti nmu badọgba Wi-Fi si akọkọ, ati eth0 “rasipibẹri” si ekeji.

/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=bẹẹni imukuro iwulo lati tọka si ekuro nipasẹ sysctl lati mu ipa-ọna ṣiṣẹ.
MACAdirẹsi = Jẹ ki ká uncomment ki o si yi ti o ba wulo.

Ni akọkọ a "so" eth0. A ranti “iṣoro iṣọkan” ati lo adiresi MAC nikan ti wiwo yii, eyiti o le rii, fun apẹẹrẹ, bii eyi:

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

A ṣẹda /etc/systemd/network/eth.network:

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

[Network]
Bridge=wan

A paarẹ faili iṣeto iṣaaju eth0, tun atunbere Rasipibẹri ki o gba iraye si nẹtiwọọki si rẹ (adirẹsi IP yoo yipada pupọ julọ):

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

5.DNSMASQ

Fun ṣiṣe Wi-Fi wiwọle ojuami, ohunkohun lu kan dun tọkọtaya ti dnsmasq + hostapd ko ṣayẹwo rẹ sibẹsibẹ. Ni temi.

Ti ẹnikẹni ba gbagbe, lẹhinna...hostapd - Eyi ni ohun ti o ṣakoso awọn oluyipada Wi-Fi (ni pataki, yoo ṣe abojuto sisopọ wọn si foju. lan "raspberries"), fun ni aṣẹ ati forukọsilẹ awọn onibara alailowaya.

dnsmasq - tunto akopọ nẹtiwọọki ti awọn alabara: awọn adirẹsi IP awọn ọran, awọn olupin DNS, ẹnu-ọna aiyipada ati awọn idunnu ti o jọra.

Jẹ ki a bẹrẹ pẹlu dnsmasq:

# yum install dnsmasq

Àdàkọ /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

satunkọ rẹ si fẹran rẹ.

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

"idan" nibi wa ni paramita di-ìmúdàgba, eyiti o sọ fun dnsmasq daemon lati duro titi yoo fi han lori eto naa wiwo = lan, ati ki o ko rẹwẹsi lati kan fit ti igberaga loneliness lẹhin awọn ibere.

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

6. HOSTAPD

Ati nikẹhin, awọn atunto hostapd idan. Emi ko ni iyemeji pe ẹnikan n ka nkan yii ni wiwa awọn laini ti o ni idiyele gangan.

Ṣaaju fifi hostapd sori ẹrọ, o nilo lati bori “iṣoro iṣọkan”. Ohun ti nmu badọgba Wi-Fi ti a ṣe sinu wlan0 le ni rọọrun yi orukọ rẹ pada si wlan1 nigbati o ba npọ afikun ohun elo Wi-Fi USB. Nitorinaa, a yoo ṣatunṣe awọn orukọ wiwo ni ọna atẹle: a yoo wa pẹlu awọn orukọ alailẹgbẹ fun awọn oluyipada (alailowaya) ati di wọn si awọn adirẹsi MAC.

Fun ohun ti nmu badọgba Wi-Fi ti a ṣe sinu, eyiti o tun jẹ wlan0:

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

A ṣẹda /etc/systemd/network/wl0.link:

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

[Link]
Name=wl0

Bayi a yoo ni idaniloju pe wl0 - Eleyi jẹ-itumọ ti ni Wi-Fi. A tun atunbere Rasipibẹri lati rii daju eyi.

Fi sori ẹrọ:

# yum install hostapd wireless-tools

Faili iṣeto ni /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

Laisi gbagbe fun iṣẹju kan State pajawiri igbimo, yi awọn paramita ti a nilo ati ṣayẹwo pẹlu ọwọ fun iṣẹ ṣiṣe:

# hostapd /etc/hostapd/hostapd.conf

hostapd yoo bẹrẹ ni ipo ibaraenisepo, igbohunsafefe ipo rẹ si console. Ti ko ba si awọn aṣiṣe, lẹhinna awọn alabara ti o ṣe atilẹyin ipo AC yoo ni anfani lati sopọ si aaye iwọle. Lati da hostapd duro - Ctrl-C.

Gbogbo ohun ti o ku ni lati mu hostapd ṣiṣẹ ni ibẹrẹ eto. Ti o ba ṣe ohun boṣewa (systemctl mu ṣiṣẹ hostapd), lẹhinna lẹhin atunbere atẹle o le gba ẹmi eṣu kan “yiyi ninu ẹjẹ” pẹlu ayẹwo “wiwo wl0 ko ri". Bi abajade ti “idarudapọ afiwe,” hostapd bẹrẹ ni iyara ju ekuro ti o rii ohun ti nmu badọgba alailowaya.

Intanẹẹti kun fun awọn atunṣe: lati akoko ti o fi agbara mu ṣaaju ki o to bẹrẹ daemon (awọn iṣẹju diẹ), si daemon miiran ti o ṣe abojuto irisi wiwo ati (tun) bẹrẹ paadi olupin naa. Awọn ojutu jẹ ohun ṣiṣẹ, ṣugbọn buruju ilosiwaju. A pe ẹni nla fun iranlọwọ eto eto pẹlu "awọn ibi-afẹde" ati "awọn iṣẹ-ṣiṣe" ati "awọn igbẹkẹle".

Da faili iṣẹ pinpin si /etc/systemd/system/hostapd.service:

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

ati dinku awọn akoonu rẹ si fọọmu atẹle:

[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

Idan faili iṣẹ imudojuiwọn wa ni isọdọkan agbara ti hostapd si ibi-afẹde tuntun - wiwo wl0. Nigbati wiwo ba han, daemon bẹrẹ; nigbati o ba lọ, o duro. Ati pe eyi ni gbogbo ori ayelujara - laisi atunbere eto naa. Ilana yii yoo wulo paapaa nigbati o ba so ohun ti nmu badọgba Wi-Fi USB pọ si Rasipibẹri kan.

Bayi o le:

# systemctl enable hostapd
# reboot

7. IPTABLES

"Kini???" © Bẹẹni, bẹẹni! Ko si eto eto. Ko si titunfangled apapọ (ni fọọmu ogiriina), eyiti o pari ṣiṣe ohun kanna.

Jẹ ki a lo ti atijọ ti o dara iptables, ti awọn iṣẹ rẹ, lẹhin ti o bẹrẹ, yoo gbe awọn ofin nẹtiwọki sinu ekuro ati ni idakẹjẹ tiipa laisi olugbe ti o ku ati laisi jijẹ awọn orisun. systemd ni o ni ohun yangan IPMasquerade=, ṣugbọn a yoo tun fi itumọ adirẹsi (NAT) ati ogiriina si awọn iptables.

Fi sori ẹrọ:

# yum install iptables-services
# systemctl enable iptables ip6tables

Mo fẹ lati tọju iṣeto iptables bi iwe afọwọkọ (apẹẹrẹ):

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

A ṣiṣẹ iwe afọwọkọ ti o wa loke ati padanu agbara lati fi idi awọn asopọ SSH ti firanṣẹ titun pẹlu Rasipibẹri naa. Iyẹn tọ, a ti ṣe olulana Wi-Fi, iraye si eyiti “nipasẹ Intanẹẹti” jẹ eewọ nipasẹ aiyipada - ni bayi “lori afẹfẹ”. A so okun Ethernet ti olupese ati bẹrẹ hiho!

8. ajeseku: +2,4GHz

Nigbati Mo ṣajọpọ olulana Rasipibẹri akọkọ ni lilo iyaworan ti a ṣalaye loke, Mo ṣe awari ọpọlọpọ awọn irinṣẹ ninu ile mi ti, nitori awọn idiwọn apẹrẹ Wi-Fi wọn, ko le rii “rasipibẹri” rara. Atunto olulana lati ṣiṣẹ ni 802.11b / g / n ko ni ere, nitori iyara ti o pọ julọ “lori afẹfẹ” ninu ọran yii ko kọja 40 Mbit, ati olupese Intanẹẹti ayanfẹ mi nfunni ni 100 (nipasẹ USB).

Ni otitọ, ojutu si iṣoro naa ti tẹlẹ ti ṣẹda: wiwo Wi-Fi keji ti n ṣiṣẹ ni igbohunsafẹfẹ ti 2,4 GHz, ati aaye iwọle keji. Ni ile itaja ti o wa nitosi Mo ra kii ṣe akọkọ, ṣugbọn Wi-Fi USB keji “súfèé” Mo wa kọja. Olutaja naa ni ijiya nipasẹ awọn ibeere nipa chipset, ibamu pẹlu awọn ekuro Linux ARM ati iṣeeṣe ti ṣiṣẹ ni ipo AP (o jẹ akọkọ lati bẹrẹ).

A tunto “súfèé” nipasẹ afiwe pẹlu ohun ti nmu badọgba Wi-Fi ti a ṣe sinu.

Ni akọkọ, jẹ ki a tunrukọ rẹ si 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

A yoo fi iṣakoso ti wiwo Wi-Fi tuntun si daemon hostapd lọtọ, eyiti yoo bẹrẹ ati da duro da lori wiwa “súfèé” ti o muna ninu eto naa: wl1.

Faili iṣeto ni /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]

Awọn akoonu ti faili yii taara dale lori awoṣe ti ohun ti nmu badọgba Wi-Fi USB, nitorinaa ẹda banal daakọ/lẹẹmọ le kuna ọ.

Da faili iṣẹ pinpin si /etc/systemd/system/hostapd2.service:

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

ati dinku awọn akoonu rẹ si fọọmu atẹle:

[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

Gbogbo ohun ti o ku ni lati mu apẹẹrẹ tuntun ti hostapd ṣiṣẹ:

# systemctl enable hostapd2

Gbogbo ẹ niyẹn! Fa "súfèé" ati "rasipibẹri" funrararẹ, wo awọn nẹtiwọki alailowaya ni ayika rẹ.

Ati nikẹhin, Mo fẹ lati kilo fun ọ nipa didara ohun ti nmu badọgba Wi-Fi USB ati ipese agbara ti Rasipibẹri. Sopọ “súfèé gbigbona” le fa nigba miiran “didi rasipibẹri” nitori awọn wahala itanna igba kukuru.

orisun: www.habr.com

Fi ọrọìwòye kun