背景
一同事在研究他的安全大業(yè),需要在AWS服務(wù)器上部署他的秘密武器,秘密武器通過Docker來部署;在部署前可以通過跳板機(jī)的內(nèi)外網(wǎng)ssh登錄上這臺服務(wù)器;部署后只能通過外網(wǎng)ssh登錄這臺服務(wù)器.......;癥狀就是這么個癥狀,怎么下藥就得看醫(yī)術(shù)了.....
排查心里路程
1、部署秘密武器之前,可以內(nèi)外網(wǎng);部署后,只能外網(wǎng),看這么個癥狀就是網(wǎng)絡(luò)防火墻問題,于是乎~~~
1)iptables -F
2)setenforce 0
3)在AWS上把此服務(wù)器的安全組入站0.0.0.0(這純粹是為了測試,正式環(huán)境千萬別~~~)
2、這ssh不通難道是ssh的配置文件修改了,因為改了端口,難道ssh的配置文件里有控制內(nèi)外網(wǎng)是否可以登錄的配置?于是乎~~~
vim /etc/ssh/sshd_config 一頓瞎改(這里就體現(xiàn)了對ssh的認(rèn)識不足,對配置文件不熟悉,得學(xué)習(xí))
3、這什么玩意兒,網(wǎng)絡(luò)是可以的,安全組沒問題,不知為什么腦袋里面想到了路由,route -n 先看看,哇~~噢,這么多條路由,看到這些路由的時候,其中有一條172.29.0.0(我們跳板機(jī)的網(wǎng)段跟這個很像),就隱隱約約覺得這里有問題(女人的直覺不只在判斷男朋友是否在外面有狗,還愛不愛上;在這里直覺也還是挺準(zhǔn),哈哈);于是乎~~~
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
......
只要是與容器有關(guān)的路由全部干掉,然后再從跳板機(jī)去內(nèi)網(wǎng)ssh登錄,哇~~~哇~~~可以了耶,好激動好激動噢~~~~
4、確定了,就是那一條路由的問題,這個容器分配的網(wǎng)段與跳板機(jī)的網(wǎng)段沖突了,于是乎~~~~
route add -net 172.22.32.0 netmask 255.255.255.0
......
把剛剛刪了的路由除了那一條沖突的,又傻不拉幾的加上,接下來就是解決這個問題的時候了
當(dāng)時的解決辦法
想了想,既然沖突了,那我肯定就是把這個容器的網(wǎng)段給改了,怎么改呢,用了一個及其愚蠢的辦法,我把這個容器停掉刪除,重新用docker-compose重啟啟動了一個,就重新分配了一個新的網(wǎng)段,就不沖突了。
根本解決辦法
在啟動容器之前就把整個docker的網(wǎng)絡(luò)改為與我們自己的網(wǎng)段不沖突的,這樣docker永遠(yuǎn)只分配我們給他設(shè)置的
操作步驟:修改docker.json,使得整個docker的網(wǎng)絡(luò)網(wǎng)段都改掉,原來是172網(wǎng)段,現(xiàn)在我要改為192
1)vim /etc/docker/daemon.json(這里沒有這個文件的話,自行創(chuàng)建)
{
"bip":"192.168.0.1/24"
}
2)重啟docker
3)在重新看網(wǎng)段
注:在使用docker容器最初規(guī)劃的時候就要想到這一點,要規(guī)劃好使用什么樣的網(wǎng)段;上面的這種辦法得重啟docker,重啟容器的;
疑問
還沒有其他更好的辦法呢,在不停止容器不刪除容器的前提下,修改網(wǎng)段?(待我研究好了,再來補(bǔ)充)
總結(jié)
1:對ssh的配置文件不熟悉(這個得找個時間系統(tǒng)的過一遍)
2:對網(wǎng)絡(luò)這塊熟悉,尤其是路由這些,說實在的,到現(xiàn)在還是說不出路由的具體作用,只可意會的那種,只知道沒他不行(等這段時間把PMP考完了,開始看思科那幾本書,不說考證,先把那幾本書好好看看,加強(qiáng)網(wǎng)絡(luò))
3:對Docker網(wǎng)絡(luò)模式不熟悉(接下來這段時間好好看Dokcer網(wǎng)絡(luò)部分的官方文檔)
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。