แž€แžถแžšแžŠแŸ„แŸ‡แž›แŸ‚แž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธ Firejail 0.9.72

แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž‚แž˜แŸ’แžšแŸ„แž„ Firejail 0.9.72 แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ„แŸ‡แž–แžปแž˜แŸ’แž– แžŠแŸ‚แž›แž”แž„แŸ’แž€แžพแžแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแžŠแžถแž…แŸ‹แžŠแŸ„แž™แžกแŸ‚แž€แž“แŸƒแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž€แŸ’แžšแžถแž แŸ’แžœแžทแž€ แž€แžปแž„แžŸแžผแž› แž“แžทแž„แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แž€แžถแžแŸ‹แž”แž“แŸ’แžแž™แž แžถแž“แžทแž—แŸแž™แž“แŸƒแž€แžถแžšแžŸแž˜แŸ’แžšแž”แžŸแž˜แŸ’แžšแžฝแž›แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž˜แŸ แž“แŸ…แž–แŸแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แž˜แŸ’แž˜แžœแžทแž’แžธแžŠแŸ‚แž›แž˜แžทแž“แž‚แžฝแžšแžฑแŸ’แž™แž‘แžปแž€แž…แžทแžแŸ’แž แžฌแž„แžถแž™แžšแž„แž‚แŸ’แžšแŸ„แŸ‡แŸ” แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แžŸแžšแžŸแŸแžšแž‡แžถ C แžŠแŸ‚แž›แž…แŸ‚แž€แž…แžถแž™แž€แŸ’แžšแŸ„แž˜แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽ GPLv2 แž แžพแž™แžขแžถแž…แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž›แžพแž€แžถแžšแž…แŸ‚แž€แž…แžถแž™แž›แžธแž“แžปแž…แžŽแžถแž˜แžฝแž™แžŠแŸ‚แž›แž˜แžถแž“แžแžบแžŽแŸ‚แž›แž…แžถแžŸแŸ‹แž‡แžถแž„ 3.0แŸ” แž€แž‰แŸ’แž…แž”แŸ‹ Firejail แžŠแŸ‚แž›แž•แž›แžทแžแžšแžฝแž…แžšแžถแž›แŸ‹แžแŸ’แžšแžผแžœแž”แžถแž“แžšแŸ€แž”แž…แŸ†แž‡แžถแž‘แž˜แŸ’แžšแž„แŸ‹ deb (Debian, Ubuntu) แž“แžทแž„ rpm (CentOS, Fedora) แŸ”

แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž—แžถแž–แžฏแž€แŸ„ Firejail แž”แŸ’แžšแžพ namespaces, AppArmor, แž“แžทแž„แž€แžถแžšแž แŸ…แžแžถแž˜แž”แŸ’แžšแž–แŸแž“แŸ’แž’ (seccomp-bpf) แž“แŸ…แž›แžพแž›แžธแž“แžปแž…แŸ” แž“แŸ…แž–แŸแž›แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž€แž˜แŸ’แž˜แžœแžทแž’แžธ แž“แžทแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แžผแž“แžšแž”แžŸแŸ‹แžœแžถแž‘แžถแŸ†แž„แžขแžŸแŸ‹แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž‘แžทแžŠแŸ’แž‹แž—แžถแž–แžŠแžถแž…แŸ‹แžŠแŸ„แž™แžกแŸ‚แž€แž“แŸƒแž’แž“แž’แžถแž“แžแžบแžŽแŸ‚แž› แžŠแžผแž…แž‡แžถแž‡แž„แŸ‹แž”แžŽแŸ’แžแžถแž‰ แžแžถแžšแžถแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžš แž“แžทแž„แž…แŸ†แžŽแžปแž…แž˜แŸ‰แŸ„แž“แŸ” แž€แž˜แŸ’แž˜แžœแžทแž’แžธโ€‹แžŠแŸ‚แž›โ€‹แž–แžนแž„โ€‹แž•แŸ’แžขแŸ‚แž€โ€‹แž›แžพโ€‹แž‚แŸ’แž“แžถโ€‹แž‘แŸ…โ€‹แžœแžทแž‰โ€‹แž‘แŸ…โ€‹แž˜แž€โ€‹แžขแžถแž…โ€‹แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แž”แž‰แŸ’แž…แžผแž›โ€‹แž€แŸ’แž“แžปแž„โ€‹แž”แŸ’แžšแžขแž”แŸ‹โ€‹แžแŸ’แžŸแžถแž…แŸ‹โ€‹แž’แž˜แŸ’แž˜แžแžถโ€‹แž˜แžฝแž™แŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแž…แž„แŸ‹แž”แžถแž“ Firejail แž€แŸแžขแžถแž…แž”แŸ’แžšแžพแžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžš Docker, LXC แž“แžทแž„ OpenVZ containers แž•แž„แžŠแŸ‚แžšแŸ”

