位置: 编程技术 - 正文

freebsd下jail命令说明(freebsd操作命令)

编辑:rootadmin
Jail 命令在FreeBSD 4.0中首次出现。用于“监禁”进程以及其衍生的子进程。而且jail和FreeBSD本身的secure_level合并使用可以显著限制(jail中的)root的能力。假设某一个应用程序在系统内中运行,一段时间之后该应用程序被发现包含有致命的安全漏洞,如果在通常的系统中,这个应用程序可能已经在这个上面构成了漏洞,甚至cracker们已经成功地攻破这一应用并且成为root,控制了系统;但假如该应用程序放在jail内运行,即使cracker们已经攻破系统,也无法访问到jail之外系统的其他部分。因为尽管应用程序可以在jail之中自由活动,但是无法获得更多权限以及访问在jail之外的任何资源。通过这一特性,在系统管理上面可以做到防范未知漏洞,避免这些潜在的漏洞对整个系统的安全构成威胁。jail通常有两类应用方向:一、对应用程序的活动能力进行限制。比如ftp服务器,DNS服务器,这样一些东西,比如wu-ftpd,bind这样一些隔三岔五就会爆出漏洞的“著名”软件放到jail里面会让人更加放心。二、受控制的主机。某些时候,需要对外提供有shell的管理性访问,比如作为某公司A,其合作单位B有某项目需要在A的机器上获得shell乃至root权限,这就需要提供受控制的主机,用户可以在jail里面控制几乎所有他需要的资源(除了jail不允许他访问的部分)。第一类应用并不是非常复杂,实际上这类应用实现方法相对简单,只要在Linux下面玩过chroot就没有什么大问题;第二类应用则有很多有趣的特性,而jail最吸引人的部分也是这些很有趣的特性。下面从最简单的部分开始:第一类:限制应用程序活动能力首先按照通常习惯的方式安装好你想要jail的应用程序,下面我们将会使用pure-ftpd(我不是很熟悉它,只不过顺手拿过来而已,据说还算好用)作为例子。这个ftpd的安装位置,默认为:/usr/local/sbin;/usr/local/bin;在/etc下面还有一些相关的文件,整个结构感觉不是特别干净,不过它运行需要的东西并不很多,包括 /usr/local/sbin/pure-ftpd , /etc/xxx /etc/xxxx 这样一些文件。接下来先用ldd看看/usr/local/sbin/pure-ftpd需要的那些运行库:tester# cd /usr/local/sbintester# ldd pure-ftpdpure-ftpd:libcrypt.so.2 => /usr/lib/libcrypt.so.2 (0xb)libpam.so.1 => /usr/lib/libpam.so.1 (0x)libc.so.4 => /usr/lib/libc.so.4 (0xd)这样我们的工作任务清单上面就多出来这样一些东西了: /usr/lib/......使用ldd我们还可以获得其他一些需要放入jail的程序的运行库位置,信息搜集完成之后,我们开始建立jail目录树(这里我们假定jail环境构造在/jail内,当然你也可以选择你喜欢的位置):tester# mkdir -p /jail/usr/{lib,libexec,local/sbin,local/bin,local/etc,etc,var/run,var/log}然后将上面列出的,libcrypt.so.2 等这些文件都复制到对应位置。当然还有我们FreeBSD下非常重要的一个文件ld-elf.so.1,尽管ldd没有给出提示,也还需要复制过去,否则应用程序也跑不起来。这样我们就获得了一个很干净(最小化)的应用程序运行环境jail命令的格式是:jail path hostname ip-number command下面开始在jail里面运行它:tester# jail /jail jailed.host.name $JAILED_IP_ADDR /usr/local/sbin/pure-ftpd [options]这里,/jail是你的jail环境的位置,也就是被jail之后,应用程序“以为”自己所在的“/”的位置;jailed.host.name是你打算提供给这个jail环境的主机名,某些情况下,应用程序需要知道这个变量;$JAILED_IP_ADDR是你打算提供ftp服务(如果是其他应用软件,那就是其他服务咯,比如web服务)的那个IP地址,至于/usr/local/sbin/pure-ftpd [options] 则是你打算运行的那个应用程序在jail里面的所在位置以及运行所需的参数。然后用ps 查看一下进程状态:tester# ps -axf |grep pureftpd ?? IsJ 0:. pure-ftpd (SERVER) (pure-ftpd)可以看到所有这些pure-ftpd的进程都有一个J,标志这这一程序正在jail下面运行。这时候可能会有一些管理用的程序无法正常工作,因为这些管理用程序无法找到他们需要访问的那些文件,只要找到这些应用程序需要调用的文件(比如日志文件)的位置,然后制造一个soft link就可以了,通常这些管理程序都可以继续正常运行。到此为止,一个针对应用程序的jail构造完成。第二类,构造受控制的主机在这种情况下面,我们首先需要构造一个当前版本操作系统的完整镜像(下面这个脚本是从FreeBSD 4.6r的man page里面来的,实际上4.5以及之前的man page在构造jail目录树脚本上面都有一定的问题,4.6才纠正过来):tester# cat >>/root/mkjail.shjailhome=/data/jailcd /usr/srcmkdir -p $jailhomemake world DESTDIR=$jailhomecd etcmake distribution DESTDIR=$jailhome -DNO_MAKEDEV_RUNcd $jailhome/devsh MAKEDEV jailcd $jailhomeln -sf dev/null kernel^Dtester# sh /root/mkjail.sh最后在/data/jail下面获得一个完整的根据当前源码树编译得来的jail目录树。接下来:/*tester# mkdir $jailhome/standtester# cp /stand/sysinstall $jailhome/standtester# jail $jailhome jailed.system.box ..0. /bin/csh(这时候就获得了一个jail下面的shell)jailed# /stand/sysinstall*/通过sysinstall这个程序可以对jail系统的常用变量进行设置,比如时区,DNS,Mail。还有jail系统在“启动”的时候需要执行的程序。如果你足够熟悉这个系统,可以考虑自己手工一个个的做过来。复制/etc/localtime 到 $jailhome/etc,使jail环境下的应用程序可以得到正确的时间;复制/etc/resolv.conf 到 $jailhome/etc/resolv.conf 使jail下面可以正确解释域名;在jail里面运行newaliases 避免sendmail的不断抱怨;如果打算运行inetd,需要修改inetd的启动参数,加上 -a $LISTEN_ADDR 选项(因为jail无法自己获得当前系统的ip地址,所以必须提供一个ip地址给它)在rc.conf里面看起来应该是这样:inetd_flags="-wW -a ..0."将系统本身的syslogd 运行加上 -ss 选项,避免这个syslog启动****端口;修改/etc/rc.conf 加上 syslogd_flags="-ss" (对$jailhome/etc/rc.conf也如法炮制)在jail内创建一个空的/etc/fstab,在rc.conf里面去掉网卡地址的绑定,这样在jail系统在启动的时候不会抱怨。为了实际运行这个jail系统,还需要为jail提供一个可以连接的IP地址,这个地址可以与实际环境同一个子网,也可以处于另外一个子网中。tester# ifconfig fxp0 ..0. netmask 0xffffffff alias(这里为网卡fxp0绑定了一个别名,准备提供服务。)所有这些东西都执行完了以后,可以有几个方法把jail系统启动起来,一个是在jail外面运行tester# jail $jailhome jailed.system.box $jail_IP_ADDR /bin/sh $jailhome/etc/rc一个是单纯把ssh/telnetd这样一些提供远程访问的服务在jail内启动起来:tester# jail $jailhome jailed.system.box $jail_IP_ADDR /bin/sh $jailhome/bin/inetd -wW -a $jail_IP_ADDR然后从外面登录系统,运行、配置jail系统环境,或者手工启动需要的应用服务。如果打算运行一个用于生产环境的jail系统的话,推荐使用第一种方法,并且把启动jail的命令放到(实际环境的)/etc/rc.local脚本里面去,这样jail系统可以有比较完备,与实际机器相类似的环境。这样一个jail系统就算构造完成并且可以正常运作,加上在实际环境里面定期的严格的备份,安全检查与审计,就可以得到一个很不错的安全系统。一般的scriptkids已经无法对你的系统构成实际威胁,即使是某些与黑帽子走得很近的人在漏洞公开之前得到实际的攻击脚本,并且进入你的系统,他也只能在jail里面活动,而且你可以知道他什么时候进入和离开系统,做了什么。这样你可以很轻松的恢复系统和防范下一次未知的攻击。在jail系统的管理上面有几个问题需要注意:1. jail里面的帐号、密码是跟实际系统不同的,但是在jail之外ps或者查看jail目录树内的文件时,那些jail内部的uid会被看成外部的uid,因此最好把jail里面的/etc/adduser.conf进行修改,把他们的uid起始号码放大,比如:uid_start="",这样当你在jail外部进行文件、进程管理的时候不至于误会文件或者进程的宿主。2. jail内的任何活动,其能力都受到了限制。比如top/vmstat这样的东西都不能使用,mknod,dd等等这样需要访问直接硬件的东西也无法工作。所以在jail内监控系统运行状态也比较难。3. 当想要远程关闭jail系统的时候,可以有两种方法,一是进入jail之后kill -TERM -1 或者 kill -KILL -1 ,这样向所有该jail内的进程发送SIGTERM或者SIGKILL信号,也可以在jail里面运行/etc/rc.shutdown来关闭jail。如果是本地想要关闭jail倒是简单,只要把所有带有J标记的进程干掉就可以了。4. 一个系统可以运行多个jail,各个jail之间无法互相干涉,如果在jail外面使用tester# jail $jailhome jailed.system.box $jail_IP_ADDR /path/to/application这种方式运行某个应用程序,下一次试图通过运行tester# jail $jailhome jailed.system.box $jail_IP_ADDR /bin/csh这种方式获得的jail过的shell来管理该应用程序将会失败。因为这时是两个各自独立的jail,互相不能干涉。为了能对jail系统内进程灵活地进行管理,推荐在jail里面除开应用软件之外,再启动telnetd或者sshd之类的服务,这些服务此时与应用程序运行在同一个jail里面,就可以通过远程登入系统后获得与那些应用程序在同一个jail内的shell。5. jail系统内的所有应用软件版本号应该与外部实际系统保持一致。当外部系统的源码同步到某个版本并且重新做过make world之后,推荐也重新生成一次jail,以避免某些可能的莫名其妙的错误。6. 另外有一个做法不知道是否正确,在jail里面每次使用ps的时候,系统都会报告没有/var/run/dev.db文件,让人感觉很不舒服,复制实际系统的/var/run/dev.db 到 $jailhome/var/run/ ,就不会再碰到这个问题。

