centos7防止端口扫描_centos防止端口扫描

hacker|
115

centos下的snort如何在检测到各种攻击,并且将预警显示在base上,如端口扫描,arp欺骗,DDOS攻击等。

snort是一个强大的轻量级的网络入侵检测系统。它具有实时数据流量分析和日志IP网络数据包的能力,能够进行协议分析,对内容进行搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。此外,snort具有很好的扩展性和可移植性。本文将讲述如何开发snort规则。

1.基础

snort使用一种简单的规则描述语言,这种描述语言易于扩展,功能也比较强大。下面是一些最基本的东西:

snort的每条规则必须在一行中,它的规则解释器无法对跨行的规则进行解析。注意:由于排版的原因本文的例子有的分为两行。

snort的每条规则都可以分成逻辑上的两个部分:规则头和规则选项。规则头包括:规则行为(rule's action)、协议(protocol)、源/目的IP地址、子网掩码以及源/目的端口。规则选项包含报警信息和异常包的信息(特征码,signature),使用这些特征码来决定是否采取规则规定的行动。

这是一个例子:

alert tcp any any - 192.168.1.0/24 111(content:"|00 01 86 a5|";msg:"mountd access";)

表1.一条简单的snort规则

从开头到最左边的括号属于规则头部分,括号内的部分属于规则选项。规则选项中冒号前面的词叫做选项关键词(option keywords)。注意对于每条规则来说规则选项不是必需的,它们是为了更加详细地定义应该收集或者报警的数据包。只有匹配所有选项的数据包,snort才会执行其规则行为。如果许多选项组合在一起,它们之间是逻辑与的关系。让我们从规则头开始。

centos下安装nmap工具及简单用法

1、yum安装nmap

yum install nmap -y

yum install nc -y

nmap 命令参数:nmap -h

2、nmap 常用命令介绍:

udp 检测

nc -vuz 221.23.4.5 6127

快速扫描端口模式,扫描100个最有可能开放的端口 -v 获取扫描的信息

nmap -F -v 192.168.43.118

Tcp SYN Scan (sS) 隐蔽扫描 这是一个不完整的扫描方式,它被称为半开放扫描,Nmap发送SYN包到远程主机,但是它不会产生任何会话,在syn扫描中不需要通过完整3次的握手,因此不会在目标主机上产生任何日志记录,这个就是SYN扫描的优势,但是这种扫描是需要root权限(对于windows用户来说,是没有root权限这个概念的,root权限是linux的最高权限,对应windows的管理员权限)

Tcp connect() scan(sT) 最常用

如果不选择SYN扫描,TCP connect()扫描就是默认的扫描模式,不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect(),Tcp connect()扫描技术只适用于找出TCP和UDP端口,但是这种方式扫描的速度快,准确性高,对操作者没有权限上的要求,但是容易被防火墙和IDS(防入侵系统)发现。

UDP scan(sU)

顾名思义,这种扫描技术用来寻找目标主机打开的UDP端口,它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的。

nmap -sU 192.168.43.118

FIN scan (sF)

有时候Tcp SYN扫描不是最佳的扫描模式,因为有防火墙的存在,目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手,收到RST回复说明该端口关闭,否则说明是open或filtered状态

nmap -sF 192.168.43.118

PING Scan (sP) 扫描在线主机

PING扫描它只用于找出主机是否是存在在网络中的,它不是用来发现是否开放端口的,PING扫描需要ROOT权限,如果用户没有ROOT权限,PING扫描将会使用connect()调用。

nmap -sP 192.168.43.118

版本检测(sV)

版本检测是用来扫描目标主机和端口上运行的软件的版本,它不同于其它的扫描技术,它不是用来扫描目标主机上开放的端口,不过它需要从开放的端口获取信息来判断软件的版本,使用版本检测扫描之前需要先用TCP SYN扫描开放了哪些端口。

nmap -sV 192.168.43.118

Idle scan (sL)

Idle scan是一种先进的匿名扫描技术,它不是用你真实的主机Ip发送数据包,而是使用另外一个目标网络的主机发送数据包,例如:通过目标网络中的192.168.43.118向主机192.168.43.4发送数据,来获取192.168.1.1开放的端口。

nmap -sL 192.168.43.118 192.168.43.4

有需要其它的扫描技术,如 FTP bounce(FTP反弹), fragmentation scan(碎片扫描),IP protocol scan(IP协议扫描),以上讨论的是几种最主要的扫描方式。

Nmap的OS检测(O)

Nmap最重要的特点之一是能够远程检测操作系统,Nmap的OS检测技术在渗透测试中用来了解远程主机的操作系统是非常有用的,通过获取的信息你可以知道已知的漏洞

nmap -O 192.168.43.17

ACK扫描:

利用ACK扫描判断端口是否被过滤。针对ACK探测包,为被过滤的端口(无论打开或关闭)会回复RST包

nmap -sA -T4 p1521,80 192.168.43.17

使用TCP ACK (PA)和TCP Syn (PS)扫描远程主机

nmap -pA -T4 p1521,80 192.168.43.17

nmap -pA -T4 p1521,80 192.168.43.17

扫描前不进行Ping扫描测试:

nmap -Pn p1521,80 192.168.43.17

通过tcp空扫描以绕过防火墙检测:

nmap -sN 192.168.43.17

打印主机接口和路由

nmap --iflist

按顺序扫描端口:

nmap -r 192.168.43.118

扫描主机检测是否有防火墙过滤:

nmap -PN -p 1521 192.168.43.17

扫描操作系统信息和路由跟踪

使用Nmap,你可以检测远程主机上运行的操作系统和版本。为了启用操作系统和版本检测,脚本扫描和路由跟踪功能,我们可以使用NMAP的“-A“选项。

nmap -A 192.168.43.17

扫描端口时状态介绍:

Open 端口开启,数据有到达主机,有程序在端口上监控

Closed 端口关闭,数据有到达主机,没有程序在端口上监控

Filtered 数据没有到达主机,返回的结果为空,数据被防火墙或者是IDS过滤

UnFiltered 数据有到达主机,但是不能识别端口的当前状态

Open|Filtered 端口没有返回值,主要发生在UDP、IP、FIN、NULL和Xmas扫描中

Closed|Filtered 只发生在IP ID idle扫描

以上总结来源于网络。

请问Centos 防火墙 如何只允许某IP 连接呢?

执行如下命令

iptables -A INPUT -p tcp -s (此处填写想要访问80端口的IP) --dport 80 -j ACCEPT

重启防火墙

service iptables restart

CentOs web服务器安全防范经验总结

1.禁用ROOT权限登录。(重要)

2.安全组收缩不使用的端口,建议除443/80以及ssh登录等必要端口外全部关闭。

3.防火墙收缩不使用的端口,建议除443/80以及ssh登录端口外全部关闭。

4.更改ssh默认端口22

5.除登录USER,禁止其他用户su到root进程,并且ssh开启秘钥及密码双层验证登录。(重要)

6.限制除登录USER外的其他用户登录。

7.安装DenyHosts,防止ddos攻击。

8.禁止系统响应任何从外部/内部来的ping请求。

9.保持每天自动检测更新。

10.禁止除root之外的用户进程安装软件及服务,如有需要则root安装,chown给到用户。

11.定时给服务器做快照。

12.更改下列文件权限:

13.限制普通用户使用特殊命令,比如wget,curl等命令更改使用权限,一般的挖矿程序主要使用这几种命令操作。

1.nginx进程运行在最小权限的子用户中,禁止使用root用户启动nginx。(重要)

2.配置nginx.conf,防范常见漏洞:

1.禁止root权限启动apache服务!禁止root权限启动apache服务!禁止root权限启动apache服务!重要的事情说三遍!因为这个问题被搞了两次。

2.改掉默认端口。

3.清空webapps下除自己服务外的其他文件,删除用户管理文件,防止给木马留下后门。

4.限制apache启动进程su到root进程以及ssh登录,限制启动进程访问除/home/xx自身目录外的其他文件。

5.限制apache启动进程操作删除以及编辑文件,一般a+x即可。

1.关闭外网连接,与java/php服务使用内网连接。

2.在满足java/php服务的基础上,新建最小权限USER给到服务使用,禁止USER权限访问其他项目的库。

3.root密码不要与普通USER相同。

4.建议使用云库,云库具备实时备份,动态扩容,数据回退等功能,减少操作风险。

1.关闭外网连接,只允许内网交互,基本这个做了之后就已经稳了。

2.禁止root权限启动,运行在普通用户进程里。

3.更改默认端口。

4.添加登录密码。

以上是自己做的防范手段,不成熟见解,有一些方案待验证,不定时更新,欢迎大佬补充!

0条大神的评论

发表评论