рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ + рд╕реЗрдВрдЯреЛрд╕ = рд╡рд╛рдп-рдлрд╛рдп рд╣реЙрдЯрд╕реНрдкреЙрдЯ (рдХрд┐рдВрд╡рд╛ рд▓рд╛рд▓ рдЯреЛрдкреАрд╕рд╣ рд░рд╛рд╕реНрдкрдмреЗрд░реА рд░рд╛рдЙрдЯрд░)

рд░рд╛рд╕реНрдкрдмреЗрд░реА рд╕рд┐рдВрдЧрд▓-рдмреЛрд░реНрдб рдкреАрд╕реАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╡рд╛рдп-рдлрд╛рдп рдНрдХреНрд╕реЗрд╕ рдкреЙрдИрдВрдЯ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдорд╛рд╣рд┐рддреА рдЖрд╣реЗ. рдирд┐рдпрдорд╛рдиреБрд╕рд╛рд░, рдпрд╛рдЪрд╛ рдЕрд░реНрде рд░рд╛рд╕реНрдкрдмреЗрд░реАрдЪреА рдореВрд│ рд░рд╛рд╕реНрдкрдмрд┐рдпрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╡рд╛рдкрд░рдгреЗ рд╣реЛрдп.

RPM-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдгрд╛рд▓реАрдВрдЪреЗ рдЕрдиреБрдпрд╛рдпреА рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдореА рдпрд╛ рдЫреЛрдЯреНрдпрд╛рд╢рд╛ рдЪрдорддреНрдХрд╛рд░рд╛рд▓рд╛ рдкрд╛рд░ рдХрд░реВ рд╢рдХрд▓реЛ рдирд╛рд╣реА рдЖрдгрд┐ рдорд╛рдЭреНрдпрд╛ рдкреНрд░рд┐рдп рд╕реЗрдВрдЯреЛрд╕рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВ рд╢рдХрд▓реЛ рдирд╛рд╣реА.

рд▓реЗрдЦ CentOS рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рдЖрдзрд╛рд░рд┐рдд Raspberry Pi 5 Model B+ рд╡рд░реВрди 3GHz/AC Wi-Fi рд░рд╛рдЙрдЯрд░ рдмрдирд╡рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕реВрдЪрдирд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЛ. рддреЗрдереЗ рдЕрдиреЗрдХ рдорд╛рдирдХ рдкрд░рдВрддреБ рдЕрд▓реНрдк-рдЬреНрдЮрд╛рдд рдпреБрдХреНрддреНрдпрд╛ рдЕрд╕рддреАрд▓ рдЖрдгрд┐ рдмреЛрдирд╕ рдореНрд╣рдгреВрди - рд░рд╛рд╕реНрдкрдмреЗрд░реАрд▓рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд╛рдп-рдлрд╛рдп рдЙрдкрдХрд░рдгреЗ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░, рддреЗ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ рдореЛрдбрдордзреНрдпреЗ (2,4+5GHz) рдСрдкрд░реЗрдЯ рдХрд░реВ рджреЗрддреЗ.

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ + рд╕реЗрдВрдЯреЛрд╕ = рд╡рд╛рдп-рдлрд╛рдп рд╣реЙрдЯрд╕реНрдкреЙрдЯ (рдХрд┐рдВрд╡рд╛ рд▓рд╛рд▓ рдЯреЛрдкреАрд╕рд╣ рд░рд╛рд╕реНрдкрдмреЗрд░реА рд░рд╛рдЙрдЯрд░)
(рдореБрдХреНрддрдкрдгреЗ рдЙрдкрд▓рдмреНрдз рдкреНрд░рддрд┐рдорд╛рдВрдЪреЗ рдорд┐рд╢реНрд░рдг)

рдЖрдкрдг рд▓рдЧреЗрдЪ рд▓рдХреНрд╖рд╛рдд рдШреЗрдК рдпрд╛ рдХреА рдХрд╛рд╣реА рд╡реИрд╢реНрд╡рд┐рдХ рд╡реЗрдЧ рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░ рдирд╛рд╣реАрдд. рдореА рдорд╛рдЭреНрдпрд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реАрдордзреВрди рд╣рд╡реЗрд╡рд░ рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд 100 Mbps рдкрд┐рд│реВрди рдХрд╛рдврддреЛ рдЖрдгрд┐ рд╣реЗ рдорд╛рдЭреНрдпрд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкреНрд░рджрд╛рддреНрдпрд╛рдЪреНрдпрд╛ рдЧрддреАрд▓рд╛ рдХрд╡реНрд╣рд░ рдХрд░рддреЗ. рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрд╢рд╛ рдЖрд│рд╢реА рдПрд╕реАрдЪреА рдЧрд░рдЬ рдХрд╛ рдЖрд╣реЗ, рдЬрд░ рд╕рд┐рджреНрдзрд╛рдВрддрд╛рдиреБрд╕рд╛рд░ рддреБрдореНрд╣рд╛рд▓рд╛ N рд╡рд░рд╣реА рдЕрд░реНрдзрд╛ рдЧрд┐рдЧрд╛рдмрд┐рдЯ рдорд┐рд│реВ рд╢рдХреЗрд▓? рдЬрд░ рддреБрдореНрд╣реА рд╕реНрд╡рддрдГрд▓рд╛ рд╣рд╛ рдкреНрд░рд╢реНрди рд╡рд┐рдЪрд╛рд░рд▓рд╛ рдЕрд╕реЗрд▓, рддрд░ рдЖрда рдмрд╛рд╣реНрдп рдЕрдБрдЯреЗрдирд╛рд╕рд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рд╛рдЙрдЯрд░ рдЦрд░реЗрджреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдЯреЛрдЕрд░рдордзреНрдпреЗ рдЬрд╛.

0. рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рд▓рд╛рдЧреЗрд▓

  • рд╡рд╛рд╕реНрддрд╡рд┐рдХ, тАЬрд░рд╛рд╕реНрдкрдмреЗрд░реА рдЙрддреНрдкрд╛рджрдитАЭ рд╕реНрд╡рддрдГрдЪ рдХреЕрд▓рд┐рдмрд░рдЪреЗ рдЖрд╣реЗ: Pi 3 рдореЙрдбреЗрд▓ B+ (рдкреНрд░рддрд┐рд╖реНрдард┐рдд 5GHz рдЧрддреА рдЖрдгрд┐ рдЪреЕрдиреЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА);
  • рдЪрд╛рдВрдЧрд▓реЗ microSD >= 4GB;
  • рд▓рд┐рдирдХреНрд╕ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛрдПрд╕рдбреА рд░реАрдбрд░/рд▓реЗрдЦрдХрд╛рд╕рд╣ рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди;
  • рд▓рд┐рдирдХреНрд╕рдордзреНрдпреЗ рдкреБрд░реЗрд╢рд╛ рдХреМрд╢рд▓реНрдпрд╛рдВрдЪреА рдЙрдкрд▓рдмреНрдзрддрд╛, рд▓реЗрдЦ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдЧреАрдХрд╕рд╛рдареА рдЖрд╣реЗ;
  • рд░рд╛рд╕реНрдкрдмреЗрд░реА рдЖрдгрд┐ рд▓рд┐рдирдХреНрд╕ рджрд░рдореНрдпрд╛рди рд╡рд╛рдпрд░реНрдб рдиреЗрдЯрд╡рд░реНрдХ (eth0) рдХрдиреЗрдХреНрдЯрд┐рд╡реНрд╣рд┐рдЯреА, рд╕реНрдерд╛рдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░ DHCP рд╕рд░реНрд╡реНрд╣рд░ рдЪрд╛рд▓рд╡рдгреЗ рдЖрдгрд┐ рджреЛрдиреНрд╣реА рдЙрдкрдХрд░рдгрд╛рдВрд╡рд░реАрд▓ рдЗрдВрдЯрд░рдиреЗрдЯ рдкреНрд░рд╡реЗрд╢.

рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рдореБрджреНрджреНрдпрд╛рд╡рд░ рдПрдХ рдЫреЛрдЯреАрд╢реА рдЯрд┐рдкреНрдкрдгреА. тАЬрдХреЛрдгрддреЗ рдкреНрд░рдердо рдЖрд▓реЗ, рдЕрдВрдбреЗ рдХрд┐рдВрд╡рд╛...тАЭ рдХреЛрдгрддреНрдпрд╛рд╣реА рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕реЗрд╕ рдЙрдкрдХрд░рдгрд╛рдВрдЪреНрдпрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рддреАрдд рд╡рд╛рдп-рдлрд╛рдп рд░рд╛рдЙрдЯрд░ рдХрд╕рд╛ рдмрдирд╡рд╛рдпрдЪрд╛? рдЪрд▓рд╛ рд╣рд╛ рдордиреЛрд░рдВрдЬрдХ рд╡реНрдпрд╛рдпрд╛рдо рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╡реНрдпрд╛рдкреНрддреАрдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рд╕реЛрдбреВрдпрд╛ рдЖрдгрд┐ рдлрдХреНрдд рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░реВ рдХреА рд░рд╛рд╕реНрдкрдмреЗрд░реА рд╡рд╛рдпрд░рджреНрд╡рд╛рд░реЗ рд╕реНрдерд╛рдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХрд╢реА рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реА рдЖрд╣реЗ рдЖрдгрд┐ рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдкреНрд░рд╡реЗрд╢ рдЖрд╣реЗ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЖрдореНрд╣рд╛рд▓рд╛ "рд░рд╛рд╕реНрдкрдмреЗрд░реА" рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреАрд╡реНрд╣реА рдЖрдгрд┐ рдореЕрдирд┐рдкреБрд▓реЗрдЯрд░рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА.

1. CentOS рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛

рдкреНрд░рдХрд▓реНрдк рдореБрдЦреНрдпрдкреГрд╖реНрда

рд╣рд╛ рд▓реЗрдЦ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреНрдпрд╛ рд╡реЗрд│реА, рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд╡рд░ CentOS рдЪреА рдЪрд╛рд▓реВ рдЖрд╡реГрддреНрддреА 32-рдмрд┐рдЯ рдЖрд╣реЗ. рд╡рд░реНрд▓реНрдб рд╡рд╛рдЗрдб рд╡реЗрдмрд╡рд░ рдХреБрдареЗрддрд░реА рдорд▓рд╛ рдЕрд╕реЗ рдордд рдЖрд▓реЗ рдХреА 64-рдмрд┐рдЯ рдПрдЖрд░рдПрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╡рд░ рдЕрд╢рд╛ рдУрдПрд╕рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ 20% рдЗрддрдХреА рдХрдореА рдЭрд╛рд▓реА рдЖрд╣реЗ. рдореА рдЯрд┐рдкреНрдкрдгреА рди рдХрд░рддрд╛ рд╣рд╛ рдХреНрд╖рдг рд╕реЛрдбреЗрди.

рд▓рд┐рдирдХреНрд╕рд╡рд░, рдХрд░реНрдирд▓рд╕рд╣ рдХрд┐рдорд╛рди рдкреНрд░рддрд┐рдорд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛ "-рд░рд╛рд╕рдмреЗрд░реА рдкрд╛рдп-"рдЖрдгрд┐ рддреЗ microSD рд╡рд░ рд▓рд┐рд╣рд╛:

