一.前言:
这个只是个人笔记,方便日后查阅,若有错误,欢迎同行帮忙纠正
1.最近买的腾讯云和阿里云服务器均受到攻击,以前不懂安全防护这方面,所以也没在意。由于这次查看腾讯云上面的一个java web项目日志发现,有很多请求php文件的日志,都被springmvc的拦截器给拦截了,当时看到这么多请求php文件的消息,心里倒没咋慌,因为那台只是测试服务器,心里倒是欣喜了一下,这下可以就地的实际解决一下这种问题,学习一下,刚开始以为服务器已被攻破呢,后来仔细分析了一下日志,其实它只是在扫文件,看看我服务器上有没有一样的php文件,可惜哥哥的服务器是java web的。
接着便着手了解这方面的知识,经过网上查阅和向同行请教,现在基本上对服务器的基本防护算是入门了。
1.通过查看项目里面的日志 cat catalina.out:
这是初步接触到攻击日志,网上查阅,说这类属于DOS攻击,到底属于不属于DOS攻击没有仔细研究
2.再查看项目请求的日志 cat localhost_access_log.2016-06-29.txt
3.再查看系统级的日志 cat /var/log/secure
看到这边,刚开始还想着把这些攻击的IP一个个加到防火墙里面,禁止它再次访问,同时通过IP查询,发现这些IP都属于国外的,譬如印度、俄罗斯、巴西等,加了一两个进去,发现并没有实际性的作用,因为它好像是生成的伪IP,你加进去一个,它又有新的IP来攻击,那它必定是通过工具进行自动攻击的,我这边一个个加根本不是一解决办法。
二.进入主题:
遂上网查询防护的基本知识:
基本上形成了如下思路:
1.首先禁用root登录,创建普通用户来登录服务器,然后再通过su root切换到root用户
这样增加了攻击难度,首先它得猜到我的普通用户登录名,直接通过root登录已经没有用了。
2. 修改SSH的端口,通常都是22,我把端口改成23456,这样它扫端口也够他扫上一段时间了
3. 通过工具来拦截获取攻击的IP,生成黑名单,防止再次攻击,这个我选用的DenyHosts,好用不好用,用过才知道。
4.安装云锁 :http://www.yunsuo.com.cn/help/center#/qs/qs-03
三.操作
1禁用root登录
参考:http://www.2cto.com/os/201102/84178.html
#先创建一个普通用户test,同时给test用户设置密码
adduser test
passwd test
mkdir /opt/doc
#给test用户分配doc目录的写入权限,方便上传war等文件
chown test /opt/doc
chmod 755 /opt/doc
#接着禁用root登录
vi /etc/ssh/sshd_config
PermitRootLogin no
Systemctl restart sshd.service
测试看看,是不是通过root用户无法直接登录了,只能通过普通用户登录,然后再su root
2.修改SSH的端口
参考:http://blog.csdn.net/jasper_success/article/details/38537049
注意!这里的Centos版本是7
step1 修改/etc/ssh/sshd_config
#Port 22 //这行去掉#号
为什么不先删除22,以防其他端口没配置成功,而又把22的删除了,无法再次进入服务器
step2 修改SELinux
使用以下命令查看当前SElinux 允许的ssh端口:
semanage port -l | grep ssh
添加51866端口到 SELinux
semanage port -a -t ssh_port_t -p tcp 51866
注:操作不成功,可以参考:https://sebastianblade.com/how-to-modify-ssh-port-in-centos7/
然后确认一下是否添加进去
semanage port -l | grep ssh
如果成功会输出
ssh_port_t tcp 51866, 22
step3 重启ssh
systemctl restart sshd.service
Step4 防火墙开放51866端口
firewall-cmd --permanent --zone=public --add-port=51866/tcp
然后测试试试,能不能通过51866登录,若能登录进来,说明成功,接着删除22端口
vi /etc/ssh/sshd_config
删除22端口 wq
systemctl restart sshd.service
同时防火墙也关闭22端口
firewall-cmd --permanent --zone=public --remove-port=22/tcp
然后再进行测试,看看22端口是不是不可以登录了
登录的时候,ssh test@ip -p 51866
3.安装DenyHosts
参考:http://blog.chinaunix.net/uid-280772-id-2135429.html
http://www.cnblogs.com/xia/archive/2011/02/11/1951257.html
http://www.cnblogs.com/suihui/p/3899381.html
DenyHosts(项目主页:http://denyhosts.sourceforge.net/)是运行于Linux上的一款预防SSH暴力破解的软件,可以从
http://sourceforge.net/projects/denyhosts/files/进行下载,然后将下载回来的DenyHosts-2.6.tar.gz源码包上传到Linux系统中。
下面是安装过程
****************************************************************
tar zxvf DenyHosts-2.6.tar.gz #解压源码包
cd DenyHosts-2.6 #进入安装解压目录
python setup.py install #安装DenyHosts
cd /usr/share/denyhosts/ #默认安装路径
cp denyhosts.cfg-dist denyhosts.cfg #denyhosts.cfg为配置文件
cp daemon-control-dist daemon-control #daemon-control为启动程序
chown root daemon-control #添加root权限
chmod 700 daemon-control #修改为可执行文件
ln -s /usr/share/denyhosts/daemon-control /etc/init.d #对daemon-control进行软连接,方便管理
安装到这一步就完成了。
/etc/init.d/daemon-control start #启动denyhosts
chkconfig daemon-control on #将denghosts设成开机启动
******************************************************************
vi /usr/share/denyhosts/denyhosts.cfg #编辑配置文件,另外关于配置文件一些参数,通过grep -v "^#" denyhosts.cfg查看
SECURE_LOG = /var/log/secure #ssh 日志文件,redhat系列根据/var/log/secure文件来判断;Mandrake、FreeBSD根
据 /var/log/auth.log来判断
#SUSE则是用/var/log/messages来判断,这些在配置文件里面都
有很详细的解释。
HOSTS_DENY = /etc/hosts.deny #控制用户登陆的文件
PURGE_DENY = 2h #过多久后清除已经禁止的,设置为30分钟;
# ‘m’ = minutes
# ‘h’ = hours
# ‘d’ = days
# ‘w’ = weeks
# ‘y’ = years
BLOCK_SERVICE = sshd #禁止的服务名,当然DenyHost不仅仅用于SSH服务
DENY_THRESHOLD_INVALID = 1 #允许无效用户失败的次数
DENY_THRESHOLD_VALID = 3 #允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 3 #允许root登陆失败的次数
DAEMON_LOG = /var/log/denyhosts #DenyHosts日志文件存放的路径,默认
更改DenyHosts的默认配置之后,重启DenyHosts服务即可生效:
/etc/init.d/daemon-control restart #重启denyhosts
如果想删除一个已经禁止的主机IP,并加入到允许主机例表,只在 /etc/hosts.deny 删除是没用的。需要进入 /usr/share/denyhosts 目
录,进入以下操作:
1、停止DenyHosts服务:$ /etc/init.d/daemon-control stop
2、在 /etc/hosts.deny 中删除你想取消的主机IP
3、编辑 DenyHosts 工作目录的所有文件,通过
$ grep 127.0.0.1 /usr/share/denyhosts/data/* #这行没明白
然后一个个删除文件中你想取消的主机IP所在的行:
*/usr/share/denyhosts/data/hosts
*/usr/share/denyhosts/data/hosts-restricted
*/usr/share/denyhosts/data/hosts-root
*/usr/share/denyhosts/data/hosts-valid
*/usr/share/denyhosts/data/users-hosts
4、添加你想允许的主机IP地址到
vi /etc/hosts.allow
# We mustn't block localhost
sshd: 127.0.0.1
sshd: 192.168.1.*
sshd: 公网IP
如有IP被误封,可以执行下面的命令解封:wget http://soft.vpser.net/security/denyhosts/denyhosts_removeip.sh && bash denyhost_removeip.sh 要解封的IP
5、启动DenyHosts服务: /etc/init.d/daemon-control restart
---------------------------------------------------------结束------------------------------------------------------------------
这个是记录的一些命令:
firewall-cmd --reload
firewall-cmd --state
firewall-cmd --permanent --zone=public --query-port=8025/tcp 查询端口是否开着
netstat -nupl (UDP类型的端口)
netstat -ntpl (TCP类型的端口)
清空secure的方式:
echo "" > /var/log/secure
相关推荐
在使用云服务器的过程中经常会遇到很多非法的入侵试图登录服务器,所以我们需要对服务器进行安全防范,需要的朋友可以参考下
【CentOS系统安全方案】 ...这些安全措施是保护CentOS服务器免受潜在威胁的基本步骤。不过,安全策略应根据实际环境进行调整,定期检查并更新安全配置,以应对不断演变的威胁。同时,建议定期备份数据,以备不时之需。
本文旨在详细介绍如何使用CentOS搭建服务器,包括服务器的基本配置、Web服务搭建、数据库支持、FTP服务、邮件服务以及服务器的安全防护等内容。无论是初学者还是有一定经验的技术人员,都能从中获益。 #### 二、...
在 CentOS 7 上部署 Snort 可以为企业或组织提供额外的安全防护层。本文档详细介绍了在 CentOS 7 下部署 Snort 的步骤,从环境准备到最终配置完成,旨在帮助读者顺利搭建 Snort 系统。 #### 二、准备工作 1. **安装...
CentOS 7是一款基于RHEL(Red Hat Enterprise Linux)的稳定版Linux发行版,常用于服务器环境。 首先,安装OpenSSH 9.0在CentOS 7上可能需要手动下载源码包,因为官方的默认仓库可能不包含最新版本。你可以通过以下...
离线升级CentOS7的openssl和openssh是一项复杂但必要的任务,它涉及到对系统安全性的增强和对最新漏洞的防护。通过手动下载和编译源代码,我们可以确保在没有网络连接的情况下也能完成关键的安全更新。同时,这个...
在IT行业中,安全性和稳定性是操作系统管理的重要考量因素。CentOS 7作为一款广泛使用的Linux发行版,...通过遵循上述步骤并参考提供的日志文件,你可以安全地在CentOS 7上进行这个升级,从而提高系统的安全防护能力。
- **安全基线项目名称**: CentOS 7 恶意软件防护 - **安全基线要求项**: 安装并配置恶意软件防护工具,如 ClamAV 等。 - **检测操作步骤**: 1. 检查是否安装了恶意软件防护工具: `rpm -qa | grep clamav` 2. ...
对于FTP服务器的配置,除了技术操作外,还需要考虑安全因素,比如使用密码文件来存储用户凭据,并通过SELinux和防火墙规则来增强FTP服务器的安全防护。 上述知识点是基于CentOS7环境下配置FTP服务器的文档片段,...
本文将介绍如何在CentOS 7 64位系统上配置Nginx服务器,集成ngx_lua模块以支持Web应用防火墙(WAF)防护功能。Nginx是一款轻量级、高性能的Web服务器和反向代理服务器,因其高效并发处理能力而被广泛应用于各大...
本篇指南将指导用户如何在CentOS 7上通过yum包管理器来安装MySQL 8.0版本。安装MySQL数据库对于Linux系统管理员来说是一项基础技能,因为数据库是现代软件应用程序不可或缺的组件。 在开始安装之前,需要执行一些...
总的来说,架设一个 CentOS 上的 Postfix 邮件服务器涉及到 DNS 设置、软件安装、配置调整和安全防护等多个环节。遵循这些步骤,你将拥有一个能够从公网访问的邮件服务器,从而能够处理你的组织内部或外部的电子邮件...
等级保护是中国网络安全法规中的一项要求,旨在确保信息系统的基本安全防护能力。SSH由于其安全性,常被用作远程管理和监控服务器的基础工具,因此在等保测评中,确保SSH的安全配置和更新是必不可少的环节。 在标签...
3. **反向代理服务器**(Nginx):作为入口网关,进行负载均衡和安全防护。 4. **监控服务器**(Zabbix):对整个系统进行实时监控。 5. **备份服务器**(rsync):定期备份重要数据。 ##### 2.3 配置简要 接下来...
2. **CentOS 6.6**:CentOS 是一个基于 Red Hat Enterprise Linux (RHEL) 的开源操作系统,提供了一个稳定、安全的服务器环境。CentOS 6.6 是 CentOS 的一个版本,发布于2014年,支持x86_64架构,具有长期支持,适合...
Linux/CentOS服务器的安全配置是保护系统免受恶意攻击和数据泄露的关键步骤。以下是一份通用的Linux/CentOS服务器安全配置指南,旨在提供基础但有效的安全加固措施。 1. **禁用不使用的用户和组** 在Linux系统中,...
Linux Polkit,原名PolicyKit,是Linux操作系统中用于管理非特权用户执行系统管理任务时权限控制的一...对于运维人员来说,了解如何识别和应对这类安全风险,以及如何有效地进行系统维护,是保障服务器安全的重要一环。
CentOS是基于Red Hat Enterprise Linux的一个开源社区版本,它免费且稳定,广泛应用于服务器环境。本书通过深入浅出的方式,将复杂的系统管理知识转化为易于理解的内容,适合初学者和有经验的系统管理员阅读。 标签...
### CentOS 7.5 线上...通过对CentOS 7.5的系统和内核进行上述优化配置,可以显著提升服务器的性能和安全性。需要注意的是,在实际应用中还需根据具体的业务场景和硬件条件灵活调整相关参数,以达到最佳的优化效果。
《服务器&中间件安全...综上所述,《服务器&中间件安全标准规范》是企业信息系统安全的重要组成部分,它通过设定明确的规则和责任分配,确保了从操作系统到中间件的全方位安全防护,为企业信息资产提供了坚实的保障。