推荐整理分享freebsd下jail命令说明(freebsd操作命令),希望有所帮助,仅作参考,欢迎阅读内容。

freebsd下jail命令说明(freebsd操作命令)

文章相关热门搜索词:freebsd bash,freebsd常用命令,freebsd 安装,freebsd常用命令,freebsd使用手册,freebsd命令大全,freebsd操作命令,freebsd命令大全,内容如对您有帮助,希望把文章链接给更多的朋友!

FreeBSD 6.2架设网站服务器教程图解 1、安装设置prozilla(port下载加速)当然是首先安装下载加速啦,不然下面的安装会好慢的安装使用如下指令:#cd/usr/ports/ftp/prozilla#makeinstallclean中间会出

NetBSD 4.0 正式版官方下载地址 NetBSD是一份免费,安全的具有高度可定制性的类Unix操作系统,适于多种平台,从位元AMDAthlon服务器和桌面系统到手持设备和嵌入式设备.它设计简洁,代码规

FreeBSD 7.0 正式版官方下载地址 官方下载地址:

标签: freebsd操作命令

本文链接地址:https://www.jiuchutong.com/biancheng/353934.html 转载请保留说明!

上一篇:freebsd vsftpd 配置方法(vsftpd.service disabled)

下一篇:FreeBSD 6.2架设网站服务器教程图解(freebsd wifi设置)

  • 注册税务师的报名条件、时间及考试
  • 残保金季报要填上年职工人数
  • 饭店开业几年后可以申请升级
  • 资产负债表的其他流动资产包括哪些
  • 职工意外伤害险赔偿范围
  • 电子银行承兑重复背书
  • 公司成立前发生业务 成立后开票
  • 财务专用章的重要性
  • 印花税的计税依据为各种应税凭证上所记载的计税金额
  • 个体工商户2023年税收政策
  • 钱已付票未收到分录怎么做
  • 房地产开发企业资质等级有几个
  • 增值税专用发票可以开电子发票吗
  • 会计核算差错
  • 如何快速整理会计凭证
  • 网上缴税后会有发票吗
  • 电子承兑银行承兑
  • 开办费一次性摊销企业所得税
  • 股份支付为什么计入资本公积?
  • 现金存入公司账户风险大吗安全吗
  • 发票勾选平台已经勾选统计确认,报税平台看不见
  • 河道费怎么计算
  • 增值税免税收入汇算清缴的时候填哪
  • 滞留发票一般怎么开具
  • 主营业务税金及附加大概比例
  • 卫生巾的税率
  • 银行承兑汇票盖已承兑登记
  • 跨年补交企业所得税
  • 怎么打印事业单位准考证
  • 进项税额转出凭证怎么做
  • 补缴的公积金可以取出来吗
  • 质保金怎么挂账
  • 自建厂房领用材料进项税的处理
  • 无偿使用固定资产如何缴税
  • Win10专业版家庭版企业版
  • 净现值法的优点包括
  • ms-dos 6.0
  • win7有线连接怎么设置
  • neoCapture.exe - neoCapture是什么进程 有什么用
  • mssvr.exe - mssvr是什么进程 什么用
  • php null false
  • PHP:zip_entry_compressedsize()的用法_Zip函数
  • 会计虚假做账
  • 微信小程序的视频怎么下载
  • 计提投资者利润
  • vue里的for循环
  • php获取服务端ip
  • phpstudy ftp怎么用
  • 个人所得税换了电脑后,重新录入,离职的人也要录入吗
  • 网上怎么申请增驾摩托车
  • 暂估入库有风险吗
  • mongodb聚合统计数量
  • 社保代扣代缴的办理流程
  • 转让不动产与销售不符
  • 购买财务软件怎么做凭证
  • 一般纳税企业抵扣多少
  • 房地产采取按揭销售的,其销售的入账时间为
  • 换货与退货
  • 劳务派遣公司收入确认税收政策
  • 免费给人一些客户资料违法吗
  • 银行的现金解款需要多久
  • 红字发票最多几个月
  • 报销差旅费属于付款凭证还是收款凭证
  • 空调维护保养费用谁出
  • 财务人员如何审合同课件
  • mysql中的ifnull函数
  • mysql mac下载
  • win10有没有语音输入
  • win7系统安装教程不用u盘
  • linux网络管理及应用
  • 腾讯电脑管家免费安装下载
  • 关闭迅雷安卓版自动更新
  • Android OpenGL ES(三)----编程框架
  • cocos2d怎么用
  • c# opengl 3d
  • nodejs.
  • jquery的css样式
  • js实现vue
  • 交17000办的保险是什么保险
  • 医生兼职取酬违反什么纪律
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设