前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安全防范:服务器连接及权限处理

安全防范:服务器连接及权限处理

作者头像
用户1170933
发布2018-01-05 17:16:02
9680
发布2018-01-05 17:16:02
举报
文章被收录于专栏:python开发者

安全防范:服务器连接及权限处理

1. 概述

直接使用密码去ssh登录服务器,容易被黑客使用密码字典暴力破解。所以开发人员要养成良好的安全习惯,从登录服务器开始:

  • 禁用密码登录
  • 使用更安全的 ssh-key 登录

TODO:后面会写一些文章来介绍:如何使用字典进行ssh爆破的方法。来增强大家对于安全的意识,本文则重点写防范措施。

2. 操作系统环境

  • Ubuntu 14.4 LTS

其它的 Linux 发行版,方法类似。

3. 禁用密码而使用ssh-key

代码语言:javascript
复制
vim /etc/ssh/sshd_config

修改如下的几行:

代码语言:javascript
复制
#启用公钥认证
PubkeyAuthentication        yes

#存储授权公钥的文件路径
AuthorizedKeysFile          .ssh/authorized_keys

#禁止密码登录
PasswordAuthentication      no  

然后重启sshd

代码语言:javascript
复制
service sshd restart

4. 禁用root登录

由于 root 用户具有超级管理员权限,为了安全起见,尽量禁止使用root用户进行操作。禁止root登录,则继续如下设置:

代码语言:javascript
复制
PermitRootLogin no

然后重启sshd

代码语言:javascript
复制
service sshd restart

5. 使用ssh-key登录

主要步骤如下:

  1. 客户机上生成一组ssh-key的公钥和私钥
  2. 将公钥复制到服务器指定用户的.ssh/authorized_keys里面

然后客户机即可实现无密码登录服务器。

6. 给普通用户提权

在前面有一个操作:禁用root用户登录。那么对于一些系统命令,必须要root权限时该如何处理呢?这个时候就需要使用sudo来为普通用户提权了,升级为管理员权限。

使用sudo对普通用户提权的好处如下:

  • 如何让普通用户临时拥有root权限
  • 操作时保留普通用户的环境变量痕迹
  • 在出现异常时,查阅日志可以定位具体的用户的具体行为

ubuntu中,查看文件etc/sudoers:

代码语言:javascript
复制
...

# User privilege specification
root    ALL=(ALL:ALL) ALL

...

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

...

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

从以上文件内容最后一句#includedir /etc/sudoers.d语句,不难看出,将用户添加到sudo组有两种方法:

  • /etc/sudoers插入配置语句
  • /etc/sudoers.d/添加配置文件

注意:#include前面的#并不是一般情况下bash语句下的注意,而是包含语法。之前笔者就自作聪明地去年了这个#号,导致一直无法正常配置。

一般情况下,建议使用第二种方法,添加配置文件的方式,这样可以在物理文件层次上进行解耦,在权限配置上也更细致一些。

使用第二种方法:

  1. sudoers.d目录下添加文件newsudoers
  2. newsudoers中添加配置内容mysudouser ALL=(ALL:ALL) ALL

如果要添加一个组到sudo组中,则添加如下配置内容:

代码语言:javascript
复制
#add xxxsudogrp to sudo 
mysudogrp ALL=(ALL:ALL) ALL

只要是属于mysudogrp组的用户都能提到root权限。

7. 总结

在目前云主机越来越广泛使用的今天,很多重要服务基本上都是放于公网云端,那么这些安全问题都需要格外注意。如果不注意,则可能会出现如下问题:

  1. ssh密码被暴力破解。大家可以以关键字搜索“200万密码字典,看自己的密码有没有位于其中。
  2. 被破解的用户往往是root用户。因为rootlinux的默认而且确定会有的用户。
  3. 如果多个运维人员的登录账号没有做区分,则即使由监控系统查出异常,定位问题的难度也是相当大。例如:监控系统查出root账号在异地异常登录,那么一共有5个开发人员,能从哪里排查呢?

综上所述:养成良好的服务器使用习惯,是每个开发人员必备的基本素质。

作者:

Harmo哈莫

作者介绍:

https://zhengwh.github.io

Email:

dreamzsm@gmail.com

QQ:

1295351490

时间:

2016-02

版权声明:

欢迎以学习交流为目的读者随意转载,但是请 【注明出处】

支持本文:

如果文章对您有启发,可以点击博客右下角的按钮进行 【推荐】

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-06-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 概述
  • 2. 操作系统环境
  • 3. 禁用密码而使用ssh-key
  • 4. 禁用root登录
  • 5. 使用ssh-key登录
  • 6. 给普通用户提权
  • 7. 总结
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档