知识大全 Chroot Linux中所有的服务

Posted 文件

篇首语:尔曹身与名俱灭,不废江河万古流。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Chroot Linux中所有的服务相关的知识,希望对你有一定的参考价值。

Chroot Linux中所有的服务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  by Mark Nielsen    介绍  什么是chroot?chroot基本上重定义了一个程序的运行环境 更确切地说 它重定义了一个程序(或登录会话)的 ROOT 目录或 / 也就是说 对于chroot了的程序或shell来说 chroot环境之外的目录是不存在的     那这样又有什么用呢?如果入侵者入侵了你的电脑 他们就不能看见你系统里所有的文件了 这样 就限制了入侵者可能执行的命令 从而禁止了他们溢出不安全文件的机会 但唯一的缺点是 我认为这不能阻止他们察看网络连接和其他资料 因此 你应做一些本文未深入涉及的事情     保护网络端口   察看是否所有的服务都以非root权限运行 另外 是否所有的服务都进行了chroot?   把系统日志转移到其他电脑   分析日志文件   分析那些试图探测你的计算机的随机端口的人们   限制服务所占用的cpu和内存资源   激活用户配额   我认为(把以非root权限运行的服务进行)chroot可以作为一道安全防线的原因是 如果入侵者得到了一个非root账户 但没有使他们得到root权限的文件的话 那么他们只能对所入侵的区域造成破坏 而且 如果root账户是入侵区域大部分文件的拥有者的话 入侵者是没有多少攻击的选择的 显然 如果你的账户被入侵 那一定是某些地方出问题了 但最好能减少入侵者所能造成的破坏     请记住 我所做的并不是 %正确的 这是我第一次尝试这样做 就算只是部分有效的话 也应该是很容易完成基本的配置的 我想做一个chroot的HOWTO 现在所说的只是一些基本的东西     怎样把所有的服务都chroot呢?  好的 让我们先创建一个目录 /chroot 然后以下面的格式把我们的所有服务都放在它下面     Syslogd 分别和每一个服务一起运行在hroot环境下   Apache 运行在/chroot/d下   Ssh 运行在/chroot/sshd下   PostgreSQL 运行在/chroot/postmaster下   Sendmail 运行在 chroot环境下 但不幸的是 它必须以root权限运行   ntpd 运行在 /chroot/ntpd下   named 运行在 /chroot/named 下   每一个服务都是完全与外界隔离的     我用来创建chroot环境的Perl脚本   下载Config_Chroot pl txt并更名为 Config_Chroot pl 这个Perl脚本让你列出所有已安装的服务 查看配置文件 配置服务 并启动和停止服务 通常 这就是你应该做的     创建chroot目录  mkdir p /chroot/Config/Backup   下载Config_Chroot pl txt 并更名为 /chroot/Config_Chroot pl   如果你的家目录(home directory)不是/chroot 请把Perl脚本里的$Home 变量作相应的改变   下载我的配置文件   现在 重要的是 我只在 RedHat 和 RedHat 上测试过     请在Perl脚本里作相应的改变以适应你的发行版     关于chroot 我写了一遍很长的文章 但有了我的脚本 它变得短了很多 在chroot了很多服务之后 我注意到这些服务中需要被chroot的文件和配置都很相似 对一个特定的服务来说 判断哪些文件需要拷贝的最容易的方法是查看man 如果程序要用到库文件 就再键入 ldd /usr/bin/file 你还可以把你正在安装的服务进行chroot并手动启动 看看出了什么错或查一查它的日志文件     通常 要安装一个服务 可以这样做     cd /chroot   /Config_Chroot pl config SERVICE   /Config_Chroot pl install SERVICE   /Config_Chroot pl start SERVICE         对 Ntpd 进行 Chroot  Ntpd 是一个时间服务 它使你的计算机以及其它计算机和实际时间同步 把它chroot是很简单的     cd /chroot   # 如果你没有使用我的配置文件 请把下一行的注释去掉   # /Config_Chroot pl config ntpd   /Config_Chroot pl install ntpd   /Config_Chroot pl start ntpd         对 DNS 和 named 进行 Chroot   已经有了howto文件 请看    或       如果你想用我的脚本    cd /chroot   # 如果你没有使用我的配置文件 请把下一行的注释去掉   # /Config_Chroot pl config named   /Config_Chroot pl install named   /Config_Chroot pl start named         把 Syslog 和其他服务一起进行chroot以及我所遇到的困难   我想把syslogd进行chroot 我遇到的困难是 syslogd默认使用/dev/log目录 而chroot了的服务是看不见这个目录的 因此 用syslogd做日志记录就不是很方便了 下面是可能的解决方案     把syslogd分别和每一个服务进行chroot 我实际上就是这样测试的 而且记录了一些日志 我不喜欢这样做 因为我有一个以root权限运行的服务   看看我们是否能连接到外部日志记录设备   直接把日志记录到文件上而不是通过syslogd 这可能是最好的安全选择了 尽管如果被入侵 入侵者可以随意改动日志   配置syslogd来查看几个地方 从而得到所有的服务 你可以用syslogd的 a选项来做到   我的唯一的解决方案是确保syslogd分别和每一个服务进行chroot 我喜欢这样的解决方案 它以非root权限在自己的chroot环境(有些像网络端口)下记录日志 这也许是可行的 但我正在停止我所做的 然后寻求一个更好的解决方案     如果你不想为每一个服务都配备一个独立的syslogd 那么当你的系统运行syslogd时 请在syslogd开始时运行下面命令     syslogd a /chroot/SERVICE/dev/log    如果有ssh和dns要运行 那么看上去应该像这样     syslogd a /chroot/ssh/dev/log a /chroot/named/dev/log a /dev/log    关于syslogd 我最后想说的是 我希望它能运行在非root账户下 我试了几个简单的东西 但都没有成功 于是就放弃了 如果能让syslogd和每一个服务一起运行在非root账户下 我就会对我的安全措施感到满意了 如果可能的话 最好将日志记录到外部设备上     对 Apache 进行 Chroot  很简单 一旦我运行它 就可以执行Perl脚本 现在 我的配置文件是很长的 因为我必须在chroot环境下包括Perl和PostgreSQL函数库 有一件事要注意 如果你要连接到数据库上 请确保你的数据库服务运行在 回环设备上 并在关于DBI的Perl脚本中指定主机为 下面是我怎样把apache永久连接到一个数据库上的例子     $dbh ||= DBI >connect( dbi:Pg:dbname=DATABASE PrintError=> );    if ($dbh ) $dbh >PrintError = ;  else   $dbh ||= DBI >connect( dbi:Pg:dbname=DATABASE;host=    PrintError=> );    源地址:     把apache编译并安装在你系统的/usr/local/apache目录下 然后运行Perl脚本     cd /chroot   # 如果你没有使用我的配置文件 请把下一行的注释去掉    # /Config_Chroot pl config d   /Config_Chroot pl install d   /Config_Chroot pl start d    在文件里包含以下几行:     ExtendedStatus On     status>   SetHandler server status   Order deny allow   Deny from all   Allow from        info>   SetHandler server info   Order deny allow   Deny from all   Allow from         然后 在你的浏览器里输入 或 并检查!     对 Ssh 进行 Chroot  首先 如果把ssh从端口 重定向到 就理想了 然后 当你启动ssh时 让它在一个非root账户下监听 端口 在初始化ssh连接时 我们只想让有密码的安全账户连进来 但不做其他任何事情 在他们登录之后 运行在端口 : 的第二个ssh程序让它们连接到真正的系统 这第二个ssh程序应该只在回环设备上监听 这才是你应该做的 现在我们不打算去做 我们要做的唯一的事情是以这个chroot的ssh做个例子 上面提到的一个练习就请读者自己完成 让sshd运行在非root账户下 再安装第二个监听回环设备的sshd以使人们连进真正的系统     此外 我们只要把ssh进行chroot并让你看一看那样做的结果(如果你只做了这些 你不必观察整个系统) 当然 如果能把日志记录在外部设备上就更好了 我们应该用OpenSSH 但为了方便(这好像不是一个好的借口) 我用的是一个商业的SSH     源地址:     在/usr/local/ssh_chroot下安装ssh并运行脚本     cd /chroot   # 如果你没有使用我的配置文件 请把下一行的注释去掉    # /Config_Chroot pl config sshd   /Config_Chroot pl install sshd   /Config_Chroot pl start sshd    我觉得把ssh放在chroot环境下的一个真正有 cha138/Article/program/Oracle/201311/18386

