Raspberry Pi + CentOS = Wi-Fi Hotspot (یا د ریډ خولۍ سره راسبیري روټر)

د راسبیري واحد بورډ کمپیوټر پراساس د Wi-Fi لاسرسي نقطو رامینځته کولو په اړه په انټرنیټ کې خورا لوی معلومات شتون لري. د یوې قاعدې په توګه، دا پدې مانا ده چې د Raspbian عملیاتي سیسټم کارول د راسبیري اصلي اصلي.

د RPM پراساس سیسټمونو پیروان په توګه ، زه نشم کولی د دې کوچني معجزې څخه تیر شم او نه یې زما محبوب CentOS هڅه کولی شم.

مقاله د CentOS عملیاتي سیسټم پراساس د Raspberry Pi 5 ماډل B+ څخه د 3GHz/AC Wi-Fi روټر جوړولو لپاره لارښوونې چمتو کوي. ډیری معیاري مګر لږ پیژندل شوي چلونه به وي، او د بونس په توګه - د راسبیري سره د اضافي Wi-Fi تجهیزاتو نښلولو لپاره یو انځور، دا اجازه ورکوي چې په ورته وخت کې په څو حالتونو کې کار وکړي (2,4 + 5GHz).

Raspberry Pi + CentOS = Wi-Fi Hotspot (یا د ریډ خولۍ سره راسبیري روټر)
(په آزاده توګه د شته انځورونو مخلوط)

راځئ چې سمدلاسه یادونه وکړو چې ځینې کاسمیک سرعتونه به کار ونکړي. زه په هوا کې زما د راسبیري څخه اعظمي حد 100 Mbps راوباسئ ، او دا زما د انټرنیټ چمتو کونکي سرعت پوښي. تاسو ولې داسې سست AC ته اړتیا لرئ، که په تیوري کې تاسو کولی شئ نیم ګیګابایټ حتی په N کې ترلاسه کړئ؟ که تاسو دا پوښتنه له ځانه کړې وي، نو پلورنځي ته لاړ شئ ترڅو د اتو بهرني انتنونو سره ریښتیني روټر واخلئ.

0. هغه څه چې تاسو ورته اړتیا لرئ

  • په حقیقت کې، د "راسبیري محصول" پخپله د کیفیت لرونکي دی: د Pi 3 ماډل B+ (د مطلوب 5GHz سرعت او چینلونو ترلاسه کولو لپاره)؛
  • ښه microSD>= 4GB؛
  • د لینکس او مایکرو ایس ډی لوستونکي / لیکوال سره کارځای؛
  • په لینکس کې د کافي مهارتونو شتون، مقاله د روزل شوي جیک لپاره ده؛
  • د راسبیري او لینکس تر مینځ د وائرډ شبکه (eth0) ارتباط ، په محلي شبکه کې د DHCP سرور چلول او د دواړو وسیلو څخه انټرنیټ لاسرسی.

په وروستي ټکي کې یو کوچنی نظر. "کوم لومړی راغلی، هګۍ یا ..." څنګه د انټرنیټ لاسرسي تجهیزاتو په نشتوالي کې د وای فای روټر جوړ کړئ؟ راځئ چې دا ساتیرۍ تمرین د مقالې له ساحې بهر پریږدو او په ساده ډول فرض کړئ چې راسبیري د تار په واسطه د محلي شبکې سره وصل دی او انټرنیټ ته لاسرسی لري. په دې حالت کې، موږ به د "راسبیري" د تنظیم کولو لپاره اضافي تلویزیون او یو سمبالونکي ته اړتیا ونه لرو.

1. CentOS نصب کړئ

د پروژې کور پاڼه

د دې مقالې لیکلو په وخت کې ، په وسیله کې د CentOS روانه نسخه 32-bit ده. په ورلډ وایډ ویب کې یو ځای ما د نظرونو سره ولیدل چې د 64-bit ARM جوړښت کې د ورته OS فعالیت تر 20٪ پورې کم شوی. زه به دا شیبه پرته له تبصرې پریږدم.

په لینکس کې، د کرنل سره لږترلږه عکس ډاونلوډ کړئ "- RaspberryPI-"او دا مایکرو ایس ډی ته ولیکئ:

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

