CentOS 服务器安全配置策略

 更新时间:2019年11月09日 14:51:25   作者:ityangs  
近期服务器频繁有被暴力破解,大致分析了一下入侵行为,整理了常用的安全策略,需要的朋友可以参考下

近期服务器频繁有被暴力破解,大致分析了一下入侵行为,整理了常用的安全策略:

最小的权限+最少的服务=最大的安全

1. 修改ssh默认连接22端口 和 添加防火墙firewalld 通过端口
步骤:

1) 修改ssh的默认端口22:

vi /etc/ssh/sshd_config

这里写图片描述

2)让防火墙通过这个端口

firewall-cmd --state【firewalld是否运行】
firewall-cmd --permanent --list-port【查看端口列表】
firewall-cmd --permanent --zone=public --add-port=48489/tcp【添加端口】
firewall-cmd --permanent --remove-port=48489/tcp【删除端口】

3)重启SSH服务,并退出当前连接的SSH端口

service sshd restart

4)然后通过putty ssh连接软件链接一下,使用默认22号端口无法进入SSH,达到目的,就OK了~

2. 禁止root帐号直接登录

Linux的默认管理员名即是root,只需要知道ROOT密码即可直接登录SSH。禁止Root从SSH直接登录可以提高服务器安全性。经过以下操作后即可实现。

1)新建帐户和设置帐户密码

useradd ityangs
passwd ityangs

2)不允许root直接登陆

vi /etc/ssh/sshd_config

查找“#PermitRootLogin yes”,将前面的“#”去掉,短尾“Yes”改为“No”,并保存文件。

这里写图片描述

systemctl restart sshd.service【重启ssh,另一种方法重启】

3)下次登陆

先使用新建账号“ityangs”以普通用户登陆。

若要获得ROOT权限,在SSH中执行以下命令

su root

执行以上命令并输入root密码后即可获得root权限。

4)WinSCP下su切换到root的技巧(禁止root远程ssh登录时)

限制了root用户的远程登录,但是重要的数据文件都是700。更可悲的是,WinSCP完全失去了用武之地。因为root账户无法登陆,而像是FTP,SFTP,SCP这些协议都不支持在登录以后切换用户。
SCP协议在登录的时候可以指定shell,一般默认的也就是推荐的是/bin/bash,但是我们可以修改它来玩花样,比如改成sudo su -
但是新问题又来了,sudo需要输入密码,但是WinSCP在登录的时候并没有交互过程。但是天无绝人只要在root权限之路,只要在root权限下visudo,添加如下一行即可取消sudu时的密码:
yourusername ALL=NOPASSWD: ALL
为了可以在非putty的环境下sudo,我们还需要注释掉下面一行:
Defaults requiretty
然后保存,即可在登录到WinSCP的时候享受root的快感啦!

步骤:

普通用户ssh到服务器,切换到root权限
visudo,然后添加 yourusername ALL=NOPASSWD: ALL 这一行,注释掉Defaults requiretty

[root@iZ252wo3Z ~]# visudo
ityangs ALL=NOPASSWD: ALL
#Defaults requiretty 【没有可不用管】

修改WinSCP的文件协议为SCP

这里写图片描述

修改环境-SCP/Shell下的shell为sudo su-

这里写图片描述

登录WinSCP即可。

3. 安装DenyHosts【拦截获取攻击的IP,生成黑名单,防止再次攻击】

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 = 30m #过多久后清除已经禁止的,设置为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

好了这篇文章就介绍到这了,需要的朋友可以参考一下。

相关文章

  • Linux centos下php安装cphalcon扩展的方法

    Linux centos下php安装cphalcon扩展的方法

    这篇文章主要介绍了Linux下php安装cphalcon扩展的方法,需要的朋友可以参考下
    2017-02-02
  • centos下yum搭建安装linux+apache+mysql+php环境的方法

    centos下yum搭建安装linux+apache+mysql+php环境的方法

    这篇文章主要介绍了centos下yum搭建安装linux+apache+mysql+php环境的方法,本文分步骤给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • linux c下log输出代码模板示例代码

    linux c下log输出代码模板示例代码

    这篇文章主要给大家介绍了关于在linux c下log输出代码模板的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • Linux系统磁盘格式化以及手动增加swap分区

    Linux系统磁盘格式化以及手动增加swap分区

    本文给大家详细介绍了在Linux系统中磁盘格式化 以及手动增加swap分区的方法和命令,十分全面,有需要的小伙伴可以参考下
    2018-09-09
  • Linux下如何查看内存泄露的命令

    Linux下如何查看内存泄露的命令

    这篇文章主要介绍了Linux下如何查看内存泄露的命令方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Linux基础学习之文件查找find的常见用法

    Linux基础学习之文件查找find的常见用法

    这篇文章主要给大家介绍了关于Linux基础学习之文件查找find的常见用法的相关资料,例如:根据文件名查找、根据正则表达式查找、根据路径查找、根据文件类型查找以及根据文件大小等等,文中给出了详细的示例代码,需要的朋友可以参考借鉴。
    2017-12-12
  • 详解在Linux中搭建一个FTP服务器

    详解在Linux中搭建一个FTP服务器

    本篇文章主要介绍了在Linux中搭建一个FTP服务器 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • linux .htaccess 设置 404 等错误页面

    linux .htaccess 设置 404 等错误页面

    linux服务器下通过设置htaccess来实现404转向的代码
    2008-06-06
  • 如何在Linux中设置快捷方式图标

    如何在Linux中设置快捷方式图标

    这篇文章主要给大家介绍了关于如何在Linux中设置快捷方式图标的相关资料,文中通过示例代码的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • Ubuntu部署python3.5的开发和运行环境

    Ubuntu部署python3.5的开发和运行环境

    这篇文章主要介绍了Ubuntu部署python3.5的开发和运行环境,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-01-01

最新评论