เบเบฒเบ™เบ›เปˆเบญเบเบฅเบฐเบšเบปเบšเบเบฒเบ™เปเบเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Firejail 0.9.72

เบเบฒเบ™เบ›เปˆเบญเบเป‚เบ„เบ‡เบเบฒเบ™ Firejail 0.9.72 เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบžเบตเบกเบกเบฒ, เป€เบŠเบดเปˆเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒเบฅเบฐเบšเบปเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบงเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบเบฒเบŸเบดเบ, เบ„เบญเบ™เป‚เบŠเบ™เปเบฅเบฐเป€เบŠเบตเบŸเป€เบงเบต, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เบ•เปเปˆเบเบฒเบ™เบ›เบฐเบ™เบตเบ›เบฐเบ™เบญเบกเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ•เบปเป‰เบ™เบ•เปเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบฅเปˆเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบซเบผเบทเบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡. เป‚เบ›เบฅเปเบเบฅเบกเบ–เบทเบเบ‚เบฝเบ™เป€เบ›เบฑเบ™ C, เปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” GPLv2 เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบ Linux เปƒเบ”เป†เบ—เบตเปˆเบกเบต kernel เป€เบเบปเปˆเบฒเบเบงเปˆเบฒ 3.0. เปเบžเบฑเบเป€เบเบ” Firejail เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบกเปƒเบ™เบฎเบนเบšเปเบšเบš deb (Debian, Ubuntu) เปเบฅเบฐ rpm (CentOS, Fedora).

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบง, Firejail เปƒเบŠเป‰ namespaces, AppArmor, เปเบฅเบฐเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบš (seccomp-bpf) เปƒเบ™ Linux. เป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เบ•เบปเบงเปเบฅเป‰เบง, เป‚เบ›เบฃเปเบเบฃเบก เปเบฅเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบฅเบนเบเบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เบกเบฑเบ™เปƒเบŠเป‰เบกเบธเบกเบกเบญเบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ kernel, เป€เบŠเบฑเปˆเบ™: stack network, process table, เปเบฅเบฐ mount point. เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป€เบ›เบฑเบ™ sandbox เบ—เบปเปˆเบงเป„เบ›เบซเบ™เบถเปˆเบ‡. เบ–เป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™, Firejail เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ Docker, LXC เปเบฅเบฐ OpenVZ containers.

เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เปเบเบเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต, firejail เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเปเบฅเบฐเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบเบฐเบเบฝเบกเบฎเบนเบšเบžเบฒเบšเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš - เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบšเบฑเบ™เบˆเบธเปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบเบฒเบ™เบšเบดเบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เปเบฅเบฐเบ–เบทเบเบฅเบถเบšเบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบชเปเบฒเป€เบฅเบฑเบ”. เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เปƒเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰; เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเป„เบŸเบฅเปŒเปเบฅเบฐเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเปƒเบ”เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”เบซเบผเบทเบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡, เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบŠเบปเปˆเบงเบ„เบฒเบง (tmpfs) เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™, เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบŸเบฅเปŒเบซเบผเบทเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเปƒเบซเป‰เบญเปˆเบฒเบ™เบขเปˆเบฒเบ‡เบ”เบฝเบง, เบฅเบงเบกเบฅเบฒเบเบŠเบทเปˆเบœเปˆเบฒเบ™ bind-mount เปเบฅเบฐ overlayfs.

เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบ™เบดเบเบปเบกเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ, เบฅเบงเบกเบ—เบฑเบ‡ Firefox, Chromium, VLC เปเบฅเบฐ Transmission, เป‚เบ›เป„เบŸเบเบฒเบ™เปเบเบเบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบก. เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก sandboxed, firejail executable เป„เบ”เป‰เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ”เป‰เบงเบเบ—เบธเบ‡เบฎเบฒเบ SUID (เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเบกเปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™). เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบง, เบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบšเบธเบŠเบทเปˆเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฑเบšเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡ firejail, เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, "firejail firefox" เบซเบผเบท "sudo firejail /etc/init.d/nginx start".

เปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเปƒเบซเบกเปˆ:

  • เป€เบžเบตเปˆเบกเบ•เบปเบงเบเบญเบ‡ seccomp เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡ namespaces (เบ—เบฒเบ‡เป€เบฅเบทเบญเบ "--restrict-namespaces" เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰). เบญเบฑเบšเป€เบ”เบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบš เปเบฅเบฐเบเบธเปˆเบก seccomp.
  • เบ›เบฑเบšเบ›เบธเบ‡เป‚เปเบ” force-nonewprivs (NO_NEW_PRIVS), เป€เบŠเบดเปˆเบ‡เบ›เป‰เบญเบ‡เบเบฑเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปƒเปเปˆเบˆเบฒเบเบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.
  • เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เปƒเบŠเป‰เป‚เบ›เบฃเป„เบŸเบฅเปŒ AppArmor เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡ (เบ—เบฒเบ‡เป€เบฅเบทเบญเบ "--apparmor" เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ).
  • เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ nettrace, เป€เบŠเบดเปˆเบ‡เบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบš IP เปเบฅเบฐเบ„เบงเบฒเบกเป€เบ‚เบฑเป‰เบกเบ‚เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบˆเบฒเบเปเบ•เปˆเบฅเบฐเบ—เบตเปˆเบขเบนเปˆ, เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ ICMP เปเบฅเบฐเบชเบฐเป€เบซเบ™เบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบ "--dnstrace", "--icmptrace" เปเบฅเบฐ "--snitrace".
  • เบ„เปเบฒเบชเบฑเปˆเบ‡ --cgroup เปเบฅเบฐ --shell เป„เบ”เป‰เบ–เบทเบเบฅเบถเบšเบญเบญเบเปเบฅเป‰เบง (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ --shell=none). เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ Firetunnel เบ–เบทเบเบขเบธเบ”เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰ chroot, private-lib เปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ tracelog เปƒเบ™ /etc/firejail/firejail.config. เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ”เป‰เบฒเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเป„เบ”เป‰เบ–เบทเบเบขเบธเบ”เป€เบŠเบปเบฒ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™