این دستور firejail است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
Firejail - برنامه Sandbox فضاهای نام لینوکس
خلاصه
یک جعبه شنی راه اندازی کنید:
firejail [گزینهها] [برنامه و آرگومانها]
شکلدهی ترافیک شبکه برای یک جعبه ایمنی موجود:
firejail --bandwidth={ | } bandwidth-command
مانیتورینگ:
firejail {--list | --netstats | --بالا | --درخت}
سایر موارد:
firejail {-? | --debug-caps | --debug-errnos | --debug-sycalls | --debug-protocols
| --راهنما | --نسخه}
شرح
Firejail یک برنامه SUID sandbox است که خطر نقض امنیت را کاهش می دهد
محدود کردن محیط در حال اجرا برنامه های غیرقابل اعتماد با استفاده از فضای نام لینوکس،
قابلیت seccomp-bpf و لینوکس. این اجازه می دهد تا یک فرآیند و همه فرزندان آن داشته باشند
دیدگاه خصوصی خودشان از منابع هسته مشترک جهانی، مانند پشته شبکه،
جدول فرآیند، جدول نصب. Firejail می تواند در محیط SELinux یا AppArmor کار کند و
با گروه های کنترل لینوکس یکپارچه شده است.
این نرم افزار که به زبان C نوشته شده و تقریباً هیچ وابستگی ندارد، روی هر رایانه لینوکسی اجرا می شود
یک نسخه هسته 3.x یا جدیدتر. این می تواند هر نوع فرآیندی را جعبه شنود کند: سرورها، گرافیکی
برنامه ها و حتی جلسات ورود کاربر.
Firejail به کاربر اجازه می دهد تا با استفاده از پروفایل های امنیتی، امنیت برنامه ها را مدیریت کند. هر یک
پروفایل مجموعه ای از مجوزها را برای یک برنامه خاص یا گروهی از برنامه ها تعریف می کند.
این نرم افزار شامل نمایه های امنیتی برای تعدادی از برنامه های رایج لینوکس است، مانند
به عنوان Mozilla Firefox، Chromium، VLC، Transmission و غیره.
طریقه استفاده
بدون هیچ گزینه ای، sandbox از یک سیستم فایل chroot ساخته شده در یک mount جدید تشکیل شده است
فضای نام و فضاهای نام PID و UTS جدید. IPC، شبکه و فضای نام کاربری را می توان اضافه کرد
با استفاده از گزینه های خط فرمان فایل سیستم پیش فرض Firejail بر اساس هاست است
سیستم فایل با دایرکتوری های اصلی نصب شده فقط خواندنی. فقط / صفحه اصلی و دایرکتوری / tmp قابل نوشتن هستند
با راه اندازی، Firejail سعی می کند یک نمایه امنیتی بر اساس نام آن پیدا کند
کاربرد. اگر نمایه مناسبی پیدا نشد، Firejail از نمایه پیش فرض استفاده می کند.
نمایه پیش فرض کاملاً محدود کننده است. در صورتی که برنامه کار نمی کند، استفاده کنید
گزینه noprofile برای غیرفعال کردن آن. برای اطلاعات بیشتر لطفا ببینید امنیت پرونده ها
بخش.
اگر آرگومان برنامه مشخص نشده باشد، Firejail شروع می شود / bin / bash پوسته. مثال ها:
$ firejail [OPTIONS] # شروع یک / bin / bash صدف
$ firejail [OPTIONS] فایرفاکس # در حال راه اندازی موزیلا فایرفاکس
# sudo firejail [OPTIONS] /etc/init.d/nginx start
OPTIONS
-- علامت پایان گزینه ها و غیرفعال کردن پردازش بیشتر گزینه ها.
-- پهنای باند = نام
محدودیت های پهنای باند را برای جعبه شنی مشخص شده با نام تنظیم کنید، ببینید ترافیک شکل دادن
بخش برای جزئیات بیشتر
--پهنای باند=pid
محدودیت های پهنای باند را برای جعبه شنی شناسایی شده توسط PID تنظیم کنید، ببینید ترافیک شکل دادن بخش
برای جزئیات بیشتر.
--bind=dirname1,dirname2
Mount-bind dirname1 در بالای dirname2. این گزینه فقط هنگام اجرا در دسترس است
سندباکس به عنوان ریشه
مثال:
# firejail --bind=/config/www,/ ور / وو
--bind=filename1,filename2
Mount-bind filename1 در بالای filename2. این گزینه فقط زمانی در دسترس است که
در حال اجرا به عنوان ریشه
مثال:
# firejail --bind=/config/etc/passwd،/ etc / passwd
--blacklist=dirname_or_name
فهرست سیاه پوشه یا فایل.
مثال:
$ firejail --blacklist=/ sbin --لیست سیاه=/ usr / sbin
$ firejail --blacklist=~/.mozilla
$ firejail "--blacklist=/home/username/My Virtual Machines"
-c دستور را اجرا کنید و خارج شوید.
-- کلاه ها قابلیتهای لینوکس یک ویژگی هسته است که برای تقسیم امتیاز ریشه طراحی شده است
مجموعه ای از امتیازات متمایز این امتیازات را می توان فعال یا غیرفعال کرد
به طور مستقل، بنابراین کاری که یک فرآیند در حال اجرا به عنوان root می تواند در آن انجام دهد محدود می کند
سیستم.
به طور پیش فرض برنامه های روت با فعال بودن تمامی قابلیت ها اجرا می شوند. گزینه --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 start && sleep inf"
--caps.drop=all
تمام قابلیتهای فرآیندهای در حال اجرا در جعبه شنی را رها کنید. این گزینه است
برای اجرای برنامه های رابط کاربری گرافیکی یا هر برنامه دیگری که به روت نیاز ندارد توصیه می شود
امتیازات این یک گزینه ضروری برای سندباکس کردن برنامه های غیرقابل اعتماد نصب شده است
از منابع غیر رسمی - مانند بازی ها، برنامه های جاوا و غیره.
مثال:
$ firejail --caps.drop=all warzone2100
--caps.drop=قابلیت، قابلیت، قابلیت
یک فیلتر لیست سیاه سفارشی لینوکس تعریف کنید.
مثال:
$ firejail --caps.keep=net_broadcast,net_admin,net_raw
--caps.keep=قابلیت، قابلیت، قابلیت
یک فیلتر قابلیت های لینوکس سفارشی در لیست سفید تعریف کنید.
مثال:
$ sudo firejail --caps.keep=chown,net_bind_service,setgid,\ setuid
/etc/init.d/nginx start
یک یادداشت کوتاه در مورد ترکیب گزینههای --سفید و --فقط خواندنی. در لیست سفید قرار گرفت
دایرکتوری ها باید به صورت مستقل فقط خواندنی ساخته شوند. خواندن دایرکتوری والد
فقط، لیست سفید را فقط خواندنی نخواهد کرد. مثال:
$ firejail --whitelist=~/کار --فقط خواندنی=~/ --فقط خواندنی=~/کار
--caps.print=name
فیلتر caps را برای جعبه شنی مشخص شده با نام چاپ کنید.
مثال:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --caps.print=mygame
--caps.print=pid
فیلتر caps را برای جعبه شنی شناسایی شده توسط PID چاپ کنید.
مثال:
$ firejail --list
3272:netblue:firejail -- فایرفاکس خصوصی
$ firejail --caps.print=3272
--cgroup=tasks-file
جعبه شنی را در گروه کنترل مشخص شده قرار دهید. tasks-file مسیر کامل است
فایل وظایف cgroup.
مثال:
# firejail --cgroup=/sys/fs/cgroup/g1/tasks
--chroot=dirname
سندباکس را در یک فایل سیستم روت کروت کنید. اگر سندباکس به صورت معمولی راه اندازی شود
فیلترهای کاربر، پیش فرض seccomp و قابلیت ها فعال هستند.
مثال:
$ firejail --chroot=/media/ubuntu warzone2100
--cpu=cpu-number,cpu-number,cpu-number
میل CPU را تنظیم کنید.
مثال:
$ firejail --cpu=0,1 ترمز دستی
--csh از /bin/csh به عنوان پوسته کاربر پیش فرض استفاده کنید.
مثال:
$ firejail --csh
- رفع اشکال
پیام های اشکال زدایی را چاپ کنید.
مثال:
$ firejail --debug firefox
--debug-lists سیاه
اشکال زدایی لیست سیاه
مثال:
$ firejail --debug-blacklists firefox
--debug-caps
تمام قابلیت های شناخته شده در ساخت نرم افزار Firejail فعلی را چاپ کنید و از آن خارج شوید.
مثال:
$ firejail --debug-caps
--debug-check-filename
بررسی نام فایل اشکال زدایی
مثال:
$ firejail --debug-check-filename firefox
--debug-errnos
تمام اعداد خطای شناسایی شده را در نسخه فعلی نرم افزار Firejail چاپ کنید و از آن خارج شوید.
مثال:
$ firejail --debug-errnos
--debug-protocols
تمام پروتکل های شناخته شده را در نسخه فعلی نرم افزار Firejail چاپ کنید و از آن خارج شوید.
مثال:
$ firejail --debug-protocols
--debug-sycalls
همه تماس های سیستمی شناسایی شده را در نسخه فعلی نرم افزار Firejail چاپ کنید و از آن خارج شوید.
مثال:
$ firejail --debug-sycalls
--debug-whitelsts
اشکال زدایی لیست مجاز.
مثال:
$ firejail --debug-whitelists firefox
--defaultgw=آدرس
از این آدرس به عنوان دروازه پیش فرض در فضای نام شبکه جدید استفاده کنید.
مثال:
$ firejail --net=eth0 --defaultgw=10.10.20.1 فایرفاکس
--dns=آدرس
یک سرور DNS برای sandbox تنظیم کنید. حداکثر سه سرور DNS را می توان تعریف کرد. از این استفاده کن
اگر به تنظیمات DNS در شبکه خود اعتماد ندارید، گزینه ای است.
مثال:
$ firejail --dns=8.8.8.8 --dns=8.8.4.4 فایرفاکس
--dns.print=name
پیکربندی DNS را برای جعبه ایمنی که با نام مشخص شده است چاپ کنید.
مثال:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --dns.print=mygame
--dns.print=pid
پیکربندی DNS را برای جعبه ایمنی شناسایی شده توسط PID چاپ کنید.
مثال:
$ firejail --list
3272:netblue:firejail -- فایرفاکس خصوصی
$ firejail --dns.print=3272
--env=name=value
متغیر محیط را در sandbox جدید تنظیم کنید.
مثال:
$ firejail --env=LD_LIBRARY_PATH=/opt/test/lib
--زور
بهطور پیشفرض، اگر Firejail در یک جعبه شنی موجود راهاندازی شود، برنامه را اجرا میکند
در یک پوسته بش. این گزینه این رفتار را غیرفعال می کند و شروع به کار می کند
Firejail در جعبه شنی موجود. ممکن است دلایل زیادی برای شکست آن وجود داشته باشد،
به عنوان مثال اگر جعبه شنی موجود قابلیتهای مدیریت، باینریهای SUID یا غیرفعال میکند
اگر seccomp اجرا شود.
--fs.print=name
گزارش سیستم فایل را برای جعبه شنی شناسایی شده با نام چاپ کنید.
مثال:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --fs.print=mygame
--fs.print=pid
گزارش سیستم فایل را برای جعبه ایمنی شناسایی شده توسط PID چاپ کنید.
مثال:
$ firejail --list
3272:netblue:firejail -- فایرفاکس خصوصی
$ firejail --fs.print=3272
-?, --کمک
گزینه های چاپ پایان خروج.
-- نام میزبان = نام
نام میزبان جعبه ایمنی را تنظیم کنید.
مثال:
$ firejail --hostname=officepc firefox
--نادیده گرفتن=فرمان
دستور را در فایل پروفایل نادیده بگیرید.
مثال:
$ firejail --ignore=shell --ignore=seccomp firefox
--interface=رابط
انتقال رابط در فضای نام شبکه جدید. حداکثر چهار گزینه -interface می تواند باشد
مشخص شده.
مثال:
$ firejail --interface=eth1 --interface=eth0.vlan100
--ip=آدرس
آدرس های IP را به آخرین رابط شبکه تعریف شده توسط یک گزینه --net اختصاص دهید. آ
دروازه پیش فرض به طور پیش فرض اختصاص داده شده است.
مثال:
$ firejail --net=eth0 --ip=10.10.20.56 فایرفاکس
--ip=هیچکدام
هیچ آدرس IP و هیچ دروازه پیش فرضی برای آخرین رابط تعریف شده پیکربندی نشده است
توسط یک گزینه --net. در صورتی که قصد راه اندازی یک DHCP خارجی را دارید از این گزینه استفاده کنید
مشتری در sandbox
مثال:
$ firejail --net=eth0 --ip=هیچکدام
--ip6=آدرس
آدرس های IPv6 را به آخرین رابط شبکه تعریف شده توسط یک گزینه --net اختصاص دهید.
مثال:
$ 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-namespace
اگر sandbox به عنوان یک کاربر معمولی شروع شده است، فضای نام IPC جدیدی را فعال کنید. IPC
فضای نام به طور پیشفرض برای جعبههای ماسهای که بهعنوان روت شروع شدهاند فعال است.
مثال:
$ firejail --ipc-namespace فایرفاکس
--join=نام
به جعبه شنی شناسایی شده با نام بپیوندید. به طور پیش فرض a / bin / bash پوسته بعد از آن شروع می شود
پیوستن به جعبه شنی اگر برنامه ای مشخص شده باشد، برنامه در sandbox اجرا می شود.
اگر دستور --join به عنوان یک کاربر معمولی صادر شود، تمام فیلترهای امنیتی پیکربندی می شوند
برای فرآیند جدید همانطور که در sandbox پیکربندی شدهاند. اگر - دستور join
به عنوان root صادر می شود، فیلترهای امنیتی، cgroups و پیکربندی cpus نیستند
برای فرآیند پیوستن به sandbox اعمال می شود.
مثال:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --join=mygame
--join=pid
به جعبه شنی شناسایی شده با شناسه فرآیند بپیوندید. به طور پیش فرض a / bin / bash پوسته شروع شده است
پس از پیوستن به sandbox اگر برنامه ای مشخص شده باشد، برنامه در قسمت اجرا می شود
جعبه شنی. اگر دستور --join به عنوان یک کاربر معمولی صادر شود، همه فیلترهای امنیتی هستند
برای فرآیند جدید پیکربندی شده اند، همان طور که در جعبه شنی پیکربندی شده اند. اگر
دستور join به صورت root، فیلترهای امنیتی، cgroups و cpus صادر می شود
تنظیمات برای فرآیند پیوستن به جعبه شنی اعمال نمی شود.
مثال:
$ firejail --list
3272:netblue:firejail -- فایرفاکس خصوصی
$ firejail --join=3272
--join-filesystem=name
به فضای نام mount sandbox که با نام مشخص شده است بپیوندید. به طور پیش فرض a / bin / bash
پوسته پس از پیوستن به sandbox شروع می شود. اگر برنامه ای مشخص شده باشد، برنامه
در sandbox اجرا می شود. این دستور فقط برای کاربر root در دسترس است. امنیت
فیلترها، cgroupها و پیکربندیهای cpus برای فرآیند پیوستن به آن اعمال نمیشوند
جعبه شنی.
--join-filesystem=pid
به فضای نام mount sandbox که با شناسه فرآیند شناسایی شده است بپیوندید. به طور پیش فرض a
/ bin / bash پوسته پس از پیوستن به sandbox شروع می شود. اگر برنامه ای مشخص شده باشد،
برنامه در sandbox اجرا می شود. این دستور فقط برای کاربر root در دسترس است.
فیلترهای امنیتی، cgroup ها و پیکربندی های cpus در فرآیند اعمال نمی شوند
پیوستن به جعبه شنی
--join-network=name
به فضای نام شبکه sandbox که با نام مشخص شده است بپیوندید. به طور پیش فرض a
/ bin / bash پوسته پس از پیوستن به sandbox شروع می شود. اگر برنامه ای مشخص شده باشد،
برنامه در sandbox اجرا می شود. این دستور فقط برای کاربر root در دسترس است.
فیلترهای امنیتی، cgroup ها و پیکربندی های cpus در فرآیند اعمال نمی شوند
پیوستن به جعبه شنی
--join-network=pid
به فضای نام شبکه جعبه ایمنی که با شناسه فرآیند شناسایی شده است بپیوندید. به طور پیش فرض a
/ bin / bash پوسته پس از پیوستن به sandbox شروع می شود. اگر برنامه ای مشخص شده باشد،
برنامه در sandbox اجرا می شود. این دستور فقط برای کاربر root در دسترس است.
فیلترهای امنیتی، cgroup ها و پیکربندی های cpus در فرآیند اعمال نمی شوند
پیوستن به جعبه شنی
-- لیست لیست همه جعبه های ماسه ای، ببینید نظارت بر بخش برای جزئیات بیشتر
مثال:
$ firejail --list
7015:netblue:firejail firefox
7056:netblue:firejail --net=eth0 transmission-gtk
7064:netblue:firejail --noroot xterm
$
--mac=آدرس
آدرس های MAC را به آخرین رابط شبکه تعریف شده توسط یک گزینه --net اختصاص دهید.
مثال:
$ firejail --net=eth0 --mac=00:11:22:33:44:55 فایرفکس
--mtu=عدد
یک مقدار MTU را به آخرین رابط شبکه تعریف شده توسط یک گزینه --net اختصاص دهید.
مثال:
$ firejail --net=eth0 --mtu=1492
--name=نام
نام جعبه ایمنی را تنظیم کنید. چندین گزینه مانند --join و --shutdown می توانند از این نام استفاده کنند
برای شناسایی یک جعبه شنی
مثال:
$ firejail --name= mybrowser firefox
--net=bridge_interface
یک فضای نام شبکه جدید را فعال کنید و آن را به این رابط پل متصل کنید. مگر اینکه
با گزینه --ip و --defaultgw، یک آدرس IP و یک دروازه پیش فرض مشخص شده است
به طور خودکار به sandbox اختصاص داده می شود. آدرس IP با استفاده از ARP تأیید می شود
قبل از تعیین تکلیف آدرس پیکربندی شده به عنوان دروازه پیش فرض دستگاه پل است
آدرس آی پی. حداکثر چهار دستگاه پل --net را می توان تعریف کرد. پل اختلاط و
دستگاه های macvlan مجاز است.
مثال:
$ sudo brctl addbr br0
$ sudo ifconfig br0 10.10.20.1/24
$ sudo brctl addbr br1
$ sudo ifconfig br1 10.10.30.1/24
$ firejail --net=br0 --net=br1
--net=ethernet_interface
یک فضای نام شبکه جدید را فعال کنید و با استفاده از آن به این رابط اترنت متصل شوید
درایور استاندارد لینوکس macvlan. مگر اینکه با گزینه --ip و --defaultgw مشخص شده باشد،
یک آدرس IP و یک دروازه پیش فرض به طور خودکار به sandbox اختصاص داده می شود.
آدرس IP قبل از تخصیص با استفاده از ARP تأیید می شود. آدرس به صورت پیکربندی شد
دروازه پیش فرض دروازه پیش فرض هاست است. حداکثر چهار دستگاه --net می تواند باشد
تعریف شده است. مخلوط کردن دستگاههای بریج و مکولان مجاز است.
مثال:
$ firejail --net=eth0 --ip=192.168.1.80 --dns=8.8.8.8 فایرفاکس
--net=هیچکدام
فضای نام شبکه جدید و غیر متصل را فعال کنید. تنها رابط موجود در
فضای نام جدید یک رابط حلقه بک جدید (lo) است. از این گزینه برای رد شبکه استفاده کنید
دسترسی به برنامه هایی که واقعاً نیازی به دسترسی به شبکه ندارند.
مثال:
$ firejail --net=none vlc
-- فیلتر شبکه
فیلتر شبکه مشتری پیشفرض را در فضای نام شبکه جدید فعال کنید. شبکه جدید
فضاهای نام با استفاده از گزینه --net ایجاد می شوند. اگر فضای نام شبکه جدید نیست
ایجاد شد، گزینه --netfilter کاری انجام نمی دهد. فیلتر پیش فرض به صورت زیر است:
*فیلتر
:INPUT DROP [0:0]
:افتادن به جلو [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m حالت --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp --icmp-نوع مقصد-غیرقابل دسترسی -j ACCEPT
-A INPUT -p icmp -- icmp-نوع زمان- بیش از حد -j ACCEPT
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT
مرتکب شدن
مثال:
$ firejail --net=eth0 --netfilter فایرفاکس
--netfilter=نام فایل
فیلتر شبکه مشخص شده با نام فایل را در فضای نام شبکه جدید فعال کنید. در
فرمت فایل فیلتر فرمت دستورات iptables-save و iptable-restore است.
فضاهای نام شبکه جدید با استفاده از گزینه --net ایجاد می شوند. اگر فضای نام شبکه جدیدی ایجاد شود
ایجاد نمی شود، گزینه --netfilter هیچ کاری نمی کند.
فیلترهای زیر در دایرکتوری /etc/firejail موجود هستند:
webserver.net یک فیلتر وب سرور است که اجازه دسترسی فقط به پورت های TCP 80 و
443. مثال:
$ firejail --netfilter=/etc/firejail/webserver.net --net=eth0 \
/etc/init.d/apache2 شروع
nolocal.net یک فیلتر مشتری است که دسترسی به شبکه محلی را غیرفعال می کند. مثال:
$ 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 netblue 53.355 1.473 firejail --net=eth0 firefox
7383 netblue 9.045 0.112 firejail --net=eth0 transmission
--noblacklist=dirname_or_name
لیست سیاه را برای این فهرست یا فایل غیرفعال کنید.
مثال:
$ firejail
$ nc dict.org 2628
بش: /bin/nc: اجازه داده نشد
$ خروج
$ firejail --noblacklist=/bin/nc
$ nc dict.org 2628
220 pan.alephnull.com dictd 1.12.1/rf در لینوکس 3.14-1-amd64
-- بدون گروه
گروه های تکمیلی را غیرفعال کنید. بدون این گزینه، گروه های تکمیلی فعال هستند
برای کاربری که sandbox را شروع می کند. برای کاربران ریشه گروه های مکمل همیشه هستند
معلول.
مثال:
شناسه $
uid=1000(netblue) gid=1000(netblue)
groups=1000(netblue),24(cdrom),25(floppy),27(sudo),29(audio)
$ firejail --nogroups
والدین pid 8704، فرزند pid 8705
فرآیند کودک اولیه شد
شناسه $
uid=1000(netblue) gid=1000(netblue) group=1000(netblue)
$
--noprofile
از پروفایل امنیتی استفاده نکنید.
مثال:
$ firejail
خواندن نمایه /etc/firejail/generic.profile
والدین pid 8553، فرزند pid 8554
فرآیند کودک اولیه شد
[...]
$ firejail --noprofile
والدین pid 8553، فرزند pid 8554
فرآیند کودک اولیه شد
[...]
--نوروت
یک فضای نام کاربری با یک کاربر - کاربر فعلی نصب کنید. کاربر ریشه ندارد
در فضای نام جدید وجود دارد. این گزینه به یک هسته لینوکس نسخه 3.8 یا نیاز دارد
جدیدتر این گزینه برای تنظیمات --chroot و --overlay یا
برای sandboxها به عنوان root شروع شد.
مثال:
$ firejail --noroot
والدین pid 8553، فرزند pid 8554
فرآیند کودک اولیه شد
$ ping google.com
ping: سوکت باز icmp: عملیات مجاز نیست
$
--بدون صدا
سیستم صوتی را غیرفعال کنید
مثال:
$ firejail --nosound فایرفاکس
--output=logfile
ورود به سیستم stdout و چرخش log. stdout را در logfile کپی کنید و اندازه آن را حفظ کنید
فایل زیر 500 کیلوبایت با استفاده از چرخش گزارش. پنج فایل با پیشوندهای 1 تا .5 در استفاده می شود
چرخش
مثال:
$ firejail --output=sandboxlog / bin / bash
[...]
$ ls -l sandboxlog*
-rw-r--r-- 1 netblue netblue 333890 ژوئن 2 07:48 sandboxlog
-rw-r--r-- 1 netblue netblue 511488 ژوئن 2 07:48 sandboxlog.1
-rw-r--r-- 1 netblue netblue 511488 ژوئن 2 07:48 sandboxlog.2
-rw-r--r-- 1 netblue netblue 511488 ژوئن 2 07:48 sandboxlog.3
-rw-r--r-- 1 netblue netblue 511488 ژوئن 2 07:48 sandboxlog.4
-rw-r--r-- 1 netblue netblue 511488 ژوئن 2 07:48 sandboxlog.5
--پوشش
یک پوشش سیستم فایل را در بالای سیستم فایل فعلی نصب کنید. تمام فایل سیستم
تغییرات وارد همپوشانی می شوند. پوشش در $HOME/.firejail ذخیره می شود
دایرکتوری.
پشتیبانی OverlayFS در هسته لینوکس برای کارکرد این گزینه مورد نیاز است. OverlayFS
به طور رسمی در کرنل لینوکس نسخه 3.18 معرفی شد
مثال:
$ firejail --overlay firefox
-- overlay-tmpfs
یک پوشش سیستم فایل را در بالای سیستم فایل فعلی نصب کنید. تمام فایل سیستم
اصلاحات وارد همپوشانی می شوند و وقتی جعبه شنی بسته می شود کنار گذاشته می شوند.
پشتیبانی OverlayFS در هسته لینوکس برای کارکرد این گزینه مورد نیاز است. OverlayFS
به طور رسمی در کرنل لینوکس نسخه 3.18 معرفی شد
مثال:
$ firejail --overlay-tmpfs فایرفاکس
--خصوصی
نصب جدید / ریشه و /home/user دایرکتوری ها در فایل سیستم های موقت. همه
وقتی جعبه شنی بسته می شود، تغییرات حذف می شوند.
مثال:
$ firejail -- فایرفاکس خصوصی
-- خصوصی = دایرکتوری
از دایرکتوری به عنوان خانه کاربر استفاده کنید.
مثال:
$ firejail --private=/home/netblue/firefox-home firefox
--private-bin=پرونده،فایل
ساخت جدید / صندوقچه در یک فایل سیستم موقت، و برنامه های موجود در لیست را کپی کنید. در
همان دایرکتوری نیز به صورت bind-mount شده است / sbin, / usr / bin و /usr/sbin.
مثال:
$ firejail --private-bin=bash,sed,ls,cat
والدین pid 20841، فرزند pid 20842
فرآیند کودک اولیه شد
ls دلار / صندوقچه
bash cat ls sed
--private-dev
ایجاد یک جدید / توسعه فهرست راهنما. فقط dri، null، کامل، صفر، tty، pts، ptmx، تصادفی،
دستگاه های urandom، log و shm موجود است.
مثال:
$ firejail --private-dev
والدین pid 9887، فرزند pid 9888
فرآیند کودک اولیه شد
ls دلار / توسعه
dri full log null ptmx pts تصادفی shm tty urandom صفر
$
--private-etc=فایل، دایرکتوری
ساخت جدید /و غیره در یک فایل سیستم موقت، و فایل ها و دایرکتوری ها را در آن کپی کنید
لیست. وقتی جعبه شنی بسته میشود، همه تغییرات کنار گذاشته میشوند.
مثال:
$ firejail --private-etc=group,hostname,localtime, \
nsswitch.conf,passwd,resolv.conf
-- خصوصی-tmp
یک فایل سیستم موقت خالی را در بالای آن نصب کنید دایرکتوری / tmp دایرکتوری.
مثال:
$ firejail --private-tmp
--profile=نام فایل
یک نمایه امنیتی سفارشی از نام فایل بارگیری کنید. برای نام فایل از یک مسیر مطلق یا
مسیری نسبت به مسیر فعلی برای اطلاعات بیشتر ببین امنیت پرونده ها
بخش زیر
مثال:
$ firejail --profile=myprofile
--profile-path=directory
از این دایرکتوری برای جستجوی فایل های پروفایل استفاده کنید. استفاده از یک مسیر مطلق یا یک مسیر در
دایرکتوری خانه با شروع /. برای اطلاعات بیشتر، نگاه کنید به امنیت پرونده ها
بخش زیر و جابجایی مشخصات فایل ها in مرد 5 firejail-profile.
مثال:
$ firejail --profile-path=~/myprofiles
$ firejail --profile-path=/home/netblue/myprofiles
--protocol=پروتکل،پروتکل،پروتکل
فیلتر پروتکل را فعال کنید. فیلتر بر اساس seccomp است و اولین را بررسی می کند
آرگومان به فراخوانی سیستم سوکت. مقادیر شناسایی شده: یونیکس، inet، inet6، netlink و
بسته
مثال:
$ firejail --protocol=unix,inet,inet6 firefox
--protocol.print=name
فیلتر پروتکل را برای جعبه شنی شناسایی شده با نام چاپ کنید.
مثال:
$ firejail --name=mybrowser firefox &
[...]
$ firejail --print.print=mybrowser
یونیکس،اینت،اینت6،نت لینک
--protocol.print=pid
فیلتر پروتکل را برای جعبه شنی شناسایی شده توسط PID چاپ کنید.
مثال:
$ firejail --list
3272:netblue:firejail -- فایرفاکس خصوصی
$ firejail --protocol.print=3272
یونیکس،اینت،اینت6،نت لینک
--ساکت
خروجی Firejail را خاموش کنید.
--read-only=dirname_or_name
دایرکتوری یا فایل فقط خواندنی را تنظیم کنید.
مثال:
$ firejail --read-only=~/.mozilla افزودنیهای فایرفاکس
--rlimit-fsize=تعداد
حداکثر اندازه فایلی که می تواند توسط یک فرآیند ایجاد شود را تنظیم کنید.
--rlimit-nofile=تعداد
حداکثر تعداد فایل هایی را که می توان با یک فرآیند باز کرد را تنظیم کنید.
--rlimit-nproc=تعداد
حداکثر تعداد فرآیندهایی را که می توان برای شناسه کاربر واقعی ایجاد کرد تنظیم کنید
فرآیند فراخوانی
--rlimit-sigpending=تعداد
حداکثر تعداد سیگنال های معلق را برای یک فرآیند تنظیم کنید.
-- اسکن ARP تمام شبکه ها را از داخل فضای نام شبکه اسکن می کند. این امکان را فراهم می کند
برای شناسایی درایورهای دستگاه هسته macvlan که روی هاست فعلی اجرا می شوند.
مثال:
$ firejail --net=eth0 --scan
--seccomp
فیلتر seccomp را فعال کنید و syscalls را در لیست پیش فرض لیست سیاه کنید. پیشفرض
لیست به شرح زیر است: mount، umount2، ptrace، kexec_load، kexec_file_load،
open_by_handle_at، init_module، finit_module، delete_module، iopl، ioperm، swapon،
swapoff، syslog، process_vm_readv، process_vm_writev، sysfs،_sysctl، adjtimex،
clock_adjtime، lookup_dcookie، perf_event_open، fanotify_init، kcmp، add_key،
request_key، keyctl، uselib، acct، modify_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=syscall,syscall,sycall
فیلتر seccomp را فعال کنید، لیست سیاه پیش فرض و syscalls مشخص شده توسط
فرمان
مثال:
$ firejail --seccomp=utime,utimensat,utimes firefox
--seccomp.drop=syscall,syscall,sycall
فیلتر seccomp را فعال کنید و syscalls مشخص شده توسط فرمان را در لیست سیاه قرار دهید.
مثال:
$ firejail --seccomp.drop=utime,utimensat,utimes
--seccomp.keep=syscall,syscall,sycall
فیلتر seccomp را فعال کنید و syscalls مشخص شده توسط فرمان را در لیست سفید قرار دهید.
مثال:
$ firejail --shell=none --seccomp.keep=poll,select,[...] transmission-gtk
--seccomp. =syscall,syscall,sycall
فیلتر seccomp را فعال کنید و errno را برای syscalls مشخص شده توسط فرمان برگردانید.
مثال: یک پوسته Bash که در آن حذف فایلها غیرفعال است
$ firejail --seccomp.eperm=unlinkat
والدین pid 10662، فرزند pid 10663
فرآیند کودک اولیه شد
$ لمسی testfile
$ rm testfile
rm: "testfile" را نمی توان حذف کرد: عملیات مجاز نیست
--seccomp.print=name
فیلتر seccomp را برای جعبه شنی که با استفاده از گزینه --name شروع شده است چاپ کنید.
مثال:
$ firejail --name= مرورگر فایرفاکس و
$ firejail --seccomp.print=مرورگر
فیلتر SECCOMP:
VALIDATE_ARCHITECTURE
EXAMINE_SYSCALL
پایه BLACKLIST 165
BLACKLIST 166 umount2
BLACKLIST 101 ptrace
BLACKLIST 246 kexec_load
BLACKLIST 304 open_by_handle_at
BLACKLIST 175 init_module
BLACKLIST 176 delete_module
BLACKLIST 172 iopl
BLACKLIST 173 ioperm
BLACKLIST 167 swapon
BLACKLIST 168 تعویض
فهرست سیاه 103
BLACKLIST 310 process_vm_readv
BLACKLIST 311 process_vm_writev
BLACKLIST 133 mknod
BLACKLIST 139 sysfs
BLACKLIST 156 _sysctl
BLACKLIST 159 adjtimex
BLACKLIST 305 clock_adjtime
BLACKLIST 212 lookup_dcookie
BLACKLIST 298 perf_event_open
BLACKLIST 300 fanotify_init
RETURN_ALLOW
$
--seccomp.print=pid
فیلتر seccomp را برای جعبه ایمنی مشخص شده توسط شناسه فرآیند چاپ کنید. از گزینه --list استفاده کنید
برای دریافت لیستی از همه جعبه های شنی فعال.
مثال:
$ firejail --list
10786:netblue:firejail --name=مرورگر فایرفاکس $firejail --seccomp.print=10786
فیلتر SECCOMP:
VALIDATE_ARCHITECTURE
EXAMINE_SYSCAL
پایه BLACKLIST 165
BLACKLIST 166 umount2
BLACKLIST 101 ptrace
BLACKLIST 246 kexec_load
BLACKLIST 304 open_by_handle_at
BLACKLIST 175 init_module
BLACKLIST 176 delete_module
BLACKLIST 172 iopl
BLACKLIST 173 ioperm
BLACKLIST 167 swapon
BLACKLIST 168 تعویض
فهرست سیاه 103
BLACKLIST 310 process_vm_readv
BLACKLIST 311 process_vm_writev
BLACKLIST 133 mknod
BLACKLIST 139 sysfs
BLACKLIST 156 _sysctl
BLACKLIST 159 adjtimex
BLACKLIST 305 clock_adjtime
BLACKLIST 212 lookup_dcookie
BLACKLIST 298 perf_event_open
BLACKLIST 300 fanotify_init
RETURN_ALLOW
$
--shell=هیچکدام
برنامه را مستقیما و بدون پوسته کاربر اجرا کنید.
مثال:
$ firejail --shell=none script.sh
--shell=برنامه
پوسته کاربر پیش فرض را تنظیم کنید. از این پوسته برای اجرای برنامه با استفاده از پوسته -c استفاده کنید
گزینه. به عنوان مثال "firejail --shell=/bin/dash فایرفاکس" موزیلا را راه اندازی خواهد کرد
فایرفاکس به عنوان "/bin/dash -c firefox". به طور پیش فرض پوسته Bash (/ bin / bash) استفاده می شود.
گزینه هایی مانند --zsh و --csh نیز می توانند پوسته پیش فرض را تنظیم کنند.
مثال: $firejail --shell=/bin/dash اسکریپت
-- shutdown = نام
خاموش کردن sandbox با استفاده از گزینه --name شروع شد.
مثال:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail -- shutdown=mygame
-- shutdown=pid
جعبه ایمنی مشخص شده توسط شناسه فرآیند را خاموش کنید. از گزینه --list برای دریافت لیست استفاده کنید
همه sandbox های فعال
مثال:
$ firejail --list
3272:netblue:firejail -- فایرفاکس خصوصی
$ firejail -- shutdown=3272
--tmpfs=dirname
یک سیستم فایل tmpfs را روی نام دایرکتوری نصب کنید. این گزینه فقط زمانی در دسترس است که
اجرای sandbox به عنوان root.
مثال:
# firejail --tmpfs=/ var
--بالا بر روی جعبههای ماسهای با بیشترین پردازنده نظارت کنید، ببینید نظارت بر بخش برای جزئیات بیشتر
مثال:
$ firejail --بالا
--پی گیری
باز کردن، دسترسی و اتصال تماس های سیستمی را ردیابی کنید.
مثال:
$ firejail --trace wget -q www.debian.org
والدین pid 11793، فرزند pid 11794
فرآیند کودک اولیه شد
1:bash:open /dev/tty
1:wget:fopen64 /etc/wgetrc
1:wget:fopen / غیره / میزبان
1:wget:سوکت AF_INET SOCK_DGRAM IPPROTO_IP
1:wget:connect 8.8.8.8:53
1:wget:socket AF_INET SOCK_STREAM IPPROTO_IP
1:wget:connect 140.211.15.34:80
1:wget:fopen64 index.html.1
والدین در حال خاموش شدن هستند، خداحافظ...
-- Tracelog
این گزینه ممیزی فایل ها و فهرست های سیاه را فعال می کند. پیام ارسال می شود
در صورت دسترسی به فایل یا دایرکتوری، به syslog بروید.
مثال:
$ firejail --tracelog فایرفاکس
نمونه پیام ها:
$ sudo tail -f / var / log / syslog
[...]
دسامبر 3 11:43:25 debian firejail[70]: نقض لیست سیاه - sandbox 26370، exe
فایرفاکس، syscall open64، مسیر / و غیره / سایه
دسامبر 3 11:46:17 debian firejail[70]: نقض لیست سیاه - sandbox 26370، exe
فایرفاکس، syscall opendir، مسیر / boot
[...]
-- درخت چاپ درختی از تمام فرآیندهای جعبه شنی، ببینید نظارت بر بخش برای جزئیات بیشتر
مثال:
$ firejail --tree
11903:netblue:firejail iceweasel
11904:netblue:iceweasel
11957:netblue:/usr/lib/iceweasel/plugin-container
11969:netblue:firejail --net=eth0 transmission-gtk
11970:netblue:transmission-gtk
--user=کاربر جدید
قبل از شروع سندباکس، کاربر را تغییر دهید. این دستور باید به صورت root اجرا شود.
مثال:
# firejail --user=www-data
- نسخه
نسخه برنامه را چاپ کرده و خارج شوید.
مثال:
$ firejail --نسخه
firejail نسخه 0.9.27
--whitelist=dirname_or_name
فهرست سفید فهرست یا فایل. این ویژگی فقط برای خانه کاربر اجرا می شود، / توسعه,
/نیم, / انتخاب, / varو دایرکتوری / tmp دایرکتوری.
مثال:
$ firejail --whitelist=~/.mozilla --whitelist=~ / دانلودها
$ firejail --whitelist=/tmp/.X11-unix --whitelist=/dev/null
$ firejail "--whitelist=/home/username/My Virtual Machines"
--zsh از /usr/bin/zsh به عنوان پوسته کاربر پیش فرض استفاده کنید.
مثال:
$ firejail --zsh
ترافیک شکل دادن
پهنای باند شبکه یک منبع گران قیمت است که در بین همه جعبههای ایمنی در حال اجرا بر روی یک سیستم مشترک است.
شکل دهی ترافیک به کاربر این امکان را می دهد که با کنترل مقدار، عملکرد شبکه را افزایش دهد
از داده هایی که به داخل و خارج از جعبه های ماسه ای جریان می یابد.
Firejail یک شکل دهنده ساده با محدودیت نرخ بر اساس دستور tc لینوکس پیاده سازی می کند. شکل دهنده
در سطح sandbox کار می کند و فقط برای جعبه های ماسه ای پیکربندی شده با شبکه جدید قابل استفاده است
فضاهای نام
تعیین محدودیت های نرخ:
بارگذاری بارگذاری شبکه firejail --bandwidth={name|pid}
پاک کردن محدودیتهای نرخ:
firejail --bandwidth={name|pid} شبکه پاک
وضعیت:
وضعیت firejail --bandwidth={name|pid}
که در آن:
نام - نام جعبه شنی
pid - جعبه شنی pid
شبکه - رابط شبکه همانطور که توسط گزینه --net استفاده می شود
دانلود - سرعت دانلود بر حسب کیلوبایت بر ثانیه (کیلو بایت بر ثانیه)
آپلود - سرعت آپلود بر حسب کیلوبایت بر ثانیه (کیلو بایت در ثانیه)
مثال:
$ firejail --name=mybrowser --net=eth0 فایرفاکس و
$ firejail --bandwidth=مجموعه mybrowser eth0 80 20
$ firejail --bandwidth=وضعیت mybrowser
$ firejail --bandwidth=mybrowser پاک کردن eth0
نظارت بر
گزینه --list لیستی از تمام جعبه های ماسه ای را چاپ می کند. فرمت هر ورودی فرآیند به صورت زیر است
به شرح زیر است:
PID:USER:Command
گزینه --tree درخت فرآیندهای در حال اجرا در sandbox را چاپ می کند. قالب برای هر کدام
ورود فرآیند به شرح زیر است:
PID:USER:Command
گزینه --top مشابه دستور بالا یونیکس است، با این حال فقط برای جعبه های ماسه ای اعمال می شود.
گزینه --netstats آمار شبکه را برای جعبه های ماسه ای فعال در حال نصب شبکه جدید چاپ می کند
فضاهای نام
در زیر فیلدهای موجود (ستون ها) به ترتیب حروف الفبا برای --top و فهرست شده است
گزینه های --netstat:
فرمان
از دستور برای راه اندازی جعبه شنی استفاده می شود.
استفاده از CPU% CPU، سهم sandbox از زمان سپری شده CPU از آخرین بهروزرسانی صفحه نمایش
PID شناسه فرآیند منحصر به فرد برای وظیفه کنترل جعبه شنی.
Prcs تعداد فرآیندهای در حال اجرا در sandbox، از جمله فرآیند کنترل.
RES Resident Memory Size (KiB)، حافظه فیزیکی بدون تعویض جعبه سند. این مجموع است
مقادیر RES برای تمام فرآیندهای در حال اجرا در جعبه شنی.
RX (KB/s)
سرعت دریافت شبکه
اندازه حافظه مشترک SHR (KiB)، حافظه مشترک با سایر فرآیندها را منعکس می کند. این هست یک
مجموع مقادیر SHR برای تمام فرآیندهای در حال اجرا در sandbox، از جمله
فرآیند کنترل
TX (KB/s)
سرعت انتقال شبکه
زمان اجرای Uptime Sandbox در قالب ساعت: دقیقه: ثانیه.
کاربر صاحب sandbox.
امنیت پرونده ها
چندین گزینه خط فرمان را می توان با استفاده از فایل های نمایه به برنامه منتقل کرد. Firejail
فایل پروفایل را به صورت زیر انتخاب می کند:
1. اگر یک فایل پروفایل توسط کاربر با گزینه --profile ارائه شده باشد، فایل پروفایل است
لود شده. مثال:
$ firejail --profile=/home/netblue/icecat.profile icecat
خواندن نمایه /home/netblue/icecat.profile
[...]
2. اگر یک فایل پروفایل با همان نام برنامه موجود باشد در
~/.config/firejail دایرکتوری یا در /etc/firejail، نمایه بارگذاری می شود.
~/.config/firejail بر /etc/firejail ارجحیت دارد. مثال:
$ firejail icecat
نام دستور #icecat#
نمایه icecat در فهرست /home/netblue/.config/firejail پیدا شد
خواندن نمایه /home/netblue/.config/firejail/icecat.profile
[...]
3. اگر sandbox توسط یک کاربر معمولی یا server.profile راه اندازی شده است، از فایل default.profile استفاده کنید
اگر سندباکس توسط روت شروع شده باشد، فایل را ثبت کنید. Firejail به دنبال این فایل ها می گردد
~/.config/firejail دایرکتوری و پس از آن دایرکتوری /etc/firejail. برای غیرفعال کردن پیش فرض
در حال بارگذاری پروفایل، از گزینه فرمان --noprofile استفاده کنید. مثال:
$ firejail
خواندن نمایه /etc/firejail/generic.profile
والدین pid 8553، فرزند pid 8554
فرآیند کودک اولیه شد
[...]
$ firejail --noprofile
والدین pid 8553، فرزند pid 8554
فرآیند کودک اولیه شد
[...]
برای اطلاعات نحو فایل نمایه به man 5 firejail-profile مراجعه کنید.
محصور پوسته
برای پیکربندی یک پوسته محدود، جایگزین کنید / bin / bash با /usr/bin/firejail در /etc/password
فایل برای هر کاربری که باید محدود شود. یا می توانید مشخص کنید
/usr/bin/firejail در دستور adduser:
نام کاربری adduser --shell /usr/bin/firejail
آرگومان های اضافی ارسال شده به firejail قابل اجرایی پس از ورود به سیستم اعلام می شوند
فایل /etc/firejail/login.users.
مثال ها
زندان آتشین
یک مرتبه شروع کنید / bin / bash جلسه در جعبه شنی
firejail firefox
Mozilla Firefox را راه اندازی کنید.
firejail --debug فایرفاکس
اشکال زدایی سندباکس فایرفاکس.
firejail -- خصوصی
شروع / bin / bash جلسه با دایرکتوری اصلی tmpfs جدید.
firejail --net=br0 ip=10.10.20.10
شروع / bin / bash جلسه در فضای نام شبکه جدید جلسه به
شبکه اصلی با استفاده از دستگاه پل br0. یک آدرس IP 10.10.20.10 اختصاص داده شده است
به جعبه شنی
firejail --net=br0 --net=br1 --net=br2
شروع / bin / bash جلسه در یک فضای نام شبکه جدید و اتصال آن به br0، br1،
و دستگاه های پل میزبان br2.
firejail --list
لیست تمام فرآیندهای جعبه شنی
از firejail به صورت آنلاین با استفاده از خدمات onworks.net استفاده کنید