这篇文章上次修改于 1097 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

修改主机名,永久性的:

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