مخکې له دې چې د عکس کارولو پیل پیل کړو، موږ به د SWAP برخه له هغې څخه لیرې کړو، ریښه ټول موجود حجم ته پراخه کړو او د SELinux څخه خلاص شو. الګوریتم ساده دی: په لینکس کې د روټ کاپي جوړه کړئ ، د مایکرو ایس ډی څخه ټولې برخې حذف کړئ پرته له لومړي (/ بوټ) ، یو نوی ریښه رامینځته کړئ او د کاپي څخه یې مینځپانګې بیرته راوباسئ.

د اړینو کړنو بیلګه (د سخت کنسول محصول)

# 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

د ریښې برخې مینځپانګې خلاصولو وروسته ، دا وخت دی چې پدې کې ځینې بدلونونه رامینځته کړئ.

په SELinux کې غیر فعال کړئ /mnt/etc/selinux/config:

SELINUX=disabled

ترمیم کول /mnt/etc/fstab، پدې کې د برخې په اړه یوازې دوه ننوتل پریږدي: بوټ (/ بوټ، هیڅ بدلون نه دی) او روټ (موږ د UUID ارزښت بدلوو، کوم چې په لینکس کې د بلکیډ کمانډ محصول مطالعې سره موندل کیدی شي):

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

په نهایت کې ، موږ د کرنل بوټ پیرامیټونه بدلوو: موږ د ریښې برخې لپاره نوی ځای مشخص کوو ، د ډیبګ کولو معلوماتو محصول غیر فعال کوو او (اختیاري) د شبکې انٹرفیسونو کې د IPv6 ادرسونو له ټاکلو څخه کرنل منع کوو:

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

دلته منځپانګه ده /mnt/cmdline.txt لاندې بڼې ته (یوه کرښه پرته له هایفین):

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

وشو:

# cd
# umount /mnt
# sync

موږ مایکرو ایس ډی په "راسبیري" کې تنظیم کوو ، لانچ یې کوو او د ssh (root/centos) له لارې دې ته د شبکې لاسرسی ترلاسه کوو.

2. د CentOS تنظیم کول

لومړی درې نه ماتیدونکی حرکتونه: پاسورډ, yum -y update, بیا پیل کړئ.

موږ د شبکې مدیریت ورکوو شبکه:

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

یو فایل جوړ کړئ (د لارښودونو سره یوځای) /etc/systemd/network/eth0.network:

[Match]
Name=eth0

[Network]
DHCP=ipv4

موږ "راسبیري" ریبوټ کوو او بیا یې د ssh له لارې شبکې ته لاسرسی ترلاسه کوو (د IP پته ممکن بدلون ومومي). پام وکړئ هغه څه چې کارول کیږي /etc/resolv.confد شبکې مدیر لخوا مخکې جوړ شوی. له همدې امله، د حل سره د ستونزو په صورت کې، د هغې مینځپانګې سم کړئ. کارول سیسټم حل شوی مونږ به نه.

موږ "غیر ضروري" لرې کوو، د 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

څوک اړتیا لري cron او څوک جوړ شوی هضم نه کوي سیسټم ټایمرونه، کولی شي هغه څه رامینځته کړي چې ورک دي. / var / log- او له لارې یې وګورئ ژورنالست. که تاسو د ننوتلو تاریخ ته اړتیا لرئ (د ډیفالټ په واسطه، معلومات یوازې د هغه وخت څخه ساتل کیږي چې سیسټم پیل کیږي):

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

د بنسټیزو خدماتو لخوا د IPv6 کارول غیر فعال کړئ (که اړتیا وي)/ etc / ssh / sshd_config:

AddressFamily inet

/etc/sysconfig/chronyd:

OPTIONS="-4"

د "راسبیري" په اړه د وخت مطابقت یو مهم شی دی. له دې چې د بکس څخه بهر د ریبوټ پرمهال د ساعت اوسني حالت خوندي کولو لپاره د هارډویر وړتیا شتون نلري ، همغږي کولو ته اړتیا ده. د دې لپاره خورا ښه او ګړندی ډیمون دی کرونده - دمخه نصب شوی او په اوتومات ډول پیل کیږي. تاسو کولی شئ د NTP سرورونه نږدې ته بدل کړئ.

/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

