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

來源:互聯網
上載者:User

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機制相關的內容!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.