01-iptables命令

iptables命令语法顺序

1.安装iptables

2.加载防火墙内核模块

让内核开启某个功能支持

3.启动防火墙

4.iptables核心命令

1.查看规则

2.清空规则

3.添加防火墙规则

4.查看网络连接状态

NEW:已经或将启动新的连接
ESTABLISHED:已建立的连接
RELATED:正在启动的新连接
INVALID:非法或无法识别的

iptables -nL 可以看到状态

5.如何删除某个规则

1. 加一个测试规则,禁止本机的6379被访问

2.规则实战玩法

这里的规则添加,很容易就蒙圈了,执行前,想一想。。

1.禁止22端口访问

危险操作,别瞎执行..

参数解释
-p               #<==指定过滤的协议-p(tcp,udp,icmp,all)
--dport          #<==指定目标端口(用户请求的端口)。
-j               #<==对规则的具体处理方法(ACCEPT,DROP,REJECT,SNAT/DNAT)
--sport             #<==指定源端口。

# 预测,执行后会怎么样?

iptables -t filter -A INPUT -p tcp --dport 22 -j DROP

2.禁止某个ip访问具体网卡

# 禁止52机器访问51机器(ens33网卡)

3.使用取反符号

# 禁止除了10.0.0.53以外的ip访问本机的ens33
#  思考流量的走向



查看机器最新规则

iptables -L

4.只允许10.0.0.0网段的数据包进入


5.实现堡垒机登录唯一入口

要作为第一个规则,就是-I,-A是往后面追加写入规则

也就是,编写规则
所有机器,只允许61机器的22号端口流量进入,博客上的有误了,禁止了所有流量


6.匹配端口范围

只允许172.16.1.0/24网段访问本机的22 ,6379,80端口

利用-m multiport 指定多端口的模块

指定多个--dport


7.禁止服务器被ping,服务器拒绝icmp的流量,给与响应

测试REJECT动作


8.服务器禁ping,请求直接丢弃

测试DROP动作


9.练习题

1. 封禁10.0.0.51 访问本机


2.限制只有10.0.0.1可以ssh登录堡垒机

3. 封禁任何人访问本机6379

4.只允许走172内网,访问51机器的6379

5.只允许走172内网,访问51机器的6379 ,简写


10.封禁恶意访问网站80口的IP


3.实战玩法(常见完整的iptables)

iptables基本都是用于内网的流量控制了,不会用于对外的流量限制;

对公网的流量控制,一般都是硬件防火墙的事了。

以及在容器环境下的流量转发,也是生成iptables规则,因此这是学习本章的目的。

iptables -F
iptables -X
iptables -Z
iptables -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -s 172.16.1.0/24 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -nL

3.2 局域网共享上网

实现效果,m-61作为上网网关出口,实现数据包转发
其他机器只有172局域网地址,网关指向m-61

根据流程图完成即可

其他内网机器

按要求操作即可

3.3 本地端口映射

4.保存规则记录


踩坑指南


练习题