知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

linux容器技术-LXC相关技术知识介绍

发布时间:2014-09-05 16:02:01作者:知识屋


linux容器技术-LXC相关技术知识介绍
 
1. lxcbr0
    当/etc/default/lxc中的USE_LXC_BRIDGE="true"的时候,桥lxcbr0会在lxc启动的时候自动创建,并且被赋予10.0.3.1的ip地址,使用这个桥的lxc实例可以从10.0.3.0/24中分配ip。一个dnsmasq实例在后台运行用来监听lxcbr0,用来实现dns和dhcp的功能。
  www.zhishiwu.com  
2. 使用隔离的文件系统作为lxc实例的存储
    lxc实例的配置信息以及根文件系统都存放在/var/lib/lxc目录下,另外,没创建一个实例也会将其cache到/var/lib/lxc目录下。如果你想使用除/var之外的其他文件系统的话,也可以通过以下两种方式来实现:
 
sudo mkdir /srv/lxclib /srv/lxccache
sudo rm -rf /var/lib/lxc /var/cache/lxc
sudo ln -s /srv/lxclib /var/lib/lxc
sudo ln -s /srv/lxccache /var/cache/lxc
或者:
sudo mkdir /srv/lxclib /srv/lxccache
sudo sed -i '$a /  www.zhishiwu.com  
/srv/lxclib /var/lib/lxc none defaults,bind 0 0 /
/srv/lxccache /var/cache/lxc none defaults,bind 0 0' /etc/fstab
sudo mount -a
 
3. LXC的安全性 -- apparmor(应用程序访问控制系统)
    AppArmor 是一个类似于selinux 的东东,主要的作用是设置某个可执行程序的访问控制权限,可以限制程序 读/写某个目录/文件,打开/读/写网络端口等等。
 默认情况下AppArmor已安装并载入。它使用每个程序的profiles来确定这个程序需要什么文件和权限。有些包会安装它们自己的profiles,额外的profiles可以在apparmor-profiles包里找到。
    下面简单介绍下AppArmor的使用:
(1)apparmor_status是用来查看AppArmor配置文件的当前状态的
sudo apparmor_status
(2)aa-complain将一个程序置入complain模式。
sudo aa-complain /path/to/bin   //可执行程序的路径
(3)aa-enforce将一个程序置入enforce模式
sudo aa-enforce /path/to/bin    //可执行程序的路径
/etc/apparmor.d目录是AppArmor配置文件的所在之处。可用来操作所有配置文件的模式mode。
 
(4)要将所有配置文件置入complain模式,输入:
sudo aa-complain /etc/apparmor.d/*  www.zhishiwu.com  
(5)要将所有配置文件置入enforce模式:
sudo aa-enforce /etc/apparmor.d/*
(6)apparmor_parser用来将一个配置文件载入内核。它也可以通过使用-r选项来重新载入当前已载入的配置文件。要载入一个配置文件:
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
(7)要重新载入一个配置文件:
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
(8)/etc/init.d/apparmor可用来重新载入所有配置文件:
sudo /etc/init.d/apparmor reload
(9)The /etc/apparmor.d/disable目录可以和apparmor_parser -R选项一起使用以禁用一个配置文件。
sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/profile.name
 
(10)要重新激活 一个已禁用的配置文件,请在 /etc/apparmor.d/disable/里删除到其配置文件的软链接。然后使用选项 -a载入配置文件。
sudo rm /etc/apparmor.d/disable/profile.name
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
(11)AppArmor可以被禁用,其内核模块可以通过输入以下命令卸载:
  www.zhishiwu.com  
sudo /etc/init.d/apparmor stop
sudo update-rc.d -f apparmor remove
(12)要重新启用AppArmor,输入:
sudo /etc/init.d/apparmor start
sudo update-rc.d apparmor defaults
至于如何编写AppArmor的配置文件,将会在后面的文章中介绍!
 
言归正传,重新回到lxc中的AppArmor上来。
LXC利用AppArmor配置文件来保护主机不受容器内实例的恶意行为,比如:容器内的实例对/proc/
sysrq-tigger以及/sys目录下的绝大部分文件不具有写权限。另外,usr.bin.lxc-start配置文件用来防止lxc-start挂载除了容器根目录下列出的其他文件。在执行容器实例的init进程之前,还回去/etc/apparmor.d/lxc/lxc-default进行权限的检查,禁止init访问一些危险的资源。
    在接下来的文章中将会重点介绍cgroup机制相关的内容!
 
 
作者 ustc_dylan
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