【包过滤防火墙-iptables】的简单使用

文章目录

    • 规则链的分类--五链
    • 处理的动作
    • iptables常用参数和作用

防火墙就是堵和通的作用

iptables :包过滤防火墙,是内核防火墙netfilter的管理工具

核心:四表五链

规则链的分类–五链

在进行路由选择前处理的数据包:PREROUTING

处理流入的数据包:INPUT

处理流出的数据包:OUTPUT

处理转发的数据包:FORWARD

在进行路由选择后处理的数据包:POSTROUTING

处理的动作

ACCEPT:允许流量通过

REJECT:拒绝流量通过 (流量拒绝会通知,会返回流量拒绝信息)

LOG:记录日志信息

DROP:拒绝流量通过,丢弃 (直接把流量丢弃,不会返回任何值)

iptables常用参数和作用

参数 作用
-P 设置默认策略
-F 清空规则链
-L 查看规则链
-A 在规则链的末尾加入新的规则
-l num 在规则链的头部加入新的规则
-D num 在规则链中删除某一条规则链
-s 匹配来源的ip/MASK
-d 匹配目标地址
-i 网卡名称 匹配这块网卡流入的数据
-o 网卡名称 匹配这块网卡流出的数据
-p 匹配协议,例如:TCP、UDP、ICMP
–dport num 匹配目标端口号
–sport num 匹配来源端口号

以Centos7和Kali为例

Centos——IP地址:192.168.80.131

Kali————IP地址:192.168.80.141

先停止、禁用firewalld

systemctl stop firewalld
systemctl disable firewalld
  • 查看规则链
iptables -L

【包过滤防火墙-iptables】的简单使用_第1张图片

  • 清空规则链
 iptables -F

其实刚开始在没有配置规则的使用,查看规则链的时候就是空的

  • 设置默认规则 ,将流入的流量丢掉
 iptables -P INPUT DROP

【包过滤防火墙-iptables】的简单使用_第2张图片

命令回车 之后会发现,输入任何命令已经没有反应了

因为我是通过SSH连接到Centos7系统的,流量属于流入的流量,通过iptables -P INPUT DROP命令将流入的流量全部都禁掉了,所以就不能SSH连接了

主机使用ping命令也会ping不通centos

【包过滤防火墙-iptables】的简单使用_第3张图片

  • 允许icmp协议流量通过
iptables -I INPUT -p icmp -j ACCEPT

【包过滤防火墙-iptables】的简单使用_第4张图片

再次测试网络连通性就 可以通了

【包过滤防火墙-iptables】的简单使用_第5张图片

虽然能ping通,但是ssh还是连接不上 ,因为没有设置允许tcp协议(ssh协议用的是tcp协议) 流量通过

  • 可以显示规则的行数
iptables -nL --line-numbers
  • 删除刚才的默认策略
iptables -D INPUT 1

【包过滤防火墙-iptables】的简单使用_第6张图片

  • 允许所有流量通过
iptables -P INPUT ACCEPT

【包过滤防火墙-iptables】的简单使用_第7张图片

现在SSH就能 连接成功了

【包过滤防火墙-iptables】的简单使用_第8张图片

  • 所有进来的22端口的TCP流量都给拒绝
 iptables -A INPUT -p tcp --dport 22 -j REJECT

命令回车后,ssh就不能连接了,已经被拒绝了

【包过滤防火墙-iptables】的简单使用_第9张图片

查看一个规则

【包过滤防火墙-iptables】的简单使用_第10张图片

  • 允许192.168.80.0网段的22端口通过
iptables -I INPUT -s 192.168.80.0/24 -p tcp --dport 22 -j ACCEPT

【包过滤防火墙-iptables】的简单使用_第11张图片

匹配规则:从上往下


  • 设置某个端口流量全部拒绝 (UDP、TCP)
iptables -I INPUT -p tcp --dport 80 -j REJECT
iptables -I INPUT -p udp --dport 80 -j REJECT
  • 在input链中添加某个IP拒绝访问某个端口
iptables -I INPUT -p tcp -s 192.168.80.1 --dport 8080 -j REJECT

这里不能直接写真实机的地址,应该写VMnet8的地址,这样才能限制住真实机的访问

【包过滤防火墙-iptables】的简单使用_第12张图片

Centos开启8080端口服务

python3 -m http.server 8080

【包过滤防火墙-iptables】的简单使用_第13张图片

kali可以访问到

【包过滤防火墙-iptables】的简单使用_第14张图片

真实机就访问不到了

【包过滤防火墙-iptables】的简单使用_第15张图片

  • 清空所有策略
iptables -F

【包过滤防火墙-iptables】的简单使用_第16张图片

  • 禁用某一段端口
iptables -A INPUT -p tcp --dport 8000:9000 -j REJECT
  • 保存规则
iptables-save
iptables-save > 1.txt

https://www.cnblogs.com/ip99/p/15313691.html
https://www.cnblogs.com/machangwei-8/p/15978257.html
https://blog.csdn.net/u014644574/article/details/130071097

你可能感兴趣的:(#,Linux,防火墙,iptables,网络安全)