د وخت زون ټاکلو لپاره موږ به وکاروو چال. څنګه چې زموږ هدف د 5GHz فریکونسۍ کې د وائی فای روټر رامینځته کول دي ، نو موږ به دمخه د حیرانتیا لپاره چمتو کړو تنظیم کونکی:

# yum info crda
لنډیز: د 802.11 بې سیم شبکې لپاره د تنظیمي موافقت ډیمون

دا ناوړه ډیزاین، د وخت زون پر بنسټ هم، د "لوړ" شمیرو سره د 5GHz فریکونسۍ او چینلونو کارول (په روسیه کې) "منع کوي". چال دا دی چې د براعظمونو / ښارونو نومونو کارولو پرته د وخت زون تنظیم کړئ ، دا د دې پرځای:

# timedatectl set-timezone Europe/Moscow

موږ فشار راوړو:

# timedatectl set-timezone Etc/GMT-3

او د سیسټم ویښتو ته وروستی لمس:

# 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 اضافه کول

هرڅه چې پورته ویل شوي په راسبیري پای کې د "ونیلا" CentOS نصبولو لپاره بشپړ لارښوونې په پام کې نیول کیدی شي. تاسو باید د داسې کمپیوټر سره پای ته ورسیږئ چې (بیا) له 10 ثانیو څخه لږ وخت کې بوټ کوي، له 15 میګابایټ څخه لږ RAM او 1.5 ګیګابایټ مایکرو ایس ډی کاروي (په حقیقت کې د نیمګړتیا/بوټ له امله له 1 ګیګابایټ څخه کم، مګر راځئ چې صادق واوسو).

پدې سیسټم کې د Wi-Fi لاسرسي نقطې سافټویر نصبولو لپاره ، تاسو اړتیا لرئ د معیاري CentOS توزیع ظرفیتونه یو څه پراخه کړئ. لومړی، راځئ چې د جوړ شوي وای فای اډاپټر چلوونکي (فرم ویئر) ته وده ورکړو. د پروژې کور پاڼه وايي:

په راسبیري 3B او 3B+ کې وائی فای

د Raspberry PI 3B/3B + فرم ویئر فایلونو ته اجازه نشته چې د CentOS پروژې لخوا توزیع شي. تاسو کولی شئ د مسلې د پوهیدو لپاره لاندې مقالې وکاروئ ، فرم ویئر ترلاسه کړئ او وائی فای تنظیم کړئ.

هغه څه چې د CentOS پروژې لپاره منع دي د شخصي استعمال لپاره زموږ لپاره منع ندي. موږ په CentOS کې د توزیع Wi-Fi فرم ویئر د براډکام پراختیا کونکو څخه ورته ورته سره ځای په ځای کوو (هغه ورته نفرت لرونکي بائنری بلابونه ...). دا، په ځانګړې توګه، تاسو ته اجازه درکوي چې د لاسرسي نقطه حالت کې AC وکاروئ.

د Wi-Fi فرم ویئر اپ گریڈد وسیلې ماډل او اوسني فرم ویئر نسخه ومومئ:

# 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 

موږ ګورو چې د فرم ویئر نسخه 7.45.18 نیټه 01.03.2015/XNUMX/XNUMX ده، او د شمیرو لاندې سیټ په یاد ولرئ: 43455 (brcmfmac43455-sdio.bin).

د راسبیان اوسنی عکس ډاونلوډ کړئ. سست خلک کولی شي عکس مایکرو ایس ډی ته ولیکي او له هغه ځای څخه د فرم ویئر سره فایلونه واخلي. یا تاسو کولی شئ په لینکس کې د عکس ریټ برخې نصب کړئ او هغه څه چې تاسو ورته اړتیا لرئ کاپي کړئ:

# 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

په پایله کې د وای فای اډاپټر فرم ویئر فایلونه باید کاپي شي او په لارښود کې د "راسبیري" سره ځای په ځای شي /usr/lib/firmware/brcm/

موږ راتلونکی روټر ریبوټ کوو او په خوښۍ سره موسکا کوو:

# 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 

نسخه: 7.45.154 نیټه 27.02.2018/XNUMX/XNUMX.

او البته 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. د شبکې ترتیب او په وړاندې ننګونې