# 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, рддреНрдпрд╛рдд рд╡рд┐рднрд╛рдЬрдирд╛рдВрдмрджреНрджрд▓ рдлрдХреНрдд рджреЛрди рдиреЛрдВрджреА рд╕реЛрдбрд╛: рдмреВрдЯ (/boot, рдХреЛрдгрддреЗрд╣реА рдмрджрд▓ рдирд╛рд╣реАрдд) рдЖрдгрд┐ рд░реВрдЯ (рдЖрдореНрд╣реА UUID рдореВрд▓реНрдп рдмрджрд▓рддреЛ, рдЬреЗ Linux рд╡рд░реАрд▓ blkid рдХрдорд╛рдВрдбрдЪреНрдпрд╛ рдЖрдЙрдЯрдкреБрдЯрдЪрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░реВрди рд╢реЛрдзрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ):

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 (рд░реВрдЯ/рд╕реЗрдВрдЯреЛрд╕) рджреНрд╡рд╛рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рд╡реЗрд╢ рдорд┐рд│рд╡рддреЛ.

2. CentOS рд╕реЗрдЯ рдХрд░рдгреЗ

рдкрд╣рд┐рд▓реНрдпрд╛ рддреАрди рдЕрдЪрд▓ рд╣рд╛рд▓рдЪрд╛рд▓реА: рдкрд╛рд╕рд╡рд╛рдб, yum -y рдЕрджреНрдпрдпрд╛рд╡рдд, рд░рд┐рдмреВрдЯ.

рдЖрдореНрд╣реА рдиреЗрдЯрд╡рд░реНрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рджреЗрддреЛ рдиреЗрдЯрд╡рд░реНрдХ:

# 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, рдиреЗрдЯрд╡рд░реНрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХрд╛рдиреЗ рдкреВрд░реНрд╡реА рддрдпрд╛рд░ рдХреЗрд▓реЗ. рдореНрд╣рдгреВрди, рдирд┐рд░рд╛рдХрд░рдгрд╛рдд рд╕рдорд╕реНрдпрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреНрдпрд╛рддреАрд▓ рд╕рд╛рдордЧреНрд░реА рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рд╛. рд╡рд╛рдкрд░рд╛ systemd- рдирд┐рд░рд╛рдХрд░рдг рдЖрдореНрд╣реА рдХрд░рдгрд╛рд░ рдирд╛рд╣реА.

рдЖрдореНрд╣реА "рдЕрдирд╛рд╡рд╢реНрдпрдХ" рдХрд╛рдвреВрди рдЯрд╛рдХрддреЛ, 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

рдХреЛрдгрд╛рд▓рд╛ рдЧрд░рдЬ рдЖрд╣реЗ рдХреНрд░реЛрди рдЖрдгрд┐ рдЕрдВрдЧрднреВрдд рдХреЛрдгрд╛рд▓рд╛ рдкрдЪрдд рдирд╛рд╣реА systemd рдЯрд╛рдЗрдорд░, рдХрд╛рдп рдЧрд╣рд╛рд│ рдЖрд╣реЗ рддреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддреЗ. / 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 рдЕреЕрдб-рдСрди

рд╡рд░ рд╕рд╛рдВрдЧрд┐рддрд▓реЗрд▓реА рдкреНрд░рддреНрдпреЗрдХ рдЧреЛрд╖реНрдЯ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╡рд░ "рд╡реНрд╣реЕрдирд┐рд▓рд╛" рд╕реЗрдВрдЯреЛрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдВрдкреВрд░реНрдг рд╕реВрдЪрдирд╛ рдорд╛рдирд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЕрд╕рд╛ рдкреАрд╕реА рдЕрд╕реЗрд▓ рдЬреЛ (рдкреБрдиреНрд╣рд╛) 10 рд╕реЗрдХрдВрджрд╛рдВрдкреЗрдХреНрд╖рд╛ рдХрдореА рд╡реЗрд│рд╛рдд рдмреВрдЯ рд╣реЛрдИрд▓, 15 рдореЗрдЧрд╛рдмрд╛рдЗрдЯреНрд╕рдкреЗрдХреНрд╖рд╛ рдХрдореА RAM рдЖрдгрд┐ 1.5 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рдорд╛рдпрдХреНрд░реЛрдПрд╕рдбреА рд╡рд╛рдкрд░реЗрд▓ (рдЕрдкреВрд░реНрдг/рдмреВрдЯрдореБрд│реЗ 1 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯрдкреЗрдХреНрд╖рд╛ рдХрдореА, рдкрдг рдкреНрд░рд╛рдорд╛рдгрд┐рдХрдкрдгреЗ рд╕рд╛рдВрдЧреВрдпрд╛).

рдпрд╛ рд╕рд┐рд╕реНрдЯреАрдорд╡рд░ рд╡рд╛рдп-рдлрд╛рдп рдНрдХреНрд╕реЗрд╕ рдкреЙрдИрдВрдЯ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рдирдХ CentOS рд╡рд┐рддрд░рдгрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдХрд┐рдВрдЪрд┐рдд рд╡рд╛рдврд╡рд╛рд╡реА рд▓рд╛рдЧреЗрд▓. рд╕рд░реНрд╡рдкреНрд░рдердо, рдмрд┐рд▓реНрдЯ-рдЗрди рд╡рд╛рдп-рдлрд╛рдп рдЕреЕрдбреЙрдкреНрдЯрд░рдЪрд╛ рдбреНрд░рд╛рдпрд╡реНрд╣рд░ (рдлрд░реНрдорд╡реЗрдЕрд░) рдЕрдкрдЧреНрд░реЗрдб рдХрд░реВрдпрд╛. рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рдореБрдЦреНрдпрдкреГрд╖реНрда рдореНрд╣рдгрддреЗ:

