iptables命令的坑

这几天在修复漏洞发现,屏蔽端口和 ubuntu下面的 iptables存在一些坑
技术交流 http://idea.coderyj.com/

1. iptables -F 慎用会清空所有的链路包括ssh都登录不上

2. 补救办法添加端口

# 开启外部端口访问 22
iptables -A INPUT -p tcp --dport=22 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
# 添加docker所有用户访问 docker是在docker0的网卡上挂在不受ufw的限制
iptables -A DOCKER-USER -j RETURN
  • 临时保存 iptables-save 重启之后会失效
  • 永久保存
# 安装软件
apt install iptables-persistent
# 永久保存
iptables-save > /etc/iptables/rules.v4
# 永久保存2 这个我在公司服务器上试了没问题,但是在长沙项目现场试发现不行
iptables-restore < /etc/iptables/rules.v4
  • 只允许某个ip访问
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
  • 删除策略
# 删除序号为1的策略
iptables -D DOCKER-USER 1

在这里插入图片描述- 查询docker的策略

iptables --line -nvL DOCKER-USER
  • 查询所有策略
iptables -nL

iptables命令的坑_第1张图片

一定要开启ssh端口访问

3.ufw 命令

# 允许某个ip访问
ufw allow from 172.16.1.0/24 to any port 10022
# 拒绝所有ip访问
ufw deny 10022
ufw default deny
ufw default deny incoming   #默认禁止所有其它主机连接该主机
ufw allow from 172.25.146.0/24 to any app OpenSSH
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

4.iptables命令

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 -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 -A DOCKER-USER -j RETURN
iptables-save

23.56.50.4 
23.56.50.6
23.56.100.11
# 永久保存
iptables-save > /etc/iptables/rules.v4
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
iptables-restore < /etc/iptables/rules.v4
# 开启外部端口访问
iptables -A INPUT -p tcp --dport=22 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 

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


# 加载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

你可能感兴趣的:(java,ubuntu,linux,docker)