在Docker容器中使用iptables時的最小權(quán)限的開啟方法
Dcoker容器在使用的過程中,有的時候是需要使用在容器中使用iptables進(jìn)行啟動的,默認(rèn)的docker run時都是以普通方式啟動的,沒有使用iptables的權(quán)限,那么怎樣才能在容器中使用iptables呢?要如何開啟權(quán)限呢?
那么在docker進(jìn)行run的時候如何將此容器的權(quán)限進(jìn)行配置呢?主要是使用--privileged或--cap-add、--cap-drop來對容器本身的能力的開放或限制。以下將舉例來進(jìn)行說明:
例如:
有一個image為aaa的將啟動為容器名為bbb的且在容器內(nèi)需要使用iptables功能,可以使用--privileged=true來進(jìn)行開啟,如:
~$ docker run --privileged=true -d -p 4489:4489/tcp --name bbb aaa
執(zhí)行以上的命令后,可以進(jìn)入容器中進(jìn)行iptables的配置:
~$ docker exec -it cg_openvpn /bin/bash~#iptables -A INPUT -s 192.168.1.156 -j DROP/# iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 192.168.1.156 0.0.0.0/0
但是這樣的話就將系統(tǒng)的所有能力都開放給了docker容器,這是一種對宿主機非常不安全的做法,例如:可以直接對宿主機中的設(shè)備等進(jìn)行操作。對于iptables需要的權(quán)限進(jìn)行開放,而對于其它的權(quán)限不予開放,那么在啟動docker的時候使用如下的命令參數(shù)進(jìn)行限制權(quán)限的過度開放:
~$ docker run--cap-add NET_ADMIN --cap-add NET_RAW -d -p 4489:4489/tcp --name bbb aaa
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答
圖片精選