
리눅스 네임스페이스 및 seccomp-bpf 샌드박스
Firejail은 (잠재적으로 신뢰할 수 없는) 애플리케이션을 실행하기 위한 제한된 환경을 설정하여 Linux 시스템을 보호하도록 설계된 경량 보안 도구입니다.
보다 구체적으로, Linux 네임스페이스(namespaces), seccomp-bpf 및 Linux capabilities를 사용하여 보안 침해 위험을 줄이는 SUID 샌드박스 프로그램입니다. 프로세스와 그 모든 하위 프로세스가 네트워크 스택, 프로세스 테이블, 마운트 테이블과 같은 전역적으로 공유되는 커널 리소스를 각자의 전용 뷰(private view)로 가질 수 있게 합니다. Firejail은 SELinux 또는 AppArmor 환경에서 작동할 수 있으며 Linux Control Groups와 통합되어 있습니다.
사실상 의존성이 없이 C로 작성된 이 소프트웨어는 3.x 이상의 커널 버전을 사용하는 모든 Linux 컴퓨터에서 실행됩니다. 서버, 그래픽 애플리케이션, 심지어 사용자 로그인 세션까지 모든 유형의 프로세스를 샌드박싱할 수 있습니다. 또한 Mozilla Firefox, Chromium, VLC, Transmission 등과 같은 일반적인 Linux 프로그램 여러 개를 위한 샌드박스 프로파일을 포함합니다.
샌드박스는 경량이며 오버헤드가 낮습니다. 편집해야 할 복잡한 구성 파일도, 열려 있는 소켓 연결도, 백그라운드에서 실행되는 데몬도 없습니다. 모든 보안 기능은 Linux 커널에 직접 구현되어 있으며 모든 Linux 컴퓨터에서 사용할 수 있습니다.
빠른 시작 |
고급 브라우저 보안 |
Tor 브라우저 보안 |
SECURITY.md를 참조하십시오.
지원 버전에 대해서는 SECURITY.md를 참조하십시오.
참고: Debian stable 및 backports의 버전은 오래되었을 가능성이 높으므로, 현재는 최신 릴리스에서 .deb 패키지를 다운로드하여 설치하는 것을 권장합니다:
또는 소스에서 빌드하십시오.
Debian stable (bullseye): backports 패키지를 사용할 것을 권장합니다.
참고: 배포판 및 PPA의 버전은 오래되었을 가능성이 높으므로, 현재는 최신 릴리스에서 .deb 패키지를 다운로드하여 설치하는 것을 권장합니다:
또는 소스에서 빌드하십시오.
참고: PPA 권장 사항은 주로 firejail 자체에 대한 것입니다. firetools 및 firejail 관련 도구는 업데이트 빈도가 낮은 경향이 있으므로 PPA에 없다면 배포판에서 직접 설치해도 무방합니다.
Ubuntu 18.04+ 및 파생 배포판(예: Linux Mint) 사용자는 PPA 사용을 강력히 권장합니다.
PPA를 추가하고 설치하는 방법:
sudo add-apt-repository ppa:deki/firejail
sudo apt-get update
sudo apt-get install firejail firejail-profiles
이유: Ubuntu 20.04용 firejail 패키지는 Launchpad에 패치가 게시된 후 몇 달 동안 CVE-2021-26910에 취약한 상태로 방치되었습니다:
다음도 참조하십시오: https://wiki.ubuntu.com/SecurityTeam/FAQ:
Ubuntu 보안 팀은 어떤 소프트웨어를 지원하나요?
Ubuntu는 현재 main, restricted, universe 및 multiverse의 네 가지 구성 요소로 나뉩니다. main 및 restricted의 모든 바이너리 패키지는 Ubuntu 릴리스 수명 동안 Ubuntu 보안 팀이 지원하는 반면, universe 및 multiverse의 바이너리 패키지는 Ubuntu 커뮤니티가 지원합니다.
또한 PPA 버전이 더 최신이고 더 많은 프로파일 수정 사항을 포함할 가능성이 높습니다.
자세한 내용은 다음 토론을 참조하십시오:
Firejail은 여러 Linux 배포판에서 사용할 수 있습니다:
앞서 언급한 예외를 제외하면, 배포판이 지원되는 버전의 firejail을 제공하는 한 일반적으로 배포판에서 설치하는 것이 좋습니다.
설치 후 firejail --version으로 버전을 확인할 수 있습니다.
또한 릴리스된 패키지 중 하나를 설치할 수도 있습니다.
소스에서 현재 개발 버전을 빌드하고 설치하는 방법입니다.
해당되는 경우 아래의 배포판별 지침을 사용하는 것이 좋습니다. 네이티브 패키지를 생성하므로 시스템의 나머지 부분 및 패키지 관리와의 통합이 더 쉬워집니다.
다른 배포판의 경우 일반 지침을 참조하십시오.
CI에서 배포판별 빌드가 수행되는 방식은 .gitlab-ci.yml도 참조하십시오.
참고: AUR 패키지는 우리가 유지 관리하지 않습니다.
AUR에서 firejail-git을 설치하십시오.
예:
yay -S firejail-git
Debian, Ubuntu 및 파생 배포판의 경우:
참고: 모든 ./configure 플래그는 mkdeb.sh에 전달해야 합니다 (예: ./mkdeb.sh --enable-foo).
sudo apt-get update -qy
sudo apt-get install -qy \
git build-essential fakeroot lintian libapparmor-dev pkg-config gawk
git clone 'https://github.com/netblue30/firejail.git' &&
cd firejail &&
./configure &&
make dist &&
./mkdeb.sh &&
sudo dpkg -i ./*.deb &&
make installcheck
Fedora 및 파생 배포판의 경우:
참고: 모든 ./configure 플래그는 mkrpm.sh에 전달해야 합니다 (예: ./platform/rpm/mkrpm.sh --enable-foo).
sudo dnf update -y
sudo dnf install -y rpm-build gcc make
git clone 'https://github.com/netblue30/firejail.git' &&
cd firejail &&
./configure &&
make dist &&
./platform/rpm/mkrpm.sh &&
sudo rpm -i ./*.rpm &&
make installcheck
일반 빌드/설치 지침:
git clone 'https://github.com/netblue30/firejail.git' &&
cd firejail &&
./configure &&
make -j "$(nproc)" &&
sudo make install-strip &&
make installcheck