专栏首页北京马哥教育linux服务器安全配置实例(一)引言

linux服务器安全配置实例(一)引言

云豆贴心提醒,本文阅读时间6分钟

引言

很多企业的服务器经常遭受到攻击,出现的攻击方式有:http服务攻击、操作系统漏洞溢出攻击、sql注入攻击等。

大多服务器都托管在阿里云或者腾讯云上,这些云服务也都提供杀毒软件和防火墙功能,如:阿里云盾。上述攻击大部分都已经被厂商提供的云安全拦截住了,但是毕竟没有绝对的安全。

这里记录下我平时对服务器的安全配置,希望对大家有一些帮助,还是没有绝对的安全,但是能够防患未然还是好的。另外这里指出,在描述攻击我们的那些人,我拒绝使用黑客这个词语,黑客的含义已经被现在的社会涂上了一层让人憎恨讨厌的色彩,但是实际的含义并不是入侵、攻击、破解,所以在以后的描述中我与其他文章作者不同,采用另外的称号,就是恶意攻击者或恶意的小伙伴。

服务器配置

对于Linux操作系统,可以启动selinux和iptables对系统的访问进行过滤,同时可以降低用户权限,降低一些进程的运行权限。来保证服务器被渗透后的威胁降到最低。另外需要及时修复应用的漏洞,升级内核版本到稳定版,web应用程序足够强壮,降低数据库用户权限。 下面拿我的服务器举例,我的服务器配置如下:

  • 阿里云服务深圳可用区B
  • 带宽:2Mbps
  • CPU: 1核
  • 内存: 1024 MB
  • 带宽:2Mbps
  • 操作系统: CentOS 7.0 64位

在服务器上配置有tomcat7.0、jre7、nginx1.9.9、mariadb5.5、php5.4.16。对外提供我的blog和微信公众平台的接口。

站长站端口扫描结果如下:

可以看到,从扫描的结果来看几乎没有可利用的。 使用nmap在服务器上对本机进行扫描,结果:

而在外网对其进行扫描,是无法得出结果的:

这些配置相当简单,相对而言,对付真正的攻击还差很多,所以我们还需要进行其他的一系列配置。

ssh服务

ssh服务是最常用的远程登录服务,虽然其比telnet安全多,但是也存在一定的安全漏洞。一些不友好的小伙伴们会使用一些不和谐程序对ssh服务进行暴力破解。对ssh服务进行适当的配置可以完全杜绝暴力破解。同时对sshd服务进行优化配置可以加快连接速度,减少耗费带宽。

编辑/etc/ssh/sshd_config:

