您好,登錄后才能下訂單哦!
小編給大家分享一下如何在Fedora中結合權能使用Podman,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
容器化是一項蓬勃發(fā)展的技術。在不久的將來,多達百分之七十五的全球組織可能會運行某種類型的容器化技術。由于廣泛使用的技術更容易成為黑客攻擊的目標,因此保護容器的安全就顯得尤為重要。本文將演示如何使用 POSIX 權能 來保護 Podman 容器的安全。Podman 是 RHEL8 中默認的容器管理工具。
容器以特權模式或無特權模式運行。在特權模式下,容器的 uid 0 被映射到宿主機的 uid 0。對于某些情況,無特權的容器缺乏對宿主機資源的充分訪問能力。但不管其操作模式如何,包括強制訪問控制(MAC:如 apparmor、SELinux 等)、seccomp 過濾器、刪除權能、命名空間等在內的技術有助于確保容器的安全。
要從容器外部確定特權模式:
$ podman inspect --format="{{.HostConfig.Privileged}}" <container id>
如果上面的命令返回 true
,那么容器在特權模式下運行。如果返回 false
,那么容器在非特權模式下運行。
要從容器內部確定特權模式:
$ ip link add dummy0 type dummy
如果該命令允許你創(chuàng)建一個接口,那么你運行的是一個特權容器,否則你運行的是一個非特權容器。
命名空間隔離了容器的進程,使其無法任意訪問宿主機的資源,也無法訪問在同一宿主機上運行的其他容器的資源。然而,在特權容器內的進程仍然可以做一些事情,如改變 IP 路由表、跟蹤任意進程和加載內核模塊。權能允許人們對容器內的進程可以訪問或更改的資源施加更細微的限制,即使容器在特權模式下運行也一樣。權能還允許人們?yōu)闊o特權的容器分配它本來不會擁有的特權。
例如,如果要將 NET_ADMIN
功能添加到一個無特權的容器中,以便在容器內部創(chuàng)建一個網絡接口,你可以用下面的參數(shù)運行 podman
:
[root@vm1 ~]# podman run -it --cap-add=NET_ADMIN centos[root@b27fea33ccf1 /]# ip link add dummy0 type dummy[root@b27fea33ccf1 /]# ip link
上面的命令演示了在一個無特權的容器中創(chuàng)建一個 dummy0
接口。如果沒有 NET_ADMIN
權能,非特權容器將無法創(chuàng)建接口。上面的命令演示了如何將一個權能授予一個無特權的容器。
目前,大約有 39 種權能可以被授予或拒絕。特權容器默認會被授予許多權能。建議從特權容器中刪除不需要的權能,以使其更加安全。
要從容器中刪除所有權能:
$ podman run -it -d --name mycontainer --cap-drop=all centos
列出一個容器的權能:
$ podman exec -it 48f11d9fa512 capsh --print
上述命令顯示沒有向容器授予任何權能。
請參考 capabilities
手冊頁以獲取完整的權能列表:
$ man capabilities
可以使用 capsh
命令來列出目前擁有的權能:
$ capsh --print
作為另一個例子,下面的命令演示了如何從容器中刪除 NET_RAW
權能。如果沒有 NET_RAW
權能,就不能從容器中 ping
互聯(lián)網上的服務器。
$ podman run -it --name mycontainer1 --cap-drop=net_raw centos>>> ping google.com (will output error, operation not permitted)
最后一個例子,如果你的容器只需要 SETUID
和 SETGID
權能,你可以刪除所有權能,然后只重新添加這兩個權能來實現(xiàn)這樣的權限設置。
$ podman run -d --cap-drop=all --cap-add=setuid --cap-add=setgid fedora sleep 5 > /dev/null; pscap | grep sleep
上面的 pscap
命令會顯示容器被授予的權能。
以上是“如何在Fedora中結合權能使用Podman”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。