安防系列-利用iptables/firewalld防止nmap扫描

写在前面

我们都知道,nmap是安全测试中用来扫描主机开放服务的一款工具,也是黑客对目标实施攻击信息收集的第一步。当然了,对于各大资产测绘平台中已经收录的资产利用防火墙做出策略已经起不到防护效果,其实只要不把像数据库服务、22、FTP这种危险端口映射到公网上,黑客也是无法获取目标开放的服务的。但是对于本身在公网上的云主机,或是对抗黑客已经进入内网进行横向,对服务器本身做出防扫描还是很有必要。
写这个文章主要是想重新回顾一下linux上防火墙的配置,毕竟一次在HW面试中,面试官跟我说要会配置这个东西很难,??

基础知识补充

1.linux防火墙之firewalld基础

firewalld是iptables的升级版,有区域的概念。默认情况共分为以下9个安全区
在这里插入图片描述
所有默认的规则都是外到内的,自己可以指定内到外的策略,源改为本机IP即可,指定限制的对象类型分为以下几种
在这里插入图片描述
firewalld借助firewall-cmd进行管理,firewall-cmd总共有下列参数
在这里插入图片描述
firewalld的几个动作如下

动作含义
default不做任何处理
accept接受数据包
reject拒绝数据包,并返回拒绝
drop丢弃数据包,不做返回
log做日志记录

firewall自定义规则
因为在firewall中自定义规则还涉及到相关对象的选择,所以做以下知识补充
firewall中的表

表名作用
filter表数据过滤
nat表地址转换
mangle表拆解报文,做出修改,并重新封装

firewall中的链

链名释义
INPUT入站数据包处理
OUTPUT出站数据包处理
FORWARD转发数据包处理
PREROUTING在进行路由选择前数据包处理
POSTROUTING在进行路由选择后数据包处理

2.linux防火墙之iptables基础

firewalld是iptables的升级版,iptables的底层是netfilter内核,firewalld的底层是iptables。iptables在使用当中过于复杂,但是在实际使用firewalld过程中会涉及到部分与iptables重合的语法,所以只选择重点做笔记。
iptables和firewalld一样,有“三表四链”的说法,但是其实iptables还多一个raw表,实际应用中很少涉及。
规则的操作有:增、删、改、查、存。
规则的语法是 iptables [-t表名] 选项 [链名] [规则] [动作]
规则操作表如下

操作名称对应语法
追加至尾部-A
删除-D
插入至顶部-I
清空所有规则-F
替换-R

iptables设置规则中匹配的参数可选择的如下

条件参数释义
[!]-p协议
[!]-s源地址,多个由逗号分隔
[!]-d目的地址,多个由逗号分隔
[!]–sorce-port源端口
[!]–destination-port目的端口
[!]-i接收数据包的接口
[!]-o发送数据包的接口
-m用于扩展匹配
-j执行动作

iptables中的扩展模块如下

扩展模块名作用
multiport可以添加多个不连续的端口
iprange指定”一段连续的IP地址范围"
string指定报文中包含对应的字符串
time根据时间段区匹配报文
icmp可以控制其他主机无法ping同本机,但本机可以ping同其他主机
connlimit限制每个客户端P地址到服务器的并行连接数
limit通过令牌桶限制请求数
tcp-flagstcp标志位
state按链接状态过滤链接,有NEW、ESTABLISHED、RELATED、INVALID

实验效果

1.利用iptables防止nmap扫描

kali自带iptables
配置前的效果图

做出如下配置

iptables -t filter -I INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j REJECT
iptables -t filter -I INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j REJECT
iptables -t filter -I INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j REJECT
iptables -t filter -I INPUT -p tcp --tcp-flags ALL SYN -j REJECT
iptables-save > /etc/network/iptables.rules #永久生效

配置后的效果图
在这里插入图片描述

2.利用firewalld防止nmap扫描

参考链接firewalld防火墙配置
未配置前的效果图
在这里插入图片描述
下面来做出配置(不懂可以参考上面的基础知识):
1.新建一条链PORT_SCANNING

firewall-cmd --direct --permanent --direct  --add-chain ipv4 filter PORT_SCANNING
firewall-cmd --reload

2.做规则配置

firewall-cmd --permanent --direct --add-rule ipv4 filter PORT_SCANNING \
0 -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 100/minute --limit-burst 50 -j RETURN
firewall-cmd --reload
firewall-cmd --permanent --direct --add-rule ipv4 filter PORT_SCANNING 1 -j DROP
firewall-cmd --reload
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -j PORT_SCANNING
firewall-cmd --reload

配置后的效果图
在这里插入图片描述
但是SSH不上了,解决办法待定。

  • 39
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值