相关参考

知识大全 Linux各项系统开机服务的功能

Linux各项系统开机服务的功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Linux在启动

知识大全 Linux拨号服务快速指南

Linux拨号服务快速指南  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作者HKILL    

知识大全 轻松建立Linux拨号服务

轻松建立Linux拨号服务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   PPP(Pointt

知识大全 PHP监控linux服务器负载

PHP监控linux服务器负载  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于WebServ

知识大全 Linux下启动Oracle服务和监听程序

Linux下启动Oracle服务和监听程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  安装完

知识大全 Linux下解决MySQL服务的两个基本问题

Linux下解决MySQL服务的两个基本问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用

知识大全 Linux环境MySQL服务器级优化讲解

Linux环境MySQL服务器级优化讲解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要本节

知识大全 有关用linux作NAT服务 (代理,透明代理等)

有关用linux作NAT服务 (代理,透明代理等)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 我找到了一个服务器维护的工作,主要是Linux系统、硬件的维护,我应该掌握哪些技能,怎么发展

我找到了一个服务器维护的工作,主要是Linux系统、硬件的维护,我应该掌握哪些技能,怎么发展?有前途吗?  以下文字资料是由(本站网www.cha138.com)小编为大

知识大全 Linux下PHP删除一个目录下所有文件夹和子目录

Linux下PHP删除一个目录下所有文件夹和子目录  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!