рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдПрдирдПрдПрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ , NAS рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред


рдирд┐рд░реАрдХреНрд╖рдг


рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд▓ рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреА рдЬрд╛рдВрдЪ рдЕрд╡рд╢реНрдп рдХрд░реЗрдВ:


zpool status -v 

рдкреВрд▓ рдФрд░ рдЗрд╕рдореЗрдВ рд╕рднреА рдбрд┐рд╕реНрдХ рдСрдирд▓рд╛рдИрди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рд╕рдм рдХреБрдЫ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдЖрдк рдЦреБрдж рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред


рд╕реБрд╡рд┐рдзрд╛


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдпрджрд┐ рдЖрдкрдиреЗ рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:


  • SSH рд╕рд░реНрд╡рд░: apt-get install openssh-server ред рдпрджрд┐ рдЖрдк SSH рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓рд┐рдирдХреНрд╕ рдкрд░ NAS рдХрд░рдирд╛ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣реИ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдХрд┐рд╕реА рдПрдХ рдореИрдиреБрдЕрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • tmux рдпрд╛ рд╕реНрдХреНрд░реАрди : apt-get install tmux ред SSH рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╕рдордп рд╕рддреНрд░ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХрдИ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

SSH рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ SSH рдХреЛ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдЗрди рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЗрдирдкреБрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ):


 zfs create rpool/home/user adduser user cp -a /etc/skel/.[!.]* /home/user chown -R user:user /home/user 

рджреВрд░рд╕реНрде рдкреНрд░рд╢рд╛рд╕рди рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдиреНрдпреВрдирддрдо рд╣реИред


рдлрд┐рд░ рднреА, рдЬрдмрдХрд┐ рдЖрдкрдХреЛ рдХреАрдмреЛрд░реНрдб рдФрд░ рдореЙрдирд┐рдЯрд░ рдХреЛ рдХрдиреЗрдХреНрдЯ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд░реНрдиреЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рд░реАрдмреВрдЯ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рдм рдХреБрдЫ рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред


рд╡рд░реНрдЪреБрдЕрд▓ KVM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЬреЛ IME рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╡рд╣рд╛рдВ рдПрдХ рдХрдВрд╕реЛрд▓ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕реЗ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред


рд╕рдорд╛рдпреЛрдЬрди


рдХреИрд╢ рдХреА рддреИрдпрд╛рд░реА


рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ, рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ L2ARC рдХреЗ рддрд╣рдд рдПрдХ рдЕрд▓рдЧ SSD рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрднреА рддрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди "рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП" рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рд╡реИрдХрд▓реНрдкрд┐рдХ, рд▓реЗрдХрд┐рди рдЗрд╕ SSD рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рднрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ (рд╕реИрдорд╕рдВрдЧ EVO рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ blkdiscard рдХреЗ рдмрд╛рдж рд╢реВрдиреНрдп рд╕реЗ рднрд░рд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рднреА SSD рдкрд░ рд╡реИрд╕реЗ рднреА рдирд╣реАрдВ):


 dd if=/dev/urandom of=/dev/disk/by-id/ata-Samsung_SSD_850_EVO bs=4M && blkdiscard /dev/disk/by-id/ata-Samsung_SSD_850_EVO 

рд▓реЙрдЧ рд╕рдВрдкреАрдбрд╝рди рдЕрдХреНрд╖рдо рдХрд░рдирд╛