لکه څنګه چې موږ پورته موافقه وکړه، "راسبیري" د محلي شبکې سره د "تار" په واسطه وصل دی. راځئ فرض کړو چې چمتو کوونکی په ورته ډول انټرنیټ ته لاسرسی چمتو کوي: په عامه شبکه کې پته د DHCP سرور لخوا په متحرک ډول خپره شوې (شاید د MAC پابند سره). پدې حالت کې ، د راسبیري وروستي تنظیم کولو وروسته ، تاسو اړتیا لرئ د چمتو کونکي کیبل په دې کې "پلګ" کړئ او تاسو بشپړ شوي. د کارولو اجازه systemd-networkd - د جلا مقالې موضوع او دلته بحث نه دی شوی.

د Raspberry Wi-Fi انٹرفیس (s) محلي شبکه ده، او د ایترنیټ اډاپټر (eth0) جوړ شوی بهرنی دی. راځئ چې محلي شبکه په ثابت ډول شمیره کړو، د بیلګې په توګه: 192.168.0.0/24. د راسبیري پته: 192.168.0.1. د DHCP سرور به په بهرنۍ شبکه (انټرنیټ) کې کار وکړي.

د نوم ورکولو د دوام ستونزه и د ګواتیمالا مشهور پروګرامر - دوه ستونزې چې د هرچا په تمه دي څوک چې د سیسټم شوي توزیع کې د شبکې انٹرفیس او خدمات تنظیموي.

موازي ګډوډي (د شعري انحطاط)لینارټ پوټرینګ خپل برنامه جوړه کړې سیسټم D ډیر ښه. دا سیسټم D نور پروګرامونه په چټکۍ سره پیلوي چې دوی، د ریفري د ویسل له ګوزار څخه د بیرته راستنېدو لپاره وخت نه لري، حتی د خنډ کورس پیل کولو پرته په پیل کې ټکان او سقوط کوي.

مګر په جدي توګه، د سیسټمډ OS په پیل کې د پیل شوي پروسو جارحانه موازي کول د موسمي ترتیب شوي LSB متخصصینو لپاره یو ډول "د خره پل" دی. خوشبختانه، دې "موازي ګډوډي" ته د نظم راوستل ساده دي، که څه هم تل څرګند نه وي.

موږ دوه مجازی پل انٹرفیسونه د ثابت نومونو سره رامینځته کوو: لین и دوی. موږ به د Wi-Fi اډاپټرونه له لومړي سره "وصل کړو".

/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=هو د روټینګ فعالولو لپاره د sysctl له لارې کرنل ته د اشارې اړتیا له مینځه وړي.
د MACA پته= راځئ چې د اړتیا په صورت کې غیر تبصره او بدلون وکړو.

لومړی موږ eth0 "وصل" کوو. موږ د "یوادوالي ستونزه" په یاد لرو او یوازې د دې انٹرفیس MAC پته کاروو، کوم چې موندل کیدی شي، د بیلګې په توګه، د دې په څیر:

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

موږ جوړوو /etc/systemd/network/eth.network:

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

[Network]
Bridge=wan

موږ د ترتیب کولو پخوانی فایل eth0 حذف کوو، راسبیري ریبوټ کړئ او هغې ته د شبکې لاسرسی ترلاسه کړئ (د IP پته به ډیر احتمال بدل شي):

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

5.DNSMASQ

د وائی فای لاسرسي نقطو جوړولو لپاره ، هیڅ شی یو خوږ دوه مات نه کوي dnsmasq + hostapd تر اوسه یې نه دی معلوم کړی. زما په نظر.

که چا هیر کړی وی نو...hostapd - دا هغه شی دی چې د وائی فای اډیپټرونه کنټرولوي (په ځانګړي توګه ، دا به د دوی مجازی سره وصل کولو ته پاملرنه وکړي لین "raspberries")، د بې سیم پیرودونکي اجازه او راجستر کوي.

dnsmasq - د پیرودونکو شبکې سټیک تنظیموي: د IP پتې مسلې ، DNS سرورونه ، ډیفالټ ګیټ وے او ورته خوښۍ.

راځئ چې د 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

د خپلې خوښې سره سم یې ترمیم کړئ.

لږ تر لږه /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

