歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux容器技術-LXC相關技術知識介紹

Linux容器技術-LXC相關技術知識介紹

日期:2017/2/28 15:44:34   编辑:Linux教程

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的功能。

2. 使用隔離的文件系統作為lxc實例的存儲

lxc實例的配置信息以及根文件系統都存放在/var/lib/lxc目錄下,另外,沒創建一個實例也會將其cache到/var/lib/lxc目錄下。如果你想使用除/var之外的其他文件系統的話,也可以通過以下兩種方式來實現:

  1. sudo mkdir /srv/lxclib /srv/lxccache
  2. sudo rm -rf /var/lib/lxc /var/cache/lxc
  3. sudo ln -s /srv/lxclib /var/lib/lxc
  4. sudo ln -s /srv/lxccache /var/cache/lxc
或者:

  1. sudo mkdir /srv/lxclib /srv/lxccache
  2. sudo sed -i '$a \
  3. /srv/lxclib /var/lib/lxc none defaults,bind 0 0 \
  4. /srv/lxccache /var/cache/lxc none defaults,bind 0 0' /etc/fstab
  5. sudo mount -a
3. LXC的安全性 -- apparmor(應用程序訪問控制系統)

AppArmor 是一個類似於selinux 的東東,主要的作用是設置某個可執行程序的訪問控制權限,可以限制程序 讀/寫某個目錄/文件,打開/讀/寫網絡端口等等。 默認情況下AppArmor已安裝並載入。它使用每個程序的profiles來確定這個程序需要什麼文件和權限。有些包會安裝它們自己的profiles,額外的profiles可以在apparmor-profiles包裡找到。 下面簡單介紹下AppArmor的使用: (1)apparmor_status是用來查看AppArmor配置文件的當前狀態的
  1. sudo apparmor_status
(2)aa-complain將一個程序置入complain模式。
  1. sudo aa-complain /path/to/bin //可執行程序的路徑
(3)aa-enforce將一個程序置入enforce模式
  1. sudo aa-enforce /path/to/bin //可執行程序的路徑
/etc/apparmor.d目錄是AppArmor配置文件的所在之處。可用來操作所有配置文件的模式mode。
(4)要將所有配置文件置入complain模式,輸入:
  1. sudo aa-complain /etc/apparmor.d/*
(5)要將所有配置文件置入enforce模式:
  1. sudo aa-enforce /etc/apparmor.d/*
(6)apparmor_parser用來將一個配置文件載入內核。它也可以通過使用-r選項來重新載入當前已載入的配置文件。要載入一個配置文件:
  1. cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
(7)要重新載入一個配置文件:
  1. cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
(8)/etc/init.d/apparmor可用來重新載入所有配置文件:
  1. sudo /etc/init.d/apparmor reload
(9)The /etc/apparmor.d/disable目錄可以和apparmor_parser -R選項一起使用以禁用一個配置文件。
  1. sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/
  2. sudo apparmor_parser -R /etc/apparmor.d/profile.name
(10)要重新激活 一個已禁用的配置文件,請在 /etc/apparmor.d/disable/裡刪除到其配置文件的軟鏈接。然後使用選項 -a載入配置文件。
  1. sudo rm /etc/apparmor.d/disable/profile.name
  2. cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
(11)AppArmor可以被禁用,其內核模塊可以通過輸入以下命令卸載:
  1. sudo /etc/init.d/apparmor stop
  2. sudo update-rc.d -f apparmor remove
(12)要重新啟用AppArmor,輸入:
  1. sudo /etc/init.d/apparmor start
  2. 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機制相關的內容!
Copyright © Linux教程網 All Rights Reserved