рдЬреЗрдбрдПрдлрдПрд╕ рдкрд░, рд╕рдВрдкреАрдбрд╝рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЧрдЬрд╝рд┐рдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧ рд╕рдВрдкреАрдбрд╝рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдирджрд╛рд░ рд╣реЛрдЧрд╛ред
рдмрдВрдж рдХрд░реЗрдВ:


 for file in /etc/logrotate.d/* ; do if grep -Eq "(^|[^#y])compress" "$file" ; then sed -i -r "s/(^|[^#y])(compress)/\1#\2/" "$file" fi done 

рд╕рд┐рд╕реНрдЯрдо рдЕрдкрдбреЗрдЯ


рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ:


 apt-get dist-upgrade --yes reboot 

рдПрдХ рдирдП рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛рдирд╛


рд░реАрдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдирдИ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛:


 zfs destroy rpool/ROOT/debian@install zfs snapshot rpool/ROOT/debian@install 

рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрдЧрдарди


SLOG рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрди


рд╕рд╛рдорд╛рдиреНрдп рдЬреЗрдбрдПрдлрдПрд╕ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрд╕рдПрд▓рдУрдЬреА рдХреЛ рдПрд╕рдПрд╕рдбреА рдкрд░ рд░рдЦрд╛ рдЬрд╛рдПред
рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ SLOG рджреЛ SSDs рдкрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИ: рдЗрд╕рдХреЗ рд▓рд┐рдП, LUKS-XTS рдкрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдкреНрд░рддреНрдпреЗрдХ SSD рдХреЗ рдЪреМрдереЗ рдЦрдВрдб рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ:


 dd if=/dev/urandom of=/etc/keys/slog.key bs=1 count=4096 cryptsetup --verbose --cipher "aes-xts-plain64:sha512" --key-size 512 --key-file /etc/keys/slog.key luksFormat /dev/disk/by-id/ata-Samsung_SSD_850_PRO-part4 cryptsetup --verbose --cipher "aes-xts-plain64:sha512" --key-size 512 --key-file /etc/keys/slog.key luksFormat /dev/disk/by-id/ata-Micron_1100-part4 echo "slog0_crypt1 /dev/disk/by-id/ata-Samsung_SSD_850_PRO-part4 /etc/keys/slog.key luks,discard" >> /etc/crypttab echo "slog0_crypt2 /dev/disk/by-id/ata-Micron_1100-part4 /etc/keys/slog.key luks,discard" >> /etc/crypttab 

L2ARC рдФрд░ рд╕реНрд╡реИрдк рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрди


рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╕реНрд╡реИрдк рдФрд░ l2arc рдХреЗ рддрд╣рдд рд╡рд┐рднрд╛рдЬрди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


 sgdisk -n1:0:48G -t1:8200 -c1:part_swap -n2::196G -t2:8200 -c2:part_l2arc /dev/disk/by-id/ata-Samsung_SSD_850_EVO 

рд╕реНрд╡реИрдк рд╡рд┐рднрд╛рдЬрди рдФрд░ L2ARC рдХреЛ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреБрдВрдЬреА рдкрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдХреНрд░рд┐рдкреНрдЯреИрдм рдореЗрдВ, рд╕рд╛рджреЗ рдореЛрдб рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ / рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдВрдХреНрддрд┐ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ:


 echo swap_crypt /dev/disk/by-id/ata-Samsung_SSD_850_EVO-part1 /dev/urandom swap,cipher=aes-xts-plain64:sha512,size=512 >> /etc/crypttab echo l2arc_crypt /dev/disk/by-id/ata-Samsung_SSD_850_EVO-part2 /dev/urandom cipher=aes-xts-plain64:sha512,size=512 >> /etc/crypttab 

рдлрд┐рд░ рдЖрдкрдХреЛ рдбреЗрдореЙрди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рд╕реНрд╡реИрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


 echo 'vm.swappiness = 10' >> /etc/sysctl.conf sysctl vm.swappiness=10 systemctl daemon-reload systemctl start systemd-cryptsetup@swap_crypt.service echo /dev/mapper/swap_crypt none swap sw,discard 0 0 >> /etc/fstab swapon -av 

рдХреНрдпреЛрдВрдХрд┐ рдПрд╕рдПрд╕рдбреА рдкрд░ swapiness рдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, swapiness рдкреИрд░рд╛рдореАрдЯрд░, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 60 рд╣реИ, рдХреЛ 10 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


L2ARC рдХрд╛ рдЕрднреА рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдиреБрднрд╛рдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдпрд╛рд░ рд╣реИ:


 $ ls /dev/mapper/ control l2arc_crypt root_crypt1 root_crypt2 slog0_crypt1 slog0_crypt2 swap_crypt tank0_crypt0 tank0_crypt1 tank0_crypt2 tank0_crypt3 

рддрд╛рд▓ рдЯреИрдВрдХ


tank0 рдкреВрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, tank1 рдХреЛ рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╡рд┐рднрд╛рдЬрди рдирд╣реАрдВ рдмрдирд╛рдиреЗ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреВрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╡рд┐рднрд╛рдЬрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рд╣реИ:


create_crypt_pool.sh
 #!/bin/bash KEY_SIZE=512 POOL_NAME="$1" KEY_FILE="/etc/keys/${POOL_NAME}.key" LUKS_PARAMS="--verbose --cipher aes-xts-plain64:sha${KEY_SIZE} --key-size $KEY_SIZE" [ -z "$1" ] && { echo "Error: pool name empty!" ; exit 1; } shift [ -z "$*" ] && { echo "Error: devices list empty!" ; exit 1; } echo "Devices: $*" read -p "Is it ok? " a [ "$a" != "y" ] && { echo "Bye"; exit 1; } dd if=/dev/urandom of=$KEY_FILE bs=1 count=4096 phrase="?" read -s -p "Password: " phrase echo read -s -p "Repeat password: " phrase1 echo [ "$phrase" != "$phrase1" ] && { echo "Error: passwords is not equal!" ; exit 1; } echo "### $POOL_NAME" >> /etc/crypttab index=0 for i in $*; do echo "$phrase"|cryptsetup $LUKS_PARAMS luksFormat "$i" || exit 1 echo "$phrase"|cryptsetup luksAddKey "$i" $KEY_FILE || exit 1 dev_name="${POOL_NAME}_crypt${index}" echo "${dev_name} $i $KEY_FILE luks" >> /etc/crypttab cryptsetup luksOpen --key-file $KEY_FILE "$i" "$dev_name" || exit 1 index=$((index + 1)) done echo "###" >> /etc/crypttab phrase="=====================================================" phrase1="=================================================" unset phrase unset phrase1 

рдЕрдм, рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


 ./create_crypt_pool.sh zpool create -o ashift=12 -O atime=off -O compression=lz4 -O normalization=formD tank0 raidz1 /dev/disk/by-id/dm-name-tank0_crypt* 

ashift=12 рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рдиреЛрдЯреНрд╕ рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдФрд░ рдЙрди рдкрд░ рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВред


рдкреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ SSD рдкрд░ рдЕрдкрдирд╛ рд▓реЙрдЧ рдЖрдЙрдЯ рдХрд┐рдпрд╛:


 zpool add tank0 log mirror /dev/disk/by-id/dm-name-slog0_crypt1 /dev/disk/by-id/dm-name-slog0_crypt2 

рднрд╡рд┐рд╖реНрдп рдореЗрдВ, OMV рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреЗ рд╕рд╛рде, GUI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреВрд▓ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛:


ZFS рдирд┐рд░реНрдорд╛рдг OMV WEB GUI рдореЗрдВ рдЧрд┐рд░ рдЧрдпрд╛


рдкреВрд▓ рдореЗрдВ рдкреВрд▓ рдЖрдпрд╛рдд рдФрд░ рдСрдЯреЛ-рдорд╛рдЙрдВрдЯ рд╡реЙрд▓реНрдпреВрдо рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛


рдСрдЯреЛ-рдорд╛рдЙрдВрдЯ рдкреВрд▓ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВ:


 rm /etc/zfs/zpool.cache systemctl enable zfs-import-scan.service systemctl enable zfs-mount.service systemctl enable zfs-import-cache.service 

рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдбрд┐рд╕реНрдХ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред


рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо


рдПрдирдПрдПрд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдиреАрдВрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдПрдорд╡реА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдХрджрдо рд╣реИред


OMV рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


OMV рдХреЛ рдПрдХ рдбрд┐рдмреЗрдЯ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред


add_repo.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ OMV Arrakis рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ /etc/apt/ sources.list.d add_repo.sh рдЬреЛрдбрд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдмреИрдЪ рд╕рд┐рд╕реНрдЯрдо рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред


add_repo.sh
 cat <<EOF >> /etc/apt/sources.list.d/openmediavault.list deb http://packages.openmediavault.org/public arrakis main # deb http://downloads.sourceforge.net/project/openmediavault/packages arrakis main ## Uncomment the following line to add software from the proposed repository. # deb http://packages.openmediavault.org/public arrakis-proposed main # deb http://downloads.sourceforge.net/project/openmediavault/packages arrakis-proposed main ## This software is not part of OpenMediaVault, but is offered by third-party ## developers as a service to OpenMediaVault users. deb http://packages.openmediavault.org/public arrakis partner # deb http://downloads.sourceforge.net/project/openmediavault/packages arrakis partner EOF 

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореВрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рднрд╛рдЧреАрджрд╛рд░ рднрдВрдбрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИред


рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ рдЪрд▓рд╛рдиреЗ рд╣реЛрдВрдЧреЗред


рдУрдПрдорд╡реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ред
 ./add_repo.sh export LANG=C export DEBIAN_FRONTEND=noninteractive export APT_LISTCHANGES_FRONTEND=none apt-get update apt-get --allow-unauthenticated install openmediavault-keyring apt-get update apt-get --yes --auto-remove --show-upgraded \ --allow-downgrades --allow-change-held-packages \ --no-install-recommends \ --option Dpkg::Options::="--force-confdef" \ --option DPkg::Options::="--force-confold" \ install postfix openmediavault # Initialize the system and database. omv-initsystem 

OMV рд╕реНрдерд╛рдкрд┐рддред рдпрд╣ рдЕрдкрдиреЗ рдХрд░реНрдиреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж рд░рд┐рдмреВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред


рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, OpenMediaVault рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреЛрд░реНрдЯ 80 рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ (IP рдкрддреЗ рджреНрд╡рд╛рд░рд╛ NAS рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдЬрд╛рдПрдВ):



рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо / рдкрд╛рд╕рд╡рд░реНрдб admin/openmediavault ред


OMV рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдиреНрдпрд╛рд╕ WEB-GUI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдЧрд╛ред


рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рдЕрдм рдЖрдкрдХреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ HTTPS рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП WEB рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдиреЗ рдФрд░ NAS рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдкрд╛рд╕рд╡рд░реНрдб рдЯреИрдм рдкрд░ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ "рд╕рд┐рд╕реНрдЯрдо-> рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕-> рд╡реЗрдм рдкреНрд░рд╢рд╛рд╕рдХ рдкрд╛рд╕рд╡рд░реНрдб" ред
рдЯреИрдм рдкрд░ рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╕рд┐рд╕реНрдЯрдо-> рдкреНрд░рдорд╛рдг рдкрддреНрд░-> рдПрд╕рдПрд╕рдПрд▓", "рдРрдб-> рдХреНрд░рд┐рдПрдЯ" рдЪреБрдиреЗрдВ ред


рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЙрд╕реА рдЯреИрдм рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:


рдкреНрд░рдорд╛рдгрдкрддреНрд░


рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, "рд╕рд┐рд╕реНрдЯрдо-> рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕" рдЯреИрдм рдкрд░, "рд╕рдХреНрд╖рдо рдПрд╕рдПрд╕рдПрд▓ / рдЯреАрдПрд▓рдПрд╕" рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ ред


рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреВрд░реНрдг рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг OMV рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред


рдЕрдм рдЖрдкрдХреЛ 443 рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OMV рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд░ рдореЗрдВ рдЖрдИрдкреА рдореЗрдВ https:// рдкреНрд░реАрдлрд┐рдХреНрд╕ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред


рдпрджрд┐ рдЖрдк рдЯреИрдм "рд╕рд┐рд╕реНрдЯрдо-> рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕" рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рддреЛ рдЖрдкрдХреЛ "рдлреЛрд░реНрд╕ рдПрд╕рдПрд╕рдПрд▓ / рдЯреАрдПрд▓рдПрд╕" рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред


рдкреЛрд░реНрдЯ 80 рдФрд░ 443 рдХреЛ 10080 рдФрд░ 10443 рдореЗрдВ рдмрджрд▓реЗрдВ ред
рдФрд░ рдирд┐рдореНрди рдкрддреЗ рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: https://IP_NAS:10443 ред
рдкреЛрд░реНрдЯ рдмрджрд▓рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреЛрд░реНрдЯ 80 рдФрд░ 443 рдирдЧрдиреЗрдХреНрд╕-рд░рд┐рд╡рд░реНрд╕-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде рдбреЙрдХ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред


рдкреНрд░рд╛рдердорд┐рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕


рдиреНрдпреВрдирддрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЬреЛ рдкрд╣рд▓реЗ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП:


  • рдЯреИрдм рдкрд░ "рд╕рд┐рд╕реНрдЯрдо-> рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп" рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдорд╛рди рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдФрд░ рдПрдирдЯреАрдкреА рд╕рд░реНрд╡рд░ рд╕реЗрдЯ рдХрд░реЗрдВред
  • рдЯреИрдм рдкрд░ "рд╕рд┐рд╕реНрдЯрдо-> рдирд┐рдЧрд░рд╛рдиреА" рдкреНрд░рджрд░реНрд╢рди рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред
  • рдЯреИрдм "рд╕рд┐рд╕реНрдЯрдо-> рдПрдирд░реНрдЬреА рдореИрдиреЗрдЬрдореЗрдВрдЯ" рдкрд░ рдпрд╣ рд╕рдВрднрд╡рдд: "рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ" рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рддрд╛рдХрд┐ рдУрдПрдорд╡реА рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗред

рдиреЗрдЯрд╡рд░реНрдХ


рдпрджрд┐ рджреВрд╕рд░рд╛ NAS рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрднреА рддрдХ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рддреЛ рдЗрд╕реЗ рд░рд╛рдЙрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред


рддреЛ:


  • "рд╕рд┐рд╕реНрдЯрдо-> рдиреЗрдЯрд╡рд░реНрдХ" рдЯреИрдм рдкрд░, рд╣реЛрд╕реНрдЯ рдирд╛рдо рдХреЛ "рдПрдирдПрдПрд╕" (рдпрд╛ рдЬреЛ рднреА рдЖрдкрдХреЛ рдкрд╕рдВрдж рд╣реИ) рд╕реЗрдЯ рдХрд░реЗрдВред
  • рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдП рдмреЙрдиреНрдбрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░реЗрдВ: "рд╕рд┐рд╕реНрдЯрдо-> рдиреЗрдЯрд╡рд░реНрдХ-> рдЗрдВрдЯрд░рдлреЗрд╕- > рдРрдб-> рдмреЙрдиреНрдб" ред
  • рдЯреИрдм рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ "рд╕рд┐рд╕реНрдЯрдо-> рдиреЗрдЯрд╡рд░реНрдХ-> рдлрд╝рд╛рдпрд░рд╡реЙрд▓" ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, SSH рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯреНрд╕ 10443, 10080, 443, 80, 22 рддрдХ рдкрд╣реБрдВрдЪ рдФрд░ ICMP рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ / рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛


рдирддреАрдЬрддрди, рд╕рдВрдмрдВрдз рдореЗрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рд░рд╛рдЙрдЯрд░ рдХреЛ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рдЖрдИрдкреА рдкрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдЧрд╛:


рдмреЙрдиреНрдбрд┐рдВрдЧ рдХрд╛ рджрд╛рдпрд░рд╛


рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдПрд╕рдПрд╕рдмреА рдХреЛ рд╡реЗрдм GUI рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ:


Ssh рдиреЗрд╣рд░реВ


рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдФрд░ рдореЙрдбреНрдпреВрд▓


рдЯреИрдм рдкрд░ "рд╕рд┐рд╕реНрдЯрдо-> рдЕрдкрдбреЗрдЯ рдкреНрд░рдмрдВрдзрди-> рд╕реЗрдЯрд┐рдВрдЧ" "рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдЕрдкрдбреЗрдЯ " рдЪрд╛рд▓реВ рдХрд░реЗрдВред


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, OMV рдПрдХреНрд╕рдЯреНрд░рд╛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЬреЛрдбрд╝реЗрдВред
рдпрд╣ рдмрд╕ рдкреНрд▓рдЧрдЗрди рдпрд╛ рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдордВрдЪ рдкрд░ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


"рд╕рд┐рд╕реНрдЯрдо-> рдкреНрд▓рдЧрдЗрдиреНрд╕" рдкреГрд╖реНрда рдкрд░ рдЖрдкрдХреЛ "рдУрдкрдирдореАрдбрд┐рдпрд╛рдореВрд▓реНрдЯ-рдСрд╕реНрд╡реЗрдХреНрд╕реНрдЯреНрд░рд╛рд╕реЙрд░реНрдЧ" рдкреНрд▓рдЧрдЗрди рдЦреЛрдЬрдиреЗ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рд┐рд╕реНрдЯрдо рдореЗрдиреВ рдореЗрдВ "рдУрдПрдорд╡реА-рдПрдХреНрд╕реНрдЯреНрд░рд╛" рдЖрдЗрдХрди рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ (рдЗрд╕реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред


рд╡рд╣рд╛рдВ рдЬрд╛рдПрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ:


  • OMV-Extras.orgред рдПрдХ рд╕реНрдерд┐рд░ рднрдВрдбрд╛рд░ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реЛрддреЗ рд╣реИрдВред
  • OMV-Extras.org рдЯреЗрд╕реНрдЯрд┐рдВрдЧред рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдХреБрдЫ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕реНрдерд┐рд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред
  • рдбреЙрдХрд░ рд╕реАрдИред рджрд░рдЕрд╕рд▓, рдбреЙрдХрд░ред

рдЯреИрдм рдкрд░ "рд╕рд┐рд╕реНрдЯрдо-> OMV рдПрдХреНрд╕рдЯреНрд░рд╛-> рдХрд░реНрдиреЗрд▓" рдЖрдк рдЕрдкрдиреА рдЬрд░реВрд░рдд рдХрд╛ рдХрд░реНрдиреЗрд▓ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ Proxmox рд╕реЗ рдХрд░реНрдиреЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИ (рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ:



рдЖрд╡рд╢реНрдпрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ ( рдЗрдЯреИрд▓рд┐рдХ рдореЗрдВ рдмреЛрд▓реНрдб рдмрд┐рд▓реНрдХреБрд▓ рдЖрд╡рд╢реНрдпрдХ - рд╡реИрдХрд▓реНрдкрд┐рдХ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ):


рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рд╕реВрдЪреАред
  • openmediavault-apttoolред рдмреИрдЪ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдЬреАрдпреВрдЖрдИред "рд╕реЗрд╡рд╛рдПрдБ-> Apttool" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • openmediavault-anacronред рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрд╕реВрдЪрдХ рдХреЗ рд╕рд╛рде рдЬреАрдпреВрдЖрдИ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред "рд╕рд┐рд╕реНрдЯрдо-> рдПрдирд╛рдХреНрд░реЙрди" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • openmediavault-рдмреИрдХрдЕрдкред рднрдВрдбрд╛рд░рдг рдореЗрдВ рдмреИрдХрдЕрдк рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдПрдХ рдкреЗрдЬ рдЬреЛрдбрд╝рддрд╛ рд╣реИ "рд╕рд┐рд╕реНрдЯрдо-> рдмреИрдХрдЕрдк" ред
  • openmediavault-diskstatsред рдбрд┐рд╕реНрдХ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  • openmediavault-dnsmasq рдЖрдкрдХреЛ NAS рдкрд░ DNS рд╕рд░реНрд╡рд░ рдФрд░ DHCP рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рд░рд╛рдЙрдЯрд░ рдкрд░ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
  • openmediavault-docker-gui ред рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдкреНрд░рдмрдВрдзрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред "рд╕реЗрд╡рд╛-> рдбреЙрдХрдЯрд░" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • openmediavault-ldap LDAP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред "рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рдмрдВрдзрди -> рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗрд╡рд╛" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • openmediavault-letencrypt ред GUI рд╕реЗ рдПрдирдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирдЧреНрдиреЗрдХреНрд╕-рд░рд┐рд╡рд░реНрд╕-рдкреНрд░реЙрдХреНрд╕реА рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
  • openmediavault-luksenc рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди ред LUKS рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕рдорд░реНрдердиред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдбрд┐рд╕реНрдХ рдУрдПрдорд╡реА рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗред "рд╕рдВрдЧреНрд░рд╣рдг-> рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • openmediavault-nut ред рдпреВрдкреАрдПрд╕ рдХрд╛ рд╕рдорд░реНрдердиред " рд╕реЗрд╡рд╛- > рдпреВрдкреАрдПрд╕" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • openmediavault-omvextrasorg рдУрдПрдорд╡реА рдПрдХреНрд╕рдЯреНрд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  • openmediavault-resetpermsред рдЖрдкрдХреЛ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╕рд╛рдЭрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдкрд░ рдкрд╣реБрдВрдЪ рдирд┐рдпрдВрддреНрд░рдг рд╕реВрдЪреА рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред "рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдг -> рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ -> рд░реАрд╕реЗрдЯ рдЕрдиреБрдорддрд┐рдпрд╛рдБ" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • openmediavault рдорд╛рд░реНрдЧред рд░реВрдЯрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдкреНрд▓рдЧрдЗрдиред "рд╕рд┐рд╕реНрдЯрдо-> рдиреЗрдЯрд╡рд░реНрдХ-> рд╕реНрдЯреЗрдЯрд┐рдХ рд░реВрдЯ" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • openmediavault-рд╕рд┐рдорд▓рд┐рдВрдХред рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдкреГрд╖реНрда рдХреЛ "рд╕реЗрд╡рд╛-> рдкреНрд░рддреАрдХ" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • openmediavault-unionfilesystemsред UnionFS рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд╛рдо рдЖ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдбреЙрдХрдЯрд░ рдПрдХ рдмреИрдХреЗрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ ZFS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред "рд╕рдВрдЧреНрд░рд╣рдг-> рд╕рдВрдШ рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • openmediavault-virtualbox ред рдпрд╣ GUI рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкреНрд░рдмрдВрдзрди рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • openmediavault-zfs ред рдкреНрд▓рдЧрдЗрди OpenMediaVault рдореЗрдВ ZFS рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, "рд╕рдВрдЧреНрд░рд╣рдг-> ZFS" рдкреГрд╖реНрда рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рдбрд┐рд╕реНрдХ


рд╕рднреА рдбрд┐рд╕реНрдХ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдУрдПрдорд╡реА рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред "рд╕рдВрдЧреНрд░рд╣рдг-> рдбрд┐рд╕реНрдХ" рдЯреИрдм рдХреЛ рджреЗрдЦрдХрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред рдпрджрд┐ рд╕рднреА рдбрд┐рд╕реНрдХ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕реНрдХреИрди рдЪрд▓рд╛рдПрдВред


рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдбрд┐рд╕реНрдХ


рд╡рд╣рд╛рдВ, рд╕рднреА HDD рдкрд░, рд▓реЗрдЦрди рдХреИрд╢рд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рд╕реВрдЪреА рд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдФрд░ "рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ)ред


рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рднреА рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдЕрдиреБрднрд╛рдЧ "рд╕рдВрдЧреНрд░рд╣рдг-> рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди" рдЯреИрдм рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВ:


рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рд╡рд┐рднрд╛рдЬрди


рдЕрдм рдпрд╣ SMART рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдЬреЛ рдмрдврд╝рддреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:


  • "рд╕рдВрдЧреНрд░рд╣рдг-> рд╕реНрдорд╛рд░реНрдЯ-> рд╕реЗрдЯрд┐рдВрдЧреНрд╕" рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ ред рд╕реНрдорд╛рд░реНрдЯ рдЪрд╛рд▓реВ рдХрд░реЗрдВред
  • рдЙрд╕реА рдЬрдЧрд╣ рдореЗрдВ, рдбрд┐рд╕реНрдХ рдХреЗ рддрд╛рдкрдорд╛рди рд╕реНрддрд░ (рдорд╣рддреНрд╡рдкреВрд░реНрдг, рдЖрдорддреМрд░ рдкрд░ 60 рд╕реА, рдФрд░ рдбрд┐рд╕реНрдХ рдХрд╛ рдЗрд╖реНрдЯрддрдо рддрд╛рдкрдорд╛рди рд╢рд╛рд╕рди 15-45 рд╕реА) рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
  • "рд╕рдВрдЧреНрд░рд╣рдг-> рд╕реНрдорд╛рд░реНрдЯ-> рдбрд┐рд╡рд╛рдЗрд╕" рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ ред рдкреНрд░рддреНрдпреЗрдХ рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд▓рд┐рдП рдирд┐рдЧрд░рд╛рдиреА рдЪрд╛рд▓реВ рдХрд░реЗрдВред
  • "рд╕рдВрдЧреНрд░рд╣рдг-> рд╕реНрдорд╛рд░реНрдЯ-> рдЕрдиреБрд╕реВрдЪрд┐рдд рдкрд░реАрдХреНрд╖рдг" рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ ред рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд╕реНрдХ рдХреЗ рд▓рд┐рдП рджрд┐рди рдореЗрдВ рдПрдХ рдмрд╛рд░ рд▓рдШреБ рдЖрддреНрдо-рдкрд░реАрдХреНрд╖рдг рдФрд░ рдорд╣реАрдиреЗ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдПрдХ рд▓рдВрдмрд╛ рдЖрддреНрдо-рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рддрд╛рдХрд┐ рд╕реНрд╡-рдкрд░реАрдХреНрд╖рдг рдЕрд╡рдзрд┐ рдУрд╡рд░рд▓реИрдк рди рд╣реЛред

рдЗрд╕ рдкрд░, рдбрд┐рд╕реНрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреВрд░реНрдг рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╕рд╛рдЭрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛


рдЖрдкрдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рдХрдВрд╕реЛрд▓ рд╕реЗ рдпрд╛ OMV WEB рдЗрдВрдЯрд░рдлреЗрд╕ ( рд╕реНрдЯреЛрд░реЗрдЬ-> ZFS-> рд╕реЗрд▓реЗрдХреНрдЯ рдЯреИрдВрдХ рдЯреИрдВрдХ0-> рдРрдб рдмрдЯрди -> рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо ) рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


FS рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ рджреЗрддрд╛ рд╣реИред
 zfs create -o utf8only=on -o normalization=formD -p tank0/user_data/books zfs create -o utf8only=on -o normalization=formD -p tank0/user_data/music zfs create -o utf8only=on -o normalization=formD -p tank0/user_data/pictures zfs create -o utf8only=on -o normalization=formD -p tank0/user_data/downloads zfs create -o compression=off -o utf8only=on -o normalization=formD -p tank0/user_data/videos 

рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:



рдЙрд╕рдХреЗ рдмрд╛рдж, "рдПрдлрдПрд╕ рдПрдХреНрд╕реЗрд╕ рдореИрдиреЗрдЬрд┐рдВрдЧ рд░рд╛рдЗрдЯреНрд╕-> рдЬрдирд░рд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ-> рдРрдб" рдкреЗрдЬ рдкрд░ рд╕рд╛рдЭрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдПрдлрдПрд╕ рдЬреЛрдбрд╝реЗрдВ ред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ "рдбрд┐рд╡рд╛рдЗрд╕" рдкреИрд░рд╛рдореАрдЯрд░ ZFS рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкрде рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдФрд░ рд╕рднреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП "рдкрде" рдкреИрд░рд╛рдореАрдЯрд░ "/" рд╣реИред



рдмреИрдХрдЕрдк


рдмреИрдХрдЕрдк рджреЛ рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


  • OMV рдмреИрдХрдЕрдк рдкреНрд▓рдЧрдЗрди ред рд╕рд┐рд╕реНрдЯрдо рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдУрдПрдорд╡реА рдкреНрд▓рдЧрдЗрдиред
  • zfs- рдСрдЯреЛ-рд╕реНрдиреИрдкрд╢реЙрдЯ ред рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╢реЗрдбреНрдпреВрд▓ рдкрд░ ZFS рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдпрджрд┐ рдЖрдк рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:


 lsblk: /dev/block/0:22: not a block device 

рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ "рдмрд╣реБрдд рд╣реА рдЧреИрд░-рдорд╛рдирдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди" рдореЗрдВ рдУрдПрдорд╡реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдпрд╣ рдкреНрд▓рдЧрдЗрди рдХреЛ рдордирд╛ рдХрд░рдирд╛ рдФрд░ zfs send/receive рдХреЗ рд░реВрдк рдореЗрдВ ZFS рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
рдпрд╛, рднреМрддрд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ "рд░реВрдЯ рдбрд┐рд╡рд╛рдЗрд╕" рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдУрдПрд╕ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреБрдЫ рдХреЛ zfs рднреЗрдЬрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕рд▓рд┐рдП рдореИрдВ рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред


рдмреИрдХрдЕрдк


рдмреИрдХрдЕрдк рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ tank0/apps/backup рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ ZFS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдПрдВ, рдлрд┐рд░ "рд╕рд┐рд╕реНрдЯрдо-> рдмреИрдХрдЕрдк" рдореЗрдиреВ рдореЗрдВ "рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлрд╝реЛрд▓реНрдбрд░" рдкреИрд░рд╛рдореАрдЯрд░ рдлрд╝реАрд▓реНрдб рдореЗрдВ "+" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдмрдирд╛рдП рдЧрдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд▓рдХреНрд╖реНрдп рдФрд░ "рдкрде" рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред "/" рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред


Zfs-auto-snapshot рдХреЗ рд╕рд╛рде рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рдпрджрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╡рд╣ рд╣рд░ рдШрдВрдЯреЗ, рд╣рд░ рджрд┐рди, рд╣рд░ рд╣рдлреНрддреЗ, рд╣рд░ рдорд╣реАрдиреЗ рдПрдХ рд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП рддрд╕реНрд╡реАрд░реЗрдВ рд▓реЗрдЧрд╛ред
рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ:


Zfs- рдСрдЯреЛ-рд╕реНрдиреИрдкрд╢реЙрдЯ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдЬреНрдЮрд╛рдкрди


рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдкрд╛рд░ рдЖ рдЪреБрдХреЗ рд╣реИрдВ, рддреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реНрдиреИрдкрд╢реЙрдЯ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдЪрд▓рд╛рдПрдБ:


 zfs list -t snapshot -o name -S creation | grep "@zfs-auto-snap" | tail -n +1500 | xargs -n 1 zfs destroy -vr 

рдлрд┐рд░ рдХреНрд░реЛрди рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП zfs-auto-snapshot рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рд╣рд░ рдШрдВрдЯреЗ рдЪрд┐рддреНрд░ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдмрд╕ /etc/cron.hourly/zfs-auto-snapshot рд╣рдЯрд╛рдПрдВред


рдИрдореЗрд▓ рд╕реВрдЪрдирд╛рдПрдВ


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


рдлрд┐рд░ рдЖрдкрдХреЛ "рд╕рд┐рд╕реНрдЯрдо-> рдЕрдзрд┐рд╕реВрдЪрдирд╛" рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдиреЗ рдФрд░ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


  • SMTP рд╕рд░реНрд╡рд░ рдкрддрд╛ред
  • SMTP рд╕рд░реНрд╡рд░ рдкреЛрд░реНрдЯред
  • рдкреНрд░рдпреЛрдХреНрддрд╛ рдирд╛рдоред
  • рдкреНрд░реЗрд╖рдХ рдкрддрд╛ (рдЖрдорддреМрд░ рдкрд░ рдкрддреЗ рдХрд╛ рдкрд╣рд▓рд╛ рдШрдЯрдХ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ)ред
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб
  • "рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛" рдлрд╝реАрд▓реНрдб рдореЗрдВ, рдЖрдкрдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдкрддрд╛ рдЬрд┐рд╕ рдкрд░ NAS рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬреЗрдЧрд╛ред

рдПрд╕рдПрд╕рдПрд▓ / рдЯреАрдПрд▓рдПрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдЕрддреНрдпрдзрд┐рдХ рдЙрдЪрд┐рдд рд╣реИред


рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдпреИрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗрдЯрдЕрдк рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:


рдИрдореЗрд▓ рд╕реВрдЪрдирд╛


NAS рдХреЗ рдмрд╛рд╣рд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрдЕрдк


рдЖрдИрдкреА тАЛтАЛрдПрдбреНрд░реЗрд╕


рдореИрдВ рдПрдХ рд╕рдлреЗрдж рд╕реНрдерд┐рд░ рдЖрдИрдкреА рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХреА рд▓рд╛рдЧрдд рдкреНрд░рддрд┐ рдорд╛рд╣ 100 рд░реВрдмрд▓ рд╣реИред рдпрджрд┐ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдкрдХрд╛ рдкрддрд╛ рдЧрддрд┐рд╢реАрд▓ рд╣реИ, рд▓реЗрдХрд┐рди NAT рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рддреЛ рдЪрдпрдирд┐рдд рд╕реЗрд╡рд╛ рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░реА DNS рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдлрд┐рд░ рднреА, рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рдЧреИрд░-рдПрдирдПрдЯреА рдкрддрд╛ рдЕрдЪрд╛рдирдХ рдПрдирдПрдЯреА рдкрддрд╛ рдмрди рд╕рдХрддрд╛ рд╣реИ: рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдкреНрд░рджрд╛рддрд╛ рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред


рд░реВрдЯрд░


рд░рд╛рдЙрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдорд┐рдХрд░реЛрдЯрд┐рдХ рд░рд╛рдЙрдЯрд░рдмреЛрд░реНрдб рд╣реИ , рдЬреЛ рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдореЗрдВ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИред


рдорд╛рдпрд░реЛрдЯрд┐рдХ рд░рд╛рдЙрдЯрд░рдмреЛрд░реНрдб


рд░рд╛рдЙрдЯрд░ рдкрд░ рддреАрди рдЪреАрдЬреЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ:


  • NAS рдХреЗ рд▓рд┐рдП рд╕реНрдереИрддрд┐рдХ рдкрддреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрддреЗ рдбреАрдПрдЪрд╕реАрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд░реА рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдореБрдЭреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореИрдХ рдкрддреЗ рд╡рд╛рд▓реЗ рдПрдбреЗрдкреНрдЯрд░ рдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдЖрдИрдкреА рдкрддрд╛ рдорд┐рд▓рддрд╛ рд╣реИред рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдореЗрдВ, рдпрд╣ "рдЖрдИрдкреА-> рдбреАрдПрдЪрд╕реАрдкреА рд╕рд░реНрд╡рд░" рдЯреИрдм рдкрд░ "рдореЗрдХ рд╕реНрдЯреИрдЯрд┐рдХ" рдмрдЯрди рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • DNS рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рддрд╛рдХрд┐ "nas" рдирд╛рдо рдХреЗ рд╕рд╛рде-рд╕рд╛рде ".nas" рдФрд░ ".NAS.cloudns.cc" рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдо (рдЬрд╣рд╛рдВ "NAS" ClouDNS рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕реЗрд╡рд╛ рдкрд░ рдЬрд╝реЛрди рд╣реИ) рдпрд╣ IP рд╕рд┐рд╕реНрдЯрдо рджреЗрддрд╛ рд╣реИред RouterOS рдореЗрдВ рдпрд╣ рдХрд╣рд╛рдБ рдХрд░рдирд╛ рд╣реИ, рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: " ^.*\.nas$|^nas$|^.*\.NAS.cloudns.cc$ "ред
  • рдкреЛрд░реНрдЯ рдлрд╝реЙрд░рд╡рд░реНрдбрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдореЗрдВ, рдпрд╣ "рдЖрдИрдкреА-> рдлрд╝рд╛рдпрд░рд╡реЙрд▓" рдЯреИрдм рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рдкрд░ рдЖрдЧреЗ рдирд╣реАрдВ рд░рд╣реВрдВрдЧрд╛ред

рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдбреАрдПрдирдПрд╕ рд▓реЙрдЧрд┐рди рдореЗрдВ


ClouDNS


CLUDNS рд╕рд░рд▓ рд╣реИред рдПрдХ рдЦрд╛рддрд╛ рдмрдирд╛рдПрдБ, рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВред рдЖрдкрдХреЗ рд╕рд╛рде рдПрдирдПрд╕ рд░рд┐рдХреЙрд░реНрдб рдкрд╣рд▓реЗ рд╣реА рдкрдВрдЬреАрдХреГрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрдЧрд▓рд╛, рдиреНрдпреВрдирддрдо рд╕реЗрдЯрдЕрдк рдЖрд╡рд╢реНрдпрдХ рд╣реИред


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдЬрд╝реЛрди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдПрдирдПрдПрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рдЬрд╝реЛрди рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдЕрд▓рдЧ рдирд╛рдо рдХреЗ рд╕рд╛рде рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ)ред


ClouDNS рдореЗрдВ рдПрдХ рдЬрд╝реЛрди рдмрдирд╛рдирд╛


рджреВрд╕рд░реЗ, рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдП-рд░рд┐рдХреЙрд░реНрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП:


  • nas , www , omv , control рдФрд░ рдПрдХ рдЦрд╛рд▓реА рдирд╛рдо ред OMV рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • ldap PhpLdapAdmin рдЗрдВрдЯрд░рдлрд╝реЗрд╕
  • рдПрд╕ рдкреА рдПрд╕ ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред
  • рдкрд░реАрдХреНрд╖рдг ред рдЯреЗрд╕реНрдЯ рд╕рд░реНрд╡рд░ред

рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реА рд╢реЗрд╖ рдбреЛрдореЗрди рдирд╛рдо рдЬреБрдбрд╝ рдЬрд╛рдПрдВрдЧреЗред
рдЬрд╝реЛрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдлрд┐рд░ "рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝реЗрдВ" , рдП-рдкреНрд░рдХрд╛рд░ рдЪреБрдиреЗрдВ, рдЬрд╝реЛрди рдХрд╛ рдирд╛рдо рдФрд░ рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЖрдИрдкреА рдкрддрд╛ рджрд░реНрдЬ рдХрд░реЗрдВ рдЬрд┐рд╕рдХреЗ рдкреАрдЫреЗ рдПрдирдПрдПрд╕ рд╣реИред


рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛


рджреВрд╕рд░реЗ, рдЖрдкрдХреЛ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред ClouDNS рдореЗрдВ рдЗрд╕рдХрд╛ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ, рдпрд╣ рдореБрдлрд╝реНрдд рд╣реИред рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдФрд░ рдпрд╣ рд▓реЗрдХреНрд╕рд┐рдХрди рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред


рдПрдкреАрдЖрдИ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╡рд╣рд╛рдБ рдПрдХ рдирдпрд╛ рдПрдкреАрдЖрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред


ClouDNS рдПрдкреАрдЖрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝рдирд╛


"IP address" IP : , API. , , API, auth-id auth-password . Lexicon, .



ClouDNS .



Docker


openmediavault-docker-gui, docker-ce .


, docker-compose , :


 apt-get install docker-compose 

:


 zfs create -p /tank0/docker/services 

, /var/lib/docker . ( , SSD), , , .


..,
. .



, .
, GUI , : , .. , .


/var/lib :


 service docker stop zfs create -o com.sun:auto-snapshot=false -p /tank0/docker/lib rm -rf /var/lib/docker ln -s /tank0/docker/lib /var/lib/docker service docker start 

:


 $ ls -l /var/lib/docker lrwxrwxrwx 1 root root 17 Apr 7 12:35 /var/lib/docker -> /tank0/docker/lib 

:


 docker network create docker0 

Docker .


nginx-reverse-proxy


Docker , .


, .


: nginx-proxy letsencrypt-dns .


, OMV 10080 10443, 80 443.


/tank0/docker/services/nginx-proxy/docker-compose.yml
 version: '2' networks: docker0: external: name: docker0 services: nginx-proxy: networks: - docker0 restart: always image: jwilder/nginx-proxy ports: - "80:80" - "443:443" volumes: - ./certs:/etc/nginx/certs:ro - ./vhost.d:/etc/nginx/vhost.d - ./html:/usr/share/nginx/html - /var/run/docker.sock:/tmp/docker.sock:ro - ./local-config:/etc/nginx/conf.d - ./nginx.tmpl:/app/nginx.tmpl labels: - "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true" letsencrypt-dns: image: adferrand/letsencrypt-dns volumes: - ./certs/letsencrypt:/etc/letsencrypt environment: - "LETSENCRYPT_USER_MAIL=MAIL@MAIL.COM" - "LEXICON_PROVIDER=cloudns" - "LEXICON_OPTIONS=--delegated NAS.cloudns.cc" - "LEXICON_PROVIDER_OPTIONS=--auth-id=CLOUDNS_ID --auth-password=CLOUDNS_PASSWORD" 

:


  • nginx-reverse-proxy тАФ c .
  • letsencrypt-dns тАФ ACME Let's Encrypt.

nginx-reverse-proxy jwilder/nginx-proxy .


docker0 тАФ , , docker-compose.
nginx-proxy тАФ , . docker0. , 80 443 ports (, , docker0, ).
restart: always , .


:


  • certs /etc/nginx/certs тАФ , , Let's Encrypt. ACME .
  • ./vhost.d:/etc/nginx/vhost.d тАФ . .
  • ./html:/usr/share/nginx/html тАФ . .
  • /var/run/docker.sock , /tmp/docker.sock тАФ Docker . docker-gen .
  • ./local-config , /etc/nginx/conf.d тАФ nginx. , .
  • ./nginx.tmpl , /app/nginx.tmpl тАФ nginx, docker-gen .

letsencrypt-dns adferrand/letsencrypt-dns . ACME Lexicon, DNS .


certs/letsencrypt /etc/letsencrypt .


, :


  • LETSENCRYPT_USER_MAIL=MAIL@MAIL.COM тАФ Let's Encrypt. , .
  • LEXICON_PROVIDER=cloudns тАФ Lexicon. тАФ cloudns .
  • LEXICON_PROVIDER_OPTIONS=--auth-id=CLOUDNS_ID --auth-password=CLOUDNS_PASSWORD --delegated=NAS.cloudns.cc тАФ CLOUDNS_ID ClouDNS . CLOUDNS_PASSWORD тАФ , API. NAS.cloudns.cc, NAS тАФ DNS . cloudns , (cloudns.cc), ClouDNS API .

: .
, , , , Let's encrypt:


 $ ls ./certs/letsencrypt/ accounts archive csr domains.conf keys live renewal renewal-hooks 

, , .


/tank0/docker/services/nginx-proxy/nginx.tmpl
 {{ $CurrentContainer := where $ "ID" .Docker.CurrentContainerID | first }} {{ define "upstream" }} {{ if .Address }} {{/* If we got the containers from swarm and this container's port is published to host, use host IP:PORT */}} {{ if and .Container.Node.ID .Address.HostPort }} # {{ .Container.Node.Name }}/{{ .Container.Name }} server {{ .Container.Node.Address.IP }}:{{ .Address.HostPort }}; {{/* If there is no swarm node or the port is not published on host, use container's IP:PORT */}} {{ else if .Network }} # {{ .Container.Name }} server {{ .Network.IP }}:{{ .Address.Port }}; {{ end }} {{ else if .Network }} # {{ .Container.Name }} {{ if .Network.IP }} server {{ .Network.IP }} down; {{ else }} server 127.0.0.1 down; {{ end }} {{ end }} {{ end }} # If we receive X-Forwarded-Proto, pass it through; otherwise, pass along the # scheme used to connect to this server map $http_x_forwarded_proto $proxy_x_forwarded_proto { default $http_x_forwarded_proto; '' $scheme; } # If we receive X-Forwarded-Port, pass it through; otherwise, pass along the # server port the client connected to map $http_x_forwarded_port $proxy_x_forwarded_port { default $http_x_forwarded_port; '' $server_port; } # If we receive Upgrade, set Connection to "upgrade"; otherwise, delete any # Connection header that may have been passed to this server map $http_upgrade $proxy_connection { default upgrade; '' close; } # Apply fix for very long server names server_names_hash_bucket_size 128; # Default dhparam {{ if (exists "/etc/nginx/dhparam/dhparam.pem") }} ssl_dhparam /etc/nginx/dhparam/dhparam.pem; {{ end }} # Set appropriate X-Forwarded-Ssl header map $scheme $proxy_x_forwarded_ssl { default off; https on; } gzip_types text/plain text/css application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; log_format vhost '$host $remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'; access_log off; {{ if $.Env.RESOLVERS }} resolver {{ $.Env.RESOLVERS }}; {{ end }} {{ if (exists "/etc/nginx/proxy.conf") }} include /etc/nginx/proxy.conf; {{ else }} # HTTP 1.1 support proxy_http_version 1.1; proxy_buffering off; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $proxy_connection; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto; proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl; proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port; # Mitigate httpoxy attack (see README for details) proxy_set_header Proxy ""; {{ end }} {{ $enable_ipv6 := eq (or ($.Env.ENABLE_IPV6) "") "true" }} server { server_name _; # This is just an invalid value which will never trigger on a real hostname. listen 80; {{ if $enable_ipv6 }} listen [::]:80; {{ end }} access_log /var/log/nginx/access.log vhost; return 503; } {{ if (and (exists "/etc/nginx/certs/default.crt") (exists "/etc/nginx/certs/default.key")) }} server { server_name _; # This is just an invalid value which will never trigger on a real hostname. listen 443 ssl http2; {{ if $enable_ipv6 }} listen [::]:443 ssl http2; {{ end }} access_log /var/log/nginx/access.log vhost; return 503; ssl_session_tickets off; ssl_certificate /etc/nginx/certs/default.crt; ssl_certificate_key /etc/nginx/certs/default.key; } {{ end }} {{ range $host, $containers := groupByMulti $ "Env.VIRTUAL_HOST" "," }} {{ $host := trim $host }} {{ $is_regexp := hasPrefix "~" $host }} {{ $upstream_name := when $is_regexp (sha1 $host) $host }} # {{ $host }} upstream {{ $upstream_name }} { {{ range $container := $containers }} {{ $addrLen := len $container.Addresses }} {{ range $knownNetwork := $CurrentContainer.Networks }} {{ range $containerNetwork := $container.Networks }} {{ if (and (ne $containerNetwork.Name "ingress") (or (eq $knownNetwork.Name $containerNetwork.Name) (eq $knownNetwork.Name "host"))) }} ## Can be connected with "{{ $containerNetwork.Name }}" network {{/* If only 1 port exposed, use that */}} {{ if eq $addrLen 1 }} {{ $address := index $container.Addresses 0 }} {{ template "upstream" (dict "Container" $container "Address" $address "Network" $containerNetwork) }} {{/* If more than one port exposed, use the one matching VIRTUAL_PORT env var, falling back to standard web port 80 */}} {{ else }} {{ $port := coalesce $container.Env.VIRTUAL_PORT "80" }} {{ $address := where $container.Addresses "Port" $port | first }} {{ template "upstream" (dict "Container" $container "Address" $address "Network" $containerNetwork) }} {{ end }} {{ else }} # Cannot connect to network of this container server 127.0.0.1 down; {{ end }} {{ end }} {{ end }} {{ end }} } {{ $default_host := or ($.Env.DEFAULT_HOST) "" }} {{ $default_server := index (dict $host "" $default_host "default_server") $host }} {{/* Get the VIRTUAL_PROTO defined by containers w/ the same vhost, falling back to "http" */}} {{ $proto := trim (or (first (groupByKeys $containers "Env.VIRTUAL_PROTO")) "http") }} {{/* Get the NETWORK_ACCESS defined by containers w/ the same vhost, falling back to "external" */}} {{ $network_tag := or (first (groupByKeys $containers "Env.NETWORK_ACCESS")) "external" }} {{/* Get the HTTPS_METHOD defined by containers w/ the same vhost, falling back to "redirect" */}} {{ $https_method := or (first (groupByKeys $containers "Env.HTTPS_METHOD")) "redirect" }} {{/* Get the SSL_POLICY defined by containers w/ the same vhost, falling back to "Mozilla-Intermediate" */}} {{ $ssl_policy := or (first (groupByKeys $containers "Env.SSL_POLICY")) "Mozilla-Intermediate" }} {{/* Get the HSTS defined by containers w/ the same vhost, falling back to "max-age=31536000" */}} {{ $hsts := or (first (groupByKeys $containers "Env.HSTS")) "max-age=31536000" }} {{/* Get the VIRTUAL_ROOT By containers w/ use fastcgi root */}} {{ $vhost_root := or (first (groupByKeys $containers "Env.VIRTUAL_ROOT")) "/var/www/public" }} {{/* Get the first cert name defined by containers w/ the same vhost */}} {{ $certName := (first (groupByKeys $containers "Env.CERT_NAME")) }} {{/* Get the best matching cert by name for the vhost. */}} {{ $vhostCert := (closest (dir "/etc/nginx/certs") (printf "%s.crt" $host))}} {{/* vhostCert is actually a filename so remove any suffixes since they are added later */}} {{ $vhostCert := trimSuffix ".crt" $vhostCert }} {{ $vhostCert := trimSuffix ".key" $vhostCert }} {{/* Use the cert specified on the container or fallback to the best vhost match */}} {{ $cert := (coalesce $certName $vhostCert) }} {{ $is_https := (and (ne $https_method "nohttps") (ne $cert "") (or (and (exists (printf "/etc/nginx/certs/letsencrypt/live/%s/fullchain.pem" $cert)) (exists (printf "/etc/nginx/certs/letsencrypt/live/%s/privkey.pem" $cert))) (and (exists (printf "/etc/nginx/certs/%s.crt" $cert)) (exists (printf "/etc/nginx/certs/%s.key" $cert)))) ) }} {{ if $is_https }} {{ if eq $https_method "redirect" }} server { server_name {{ $host }}; listen 80 {{ $default_server }}; {{ if $enable_ipv6 }} listen [::]:80 {{ $default_server }}; {{ end }} access_log /var/log/nginx/access.log vhost; return 301 https://$host$request_uri; } {{ end }} server { server_name {{ $host }}; listen 443 ssl http2 {{ $default_server }}; {{ if $enable_ipv6 }} listen [::]:443 ssl http2 {{ $default_server }}; {{ end }} access_log /var/log/nginx/access.log vhost; {{ if eq $network_tag "internal" }} # Only allow traffic from internal clients include /etc/nginx/network_internal.conf; {{ end }} {{ if eq $ssl_policy "Mozilla-Modern" }} ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; {{ else if eq $ssl_policy "Mozilla-Intermediate" }} ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:!DSS'; {{ else if eq $ssl_policy "Mozilla-Old" }} ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP'; {{ else if eq $ssl_policy "AWS-TLS-1-2-2017-01" }} ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:AES128-GCM-SHA256:AES128-SHA256:AES256-GCM-SHA384:AES256-SHA256'; {{ else if eq $ssl_policy "AWS-TLS-1-1-2017-01" }} ssl_protocols TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA'; {{ else if eq $ssl_policy "AWS-2016-08" }} ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA'; {{ else if eq $ssl_policy "AWS-2015-05" }} ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:DES-CBC3-SHA'; {{ else if eq $ssl_policy "AWS-2015-03" }} ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:DHE-DSS-AES128-SHA:DES-CBC3-SHA'; {{ else if eq $ssl_policy "AWS-2015-02" }} ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:DHE-DSS-AES128-SHA'; {{ end }} ssl_prefer_server_ciphers on; ssl_session_timeout 5m; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; {{ if (and (exists (printf "/etc/nginx/certs/letsencrypt/live/%s/fullchain.pem" $cert)) (exists (printf "/etc/nginx/certs/letsencrypt/live/%s/privkey.pem" $cert))) }} ssl_certificate /etc/nginx/certs/letsencrypt/live/{{ (printf "%s/fullchain.pem" $cert) }}; ssl_certificate_key /etc/nginx/certs/letsencrypt/live/{{ (printf "%s/privkey.pem" $cert) }}; {{ else if (and (exists (printf "/etc/nginx/certs/%s.crt" $cert)) (exists (printf "/etc/nginx/certs/%s.key" $cert))) }} ssl_certificate /etc/nginx/certs/{{ (printf "%s.crt" $cert) }}; ssl_certificate_key /etc/nginx/certs/{{ (printf "%s.key" $cert) }}; {{ end }} {{ if (exists (printf "/etc/nginx/certs/%s.dhparam.pem" $cert)) }} ssl_dhparam {{ printf "/etc/nginx/certs/%s.dhparam.pem" $cert }}; {{ end }} {{ if (exists (printf "/etc/nginx/certs/%s.chain.pem" $cert)) }} ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate {{ printf "/etc/nginx/certs/%s.chain.pem" $cert }}; {{ end }} {{ if (and (ne $https_method "noredirect") (ne $hsts "off")) }} add_header Strict-Transport-Security "{{ trim $hsts }}" always; {{ end }} {{ if (exists (printf "/etc/nginx/vhost.d/%s" $host)) }} include {{ printf "/etc/nginx/vhost.d/%s" $host }}; {{ else if (exists "/etc/nginx/vhost.d/default") }} include /etc/nginx/vhost.d/default; {{ end }} location / { {{ if eq $proto "uwsgi" }} include uwsgi_params; uwsgi_pass {{ trim $proto }}://{{ trim $upstream_name }}; {{ else if eq $proto "fastcgi" }} root {{ trim $vhost_root }}; include fastcgi.conf; fastcgi_pass {{ trim $upstream_name }}; {{ else }} proxy_pass {{ trim $proto }}://{{ trim $upstream_name }}; {{ end }} {{ if (exists (printf "/etc/nginx/htpasswd/%s" $host)) }} auth_basic "Restricted {{ $host }}"; auth_basic_user_file {{ (printf "/etc/nginx/htpasswd/%s" $host) }}; {{ end }} {{ if (exists (printf "/etc/nginx/vhost.d/%s_location" $host)) }} include {{ printf "/etc/nginx/vhost.d/%s_location" $host}}; {{ else if (exists "/etc/nginx/vhost.d/default_location") }} include /etc/nginx/vhost.d/default_location; {{ end }} } } {{ end }} {{ if or (not $is_https) (eq $https_method "noredirect") }} server { server_name {{ $host }}; listen 80 {{ $default_server }}; {{ if $enable_ipv6 }} listen [::]:80 {{ $default_server }}; {{ end }} access_log /var/log/nginx/access.log vhost; {{ if eq $network_tag "internal" }} # Only allow traffic from internal clients include /etc/nginx/network_internal.conf; {{ end }} {{ if (exists (printf "/etc/nginx/vhost.d/%s" $host)) }} include {{ printf "/etc/nginx/vhost.d/%s" $host }}; {{ else if (exists "/etc/nginx/vhost.d/default") }} include /etc/nginx/vhost.d/default; {{ end }} location / { {{ if eq $proto "uwsgi" }} include uwsgi_params; uwsgi_pass {{ trim $proto }}://{{ trim $upstream_name }}; {{ else if eq $proto "fastcgi" }} root {{ trim $vhost_root }}; include fastcgi.conf; fastcgi_pass {{ trim $upstream_name }}; {{ else }} proxy_pass {{ trim $proto }}://{{ trim $upstream_name }}; {{ end }} {{ if (exists (printf "/etc/nginx/htpasswd/%s" $host)) }} auth_basic "Restricted {{ $host }}"; auth_basic_user_file {{ (printf "/etc/nginx/htpasswd/%s" $host) }}; {{ end }} {{ if (exists (printf "/etc/nginx/vhost.d/%s_location" $host)) }} include {{ printf "/etc/nginx/vhost.d/%s_location" $host}}; {{ else if (exists "/etc/nginx/vhost.d/default_location") }} include /etc/nginx/vhost.d/default_location; {{ end }} } } {{ if (and (not $is_https) (exists "/etc/nginx/certs/default.crt") (exists "/etc/nginx/certs/default.key")) }} server { server_name {{ $host }}; listen 443 ssl http2 {{ $default_server }}; {{ if $enable_ipv6 }} listen [::]:443 ssl http2 {{ $default_server }}; {{ end }} access_log /var/log/nginx/access.log vhost; return 500; ssl_certificate /etc/nginx/certs/default.crt; ssl_certificate_key /etc/nginx/certs/default.key; } {{ end }} {{ end }} {{ end }} 