دلته "جادو" په پیرامیټر کې پروت دی bind-dynamic، کوم چې dnsmasq ډیمون ته وايي تر هغه چې په سیسټم کې څرګند شي انتظار وکړئ انٹرفیس = lan، او د پیل څخه وروسته د غرور یوازیتوب څخه بې هوښه کیږئ.

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

6. HOSTAPD

او په نهایت کې ، د جادو کوربه توب ترتیبونه. زه هیڅ شک نلرم چې یو څوک دا مقاله د دقیقا د دې قیمتي کرښو په لټه کې لوستل کوي.

د hostapd نصبولو دمخه، تاسو اړتیا لرئ چې د "یووالي ستونزه" له منځه یوسي. جوړ شوی Wi-Fi اډاپټر wlan0 کولی شي په اسانۍ سره خپل نوم wlan1 ته بدل کړي کله چې اضافي USB Wi-Fi تجهیزات وصل کړي. له همدې امله، موږ به د انٹرفیس نومونه په لاندې ډول تنظیم کړو: موږ به د (بېسیم) اډاپټرونو لپاره ځانګړي نومونه راوړو او د MAC ادرسونو سره به یې وصل کړو.

د جوړ شوي وای فای اډاپټر لپاره، کوم چې لاهم دی wlan0:

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

موږ جوړوو /etc/systemd/network/wl0.link:

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

[Link]
Name=wl0

اوس به موږ ډاډه شو wl0 - دا جوړ شوی وائی فای دی. موږ د دې ډاډ ترلاسه کولو لپاره راسبیري ریبوټ کوو.

لګول:

# yum install hostapd wireless-tools

د ترتیب فایل /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

پرته له دې چې د یوې شیبې لپاره هېر شي د اضطراري حالت دولتي کمیټه، هغه پیرامیټونه بدل کړئ چې موږ ورته اړتیا لرو او په لاسي ډول د فعالیت لپاره چیک کړئ:

# hostapd /etc/hostapd/hostapd.conf

hostapd به په متقابل حالت کې پیل شي، خپل حالت کنسول ته خپروي. که کومه تېروتنه شتون ونلري، نو هغه پیرودونکي چې د AC حالت ملاتړ کوي د لاسرسي نقطې سره وصل شي. د hostapd بندولو لپاره - Ctrl-C.

ټول هغه څه چې پاتې دي د سیسټم په پیل کې د hostapd فعالول دي. که تاسو معیاري کار وکړئ (systemctl hostapd فعال کړئ)، نو د راتلونکي ریبوټ وروسته تاسو کولی شئ د تشخیص سره "په وینه کې راښکته" شیطان ترلاسه کړئ.انٹرفیس wl0 ونه موندل شو". د "موازي ګډوډۍ" په پایله کې ، hostapd د کرنل د بې سیم اډاپټر موندلو په پرتله ګړندی پیل شو.

انټرنیټ د درملنې څخه ډک دی: د ډیمون (څو دقیقو) پیل کولو دمخه د جبري وخت پای څخه ، بل ډیمون ته چې د انٹرفیس ظاهري څارنه کوي او (بیا) کوربه پیډ پیل کوي. حلونه خورا د کار وړ دي، مګر خورا بدمرغه. موږ د مرستې لپاره لوی ته غږ کوو سیسټم D د خپلو "هدفونو" او "دندو" او "تکیه" سره.

د توزیع خدماتو فایل ته کاپي کړئ /etc/systemd/system/hostapd.service:

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

او د هغې محتويات لاندې شکل ته راکم کړئ:

