防火墙就是堵和通的作用
iptables :包过滤防火墙,是内核防火墙netfilter的管理工具
核心:四表五链
在进行路由选择前处理的数据包:PREROUTING
处理流入的数据包:INPUT
处理流出的数据包:OUTPUT
处理转发的数据包:FORWARD
在进行路由选择后处理的数据包:POSTROUTING
ACCEPT:允许流量通过
REJECT:拒绝流量通过 (流量拒绝会通知,会返回流量拒绝信息)
LOG:记录日志信息
DROP:拒绝流量通过,丢弃 (直接把流量丢弃,不会返回任何值)
参数 | 作用 |
---|---|
-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 -F
其实刚开始在没有配置规则的使用,查看规则链的时候就是空的
iptables -P INPUT DROP
命令回车 之后会发现,输入任何命令已经没有反应了
因为我是通过SSH
连接到Centos7
系统的,流量属于流入的流量,通过iptables -P INPUT DROP
命令将流入的流量全部都禁掉了,所以就不能SSH连接了
主机使用ping
命令也会ping不通centos
iptables -I INPUT -p icmp -j ACCEPT
再次测试网络连通性就 可以通了
虽然能ping通,但是ssh还是连接不上 ,因为没有设置允许tcp协议(ssh协议用的是tcp协议) 流量通过
iptables -nL --line-numbers
iptables -D INPUT 1
iptables -P INPUT ACCEPT
现在SSH
就能 连接成功了
iptables -A INPUT -p tcp --dport 22 -j REJECT
命令回车后,ssh
就不能连接了,已经被拒绝了
查看一个规则
iptables -I INPUT -s 192.168.80.0/24 -p tcp --dport 22 -j ACCEPT
匹配规则:从上往下
iptables -I INPUT -p tcp --dport 80 -j REJECT
iptables -I INPUT -p udp --dport 80 -j REJECT
iptables -I INPUT -p tcp -s 192.168.80.1 --dport 8080 -j REJECT
这里不能直接写真实机的地址,应该写VMnet8
的地址,这样才能限制住真实机的访问
Centos开启8080
端口服务
python3 -m http.server 8080
kali可以访问到
真实机就访问不到了
iptables -F
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