, nginx /etc/nginx/certs/%s.crt /etc/nginx/certs/%s.pem , %s тАФ ( тАФ , ).


/etc/nginx/certs/letsencrypt/live/%s/{fullchain.pem, privkey.pem} , :


 {{ $is_https := (and (ne $https_method "nohttps") (ne $cert "") (or (and (exists (printf "/etc/nginx/certs/letsencrypt/live/%s/fullchain.pem" $cert)) (exists (printf "/etc/nginx/certs/letsencrypt/live/%s/privkey.pem" $cert)) ) (and (exists (printf "/etc/nginx/certs/%s.crt" $cert)) (exists (printf "/etc/nginx/certs/%s.key" $cert)) ) ) ) }} 

, domains.conf .


/tank0/docker/services/nginx-proxy/certs/letsencrypt/domains.conf
 *.NAS.cloudns.cc NAS.cloudns.cc 

. , , , client_max_body_size 20, .


/tank0/docker/services/nginx-proxy/local-config/max_upload_size.conf
 client_max_body_size 20G; 

, :


 docker-compose up 

( ), Ctrl+C :


 docker-compose up -d 


тАФ nginx, . , , .
, NAS.


.


docker-compose :


/tank0/docker/services/test_nginx/docker-compose.yml
 version: '2' networks: docker0: external: name: docker0 services: nginx-local: restart: always image: nginx:alpine expose: - 80 - 443 environment: - "VIRTUAL_HOST=test.NAS.cloudns.cc" - "VIRTUAL_PROTO=http" - "VIRTUAL_PORT=80" - CERT_NAME=NAS.cloudns.cc networks: - docker0 

