需求限制外网访问 docker的某个服务 经过查找 发现 ubuntu的 ufw 防火墙是无效的
技术交流http://idea.coderyj.com/
iptables --line -nvL DOCKER-USER
默认是允许所有的访问不限制
-I
代表插入第一条iptables -I DOCKER-USER -p tcp --dport 8848 -j DRO
iptables -I DOCKER-USER -s 172.16.1.0/24 -p tcp --dport 8848 -j ACCEPT
iptables-save
这样就配置成功了,但是重启服务器之后就失效了
apt install iptables-persistent
iptables-restore < /etc/iptables/rules.v4
安装过程中会出现弹框 直接敲回车就好了
# 允许某个ip访问
ufw allow from 172.16.1.0/24
# 拒绝所有ip访问
ufw deny all
ufw default deny
ufw default deny incoming #默认禁止所有其它主机连接该主机
ufw deny in on eth0 from 192.168.3.2
ufw deny from 192.168.3.2
ufw delete allow from 23.56.49.0/24
ufw delete deny from 23.56.49.0/24
ufw deny from 23.56.49.0/24 to any port 8848
ufw deny from 172.18.6.0/24 to any port 8848
ufw deny proto tcp from 172.18.6.0/24 to any port 8848
ufw delete 2
Rule updated
sudo ufw status numbered
1,iptables -nL(查看iptables列表)
链路中 有
RETURN all -- 0.0.0.0/0 0.0.0.0/0
2,iptables -D DOCKER-USER 1(删除上述RETURN的规则,但是 添加完后还要加回来)
3,iptables -A DOCKER-USER -s 172.16.1.136 -p tcp --dport 8848 -j ACCEPT(添加规则,允许172.17.1.1访问8082 。如果有多个需要允许的 请添加完再执行第4步,这玩意好像有先后顺序 碰到DROP就不往下走了)
4,iptables -A DOCKER-USER -p tcp --dport 8848 -j DROP(拒绝不信任的所有访问,也就是拒绝没有添加的ip访问8082,有多个 也是添加完再执行第5步)
5,iptables -A DOCKER-USER -j RETURN(将刚才删除的RETURN 本身就有的一条规则,这条很重要!)
6,iptables-save(保存规则)
一定要注意顺序!一定要注意顺序!一定要注意顺序!
iptables --line -nvL DOCKER-USER
# 删除iptables
iptables -D DOCKER-USER 1
iptables -A DOCKER-USER -s 172.16.1.136 -p tcp --dport 8848 -j ACCEPT
iptables -A DOCKER-USER -p tcp --dport 8848 -j DROP
iptables -A DOCKER-USER -j RETURN
iptables-save
iptables --line -nvL DOCKER-USER
#永久保存
iptables-restore < /etc/sysconfig/iptables
iptables -I DOCKER-USER -i ext_if ! -s 172.16.1.0/24 -j DROP
tar -zxvf ./archives.tar.gz
mv ./archives /var/cache/apt/archives
apt update
# 安装软件
apt install iptables-persistent
iptables -I DOCKER-USER -p tcp --dport 8848 -j DROP
iptables -I DOCKER-USER -s 172.16.1.0/24 -p tcp --dport 8848 -j ACCEPT
iptables-save
# 永久保存
iptables-restore < /etc/iptables/rules.v4
# 加载deb
sudo dpkg -i xx.deb
ubuntu下载安装包
如果只想下载单个包
apt-get download iptables-persistent
下载包及依赖
方法1
首先安装sudo apt install apt-rdepends
apt-get download $(apt-rdepends your_package | grep -v "^ " | sed 's/debconf-2.0/debconf/g')
方法2
查看依赖
sudo apt-cache depends python
创建包目录
mkdir your_package&& cd your_package
下载依赖
$ for i in $(apt-cache depends python | grep -E 'Depends|Recommends|Suggests' | cut -d ':' -f 2,3 | sed -e s/'<'/''/ -e s/'>'/''/); do sudo apt-get download $i 2>>errors.txt; done