이것은 Ubuntu Online, Fedora Online, Windows online emulator 또는 MAC OS online emulator와 같은 다양한 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공자에서 실행할 수 있는 명령 firejail입니다.
프로그램:
이름
Firejail - Linux 네임스페이스 샌드박스 프로그램
개요
샌드박스 시작:
firejail [옵션] [프로그램 및 인수]
기존 샌드박스에 대한 네트워크 트래픽 셰이핑:
firejail --대역폭={ | } 대역폭 명령
모니터링 :
firejail {--list | --netstats | --top | --tree}
기타 :
firejail {-? | --debug-caps | --debug-errnos | --debug-syscalls | --debug-protocols
| --도움말 | --버전}
기술
Firejail은 보안 침해 위험을 줄이는 SUID 샌드박스 프로그램입니다.
Linux 네임스페이스를 사용하여 신뢰할 수 없는 애플리케이션의 실행 환경 제한
seccomp-bpf 및 Linux 기능. 프로세스와 모든 하위 프로세스가 다음을 수행할 수 있습니다.
네트워크 스택과 같은 글로벌 공유 커널 리소스에 대한 자체적인 비공개 뷰
프로세스 테이블, 마운트 테이블. Firejail은 SELinux 또는 AppArmor 환경에서 작동할 수 있으며
Linux Control Groups와 통합되어 있습니다.
거의 종속성 없이 C로 작성된 이 소프트웨어는 모든 Linux 컴퓨터에서 실행됩니다.
3.x 커널 버전 이상. 모든 유형의 프로세스를 샌드박스할 수 있습니다: 서버, 그래픽
애플리케이션, 심지어 사용자 로그인 세션까지도 포함됩니다.
Firejail을 사용하면 사용자가 보안 프로필을 사용하여 애플리케이션 보안을 관리할 수 있습니다. 각각
프로필은 특정 애플리케이션이나 애플리케이션 그룹에 대한 권한 집합을 정의합니다.
이 소프트웨어에는 다음과 같은 보다 일반적인 Linux 프로그램에 대한 보안 프로필이 포함되어 있습니다.
Mozilla Firefox, Chromium, VLC, Transmission 등
사용법
옵션 없이 샌드박스는 새 마운트에 빌드된 chroot 파일 시스템으로 구성됩니다.
네임스페이스, 새로운 PID 및 UTS 네임스페이스. IPC, 네트워크 및 사용자 네임스페이스를 추가할 수 있습니다.
명령줄 옵션을 사용합니다. 기본 Firejail 파일 시스템은 호스트를 기반으로 합니다.
주요 디렉토리가 읽기 전용으로 마운트된 파일 시스템. 홈 / 그리고 / TMP 쓰기가 가능합니다.
Firejail은 시작 시 이름을 기반으로 보안 프로필을 찾으려고 시도합니다.
응용 프로그램. 적절한 프로필이 발견되지 않으면 Firejail은 기본 프로필을 사용합니다.
기본 프로필은 매우 제한적입니다. 응용 프로그램이 작동하지 않는 경우 다음을 사용하십시오.
--noprofile 옵션을 사용하여 비활성화합니다. 자세한 내용은 다음을 참조하세요. 보안 프로필
안내
프로그램 인수가 지정되지 않으면 Firejail이 시작됩니다. / bin / bash 껍질. 예:
$ firejail [옵션] # 시작 / bin / bash 껍질
$ firejail [옵션] firefox # Mozilla Firefox 시작
# sudo firejail [옵션] /etc/init.d/nginx 시작
옵션
-- 옵션 종료를 알리고 추가 옵션 처리를 비활성화합니다.
--대역폭=이름
이름으로 식별된 샌드박스에 대한 대역폭 제한을 설정합니다. 교통 성형
자세한 내용은 섹션을 참조하십시오.
--대역폭=pid
PID로 식별된 샌드박스에 대한 대역폭 제한을 설정합니다. 교통 성형 섹션에 있어야 합니다.
자세한 내용은.
--바인드=디렉토리이름1,디렉토리이름2
dirname1을 dirname2 위에 마운트-바인드합니다. 이 옵션은 다음을 실행할 때만 사용할 수 있습니다.
샌드박스를 루트로 사용합니다.
예:
# firejail --bind=/config/www,의 / var / www가
--bind=파일이름1,파일이름2
파일 이름 1을 파일 이름 2 위에 마운트-바인드합니다. 이 옵션은 다음과 같은 경우에만 사용할 수 있습니다.
루트로 실행.
예:
# firejail --bind=/config/etc/passwd,/ etc / passwd
--블랙리스트=디렉토리이름또는파일이름
디렉토리나 파일을 블랙리스트에 추가합니다.
예:
$ firejail --블랙리스트=/ sbin --블랙리스트=/ usr / sbin
$ firejail --블랙리스트=~/.모질라
$ firejail "--blacklist=/home/username/내 가상 머신"
-c 명령을 실행하고 종료합니다.
--캡 Linux 기능은 루트 권한을 분할하도록 설계된 커널 기능입니다.
고유한 권한의 집합. 이러한 권한은 활성화하거나 비활성화할 수 있습니다.
독립적으로, 따라서 루트로 실행되는 프로세스가 수행할 수 있는 작업을 제한합니다.
시스템.
기본적으로 루트 프로그램은 모든 기능이 활성화된 상태로 실행됩니다. --caps 옵션은 비활성화합니다.
다음 기능: CAP_SYS_MODULE, CAP_SYS_RAWIO, CAP_SYS_BOOT,
CAP_SYS_NICE, CAP_SYS_TTY_CONFIG, CAP_SYSLOG, CAP_MKNOD, CAP_SYS_ADMIN. 필터
샌드박스에서 시작된 모든 프로세스에 적용됩니다.
예:
$ sudo firejail --caps "/etc/init.d/nginx 시작 및 잠자기 inf"
--caps.drop=모두
샌드박스에서 실행 중인 프로세스에 대한 모든 기능을 삭제합니다. 이 옵션은
GUI 프로그램이나 루트가 필요하지 않은 다른 프로그램을 실행하는 데 권장됩니다.
권한. 신뢰할 수 없는 프로그램을 샌드박싱하기 위한 필수 옵션입니다.
비공식적인 소스(게임, Java 프로그램 등)
예:
$ firejail --caps.drop=all warzone2100
--caps.drop=기능,기능,기능
사용자 정의 블랙리스트 Linux 기능 필터를 정의합니다.
예:
$ firejail --caps.keep=net_broadcast,net_admin,net_raw
--caps.keep=기능,기능,기능
사용자 지정 허용 목록 Linux 기능 필터를 정의합니다.
예:
$ sudo firejail --caps.keep=chown,net_bind_service,setgid,\ setuid
/etc/init.d/nginx 시작
--whitelist와 --read-only 옵션을 혼합하는 것에 대한 간단한 참고 사항. 허용 목록에 추가됨
디렉토리는 독립적으로 읽기 전용으로 만들어야 합니다. 부모 디렉토리를 읽기 전용으로 만들기
only, 허용 목록을 읽기 전용으로 만들지 않습니다. 예:
$ firejail --화이트리스트=~/일 --읽기전용=~/ --읽기전용=~/일
--caps.print=이름
이름으로 식별된 샌드박스에 대한 캡스 필터를 인쇄합니다.
예:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --caps.print=내 게임
--caps.print=pid
PID로 식별된 샌드박스에 대한 캡스 필터를 인쇄합니다.
예:
$ firejail --목록
3272:netblue:firejail --개인 파이어폭스
$ firejail --caps.print=3272
--cgroup=작업파일
지정된 제어 그룹에 샌드박스를 배치합니다. tasks-file은 전체 경로입니다.
cgroup 작업 파일.
예:
# firejail --cgroup=/sys/fs/cgroup/g1/tasks
--chroot=디렉토리이름
샌드박스를 루트 파일 시스템으로 chroot합니다. 샌드박스가 일반으로 시작되면
사용자, 기본 seccomp 및 기능 필터가 활성화되었습니다.
예:
$ firejail --chroot=/media/ubuntu warzone2100
--cpu=cpu 번호,cpu 번호,cpu 번호
CPU 선호도를 설정합니다.
예:
$ firejail --cpu=0,1 핸드브레이크
--csh 기본 사용자 셸로 /bin/csh를 사용합니다.
예:
$ 파이어 감옥 --csh
-디버그
디버그 메시지를 인쇄합니다.
예:
$ firejail --디버그 파이어폭스
--디버그 블랙리스트
디버그 블랙리스트.
예:
$ firejail --debug-blacklists 파이어폭스
--디버그 캡스
현재 Firejail 소프트웨어 빌드에서 인식된 모든 기능을 인쇄하고 종료합니다.
예:
$ firejail --디버그-캡스
--디버그-검사-파일명
디버그 파일 이름 검사.
예:
$ firejail --debug-check-filename firefox
--디버그-오류
현재 Firejail 소프트웨어 빌드에서 인식된 모든 오류 번호를 인쇄하고 종료합니다.
예:
$ firejail --디버그-오류
--디버그 프로토콜
현재 Firejail 소프트웨어 빌드에서 인식된 모든 프로토콜을 인쇄하고 종료합니다.
예:
$ firejail --디버그 프로토콜
--디버그 시스템 호출
현재 Firejail 소프트웨어 빌드에서 인식된 모든 시스템 호출을 인쇄하고 종료합니다.
예:
$ firejail --디버그 시스템 콜
--디버그-화이트리스트
디버그 허용 목록.
예:
$ firejail --debug-whitelists 파이어폭스
--defaultgw=주소
이 주소를 새 네트워크 네임스페이스의 기본 게이트웨이로 사용합니다.
예:
$ firejail --net=eth0 --defaultgw=10.10.20.1 파이어폭스
--dns=주소
샌드박스에 대한 DNS 서버를 설정합니다. 최대 3개의 DNS 서버를 정의할 수 있습니다. 이것을 사용하세요
네트워크의 DNS 설정을 신뢰하지 않는 경우의 옵션입니다.
예:
$ firejail --dns=8.8.8.8 --dns=8.8.4.4 파이어폭스
--dns.print=이름
이름으로 식별된 샌드박스에 대한 DNS 구성을 인쇄합니다.
예:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --dns.print=내 게임
--dns.print=pid
PID로 식별된 샌드박스에 대한 DNS 구성을 인쇄합니다.
예:
$ firejail --목록
3272:netblue:firejail --개인 파이어폭스
$ firejail --dns.print=3272
--env=이름=값
새로운 샌드박스에서 환경 변수를 설정합니다.
예:
$ firejail --env=LD_LIBRARY_PATH=/opt/test/lib
--힘
기본적으로 Firejail이 기존 샌드박스에서 시작되면 프로그램이 실행됩니다.
bash 셸에서. 이 옵션은 이 동작을 비활성화하고 시작하려고 시도합니다.
기존 샌드박스의 Firejail. 실패하는 데에는 여러 가지 이유가 있을 수 있습니다.
예를 들어 기존 샌드박스가 관리자 기능, SUID 바이너리 또는
seccomp를 실행하는 경우
--fs.print=이름
이름으로 식별된 샌드박스에 대한 파일 시스템 로그를 인쇄합니다.
예:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --fs.print=내 게임
--fs.print=pid
PID로 식별된 샌드박스에 대한 파일 시스템 로그를 인쇄합니다.
예:
$ firejail --목록
3272:netblue:firejail --개인 파이어폭스
$ firejail --fs.print=3272
-?, --도움
인쇄 옵션이 종료됩니다.
--호스트 이름=이름
샌드박스 호스트 이름을 설정합니다.
예:
$ firejail --호스트 이름=officepc firefox
--ignore=명령
프로필 파일에서 명령을 무시합니다.
예:
$ firejail --ignore=쉘 --ignore=seccomp firefox
--인터페이스=인터페이스
새 네트워크 네임스페이스에서 인터페이스를 이동합니다. 최대 4개의 --interface 옵션을 사용할 수 있습니다.
지정되었습니다.
예:
$ firejail --인터페이스=eth1 --인터페이스=eth0.vlan100
--ip=주소
--net 옵션으로 정의된 마지막 네트워크 인터페이스에 IP 주소를 할당합니다.
기본 게이트웨이는 기본적으로 할당됩니다.
예:
$ firejail --net=eth0 --ip=10.10.20.56 파이어폭스
--ip=없음
마지막으로 정의된 인터페이스에 대해 IP 주소 및 기본 게이트웨이가 구성되지 않았습니다.
--net 옵션으로. 외부 DHCP를 시작하려는 경우 이 옵션을 사용하세요.
샌드박스의 클라이언트.
예:
$ firejail --net=eth0 --ip=없음
--ip6=주소
--net 옵션으로 정의된 마지막 네트워크 인터페이스에 IPv6 주소를 할당합니다.
예:
$ firejail --net=eth0 --ip6=2001:0db8:0:f101::1/64 firefox
--iprange=주소,주소
제공된 범위 내의 IP 주소를 마지막으로 정의된 네트워크 인터페이스에 할당합니다.
--net 옵션. 기본 게이트웨이가 기본적으로 지정됩니다.
예:
$ firejail --net=eth0 --iprange=192.168.1.100,192.168.1.150
--ipc-네임스페이스
샌드박스가 일반 사용자로 시작된 경우 새 IPC 네임스페이스를 활성화합니다. IPC
루트로 시작된 샌드박스의 경우 네임스페이스가 기본적으로 활성화됩니다.
예:
$ firejail --ipc-네임스페이스 파이어폭스
--join=이름
이름으로 식별된 샌드박스에 가입하세요. 기본적으로 / bin / bash 쉘은 다음 후에 시작됩니다.
샌드박스에 가입합니다. 프로그램이 지정되면 해당 프로그램이 샌드박스에서 실행됩니다.
일반 사용자로 --join 명령을 실행하면 모든 보안 필터가 구성됩니다.
새로운 프로세스의 경우 샌드박스에서 구성된 것과 동일합니다. --join 명령의 경우
루트로 발급되면 보안 필터, cgroup 및 CPU 구성이 적용되지 않습니다.
샌드박스에 참여하는 프로세스에 적용됨.
예:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --join=내게임
--조인=pid
프로세스 ID로 식별된 샌드박스에 가입합니다. 기본적으로 / bin / bash 쉘이 시작되었습니다
샌드박스에 가입한 후. 프로그램이 지정되면 해당 프로그램이 실행됩니다.
샌드박스. --join 명령이 일반 사용자로 실행되면 모든 보안 필터가
새 프로세스에 대해 구성된 것은 샌드박스에서 구성된 것과 동일합니다.
--join 명령은 root로 실행되며 보안 필터, cgroup 및 cpu가 있습니다.
샌드박스에 참여하는 프로세스에는 구성이 적용되지 않습니다.
예:
$ firejail --목록
3272:netblue:firejail --개인 파이어폭스
$ firejail --join=3272
--join-filesystem=이름
이름으로 식별된 샌드박스의 마운트 네임스페이스에 가입합니다. 기본적으로 / bin / bash
샌드박스에 가입한 후 쉘이 시작됩니다. 프로그램이 지정되면 프로그램
샌드박스에서 실행됩니다. 이 명령은 루트 사용자만 사용할 수 있습니다. 보안
필터, cgroup 및 CPU 구성은 프로세스에 가입하는 데 적용되지 않습니다.
모래 상자.
--join-filesystem=pid
프로세스 ID로 식별된 샌드박스의 마운트 네임스페이스에 가입합니다. 기본적으로
/ bin / bash 샌드박스에 가입한 후 쉘이 시작됩니다. 프로그램이 지정된 경우,
프로그램은 샌드박스에서 실행됩니다. 이 명령은 루트 사용자만 사용할 수 있습니다.
보안 필터, cgroup 및 CPU 구성이 프로세스에 적용되지 않습니다.
샌드박스에 참여합니다.
--네트워크 가입=이름
이름으로 식별된 샌드박스의 네트워크 네임스페이스에 가입합니다. 기본적으로
/ bin / bash 샌드박스에 가입한 후 쉘이 시작됩니다. 프로그램이 지정된 경우,
프로그램은 샌드박스에서 실행됩니다. 이 명령은 루트 사용자만 사용할 수 있습니다.
보안 필터, cgroup 및 CPU 구성이 프로세스에 적용되지 않습니다.
샌드박스에 참여합니다.
--네트워크 가입=pid
프로세스 ID로 식별된 샌드박스의 네트워크 네임스페이스에 가입합니다. 기본적으로
/ bin / bash 샌드박스에 가입한 후 쉘이 시작됩니다. 프로그램이 지정된 경우,
프로그램은 샌드박스에서 실행됩니다. 이 명령은 루트 사용자만 사용할 수 있습니다.
보안 필터, cgroup 및 CPU 구성이 프로세스에 적용되지 않습니다.
샌드박스에 참여합니다.
--목록 모든 샌드박스를 나열하려면 다음을 참조하세요. 모니터링 자세한 내용은 섹션을 참조하십시오.
예:
$ firejail --목록
7015:netblue:firejail 파이어폭스
7056:netblue:firejail --net=eth0 전송-gtk
7064:netblue:firejail --noroot xterm
$
--mac=주소
--net 옵션으로 정의된 마지막 네트워크 인터페이스에 MAC 주소를 할당합니다.
예:
$ firejail --net=eth0 --mac=00:11:22:33:44:55 파이어폭스
--mtu=숫자
--net 옵션으로 정의된 마지막 네트워크 인터페이스에 MTU 값을 할당합니다.
예:
$ firejail --net=eth0 --mtu=1492
--이름=이름
샌드박스 이름을 설정합니다. --join 및 --shutdown과 같은 여러 옵션은 이 이름을 사용할 수 있습니다.
샌드박스를 식별합니다.
예:
$ firejail --name=내 브라우저 파이어폭스
--net=브리지_인터페이스
새 네트워크 네임스페이스를 활성화하고 이 브리지 인터페이스에 연결합니다.
--ip 및 --defaultgw 옵션으로 지정된 IP 주소와 기본 게이트웨이
샌드박스에 자동으로 할당됩니다. IP 주소는 ARP를 사용하여 검증됩니다.
할당 전. 기본 게이트웨이로 구성된 주소는 브리지 장치입니다.
IP 주소. 최대 4개의 --net 브리지 장치를 정의할 수 있습니다. 브리지와 혼합
macvlan 장치가 허용됩니다.
예:
$ sudo brctl 추가 br0
$ sudo ifconfig br0 10.10.20.1/24
$ sudo brctl 추가 br1
$ sudo ifconfig br1 10.10.30.1/24
$ 방화 감옥 --net=br0 --net=br1
--net=이더넷_인터페이스
새 네트워크 네임스페이스를 활성화하고 이를 사용하여 이 이더넷 인터페이스에 연결합니다.
표준 Linux macvlan 드라이버. --ip 및 --defaultgw 옵션으로 지정하지 않는 한,
샌드박스에는 IP 주소와 기본 게이트웨이가 자동으로 할당됩니다.
IP 주소는 할당 전에 ARP를 사용하여 검증됩니다. 다음과 같이 구성된 주소
기본 게이트웨이는 호스트의 기본 게이트웨이입니다. 최대 4개의 --net 장치가 가능합니다.
정의됨. 브리지 및 macvlan 장치 혼합이 허용됩니다.
예:
$ firejail --net=eth0 --ip=192.168.1.80 --dns=8.8.8.8 파이어폭스
--net=없음
연결되지 않은 새 네트워크 네임스페이스를 활성화합니다. 사용 가능한 유일한 인터페이스는
새 네임스페이스는 새 루프백 인터페이스(lo)입니다. 이 옵션을 사용하여 네트워크를 거부합니다.
네트워크 접속이 실제로 필요하지 않은 프로그램에 대한 접속.
예:
$ firejail --net=none vlc
--넷필터
새 네트워크 네임스페이스에서 기본 클라이언트 네트워크 필터를 활성화합니다. 새 네트워크
네임스페이스는 --net 옵션을 사용하여 생성됩니다. 새 네트워크 네임스페이스가 없는 경우
생성된 --netfilter 옵션은 아무것도 하지 않습니다. 기본 필터는 다음과 같습니다.
*필터
:입력 드롭 [0:0]
:포워드 드롭 [0:0]
: 출력 수락 [0:0]
-A 입력 -i lo -j 수락
-A 입력 -m 상태 --상태 관련, 설정됨 -j 수락
-A 입력 -p icmp --icmp-유형 대상 도달 불가 -j 허용
-A 입력 -p icmp --icmp-유형 시간 초과 -j 허용
-A 입력 -p icmp --icmp-유형 에코 요청 -j 수락
COMMIT
예:
$ firejail --net=eth0 --netfilter 파이어폭스
--netfilter=파일 이름
새 네트워크 네임스페이스에서 파일 이름으로 지정된 네트워크 필터를 활성화합니다.
필터 파일 형식은 iptables-save 및 iptable-restore 명령의 형식입니다.
새로운 네트워크 네임스페이스는 --net 옵션을 사용하여 생성됩니다. 새로운 네트워크 네임스페이스가
생성되지 않았으므로 --netfilter 옵션은 아무런 작업도 수행하지 않습니다.
다음 필터는 /etc/firejail 디렉토리에서 사용할 수 있습니다.
웹서버.net TCP 포트 80에만 액세스를 허용하는 웹 서버 필터입니다.
443. 예:
$ firejail --netfilter=/etc/firejail/webserver.net --net=eth0 \
/etc/init.d/apache2 스타트
노로컬닷넷 로컬 네트워크에 대한 액세스를 비활성화하는 클라이언트 필터입니다. 예:
$ firejail --netfilter=/etc/firejail/nolocal.net \
--net=eth0 파이어폭스
--netfilter6=파일 이름
새 네트워크 네임스페이스에서 파일 이름으로 지정된 IPv6 네트워크 필터를 활성화합니다.
필터 파일 형식은 ip6tables-save 및 ip6table-restore 형식입니다.
명령. 새로운 네트워크 네임스페이스는 --net 옵션을 사용하여 생성됩니다. 새로운 네트워크
네임스페이스가 생성되지 않으므로 --netfilter6 옵션은 아무런 작업도 수행하지 않습니다.
--netstats
네트워크 네임스페이스 통계를 모니터링합니다. 모니터링 자세한 내용은 섹션을 참조하십시오.
예:
$ firejail --netstats
PID 사용자 RX(KB/s) TX(KB/s) 명령
1294 넷블루 53.355 1.473 파이어제일 --net=eth0 파이어폭스
7383 netblue 9.045 0.112 firejail --net=eth0 전송
--noblacklist=디렉토리이름또는파일이름
이 디렉토리나 파일에 대한 블랙리스트를 비활성화합니다.
예:
$ 소방감옥
$ nc 사전.org 2628
세게 때리다: /빈/nc: 권한이 거부되었습니다
$ 종료
$ firejail --블랙리스트 없음=/빈/nc
$ nc 사전.org 2628
220 pan.alephnull.com dictd 1.12.1/rf Linux 3.14-1-amd64에서
--그룹 없음
보충 그룹을 비활성화합니다. 이 옵션이 없으면 보충 그룹이 활성화됩니다.
샌드박스를 시작하는 사용자를 위해. 루트 사용자의 경우 보충 그룹은 항상
사용할 수 없습니다.
예:
$ 아이디
uid=1000(넷블루) gid=1000(넷블루)
groups=1000(netblue),24(cdrom),25(floppy),27(sudo),29(audio)
$ firejail --nogroups
부모 pid 8704, 자식 pid 8705
자식 프로세스가 초기화되었습니다
$ 아이디
uid=1000(netblue) gid=1000(netblue) 그룹=1000(netblue)
$
--노프로필
보안 프로필을 사용하지 마세요.
예:
$ 소방감옥
/etc/firejail/generic.profile 프로필 읽기
부모 pid 8553, 자식 pid 8554
자식 프로세스가 초기화되었습니다
[...]
$ firejail --noprofile
부모 pid 8553, 자식 pid 8554
자식 프로세스가 초기화되었습니다
[...]
--루트없음
단일 사용자(현재 사용자)로 사용자 네임스페이스를 설치합니다. root 사용자는 그렇지 않습니다.
새 네임스페이스에 존재합니다. 이 옵션에는 Linux 커널 버전 3.8 이상이 필요합니다.
최신. 이 옵션은 --chroot 및 --overlay 구성에 지원되지 않습니다.
샌드박스는 루트로 시작합니다.
예:
$ firejail --noroot
부모 pid 8553, 자식 pid 8554
자식 프로세스가 초기화되었습니다
$ 핑 구글닷컴
ping: icmp 오픈 소켓: 작업이 허용되지 않습니다.
$
--무음
사운드 시스템을 비활성화합니다.
예:
$ firejail --nosound firefox
--출력=로그파일
stdout 로깅 및 로그 회전. stdout을 로그 파일에 복사하고 크기를 유지합니다.
로그 회전을 사용하여 500KB 미만의 파일. 접두사 .1~.5가 있는 XNUMX개의 파일이 사용됩니다.
회전.
예:
$ firejail --출력=샌드박스로그 / bin / bash
[...]
$ ls -l 샌드박스로그*
-rw-r--r-- 1 netblue netblue 333890 2월 07일 48:XNUMX sandboxlog
-rw-r--r-- 1 netblue netblue 511488 2월 07일 48:1 sandboxlog.XNUMX
-rw-r--r-- 1 netblue netblue 511488 2월 07일 48:2 sandboxlog.XNUMX
-rw-r--r-- 1 netblue netblue 511488 2월 07일 48:3 sandboxlog.XNUMX
-rw-r--r-- 1 netblue netblue 511488 2월 07일 48:4 sandboxlog.XNUMX
-rw-r--r-- 1 netblue netblue 511488 2월 07일 48:5 sandboxlog.XNUMX
--위에 까는 것
현재 파일 시스템 위에 파일 시스템 오버레이를 마운트합니다. 모든 파일 시스템
수정 사항은 오버레이로 이동합니다. 오버레이는 $HOME/.firejail에 저장됩니다.
디렉토리.
이 옵션이 작동하려면 Linux 커널에서 OverlayFS 지원이 필요합니다. OverlayFS
공식적으로 Linux 커널 버전 3.18에 도입되었습니다.
예:
$ firejail --오버레이 파이어폭스
--오버레이-tmpfs
현재 파일 시스템 위에 파일 시스템 오버레이를 마운트합니다. 모든 파일 시스템
수정 사항은 오버레이에 적용되며 샌드박스를 닫으면 삭제됩니다.
이 옵션이 작동하려면 Linux 커널에서 OverlayFS 지원이 필요합니다. OverlayFS
공식적으로 Linux 커널 버전 3.18에 도입되었습니다.
예:
$ firejail --overlay-tmpfs 파이어폭스
--사적인
새로운 마운트 / 루트 및 임시 파일 시스템의 /home/user 디렉토리. 모두
샌드박스를 닫으면 수정 사항이 삭제됩니다.
예:
$ firejail --개인 파이어폭스
--private=디렉토리
디렉토리를 사용자 홈으로 사용합니다.
예:
$ firejail --private=/home/netblue/firefox-home 파이어폭스
--private-bin=파일,파일
새로 구축 /큰 상자 임시 파일 시스템에 저장하고 목록에 있는 프로그램을 복사합니다.
동일한 디렉토리도 바인드 마운트됩니다. / sbin, / usr / bin 및 /usr/sbin.
예:
$ firejail --private-bin=bash,sed,ls,cat
부모 pid 20841, 자식 pid 20842
자식 프로세스가 초기화되었습니다
$ls /큰 상자
배쉬캣 ls sed
--개인-개발
새 항목 만들기 / dev 디렉토리. dri, null, full, zero, tty, pts, ptmx, random만
urandom, log, shm 장치를 사용할 수 있습니다.
예:
$ firejail --private-dev
부모 pid 9887, 자식 pid 9888
자식 프로세스가 초기화되었습니다
$ls / dev
dri 전체 로그 null ptmx pts 랜덤 shm tty urandom zero
$
--private-etc=파일, 디렉토리
새로 구축 / 기타 임시 파일 시스템에 파일과 디렉토리를 복사합니다.
목록. 샌드박스를 닫으면 모든 수정 사항이 삭제됩니다.
예:
$ firejail --private-etc=그룹,호스트 이름,현지 시간, \
nsswitch.conf, 암호, resolv.conf
--개인-임시
비어있는 임시 파일 시스템을 위에 마운트합니다. / TMP 디렉토리.
예:
$ firejail --개인-tmp
--profile=파일 이름
파일 이름에서 사용자 지정 보안 프로필을 로드합니다. 파일 이름에는 절대 경로를 사용하거나
현재 경로에 상대적인 경로입니다. 자세한 내용은 다음을 참조하세요. 보안 프로필
섹션을 참조하십시오.
예:
$ firejail --profile=내 프로필
--profile-path=디렉토리
이 디렉토리를 사용하여 프로필 파일을 찾습니다. 절대 경로 또는 경로를 사용합니다.
홈 디렉토리로 시작 ~ /. 자세한 내용은 다음 링크를 참조하세요 보안 프로필
아래 섹션과 재배치 중 윤곽 파일 in 사람 5 firejail-프로필.
예:
$ firejail --프로필 경로=~/내 프로필
$ firejail --profile-path=/home/netblue/myprofiles
--프로토콜=프로토콜,프로토콜,프로토콜
프로토콜 필터를 활성화합니다. 필터는 seccomp를 기반으로 하며 첫 번째를 확인합니다.
소켓 시스템 호출에 대한 인수. 인식되는 값: unix, inet, inet6, netlink 및
패킷.
예:
$ firejail --프로토콜=unix,inet,inet6 firefox
--프로토콜.인쇄=이름
이름으로 식별된 샌드박스에 대한 프로토콜 필터를 인쇄합니다.
예:
$ firejail --name=내 브라우저 firefox &
[...]
$ firejail --print.print=내 브라우저
유닉스, Inet, Inet6, 넷링크
--프로토콜.인쇄=pid
PID로 식별된 샌드박스에 대한 프로토콜 필터를 인쇄합니다.
예:
$ firejail --목록
3272:netblue:firejail --개인 파이어폭스
$ firejail --프로토콜.print=3272
유닉스, Inet, Inet6, 넷링크
--조용한
Firejail의 출력을 끕니다.
--읽기 전용=디렉토리 이름 또는 파일 이름
디렉토리나 파일을 읽기 전용으로 설정합니다.
예:
$ firejail --읽기 전용=~/.모질라 파이어 폭스
--rlimit-fsize=숫자
프로세스가 생성할 수 있는 최대 파일 크기를 설정합니다.
--rlimit-nofile=숫자
프로세스가 열 수 있는 최대 파일 수를 설정합니다.
--rlimit-nproc=숫자
실제 사용자 ID에 대해 생성될 수 있는 최대 프로세스 수를 설정합니다.
호출 프로세스.
--rlimit-서명 보류=숫자
프로세스에 대해 보류 중인 신호의 최대 개수를 설정합니다.
--주사 네트워크 네임스페이스 내부에서 모든 네트워크를 ARP 스캔합니다. 이렇게 하면 가능합니다.
현재 호스트에서 실행 중인 macvlan 커널 장치 드라이버를 감지합니다.
예:
$ firejail --net=eth0 --스캔
--seccomp
seccomp 필터를 활성화하고 기본 목록에서 syscall을 블랙리스트에 추가합니다. 기본
목록은 다음과 같습니다: mount, umount2, ptrace, kexec_load, kexec_file_load,
open_by_handle_at, init_module, final_module, delete_module, iopl, ioperm, swapon,
스왑오프, syslog, 프로세스_vm_readv, 프로세스_vm_writev, sysfs, _sysctl, adjtimex,
clock_adjtime, lookup_dcookie, perf_event_open, fanotify_init, kcmp, add_key,
요청_키, 키ctl, uselib, acct, 수정_ldt, pivot_root, io_setup, io_destroy,
io_getevents, io_submit, io_cancel, remap_file_pages, mbind, get_mempolicy,
set_mempolicy, migrate_pages, move_pages, vmsplice, perf_event_open 및 chroot.
예:
$ firejail --seccomp
--seccomp=시스템 호출,시스템 호출,시스템 호출
seccomp 필터를 활성화하고 기본 목록과 지정된 syscall을 블랙리스트에 추가합니다.
명령.
예:
$ firejail --seccomp=utime,utimensat,utimes 파이어폭스
--seccomp.drop=시스템 호출,시스템 호출,시스템 호출
seccomp 필터를 활성화하고 명령으로 지정된 syscall을 블랙리스트에 추가합니다.
예:
$ firejail --seccomp.drop=utime,utimensat,utimes
--seccomp.keep=시스템 호출,시스템 호출,시스템 호출
seccomp 필터를 활성화하고 명령으로 지정된 syscall을 허용 목록에 추가합니다.
예:
$ firejail --shell=none --seccomp.keep=poll,select,[...] 전송-gtk
--보안. =시스템호출,시스템호출,시스템호출
seccomp 필터를 활성화하고 명령에서 지정한 syscall에 대한 errno를 반환합니다.
예: 파일 삭제가 비활성화된 Bash 셸
$ firejail --seccomp.eperm=unlinkat
부모 pid 10662, 자식 pid 10663
자식 프로세스가 초기화되었습니다
$ touch 테스트파일
$ rm 테스트파일
rm: `testfile'을 제거할 수 없습니다: 작업이 허용되지 않습니다.
--seccomp.print=이름
--name 옵션을 사용하여 시작된 샌드박스에 대한 seccomp 필터를 출력합니다.
예:
$ firejail --name=브라우저 firefox &
$ firejail --seccomp.print=브라우저
SECCOMP 필터:
아키텍처 검증
검사_시스템콜
블랙리스트 165 마운트
블랙리스트 166 umount2
블랙리스트 101 ptrace
블랙리스트 246 kexec_load
블랙리스트 304 open_by_handle_at
블랙리스트 175 init_module
블랙리스트 176 삭제_모듈
블랙리스트 172 iopl
블랙리스트 173 ioperm
블랙리스트 167 스왑온
블랙리스트 168 스왑오프
블랙리스트 103 syslog
블랙리스트 310 프로세스_vm_readv
블랙리스트 311 프로세스_vm_writev
블랙리스트 133 mknod
블랙리스트 139 sysfs
블랙리스트 156 _sysctl
블랙리스트 159 adjtimex
블랙리스트 305 clock_adjtime
블랙리스트 212 lookup_dcookie
블랙리스트 298 perf_event_open
블랙리스트 300 fanotify_init
반환 허용
$
--seccomp.print=pid
프로세스 ID로 지정된 샌드박스에 대한 seccomp 필터를 인쇄합니다. --list 옵션을 사용하세요.
활성화된 모든 샌드박스 목록을 가져옵니다.
예:
$ firejail --목록
10786:netblue:firejail --name=브라우저 파이어폭스 $ firejail --seccomp.print=10786
SECCOMP 필터:
아키텍처 검증
검사_시스템_캘
블랙리스트 165 마운트
블랙리스트 166 umount2
블랙리스트 101 ptrace
블랙리스트 246 kexec_load
블랙리스트 304 open_by_handle_at
블랙리스트 175 init_module
블랙리스트 176 삭제_모듈
블랙리스트 172 iopl
블랙리스트 173 ioperm
블랙리스트 167 스왑온
블랙리스트 168 스왑오프
블랙리스트 103 syslog
블랙리스트 310 프로세스_vm_readv
블랙리스트 311 프로세스_vm_writev
블랙리스트 133 mknod
블랙리스트 139 sysfs
블랙리스트 156 _sysctl
블랙리스트 159 adjtimex
블랙리스트 305 clock_adjtime
블랙리스트 212 lookup_dcookie
블랙리스트 298 perf_event_open
블랙리스트 300 fanotify_init
반환 허용
$
--쉘=없음
사용자 셸 없이 프로그램을 직접 실행합니다.
예:
$ firejail --shell=none 스크립트.sh
--shell=프로그램
기본 사용자 셸을 설정합니다. 이 셸을 사용하여 -c shell을 사용하여 애플리케이션을 실행합니다.
옵션. 예를 들어 "firejail --shell=/빈/대시 firefox"는 Mozilla를 시작합니다.
Firefox는 "/빈/대시 -c firefox". 기본적으로 Bash 쉘(/ bin / bash) 사용.
--zsh 및 --csh와 같은 옵션을 사용하여 기본 셸을 설정할 수도 있습니다.
예: $firejail --shell=/빈/대시 스크립트.sh
--종료=이름
--name 옵션을 사용하여 샌드박스를 종료했습니다.
예:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --shutdown=내 게임
--종료=pid
프로세스 ID로 지정된 샌드박스를 종료합니다. --list 옵션을 사용하여 목록을 가져옵니다.
모든 활성화된 샌드박스.
예:
$ firejail --목록
3272:netblue:firejail --개인 파이어폭스
$ firejail --종료=3272
--tmpfs=디렉토리 이름
디렉토리 dirname에 tmpfs 파일 시스템을 마운트합니다. 이 옵션은 다음과 같은 경우에만 사용할 수 있습니다.
루트로 샌드박스를 실행합니다.
예:
# 파이어감옥 --tmpfs=/ var
--맨 위 가장 CPU를 많이 사용하는 샌드박스를 모니터링하려면 다음을 참조하세요. 모니터링 자세한 내용은 섹션을 참조하십시오.
예:
$ firejail --top
--추적하다
시스템 호출의 열기, 접근 및 연결을 추적합니다.
예:
$ firejail --trace wget -q www.debian.org
부모 pid 11793, 자식 pid 11794
자식 프로세스가 초기화되었습니다
1:bash:open /dev/tty
1:wget:fopen64 /etc/wgetrc
1:wget:열기 은 / etc / 호스트
1:wget:소켓 AF_INET SOCK_DGRAM IPPROTO_IP
1:wget:연결 8.8.8.8:53
1:wget:소켓 AF_INET SOCK_STREAM IPPROTO_IP
1:wget:연결 140.211.15.34:80
1:wget:fopen64 인덱스.html.1
부모가 닫아요, 안녕...
--추적로그
이 옵션을 사용하면 블랙리스트에 있는 파일과 디렉토리를 감사할 수 있습니다. 메시지가 전송됩니다.
파일이나 디렉토리에 접근하는 경우 syslog에 기록됩니다.
예:
$ firejail --tracelog 파이어폭스
샘플 메시지:
$ sudo tail -f / var / log / syslog
[...]
3월 11일 43:25:70 debian firejail[26370]: 블랙리스트 위반 - 샌드박스 XNUMX, exe
firefox, syscall open64, 경로 / etc / 그림자
3월 11일 46:17:70 debian firejail[26370]: 블랙리스트 위반 - 샌드박스 XNUMX, exe
firefox, syscall opendir, 경로 /신병
[...]
--나무 샌드박스 프로세스의 모든 트리를 인쇄하려면 다음을 참조하세요. 모니터링 자세한 내용은 섹션을 참조하십시오.
예:
$ firejail --트리
11903:netblue:firejail 아이스위즐
11904:netblue:아이스위즐
11957:netblue:/usr/lib/iceweasel/플러그인 컨테이너
11969:netblue:firejail --net=eth0 전송-gtk
11970:netblue:전송-gtk
--user=새로운 사용자
샌드박스를 시작하기 전에 사용자를 전환하세요. 이 명령은 루트로 실행해야 합니다.
예:
# firejail --user=www-data
--번역
프로그램 버전을 인쇄하고 종료합니다.
예:
$ firejail --버전
firejail 버전 0.9.27
--화이트리스트=디렉토리이름또는파일이름
화이트리스트 디렉토리 또는 파일. 이 기능은 사용자 홈에만 구현됩니다. / dev,
/미디어, /고르다, / var및 / TMP 디렉토리.
예:
$ firejail --화이트리스트=~/.모질라 --화이트리스트=~ / 다운로드
$ firejail --화이트리스트=/tmp/.X11-유닉스 --화이트리스트=/dev/null
$ firejail "--whitelist=/home/username/내 가상 머신"
--zsh 기본 사용자 셸로 /usr/bin/zsh를 사용합니다.
예:
$ firejail --zsh
교통 성형
네트워크 대역폭은 시스템에서 실행되는 모든 샌드박스가 공유되는 값비싼 리소스입니다.
트래픽 셰이핑을 통해 사용자는 트래픽 양을 제어하여 네트워크 성능을 높일 수 있습니다.
샌드박스에 들어오고 나가는 데이터의 양.
Firejail은 Linux 명령 tc를 기반으로 하는 간단한 속도 제한 셰이퍼를 구현합니다. 셰이퍼
샌드박스 수준에서 작동하며 새 네트워크로 구성된 샌드박스에만 사용할 수 있습니다.
네임 스페이스.
속도 제한 설정:
firejail --bandwidth={name|pid} 네트워크 다운로드 업로드 설정
명확한 요금 제한:
firejail --bandwidth={name|pid} 네트워크 지우기
상태 :
firejail --대역폭={이름|pid} 상태
여기서
이름 - 샌드박스 이름
pid - 샌드박스 pid
네트워크 - --net 옵션에서 사용되는 네트워크 인터페이스
다운로드 - 다운로드 속도(KB/s)
upload - 업로드 속도(KB/s) (초당 킬로바이트)
예:
$ firejail --name=mybrowser --net=eth0 firefox &
$ firejail --대역폭=내 브라우저 설정 eth0 80 20
$ firejail --대역폭=내 브라우저 상태
$ firejail --bandwidth=mybrowser eth0 지우기
모니터링
옵션 --list는 모든 샌드박스 목록을 인쇄합니다. 각 프로세스 항목의 형식은 다음과 같습니다.
다음과 같습니다 :
PID:사용자:명령
--tree 옵션은 샌드박스에서 실행 중인 프로세스의 트리를 인쇄합니다. 각각의 형식
프로세스 항목은 다음과 같습니다.
PID:사용자:명령
--top 옵션은 UNIX top 명령과 유사하지만 샌드박스에만 적용됩니다.
옵션 --netstats는 새 네트워크를 설치하는 활성 샌드박스에 대한 네트워크 통계를 인쇄합니다.
네임 스페이스.
--top 및 --columns에 대해 사용 가능한 필드(열)는 알파벳순으로 나열되어 있습니다.
--netstat 옵션:
Command
샌드박스를 시작하는 데 사용되는 명령입니다.
CPU% CPU 사용량, 마지막 화면 업데이트 이후 경과된 CPU 시간의 샌드박스 점유율
PID 샌드박스를 제어하는 작업의 고유한 프로세스 ID입니다.
Prcs 제어 프로세스를 포함하여 샌드박스에서 실행 중인 프로세스 수입니다.
RES 상주 메모리 크기(KiB), 샌드박스 스왑되지 않은 물리적 메모리. 의 합이다
샌드박스에서 실행 중인 모든 프로세스의 RES 값.
수신(KB/초)
네트워크 수신 속도.
SHR 공유 메모리 크기(KiB)는 다른 프로세스와 공유되는 메모리를 반영합니다. 이것은
다음을 포함하여 샌드박스에서 실행 중인 모든 프로세스에 대한 SHR 값의 합계
제어 프로세스.
전송(KB/초)
네트워크 전송 속도.
Uptime Sandbox 실행 시간(시:분:초 형식).
사용자 샌드박스의 소유자입니다.
보안 프로필
여러 명령줄 옵션은 프로필 파일을 사용하여 프로그램에 전달될 수 있습니다. Firejail
다음과 같이 프로필 파일을 선택합니다.
1. 사용자가 --profile 옵션으로 프로필 파일을 제공한 경우 프로필 파일은
로드됨. 예:
$ firejail --profile=/home/netblue/icecat.profile 아이스캣
프로필 읽기 /home/netblue/icecat.profile
[...]
2. 응용프로그램과 동일한 이름의 프로필 파일이 있는 경우
~/.config/firejail 디렉토리나 /etc/firejail에 프로필이 로드됩니다.
~/.config/firejail /etc/firejail보다 우선합니다. 예:
$ firejail 아이스캣
명령어 이름 #icecat#
/home/netblue/.config/firejail 디렉토리에서 icecat 프로필을 찾았습니다.
프로필 읽기 /home/netblue/.config/firejail/icecat.profile
[...]
3. 샌드박스가 일반 사용자에 의해 시작된 경우 default.profile 파일을 사용하고, server.profile을 사용합니다.
샌드박스가 루트에 의해 시작되면 파일입니다. Firejail은 이러한 파일을 찾습니다.
~/.config/firejail 디렉토리, 그 다음에 /etc/firejail 디렉토리가 있습니다. 기본값을 비활성화하려면
프로필 로딩, --noprofile 명령 옵션을 사용하세요. 예:
$ 소방감옥
/etc/firejail/generic.profile 프로필 읽기
부모 pid 8553, 자식 pid 8554
자식 프로세스가 초기화되었습니다
[...]
$ firejail --noprofile
부모 pid 8553, 자식 pid 8554
자식 프로세스가 초기화되었습니다
[...]
프로필 파일 구문 정보는 man 5 firejail-profile을 참조하세요.
한정된 SHELL
제한된 셸을 구성하려면 다음을 바꾸세요. / bin / bash /etc/password에 /usr/bin/firejail이 있음
제한해야 하는 각 사용자에 대한 파일입니다. 또는 다음을 지정할 수 있습니다.
adduser 명령의 /usr/bin/firejail:
adduser --shell /usr/bin/firejail 사용자 이름
로그인 시 firejail 실행 파일에 전달되는 추가 인수는 다음과 같이 선언됩니다.
/etc/firejail/login.users 파일.
사용 예
화재감옥
정기적으로 시작하다 / bin / bash 샌드박스에서 세션을 진행합니다.
파이어잭 파이어폭스
Mozilla Firefox를 시작합니다.
firejail --디버그 파이어폭스
Firefox 샌드박스 디버깅.
firejail --개인
시작 / bin / bash 새로운 tmpfs 홈 디렉토리로 세션을 시작합니다.
firejail --net=br0 ip=10.10.20.10
시작 / bin / bash 새 네트워크 네임스페이스에서 세션. 세션이 연결됨
br0 브리지 장치를 사용하는 메인 네트워크. IP 주소 10.10.20.10이 할당됩니다.
샌드박스로.
방화 감옥 --net=br0 --net=br1 --net=br2
시작 / bin / bash 새 네트워크 네임스페이스에서 세션을 생성하고 br0, br1에 연결합니다.
및 br2 호스트 브리지 장치.
firejail --목록
샌드박스 프로세스를 모두 나열합니다.
onworks.net 서비스를 사용하여 firejail online을 사용하세요