рд░рд╛рд╕реНрдкрдмреЗрд░реА 3B рдЖрдгрд┐ 3B+ рд╡рд░ рд╡рд╛рдпрдлрд╛рдп

Raspberry PI 3B/3B+ рдлрд░реНрдорд╡реЗрдЕрд░ рдлрд╛рдпрд▓реА CentOS рдкреНрд░реЛрдЬреЗрдХреНрдЯрджреНрд╡рд╛рд░реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдирд╛рд╣реА. рд╕рдорд╕реНрдпрд╛ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рдлрд░реНрдорд╡реЗрдЕрд░ рдорд┐рд│рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╡рд╛рдпрдлрд╛рдп рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рд▓реЗрдЦ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.

CentOS рдкреНрд░рдХрд▓реНрдкрд╛рд╕рд╛рдареА рдЬреЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдЖрд╣реЗ рддреЗ рд╡реИрдпрдХреНрддрд┐рдХ рд╡рд╛рдкрд░рд╛рд╕рд╛рдареА рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдирд╛рд╣реА. рдЖрдореНрд╣реА CentOS рдордзреАрд▓ рд╡рд┐рддрд░рдг рд╡рд╛рдп-рдлрд╛рдп рдлрд░реНрдорд╡реЗрдЕрд░рд▓рд╛ рдмреНрд░реЙрдбрдХреЙрдо рдбреЗрд╡реНрд╣рд▓рдкрд░реНрд╕рдЪреНрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╛рдп-рдлрд╛рдп рдлрд░реНрдорд╡реЗрдЕрд░рдиреЗ рдмрджрд▓рддреЛ (рддреНрдпрд╛рдЪ рдмрд╛рдпрдирд░реА рдмреНрд▓реЙрдмреНрд╕рдЪрд╛ рддрд┐рд░рд╕реНрдХрд╛рд░ рдХрд░рддрд╛рдд...). рд╣реЗ, рд╡рд┐рд╢реЗрд╖рддрдГ, рддреБрдореНрд╣рд╛рд▓рд╛ рдНрдХреНрд╕реЗрд╕ рдкреЙрдЗрдВрдЯ рдореЛрдбрдордзреНрдпреЗ рдПрд╕реА рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрдИрд▓.

рд╡рд╛рдп-рдлрд╛рдп рдлрд░реНрдорд╡реЗрдЕрд░ рдЕрдкрдЧреНрд░реЗрдбрдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдореЙрдбреЗрд▓ рдЖрдгрд┐ рд╡рд░реНрддрдорд╛рди рдлрд░реНрдорд╡реЗрдЕрд░ рдЖрд╡реГрддреНрддреА рд╢реЛрдзрд╛:

# 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 - рдПрдХрд╛ рд╕реНрд╡рддрдВрддреНрд░ рд▓реЗрдЦрд╛рдЪрд╛ рд╡рд┐рд╖рдп рдЖрдгрд┐ рдпреЗрдереЗ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реЗрд▓реА рдирд╛рд╣реА.

рд░рд╛рд╕реНрдкрдмреЗрд░реАрдЪрд╛ рд╡рд╛рдп-рдлрд╛рдп рдЗрдВрдЯрд░рдлреЗрд╕(рдЪреЗ) рд╕реНрдерд╛рдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдЖрд╣реЗ рдЖрдгрд┐ рдЕрдВрдЧрднреВрдд рдЗрдерд░рдиреЗрдЯ рдЕрдбреЕрдкреНрдЯрд░ (eth0) рдмрд╛рд╣реНрдп рдЖрд╣реЗ. рдЪрд▓рд╛ рд╕реНрдерд╛рдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХрд▓рд╛ рд╕реНрдерд┐рд░рдкрдгреЗ рдХреНрд░рдорд╛рдВрдХ рджреЗрдК, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде: 192.168.0.0/24. рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрддреНрддрд╛: 192.168.0.1. DHCP рд╕рд░реНрд╡реНрд╣рд░ рдмрд╛рд╣реНрдп рдиреЗрдЯрд╡рд░реНрдХ (рдЗрдВрдЯрд░рдиреЗрдЯ) рд╡рд░ рдХрд╛рд░реНрдп рдХрд░реЗрд▓.

рдирд╛рдордХрд░рдг рд╕реБрд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛ ╨╕ рдкреНрд░рд╕рд┐рджреНрдз рдЧреНрд╡рд╛рдЯреЗрдорд╛рд▓рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ - рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрдгрд┐ рд╕рд┐рд╕реНрдЯрдо рдбрд┐рд╕реНрдЯреНрд░рд┐рдмреНрдпреБрд╢рдирдордзреНрдпреЗ рд╕реЗрд╡рд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХрд╛рдЪреА рд╡рд╛рдЯ рдкрд╛рд╣рдгрд╛рд▒реНрдпрд╛ рджреЛрди рд╕рдорд╕реНрдпрд╛.

