`
H小阿飞
  • 浏览: 273817 次
  • 性别: Icon_minigender_1
  • 来自: 南通
社区版块
存档分类
最新评论

CentOS7服务器基本安全防护篇

 
阅读更多

一.前言:

这个只是个人笔记,方便日后查阅,若有错误,欢迎同行帮忙纠正
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

 

 

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

  • 大小: 106.2 KB
  • 大小: 309.8 KB
  • 大小: 276.9 KB
分享到:
评论

相关推荐

    centos7 服务器基本的安全设置步骤

    在使用云服务器的过程中经常会遇到很多非法的入侵试图登录服务器,所以我们需要对服务器进行安全防范,需要的朋友可以参考下

    服务器&中间件安全标准规范.doc

    " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 1 目的 为规范服务器、中间件的信息安全管理,提升服务器、中间件的信息安全防护能力, 特制定本规范。 2 适用范围 本标准规范适用于...

    禁止国外IP地址防火墙shell脚本

    (centos6/7使用) 包含2个文件。一个是国内(中国)地址集,一个是自动加载脚本。把国内地址和当前机器上连接的地址加入白名单。每次重启机器会自动加载白名单。vos软交换、asterisk、freeswitch放到公网上,容易遭受...

    jxwaf:JXWAF(锦衣盾)是一款开源web应用防火墙

    应用安全防护 语义防护引擎 Web 攻击 IP 处理 自定义规则 自定义拦截页面 流量安全防护 CC 攻击防护 CC 攻击 IP 处理 IP 黑白名单 业务安全防护 TODO Architecture 架构 JXWAF 由 jxwaf 节点与 jxwaf 管理中心组成: ...

    网站安全狗Linux-apache版 32位 v2.3.14809

    网站安全狗Linux版(Apache)(英文:SafeDog For Linux Apache)是一款集网站内容安全防护、网站资源保护及网站流量保护功能为一体的服务器工具,为用户在Internet的网络服务提供完善的保护,避免Apache服务器出现...

    网站安全狗Linux Apache版 v1.0

    网站安全狗Linux版(Apache)(英文:SafeDog For Linux Apache)是一款集网站内容安全防护、网站资源保护及网站流量保护功能为一体的服务器工具,为用户在Internet的网络服务提供完善的保护,避免Apache服务器出现...

    网站安全狗Linux-apache版 64位 v2.3.14809

    网站安全狗Linux版(Apache)(英文:SafeDog For Linux Apache)是一款集网站内容安全防护、网站资源保护及网站流量保护功能为一体的服务器工具,为用户在Internet的网络服务提供完善的保护,避免Apache服务器出现...

    iptables-1.4.7-19.el6.x86_64.rpm(for Centos6)

    基本防护命令: iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT

    悬镜管家 v3.0 免费版

    1、悬镜管家是一款专注Linux服务器防护软件; 2、定位站长运维工具,同时也是一款能帮助用户对网站进行全方位诊断的安全助手; 3、与团队主打的渗透服务结合,提供从问题发现到问题修复一站式解决方案; 4、与早期的...

    Linux密码安全防护操作详解

    在之前写了Linux密码破解的方法,虽然这样对于忘记密码时很方便,但同时别人也可以很...(1)在CentOS6.5中,右击桌面,点击“在终端中打开”,输入“gedit /etc/grub.conf”后回车,打开boot的配置文件 (2)在弹出

    《安天365安全研究》第二期.pdf

    目录 第 1 部分拟研究技术专题 1.1《黑客攻防实战——web 漏洞挖掘...2.14Linux(CentOS)安全加固之非业务端口服务关闭 2.14.1 查找端口对应的服务进程 2.14.2 查找进程对应的服务 2.14.3 停用进程服务 2.14.4 学习小结

    Fail2Ban-Filters:Fail2Ban筛选器可通过阻止源IP地址来帮助保护Apache Web服务器免受诸如nmap,sqlmap,nikto,vega和其他漏洞扫描程序之类的扫描程序的侵害

    Fail2Ban过滤器 Fail2Ban筛选器可通过阻止源IP地址来帮助保护Apache Web服务器免受诸如nmap,sqlmap,nikto,vega和其他漏洞扫描程序之类的扫描程序的侵害 ...在CentOS7上安装Fail2ban sudo yum ins

    基于IOS上MDM技术相关资料整理及汇总

    在21世纪的今天,数据是企业宝贵的资产,安全问题更是重中之重,在移动互联网时代,员工个人的设备接入企业网络并查看、收发企业数据已十分普遍,在管理企业移动设备的同时,MDM还能提供全方位安全体系防护,同时在...

    android-inventory:适用于Android设备枚举的RESTful实现

    基本上使用RESTful服务和JSON将Android设备的硬件体系结构详细信息发送到在Cloud LAMP服务器(CentOS 6 / Apache / MySQL / PHP)上运行MySQL数据库,PHP前端处理并筛选JSON并简单地将其插入放入MySQL数据库(在...

Global site tag (gtag.js) - Google Analytics