[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

د تازه شوي خدماتو فایل جادو نوي هدف ته د hostapd متحرک پابندۍ کې پروت دی - wl0 انٹرفیس. کله چې انٹرفیس څرګند شي ، ډیمون پیل کیږي؛ کله چې ورک شي ، ودریږي. او دا ټول آنلاین دي - پرته له دې چې سیسټم ریبوټ کړئ. دا تخنیک به په ځانګړي توګه ګټور وي کله چې د USB وای فای اډاپټر راسبیري سره وصل کړئ.

اوس تاسو کولی شئ:

# systemctl enable hostapd
# reboot

7. IPTABLES

"څه؟؟؟" © هو، هو! هیڅ نه سیسټم D. هیڅ ډول نوي ګډ شوي ترکیبونه (په شکل کې د اور لګول)، چې په پای کې ورته کار کوي.

راځئ چې ښه زوړ وکاروو iptables، چې خدمتونه به یې له پیل کولو وروسته د شبکې مقررات په کرنل کې بار کړي او په خاموشۍ سره به د پاتې استوګنې پرته او د سرچینو مصرف کولو پرته وتړل شي. systemd په زړه پوری دی IPMasquerade=، مګر موږ به لاهم د پتې ژباړه (NAT) او فایر وال iptables ته وسپارو.

لګول:

# yum install iptables-services
# systemctl enable iptables ip6tables

زه ترجیح ورکوم چې د iptables ترتیب د سکریپټ په توګه ذخیره کړم (د مثال په توګه):

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

موږ پورتني سکریپټ اجرا کوو او د راسبیري سره د نوي تار شوي SSH اړیکو رامینځته کولو وړتیا له لاسه ورکوو. دا سمه ده، موږ یو وائی فای روټر جوړ کړی، چې د "انټرنېټ له لارې" لاسرسی د ډیفالټ لخوا منع دی - اوس یوازې "په هوا کې". موږ د چمتو کونکي ایترنیټ کیبل سره وصل کوو او سرفینګ پیل کوو!

8. بونس: +2,4GHz

کله چې ما د پورته بیان شوي ډراینګ په کارولو سره لومړی راسبیري روټر راټول کړ ، ما په خپله کورنۍ کې یو شمیر ګیجټونه وموندل چې د دوی د Wi-Fi ډیزاین محدودیتونو له امله ، هیڅ "راسبیري" نشي لیدلی. په 802.11b/g/n کې د کار کولو لپاره د روټر بیا تنظیم کول غیر سپورټ و ، ځکه چې پدې قضیه کې "په هوا کې" اعظمي سرعت له 40 Mbit څخه ډیر نه و ، او زما د خوښې انټرنیټ چمتو کونکی ماته 100 وړاندیز کوي (د کیبل له لارې).

په حقیقت کې، د ستونزې حل لا دمخه اختراع شوی دی: د 2,4 GHz فریکونسۍ کې د دویم وای فای انٹرفیس کار کوي، او د دویم لاسرسي نقطه. په نږدې پلورنځي کې ما لومړی نه و اخیستی ، مګر دوهم USB وای فای "ویسل" چې ما ولیدل. پلورونکی د چپسیټ په اړه د پوښتنو لخوا ځورول شوی و ، د ARM لینکس کرنلونو سره مطابقت او په AP حالت کې د کار کولو امکان (هغه لومړی و چې پیل یې وکړ).

موږ د جوړ شوي وای فای اډاپټر سره په ورته والي سره "سیست" تنظیم کوو.

لومړی، راځئ چې دا نوم بدل کړو 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

موږ به د نوي وائی فای انٹرفیس مدیریت جلا کوربه ډیمون ته وسپارو ، کوم چې به په سیسټم کې د سخت تعریف شوي "ویسل" شتون پورې اړه لري پیل او ودروي: wl1.

د ترتیب فایل /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]

د دې فایل مینځپانګې مستقیم د USB Wi-Fi اډاپټر ماډل پورې اړه لري ، نو د کاپي / پیسټ ممکن تاسو ناکام کړي.

د توزیع خدماتو فایل ته کاپي کړئ /etc/systemd/system/hostapd2.service:

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

او د هغې محتويات لاندې شکل ته راکم کړئ:

[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

ټول هغه څه چې پاتې دي د hostapd نوې بیلګه فعالول دي:

# systemctl enable hostapd2

بس نور څه نه! پخپله "ویسل" او "راسبیري" راوباسئ ، خپل شاوخوا بې سیم شبکې وګورئ.

او په نهایت کې ، زه غواړم تاسو ته د USB وای فای اډاپټر کیفیت او د راسبیري بریښنا رسولو په اړه خبرداری ورکړم. وصل شوي "ګرم څاڅکي" ځینې وختونه د لنډ مهاله بریښنایی ستونزو له امله د "راسبیري کنګل کیدو" لامل کیدی شي.

سرچینه: www.habr.com

Add a comment