рд╕рдорд╛рдВрддрд░ рдЧреЛрдВрдзрд│ (рдЧреЗрдп рд╡рд┐рд╖рдпрд╛рдВрддрд░)рд▓реЗрдирд╛рд░реНрдЯ рдкреЙрдЯрд░рд┐рдВрдЧрдиреЗ рд╕реНрд╡рддрдГрдЪрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЖрд╣реЗ systemd рдЦреБрдк рдЫрд╛рди. рдпрд╛ systemd рдЗрддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рдЗрддрдХреНрдпрд╛ рд▓рд╡рдХрд░ рд▓рд╛рдБрдЪ рдХрд░рддрд╛рдд рдХреА рддреНрдпрд╛рдВрдирд╛ рд░реЗрдлрд░реАрдЪреНрдпрд╛ рд╢рд┐рдЯреНрдЯреАрдЪреНрдпрд╛ рдзрдХреНрдХреНрдпрд╛рддреВрди рд╕рд╛рд╡рд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡реЗрд│ рдорд┐рд│рдд рдирд╛рд╣реА, рдЕрдбрдЦрд│рддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪрд╛ рдЕрдбрдерд│рд╛ рдорд╛рд░реНрдЧ рд╕реБрд░реВ рди рдХрд░рддрд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛рдЪ рдкрдбрддрд╛рдд.

рдкрд░рдВрддреБ рдЧрдВрднреАрд░рдкрдгреЗ, рд╕рд┐рд╕реНрдЯреАрдордб рдУрдПрд╕рдЪреНрдпрд╛ рд╕реБрд░реВрд╡рд╛рддреАрд╕ рд▓рд╛рдБрдЪ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреЗ рдЖрдХреНрд░рдордХ рд╕рдорд╛рдВрддрд░реАрдХрд░рдг рд╣рд╛ рдЕрдиреБрднрд╡реА рдЕрдиреБрдХреНрд░рдорд┐рдХ рдПрд▓рдПрд╕рдмреА рддрдЬреНрдЮрд╛рдВрд╕рд╛рдареА рдПрдХ рдкреНрд░рдХрд╛рд░рдЪрд╛ "рдЧрд╛рдврд╡ рдкреВрд▓" рдЖрд╣реЗ. рд╕реБрджреИрд╡рд╛рдиреЗ, рдпрд╛ "рд╕рдорд╛рдВрддрд░ рдЕрдирд╛рдЧреЛрдВрджреА" рдордзреНрдпреЗ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд╛ рдЖрдгрдгреЗ рд╕реЛрдкреЗ рд╣реЛрддреЗ, рдЬрд░реА рдиреЗрд╣рдореАрдЪ рд╕реНрдкрд╖реНрдЯ рдирд╕рддреЗ.

рдЖрдореНрд╣реА рд╕реНрдерд┐рд░ рдирд╛рд╡рд╛рдВрд╕рд╣ рджреЛрди рдЖрднрд╛рд╕реА рдмреНрд░рд┐рдЬ рдЗрдВрдЯрд░рдлреЗрд╕ рддрдпрд╛рд░ рдХрд░рддреЛ: рд▓реЗрди ╨╕ рд╡реЕрди. рдЖрдореНтАНрд╣реА рд╡рд╛рдп-рдлрд╛рдп рдЕрдбреЕрдкреНтАНрдЯрд░рд▓рд╛ рдкрд╣рд┐рд▓реНтАНрдпрд╛рд▓рд╛ рдЖрдгрд┐ eth0 "рд░рд╛рд╕реНрдкрдмреЗрд░реА" рджреБрд╕-рдпрд╛рд╢реА "рдХрдиреЗрдХреНрдЯ" рдХрд░реВ.

/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 рд╣рдЯрд╡рддреЛ, рд░рд╛рд╕реНрдкрдмреЗрд░реА рд░реАрдмреВрдЯ рдХрд░рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рд╡реЗрд╢ рдорд┐рд│рд╡рддреЛ (рдЖрдпрдкреА рдкрддреНрддрд╛ рдмрд╣реБрдзрд╛ рдмрджрд▓реЗрд▓):

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

5.DNSMASQ

рд╡рд╛рдп-рдлрд╛рдп рдНрдХреНрд╕реЗрд╕ рдкреЙрдИрдВрдЯ рдмрдирд╡рдгреНрдпрд╛рдХрд░рддрд╛, рдХрд╛рд╣реА рдЧреЛрдб рдЬреЛрдбреАрд▓рд╛ рдорд╛рдЧреЗ рдЯрд╛рдХрдд рдирд╛рд╣реА dnsmasq + рд╣реЛрд╕реНрдЯреЕрдкрдбреА рдЕрджреНрдпрд╛рдк рддреЗ рд╢реЛрдзреВрди рдХрд╛рдврд▓реЗ рдирд╛рд╣реА. рдорд╛рдЭреНрдпрд╛ рдорддреЗ.

рдЬрд░ рдХреЛрдгреА рд╡рд┐рд╕рд░рд▓реЗ рдЕрд╕реЗрд▓ рддрд░...рд╣реЛрд╕реНрдЯреЕрдкрдбреА - рд╣реА рдЕрд╢реА рдЧреЛрд╖реНрдЯ рдЖрд╣реЗ рдЬреА рд╡рд╛рдп-рдлрд╛рдп рдЕрдбреЕрдкреНрдЯрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ (рд╡рд┐рд╢реЗрд╖рддрдГ, рддреЗ рддреНрдпрд╛рдВрдирд╛ рдЖрднрд╛рд╕реАрд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдХрд╛рд│рдЬреА рдШреЗрдИрд▓ рд▓реЗрди "рд░рд╛рд╕реНрдкрдмреЗрд░реА"), рд╡рд╛рдпрд░рд▓реЗрд╕ рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рдЕрдзрд┐рдХреГрдд рдЖрдгрд┐ рдиреЛрдВрджрдгреАрдХреГрдд рдХрд░рддреЗ.

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