แž˜แžทแž“แžŠแžผแž…แžงแž”แž€แžšแžŽแŸแžฏแž€แŸ„แž€แžปแž„แžแžบแž“แŸแžšแž‘แŸ แž‚แžปแž€แž—แŸ’แž›แžพแž„แž‚แžบแžŸแžถแž˜แž‰แŸ’แž‰แž”แŸ†แž•แžปแžแž€แŸ’แž“แžปแž„แž€แžถแžšแž€แŸ†แžŽแžแŸ‹ แž แžพแž™แž˜แžทแž“แžแŸ’แžšแžผแžœแž€แžถแžšแž€แžถแžšแžšแŸ€แž”แž…แŸ†แžšแžผแž”แž—แžถแž–แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž‘แŸ แžŸแž˜แžถแžŸแž—แžถแž–แž€แžปแž„แžแžบแž“แŸแžšแžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžกแžพแž„แž—แŸ’แž›แžถแž˜แŸ—แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแžแŸ’แž›แžนแž˜แžŸแžถแžšแž“แŸƒแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžฏแž€แžŸแžถแžšแž”แž…แŸ’แž…แžปแž”แŸ’แž”แž“แŸ’แž“ แž แžพแž™แžแŸ’แžšแžผแžœแž”แžถแž“แž›แžปแž”แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž€แž˜แŸ’แž˜แžœแžทแž’แžธแžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แž…แž”แŸ‹แŸ” แž˜แž’แŸ’แž™แŸ„แž”แžถแž™แžŠแŸ‚แž›แžขแžถแž…แž”แžแŸ‹แž”แŸ‚แž“แž”แžถแž“แž€แŸ’แž“แžปแž„แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แž…แŸ’แž”แžถแž”แŸ‹แž…แžผแž›แž”แŸ’แžšแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžฏแž€แžŸแžถแžšแžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แžแž›แŸ‹แž‡แžผแž“ แžขแŸ’แž“แž€แžขแžถแž…แž€แŸ†แžŽแžแŸ‹แžแžถแžแžพแžฏแž€แžŸแžถแžš แž“แžทแž„แžแžแžŽแžถแž˜แžฝแž™แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแž‰แŸ’แž‰แžถแž แžฌแž”แžŠแžทแžŸแŸแž’แž€แžถแžšแž…แžผแž›แž”แŸ’แžšแžพ แž—แŸ’แž‡แžถแž”แŸ‹แž”แŸ’แžšแž–แŸแž“แŸ’แž’แžฏแž€แžŸแžถแžšแž”แžŽแŸ’แžแŸ„แŸ‡แžขแžถแžŸแž“แŸ’แž“ (tmpfs) แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‘แžทแž“แŸ’แž“แž“แŸแž™ แž€แŸ†แžŽแžแŸ‹แž€แžถแžšแž…แžผแž›แž”แŸ’แžšแžพแžฏแž€แžŸแžถแžš แžฌแžแžแžฏแž€แžŸแžถแžšแžŠแžพแž˜แŸ’แž”แžธแžแŸ‚แžขแžถแž“ แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž‚แŸ’แž“แžถแž“แžผแžœแžแžแžแžถแž˜แžšแž™แŸˆ bind-mount แž“แžทแž„ overlayfs แŸ”

แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แž˜แŸ’แž˜แžœแžทแž’แžธแžŠแŸแž–แŸแž‰แž“แžทแž™แž˜แž˜แžฝแž™แž…แŸ†แž“แžฝแž“แž’แŸ† แžšแžฝแž˜แž‘แžถแŸ†แž„ Firefox, Chromium, VLC แž“แžทแž„ Transmission แž‘แž˜แŸ’แžšแž„แŸ‹แžฏแž€แŸ„แž€แžถแžšแž แŸ…แžแžถแž˜แž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŠแŸ‚แž›แžแŸ’แžšแŸ€แž˜แžšแžฝแž…แž‡แžถแžŸแŸ’แžšแŸแž…แžแŸ’แžšแžผแžœแž”แžถแž“แžšแŸ€แž”แž…แŸ†แžกแžพแž„แŸ” แžŠแžพแž˜แŸ’แž”แžธแž‘แž‘แžฝแž›แž”แžถแž“แžŸแžทแž‘แŸ’แž’แžทแž…แžถแŸ†แž”แžถแž…แŸ‹แž€แŸ’แž“แžปแž„แž€แžถแžšแžšแŸ€แž”แž…แŸ†แž”แžšแžทแž™แžถแž€แžถแžŸ sandboxed แž“แŸ„แŸ‡ firejail executable แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแŸ†แžกแžพแž„แž‡แžถแž˜แžฝแž™ SUID root flag (แžŸแžทแž‘แŸ’แž’แžทแžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ†แžŽแžแŸ‹แžกแžพแž„แžœแžทแž‰แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž€แžถแžšแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜)แŸ” แžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž€แŸ’แž“แžปแž„แžšแž”แŸ€แž”แžฏแž€แŸ„ แžขแŸ’แž“แž€แž‚แŸ’แžšแžถแž“แŸ‹แžแŸ‚แž”แž‰แŸ’แž‡แžถแž€แŸ‹แžˆแŸ’แž˜แŸ„แŸ‡แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‡แžถแžขแžถแž‚แžปแž™แž˜แŸ‰แž„แŸ‹แž‘แŸ…แž€แžถแž“แŸ‹แžงแž”แž€แžšแžŽแŸแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ 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 settings แž“แŸ…แž€แŸ’แž“แžปแž„ /etc/firejail/firejail.config แŸ” แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแž•แŸ’แž“แŸ‚แž€แžŸแžปแžœแžแŸ’แžแžทแž—แžถแž–แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แžˆแž”แŸ‹แŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