:


  • docker0 тАФ . .
  • expose тАФ , . , 80 HTTP 443 HTTPS.
  • VIRTUAL_HOST=test.NAS.cloudns.cc тАФ , nginx-reverse-proxy .
  • VIRTUAL_PROTO=http тАФ nginx-reverse-proxy . , HTTP.
  • VIRTUAL_PORT=80 тАФ nginx-reverse-proxy.
  • CERT_NAME=NAS.cloudns.cc тАФ . , , . NAS тАФ DNS .
  • networks тАФ , nginx-reverse-proxy docker0 .

, . docker-compose up , test.NAS.cloudns.cc .


:


 $ docker-compose up Creating testnginx_nginx-local_1 Attaching to testnginx_nginx-local_1 nginx-local_1 | 172.22.0.5 - - [29/Jul/2018:15:32:02 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537 (KHTML, like Gecko) Chrome/67.0 Safari/537" "192.168.2.3" nginx-local_1 | 2018/07/29 15:32:02 [error] 8#8: *2 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 172.22.0.5, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "test.NAS.cloudns.cc", referrer: "https://test.NAS.cloudns.cc/" nginx-local_1 | 172.22.0.5 - - [29/Jul/2018:15:32:02 +0000] "GET /favicon.ico HTTP/1.1" 404 572 "https://test.NAS.cloudns.cc/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537 (KHTML, like Gecko) Chrome/67.0 Safari/537" "192.168.2.3" 

:


рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ Nginx


, , , , : .


, Ctrl+C, docker-compose down .


local-rpoxy


, nginx-default , nas, omv 10080 10443 .


.


/tank0/docker/services/nginx-local/docker-compose.yml
 version: '2' networks: docker0: external: name: docker0 services: nginx-local: restart: always image: nginx:alpine expose: - 80 - 443 environment: - "VIRTUAL_HOST=NAS.cloudns.cc,nas,nas.*,www.*,omv.*,nas-controller.nas" - "VIRTUAL_PROTO=http" - "VIRTUAL_PORT=80" - CERT_NAME=NAS.cloudns.cc volumes: - ./local-config:/etc/nginx/conf.d networks: - docker0 

docker-compose , .
, , , NAS.cloudns.cc . , NAS DNS , .


/tank0/docker/services/nginx-local/local-config/default.conf
 # If we receive X-Forwarded-Proto, pass it through; otherwise, pass along the # scheme used to connect to this server map $http_x_forwarded_proto $proxy_x_forwarded_proto { default $http_x_forwarded_proto; '' $scheme; } # If we receive X-Forwarded-Port, pass it through; otherwise, pass along the # server port the client connected to map $http_x_forwarded_port $proxy_x_forwarded_port { default $http_x_forwarded_port; '' $server_port; } # Set appropriate X-Forwarded-Ssl header map $scheme $proxy_x_forwarded_ssl { default off; https on; } access_log on; error_log on; # HTTP 1.1 support proxy_http_version 1.1; proxy_buffering off; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto; proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl; proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port; # Mitigate httpoxy attack (see README for details) proxy_set_header Proxy ""; server { server_name _; # This is just an invalid value which will never trigger on a real hostname. listen 80; return 503; } server { server_name www.* nas.* omv.* ""; listen 80; location / { proxy_pass https://172.21.0.1:10443/; } } # nas-controller server { server_name nas-controller.nas; listen 80 ; location / { proxy_pass https://nas-controller/; } } 

  • 172.21.0.1 тАФ . 443, OMV HTTPS. .
  • https://nas-controller/ тАФ -, IPMI, nas, nas-controller.nas, nas-controller. .

LDAP


LDAP-


LDAP- тАФ .
Docker . , , .


LDIF- .


/tank0/docker/services/ldap/docker-compose.yml
 version: "2" networks: ldap: docker0: external: name: docker0 services: open-ldap: image: "osixia/openldap:1.2.0" hostname: "open-ldap" restart: always environment: - "LDAP_ORGANISATION=NAS" - "LDAP_DOMAIN=nas.nas" - "LDAP_ADMIN_PASSWORD=ADMIN_PASSWORD" - "LDAP_CONFIG_PASSWORD=CONFIG_PASSWORD" - "LDAP_TLS=true" - "LDAP_TLS_ENFORCE=false" - "LDAP_TLS_CRT_FILENAME=ldap_server.crt" - "LDAP_TLS_KEY_FILENAME=ldap_server.key" - "LDAP_TLS_CA_CRT_FILENAME=ldap_server.crt" volumes: - ./certs:/container/service/slapd/assets/certs - ./ldap_data/var/lib:/var/lib/ldap - ./ldap_data/etc/ldap/slapd.d:/etc/ldap/slapd.d networks: - ldap ports: - 172.21.0.1:389:389 - 172.21.0.1::636:636 phpldapadmin: image: "osixia/phpldapadmin:0.7.1" hostname: "nas.nas" restart: always networks: - ldap - docker0 expose: - 443 links: - open-ldap:open-ldap-server volumes: - ./certs:/container/service/phpldapadmin/assets/apache2/certs environment: - VIRTUAL_HOST=ldap.* - VIRTUAL_PORT=443 - VIRTUAL_PROTO=https - CERT_NAME=NAS.cloudns.cc - "PHPLDAPADMIN_LDAP_HOSTS=open-ldap-server" #- "PHPLDAPADMIN_HTTPS=false" - "PHPLDAPADMIN_HTTPS_CRT_FILENAME=certs/ldap_server.crt" - "PHPLDAPADMIN_HTTPS_KEY_FILENAME=private/ldap_server.key" - "PHPLDAPADMIN_HTTPS_CA_CRT_FILENAME=certs/ldap_server.crt" - "PHPLDAPADMIN_LDAP_CLIENT_TLS_REQCERT=allow" ldap-ssp: image: openfrontier/ldap-ssp:https volumes: #- ./ssp/mods-enabled/ssl.conf:/etc/apache2/mods-enabled/ssl.conf - /etc/ssl/certs/ssl-cert-snakeoil.pem:/etc/ssl/certs/ssl-cert-snakeoil.pem - /etc/ssl/private/ssl-cert-snakeoil.key:/etc/ssl/private/ssl-cert-snakeoil.key restart: always networks: - ldap - docker0 expose: - 80 links: - open-ldap:open-ldap-server environment: - VIRTUAL_HOST=ssp.* - VIRTUAL_PORT=80 - VIRTUAL_PROTO=http - CERT_NAME=NAS.cloudns.cc - "LDAP_URL=ldap://open-ldap-server:389" - "LDAP_BINDDN=cn=admin,dc=nas,dc=nas" - "LDAP_BINDPW=ADMIN_PASSWORD" - "LDAP_BASE=ou=users,dc=nas,dc=nas" - "MAIL_FROM=admin@nas.nas" - "PWD_MIN_LENGTH=8" - "PWD_MIN_LOWER=3" - "PWD_MIN_DIGIT=2" - "SMTP_HOST=" - "SMTP_USER=" - "SMTP_PASS=" 

:



LDAP- , :


  • LDAP_ORGANISATION=NAS тАФ . .
  • LDAP_DOMAIN=nas.nas тАФ . . , .
  • LDAP_ADMIN_PASSWORD=ADMIN_PASSWORD тАФ .
  • LDAP_CONFIG_PASSWORD=CONFIG_PASSWORD тАФ .

-, " ", .


:


  • /container/service/slapd/assets/certs certs тАФ . .
  • ./ldap_data/ тАФ , . LDAP .

ldap , 389 ( LDAP) 636 (LDAP SSL, ) .


PhpLdapAdmin : LDAP ldap 443 docker0 , , nginx-reverse-proxy.


:


  • VIRTUAL_HOST=ldap.* тАФ , nginx-reverse-proxy .
  • VIRTUAL_PORT=443 тАФ nginx-reverse-proxy.
  • VIRTUAL_PROTO=https тАФ nginx-reverse-proxy.
  • CERT_NAME=NAS.cloudns.cc тАФ , .

SSL .


SSP HTTP .
, , .


тАФ LDAP.


  • LDAP_URL=ldap://open-ldap-server:389 тАФ LDAP (. links ).
  • LDAP_BINDDN=cn=admin,dc=nas,dc=nas тАФ .
  • LDAP_BINDPW=ADMIN_PASSWORD тАФ , , open-ldap.
  • LDAP_BASE=ou=users,dc=nas,dc=nas тАФ , .

LDAP LDAP :


 apt-get install ldap-utils ldapadd -x -H ldap://172.21.0.1 -D "cn=admin,dc=nas,dc=nas" -W -f ldifs/inititialize_ldap.ldif ldapadd -x -H ldap://172.21.0.1 -D "cn=admin,dc=nas,dc=nas" -W -f ldifs/base.ldif ldapadd -x -H ldap://172.21.0.1 -D "cn=admin,cn=config" -W -f ldifs/gitlab_attr.ldif 

gitlab_attr.ldif , Gitlab ( ) .
.


LDAP
 $ ldapsearch -x -H ldap://172.21.0.1 -b dc=nas,dc=nas -D "cn=admin,dc=nas,dc=nas" -W Enter LDAP Password: # extended LDIF # # LDAPv3 # base <dc=nas,dc=nas> with scope subtree # filter: (objectclass=*) # requesting: ALL # # nas.nas dn: dc=nas,dc=nas objectClass: top objectClass: dcObject objectClass: organization o: NAS dc: nas # admin, nas.nas dn: cn=admin,dc=nas,dc=nas objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator ... # ldap_users, groups, nas.nas dn: cn=ldap_users,ou=groups,dc=nas,dc=nas cn: ldap_users gidNumber: 500 objectClass: posixGroup objectClass: top # search result search: 2 result: 0 Success # numResponses: 12 # numEntries: 11 

LDAP . WEB-.


OMV LDAP


LDAP , OMV : , , , , тАФ .


LDAP .


:


LDAP рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OMV рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ



, , NAS USB.
.
NUT GUI OMV.
"->" , , , , "eaton".


" " :


 driver = usbhid-ups port = auto desc = "Eaton 9130 700 VA" vendorid = 0463 pollinterval = 10 

  • driver = usbhid-ups тАФ USB, USB HID.
  • vendorid тАФ , lsusb .
  • pollinterval тАФ c.

.


lsusb , :


 # lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub --> Bus 001 Device 003: ID 0463:ffff MGE UPS Systems UPS Bus 001 Device 004: ID 046b:ff10 American Megatrends, Inc. Virtual Keyboard and Mouse Bus 001 Device 002: ID 046b:ff01 American Megatrends, Inc. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 

" " " ".
, :


рдпреВрдкреАрдПрд╕ рд╕реЗрдЯрдЕрдк


. , .
.


рдирд┐рд╖реНрдХрд░реНрд╖


. , , , , .
тАФ .


-, OMV .


WEB-, , :



Docker WEB-:



, OMV .


:


рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдпреЛрдЧ рдЕрдиреБрд╕реВрдЪреА


:


рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдЧреНрд░рд╛рдл


CPU:


рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ рдЧреНрд░рд╛рдл




.
!


Source: https://habr.com/ru/post/hi415779/


All Articles