修改如下配置(注意如果配置前面有#,代表配置被注释,这里我只罗列出需要配置的,如果你的服务器上的配置被注释掉,去掉#打开注释即可。另外我会在配置旁边加上配置说明的注释):

注意,这里使用了公钥认证,所以需要生成登陆的私钥和公钥,将公钥上传到服务器上,并写入到上面的AuthorizedKeysFile配置指定的公钥文件中。对于这个文件有如下要求: ①、该文件权限必须是640,所以需要执行sudo chmod 640 公钥文件,如:sudo chmod 640 /home/kid/.ssh/authorized_keys。 ②、该文件的上层目录必须为700权限,所以需要执行sudo chmod 700 上层文件夹路径,如:sudo chmod 700 /home/kid。 ③、该文件可以放多个公钥,注意公钥由于特别长,有的生成工具会把一个公钥拆分成多行,但sshd服务要求一个公钥只能一行存放,所以一定要编辑成一行才好使。 上述配置完成后,重启sshd服务,sudo systemctl restart sshd,即可使用公钥认证远程登录到服务器,如果之前没使用过公钥登录的小伙伴,建议改完配置不要退出当前登录,等待重启完后再开一个连接测试下公钥认证能否发登录成功。如果不成功,需要注意上面的要求!!!同时可以使用没断开连接的终端执行sudo tail -f /var/log/message检查sshd服务的日志信息,同样也需执行sudo tail -f /var/log/secure检查sshd服务的认证日志信息。在tail -f 是实时从尾部监听一个服务,经常用于动态查看相关日志文件,由于是监听要退出的话需要按ctrl+c结束。这样sshd服务的安全性就有很大的提升了,当然在sshd服务中还可以配置允许登陆的ip和禁止登陆的ip,这个以后我会单开文章详细说明。另外为了我们的配置不被恶意篡改可以执行,可以执行sudo chattr +i /etc/ssh/sshd_config 和sudo chattr +i 公钥文件(如:sudo chattr +i /home/kid/.ssh/authorized_keys),chattr +i 命令会多某个文件设置隐藏状态位,设置后该文件即使是root和文件所有者都无法对该文件进行删除、修改、移动等操作,保证了该文件的安全。

即使恶意登陆者想对sshd服务进行重新配置,把自己的公钥加入公钥文件都是无法操作的。但当你确实想要修改这个文件的时候,可以使用 sudo chattr -i /etc/ssh/sshd_config以及sudo chattr +i /home/kid/.ssh/authorized_keys然后编辑这两个文件。

今天的分享就到这里了,下一篇我们会继续讲解服务器配置的实例。

本文分享自微信公众号 - 马哥Linux运维(magedu-Linux),作者:kid_2412

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于Keepalived实现LVS双主高可用集群

    前言 基于Keepalived实现LVS双主高可用集群。什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就...

    小小科
  • MySQL入门书籍和方法分享

    前言:在chinaunix上总是有很多同学咨询想学习数据库,或者是为入行DBA做些准备。几年来作为一个MySQL DBA的成长过程有一些积累和感悟,特此拿出来...

    小小科
  • 业务访问加速实战 | 借助Iptables实现全NAT高速转发

    问题描述 ► 当业务访问通过Internet速度较慢,目前有一个较快的访问中转点(专线或者BGP)。 技术选择: 1、不想使用CDN等复杂方案。 2、方案无需考...

    小小科
  • springcloud学习手册-Config 分布式配置中心

    导读 | Config分布式配置中心 ? 一、为什么需要使用配置中心来统一管理配置呢? 通常在一个分布式环境中,同类型的、不同类型的服务往往多达几个...

    程序源代码
  • 腾讯云服务器企业应用最佳配置方案

    腾讯云企业服务器应用(最优配置)初创企业对于服务器采购应用需求包括了易用性、快速部署、可靠性,扩展能力等,在了解初创企业不同方面的需求之后,接下来就应该是服务器...

    用户2416682
  • Confluence 的顶部导航是在那里配置的

    如果你有 Confluence 管理员权限的话,在 Confluence 的顶部导航的下面有一个配置的选项:

    HoneyMoose
  • 如何利用配置中心规范构建PaaS服务配置

    在上一篇文章中,我们以MQ和ACM为例,讨论了如何借助配置中心对消息进行限流管理的场景。在本文中,我们继续以该场景为例,讲述如何以规范的配置命名格式来进行限流设...

    用户1263954
  • 【番外篇】Confd学习

    Confd通过读取后端存储的配置信息来动态更新对应的配置文件,对应的后端存储可以是ETCD,REDIS等,其中ETCD的v3版本对应的存储后端为ETCDV3。

    BH9AP_Librant
  • 自己写分布式配置中心(上篇)- 单机模式

    来源:http://wuwenliang.net/2018/12/05/%E8%87%AA%E5%B7%B1%E5%86%99%E5%88%86%E5%B8%8...

    程序猿DD
  • 配置中心化

    传统应用打包部署, 会在不同的环境配置不同的包, 如Local环境, Dev环境, 测试环境, UAT环境, 生产环境分别制作不同的发布包,

    louiezhou001

扫码关注云+社区

领取腾讯云代金券