рдпреЗрдереЗ "рдЬрд╛рджреВ" рдкреЕрд░рд╛рдореАрдЯрд░рдордзреНрдпреЗ рдЖрд╣реЗ рдмрд╛рдЗрдВрдб-рдбрд╛рдпрдиреЕрдорд┐рдХ, рдЬреЗ dnsmasq рдбрд┐рдордирд▓рд╛ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рджрд┐рд╕реЗрдкрд░реНрдпрдВрдд рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдгреНрдпрд╛рд╕ рд╕рд╛рдВрдЧрддреЗ рдЗрдВрдЯрд░рдлреЗрд╕ = lan, рдЖрдгрд┐ рд╕реБрд░реБрд╡рд╛рддреАрдирдВрддрд░ рдЧрд░реНрд╡рд┐рд╖реНрда рдПрдХрд╛рдХреАрдкрдгрд╛рдореБрд│реЗ рдмреЗрд╣реЛрд╢ рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА.

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

6. HOSTAPD

рдЖрдгрд┐ рд╢реЗрд╡рдЯреА, рдореЕрдЬрд┐рдХ рд╣реЛрд╕реНрдЯреЕрдкрдбреА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди. рдиреЗрдордХреНрдпрд╛ рдпрд╛ рдЦрдЬрд┐рдирджрд╛рд░ рдУрд│реАрдВрдЪреНрдпрд╛ рд╢реЛрдзрд╛рдд рдХреЛрдгреАрддрд░реА рд╣рд╛ рд▓реЗрдЦ рд╡рд╛рдЪрдд рдЕрд╕реЗрд▓ рдпрд╛рдд рдорд▓рд╛ рд╢рдВрдХрд╛ рдирд╛рд╣реА.

hostapd рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рддреБрдореНрд╣рд╛рд▓рд╛ "рдПрдХрд░реВрдкрддрд╛ рд╕рдорд╕реНрдпрд╛" рджреВрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЕрдВрдЧрднреВрдд Wi-Fi рдЕрдбреЕрдкреНрдЯрд░ wlan0 рдЕрддрд┐рд░рд┐рдХреНрдд USB Wi-Fi рдЙрдкрдХрд░рдгреЗ рдЬреЛрдбрддрд╛рдирд╛ рддреНрдпрд╛рдЪреЗ рдирд╛рд╡ wlan1 рдордзреНрдпреЗ рд╕рд╣рдЬрдкрдгреЗ рдмрджрд▓реВ рд╢рдХрддреЗ. рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рдкреНрд░рдХрд╛рд░реЗ рдЗрдВрдЯрд░рдлреЗрд╕рдЪреА рдирд╛рд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВ: рдЖрдореНрд╣реА (рд╡рд╛рдпрд░рд▓реЗрд╕) рдЕрдбреЕрдкреНрдЯрд░реНрд╕рд╕рд╛рдареА рдЕрдирдиреНрдп рдирд╛рд╡реЗ рдЖрдгреВ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ MAC рдкрддреНрддреНрдпрд╛рдВрд╢реА рдЬреЛрдбреВ.

рдЕрдВрдЧрднреВрдд Wi-Fi рдЕрдбреЕрдкреНрдЯрд░рд╕рд╛рдареА, рдЬреЗ рдЕрджреНрдпрд╛рдк 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.

рд╕рд┐рд╕реНрдЯрдо рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрдордзреНрдпреЗ рд╣реЛрд╕реНрдЯреЕрдкрдбреА рд╕рдХреНрд╖рдо рдХрд░рдгреЗ рдмрд╛рдХреА рдЖрд╣реЗ. рдЬрд░ рддреБрдореНрд╣реА рдкреНрд░рдорд╛рдгрд┐рдд рдЧреЛрд╖реНрдЯ рдХреЗрд▓реА (systemctl enable hostapd), рддрд░ рдкреБрдврдЪреНрдпрд╛ рд░реАрдмреВрдЯрдирдВрддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдирд┐рджрд╛рдирд╛рд╕рд╣ "рд░рдХреНрддрд╛рдд рдлрд┐рд░рдгрд╛рд░рд╛ рд░рд╛рдХреНрд╖рд╕" рдорд┐рд│реЗрд▓.рдЗрдВрдЯрд░рдлреЗрд╕ wl0 рдЖрдврд│рд▓рд╛ рдирд╛рд╣реА" "рд╕рдорд╛рдВрддрд░ рдЕрдирд╛рдЧреЛрдВрджреА" рдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдореА, hostapd рдХрд░реНрдирд▓рд▓рд╛ рд╡рд╛рдпрд░рд▓реЗрд╕ рдЕрдбреЕрдкреНрдЯрд░ рд╕рд╛рдкрдбрд▓реНрдпрд╛рдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд╛рдиреЗ рд╕реБрд░реВ рдЭрд╛рд▓реЗ.

рдЗрдВрдЯрд░рдиреЗрдЯ рдЙрдкрд╛рдпрд╛рдВрдиреА рднрд░рд▓реЗрд▓реЗ рдЖрд╣реЗ: рдбрд┐рдорди (рдЕрдиреЗрдХ рдорд┐рдирд┐рдЯреЗ) рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╕рдХреНрддреАрдЪреНрдпрд╛ рдХрд╛рд▓рдмрд╛рд╣реНрдпрддреЗрдкрд╛рд╕реВрди рддреЗ рджреБрд╕рд░реНтАНрдпрд╛ рдбрд┐рдордирдкрд░реНрдпрдВрдд рдЬреЗ рдЗрдВрдЯрд░рдлреЗрд╕рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рдЖрдгрд┐ рд╣реЛрд╕реНрдЯрдкреЕрдб (рдкреБрдиреНрд╣рд╛) рд╕реБрд░реВ рдХрд░рддреЗ. рдЙрдкрд╛рдп рдЬреЛрд░рджрд╛рд░ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрд╣реЗрдд, рдкрд░рдВрддреБ рднрдпрд╛рдирдХ рдХреБрд░реВрдк рдЖрд╣реЗрдд. рдЖрдореНрд╣реА рдорджрддреАрд╕рд╛рдареА рдорд╣рд╛рди рд╡реНрдпрдХреНрддреАрд▓рд╛ рдХреЙрд▓ рдХрд░рддреЛ systemd рддреНрдпрд╛рдЪреНрдпрд╛ "рд▓рдХреНрд╖реНрдпреЗ" рдЖрдгрд┐ "рдХрд╛рд░реНрдпреЗ" рдЖрдгрд┐ "рдЕрд╡рд▓рдВрдмрди" рд╕рд╣.

