这篇文章上次修改于 1159 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
修改主机名,永久性的:
hostnamectl set-hostname 主机名
一.前言:
这个只是个人笔记,方便日后查阅,若有错误,欢迎同行帮忙纠正
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
vi /etc/ssh/sshd_config
#Port 22 //这行去掉#号
Port 51866 //下面添加这一行
为什么不先删除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
没有评论