背景
一同事在研究他的安全大業,須要在AWS服務器上部署他的祕密武器,祕密武器經過Docker來部署;在部署前能夠經過跳板機的內外網ssh登陸上這臺服務器;部署後只能經過外網ssh登陸這臺服務器.......;症狀就是這麼個症狀,怎麼下藥就得看醫術了.....
排查內心路程
一、部署祕密武器以前,能夠內外網;部署後,只能外網,看這麼個症狀就是網絡防火牆問題,因而乎~~~
1)iptables -F
2)setenforce 0
3)在AWS上把此服務器的安全組入站0.0.0.0(這純粹是爲了測試,正式環境千萬別~~~)
二、這ssh不通難道是ssh的配置文件修改了,由於改了端口,難道ssh的配置文件裏有控制內外網是否能夠登陸的配置?因而乎~~~
vim /etc/ssh/sshd_config 一頓瞎改(這裏就體現了對ssh的認識不足,對配置文件不熟悉,得學習)
三、這什麼玩意兒,網絡是能夠的,安全組沒問題,不知爲何腦殼裏面想到了路由,
route -n 先看看,哇~~噢,這麼多條路由,看到這些路由的時候,其中有一條172.29.0.0(咱們跳板機的網段跟這個很像),就隱隱約約以爲這裏有問題(女人的直覺不僅在判斷男友是否在外面有狗,還愛不愛上;在這裏直覺也仍是挺準,哈哈);因而乎~~~
route -n
route del -net 172.22.32.0 netmask 255.255.255.0
route del -net 172.23.32.0 netmask 255.255.255.0
......
只要是與容器有關的路由所有幹掉,而後再從跳板機去內網ssh登陸,哇~~~哇~~~能夠了耶,好激動好激動噢~~~~
四、肯定了,就是那一條路由的問題,這個容器分配的網段與跳板機的網段衝突了,因而乎~~~~
route add -net 172.22.32.0 netmask 255.255.255.0
......
把剛剛刪了的路由除了那一條衝突的,又傻不拉幾的加上,接下來就是解決這個問題的時候了
當時的解決辦法
想了想,既然衝突了,那我確定就是把這個容器的網段給改了,怎麼改呢,用了一個及其愚蠢的辦法,我把這個容器停掉刪除,從新用docker-compose重啓啓動了一個,就從新分配了一個新的網段,就不衝突了。
根本解決辦法
在啓動容器以前就把整個docker的網絡改成與咱們本身的網段不衝突的,這樣docker永遠只分配咱們給他設置的
操做步驟:
修改docker.json,使得整個docker的網絡網段都改掉,原來是172網段,如今我要改成192
1)vim /etc/docker/daemon.json(這裏沒有這個文件的話,自行建立)
{
"bip":"192.168.0.1/24"
}
2)重啓docker
注:在使用docker容器最初規劃的時候就要想到這一點,要規劃好使用什麼樣的網段;上面的這種辦法得重啓docker,重啓容器的;
疑問
還
沒有其餘更好的辦法呢,在不中止容器不刪除容器的前提下,修改網段?(待我研究好了,再來補充)
總結
1:對ssh的配置文件不熟悉(這個得找個時間系統的過一遍)
2:對網絡這塊熟悉,尤爲是路由這些,說實在的,到如今仍是說不出路由的具體做用,只可意會的那種,只知道沒他不行(等這段時間把PMP考完了,開始看思科那幾本書,不說考證,先把那幾本書好好看看,增強網絡)
3:對Docker網絡模式不熟悉(接下來這段時間好好看Dokcer網絡部分的官方文檔)
下次再見~~~