рд╡рд┐рддрд░рдг рд╕реЗрд╡рд╛ рдлрд╛рдЗрд▓ рдпреЗрдереЗ рдХреЙрдкреА рдХрд░рд╛ /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

рдЕрдкрдбреЗрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдлрд╛рдИрд▓рдЪреА рдЬрд╛рджреВ рдирд╡реАрди рд▓рдХреНрд╖реНрдп - wl0 рдЗрдВрдЯрд░рдлреЗрд╕рд╢реА hostapd рдЪреНрдпрд╛ рдбрд╛рдпрдиреЕрдорд┐рдХ рдмрд╛рдЗрдВрдбрд┐рдВрдЧрдордзреНрдпреЗ рдЖрд╣реЗ. рдЬреЗрд╡реНрд╣рд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рджрд┐рд╕рддреЛ, рддреЗрд╡реНрд╣рд╛ рдбрд┐рдорди рд╕реБрд░реВ рд╣реЛрддреЛ; рдЬреЗрд╡реНрд╣рд╛ рддреЗ рдЕрджреГрд╢реНрдп рд╣реЛрддреЗ, рддреЗрд╡реНрд╣рд╛ рддреЗ рдерд╛рдВрдмрддреЗ. рдЖрдгрд┐ рд╣реЗ рд╕рд░реНрд╡ рдСрдирд▓рд╛рдЗрди рдЖрд╣реЗ - рд╕рд┐рд╕реНрдЯрдо рд░реАрдмреВрдЯ рди тАЛтАЛрдХрд░рддрд╛. рдпреВрдПрд╕рдмреА рд╡рд╛рдп-рдлрд╛рдп рдЕреЕрдбреЙрдкреНрдЯрд░рд▓рд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реАрд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛рдирд╛ рд╣реЗ рддрдВрддреНрд░ рд╡рд┐рд╢реЗрд╖рддрдГ рдЙрдкрдпреБрдХреНрдд рдард░реЗрд▓.

рдЖрддрд╛ рдЖрдкрдг рд╣реЗ рдХрд░реВ рд╢рдХрддрд╛:

# systemctl enable hostapd
# reboot

7. IPTABLES

"рдХрд╛рдп???" ┬й рд╣реЛрдп, рд╣реЛрдп! рдХрд╛рд╣реАрд╣реА рдирд╛рд╣реА systemd. рдирд╡реАрди рдлреЕрдиреНрдЧрд▓реНрдб рдХреЙрдореНрдмрд┐рди рдирд╛рд╣реАрдд (рдлреЙрд░реНрдордордзреНрдпреЗ рдлрд╛рдпрд░рд╡рд╛рд▓рд▓реНрдб), рдЬреЗ рд╢реЗрд╡рдЯреА рд╕рдорд╛рди рдЧреЛрд╖реНрдЯ рдХрд░рддрд╛рдд.

рдЪрд╛рдВрдЧрд▓реЗ рдЬреБрдиреЗ рд╡рд╛рдкрд░реВ 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

рдЬреЗрд╡реНрд╣рд╛ рдореА рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реЗ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рд╡рд╛рдкрд░реВрди рдкрд╣рд┐рд▓реЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рд░рд╛рдЙрдЯрд░ рдПрдХрддреНрд░ рдХреЗрд▓реЗ, рддреЗрд╡реНрд╣рд╛ рдорд▓рд╛ рдорд╛рдЭреНрдпрд╛ рдШрд░рд╛рддреАрд▓ рдЕрдиреЗрдХ рдЧреЕрдЭреЗрдЯ рд╕рд╛рдкрдбрд▓реЗ рдЬреЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд╛рдп-рдлрд╛рдп рдбрд┐рдЭрд╛рдЗрди рдорд░реНрдпрд╛рджрд╛рдВрдореБрд│реЗ тАЬрд░рд╛рд╕реНрдкрдмреЗрд░реАтАЭ рдЕрдЬрд┐рдмрд╛рдд рдкрд╛рд╣реВ рд╢рдХрдд рдирд╛рд╣реАрдд. 802.11b/g/n рдордзреНтАНрдпреЗ рдХрд╛рдо рдХрд░рдгреНтАНрдпрд╛рд╕рд╛рдареА рд░рд╛рдЙрдЯрд░рдЪреА рдкреБрдиреНтАНрд╣рд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНтАНрдпрд╛рдЪреА рдЦреЗрд│реА рдирд╛рд╣реА, рдХрд╛рд░рдг рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд "рд╣рд╡реЗрд╡рд░" рдХрдорд╛рд▓ рдЧрддреА 40 Mbit рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдирд╛рд╣реА рдЖрдгрд┐ рдорд╛рдЭрд╛ рдЖрд╡рдбрддрд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкреНрд░рджрд╛рддрд╛ рдорд▓рд╛ 100 (рдХреЗрдмрд▓рджреНрд╡рд╛рд░реЗ) рдСрдлрд░ рдХрд░рддреЛ.

рдЦрд░рдВ рддрд░, рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдЖрдзреАрдЪ рд╢реЛрдзрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ: 2,4 рдЧреАрдЧрд╛рд╣рд░реНрдЯреНрдЭрдЪреНрдпрд╛ рд╡рд╛рд░рдВрд╡рд╛рд░рддреЗрд╡рд░ рдХрд╛рд░реНрдпрд░рдд рджреБрд╕рд░рд╛ рд╡рд╛рдп-рдлрд╛рдп рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрдгрд┐ рджреБрд╕рд░рд╛ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреВ. рдЬрд╡рд│рдЪреНрдпрд╛ рд╕реНрдЯреЙрд▓рд╡рд░ рдореА рдкрд╣рд┐рд▓реА рдирд╛рд╣реА рддрд░ рджреБрд╕рд░реА USB Wi-Fi тАЬрд╢реАрд│тАЭ рд╡рд┐рдХрдд рдШреЗрддрд▓реА. рдЪрд┐рдкрд╕реЗрдЯ, рдПрдЖрд░рдПрдо рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓рд╢реА рд╕реБрд╕рдВрдЧрддрддрд╛ рдЖрдгрд┐ рдПрдкреА рдореЛрдбрдордзреНрдпреЗ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ (рддреЛ рд╕реБрд░реВ рдХрд░рдгрд╛рд░рд╛ рддреЛ рдкрд╣рд┐рд▓рд╛ рд╣реЛрддрд╛) рдпрд╛рд╡рд┐рд╖рдпреАрдЪреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рдВрдиреА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд▓рд╛ рдЫрд│рд▓реЗ.

рдЖрдореНрд╣реА рдЕрдВрдЧрднреВрдд рд╡рд╛рдп-рдлрд╛рдп рдЕреЕрдбреЙрдкреНрдЯрд░рдЪреНрдпрд╛ рд╕рд╛рджреГрд╢реНрдпрд╛рдиреЗ тАЬрд╢рд┐рдЯреНрдЯреАтАЭ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рддреЛ.

рдкреНрд░рдердо, рддреНрдпрд╛рдЪреЗ рдирд╛рд╡ рдмрджрд▓реВрдпрд╛ 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

рдЖрдореНрд╣реА рдирд╡реАрди рд╡рд╛рдп-рдлрд╛рдп рдЗрдВрдЯрд░рдлреЗрд╕рдЪреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╡реЗрдЧрд│реНрдпрд╛ hostapd рдбрд┐рдордирд╡рд░ рд╕реЛрдкрд╡реВ, рдЬреЛ рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рдХрд╛рдЯреЗрдХреЛрд░рдкрдгреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд тАЬрд╢рд┐рдЯреНрдЯреАтАЭ рдЪреНрдпрд╛ рдЙрдкрд╕реНрдерд┐рддреАрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рд╕реБрд░реВ рд╣реЛрдИрд▓ рдЖрдгрд┐ рдерд╛рдВрдмреЗрд▓: 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 рд╡рд╛рдп-рдлрд╛рдп рдЕреЕрдбреЙрдкреНрдЯрд░рдЪреНрдпрд╛ рдореЙрдбреЗрд▓рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ, рддреНрдпрд╛рдореБрд│реЗ рдмреЕрдирд▓ рдХреЙрдкреА/рдкреЗрд╕реНрдЯ рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдК рд╢рдХрддреЗ.

рд╡рд┐рддрд░рдг рд╕реЗрд╡рд╛ рдлрд╛рдЗрд▓ рдпреЗрдереЗ рдХреЙрдкреА рдХрд░рд╛ /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

рдЗрддрдХрдВрдЪ! тАЬрд╢рд┐рдЯреНрдЯреАтАЭ рдЖрдгрд┐ тАЬрд░рд╛рд╕реНрдкрдмреЗрд░реАтАЭ рд╕реНрд╡рддрдГрдЪ рдЦреЗрдЪрд╛, рдЖрдкрд▓реНрдпрд╛ рд╕рднреЛрд╡рддрд╛рд▓рдЪреНрдпрд╛ рд╡рд╛рдпрд░рд▓реЗрд╕ рдиреЗрдЯрд╡рд░реНрдХрдХрдбреЗ рдкрд╣рд╛.

рдЖрдгрд┐ рд╢реЗрд╡рдЯреА, рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рдпреВрдПрд╕рдмреА рд╡рд╛рдп-рдлрд╛рдп рдЕреЕрдбреЙрдкреНрдЯрд░рдЪреНрдпрд╛ рдЧреБрдгрд╡рддреНрддреЗрдмрджреНрджрд▓ рдЖрдгрд┐ рд░рд╛рд╕реНрдкрдмреЗрд░реАрдЪреНрдпрд╛ рд╡реАрдЬ рдкреБрд░рд╡рдареНрдпрд╛рдмрджреНрджрд▓ рдЪреЗрддрд╛рд╡рдгреА рджреЗрдК рдЗрдЪреНрдЫрд┐рддреЛ. рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ "рд╣реЙрдЯ рд╡реНрд╣рд┐рд╕рд▓" рдХрдзреАрдХрдзреА рдЕрд▓реНрдкрдХрд╛рд▓реАрди рд╡рд┐рджреНрдпреБрдд рд╕рдорд╕реНрдпрд╛рдВрдореБрд│реЗ "рд░рд╛рд╕реНрдкрдмреЗрд░реА рдлреНрд░реАрдЭрд┐рдВрдЧ" рд╣реЛрдК рд╢рдХрддреЗ.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