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

目录

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

    • 概述
    • 操作系统环境
    • 禁用密码而使用ssh-key
    • 禁用root登录
    • 给普通用户提权
    • 总结

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

1. 概述

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

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

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

2. 操作系统环境

  • Ubuntu 14.4 LTS

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

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

vim /etc/ssh/sshd_config

修改如下的几行:

#启用公钥认证
PubkeyAuthentication        yes

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

#禁止密码登录
PasswordAuthentication      no  

然后重启sshd

service sshd restart

4. 禁用root登录

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

PermitRootLogin no

然后重启sshd

service sshd restart

5. 使用ssh-key登录

主要步骤如下:

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

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

6. 给普通用户提权

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

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

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

ubuntu中,查看文件etc/sudoers:

...

# 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组中,则添加如下配置内容:

#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
技术博客: http://www.cnblogs.com/beer
Email: [email protected]
QQ: 1295351490
时间: 2016-02
版权声明: 欢迎以学习交流为目的读者随意转载,但是请 【注明出处】
支持本文: 如果文章对您有启发,可以点击博客右下角的按钮进行 【推荐】
时间: 2024-08-08 17:52:18

安全防范:服务器连接及权限处理的相关文章

centos6中搭建svn服务器以及相关权限配置

使用yum方式安装svn服务器软件,在centos中搭建团队使用的代码仓库,为开发成员创建账号以及分配权限: 1.检查svn服务软件安装情况 svnserve –version命令查看安装情况, 出现"-bash: /usr/bin/svnserve: No such file or directory"提示说明没有安装,直接进入第2步, 否则会显示已安装svn服务器软件版本信息"svnserve, version -",可以使用以下命令删除已安装的版本 yum r

解决服务器连接错误Host ‘XXX’ is not allowed to connect to this MySQL server

这段时间在研究火车头的入库教程,在“配置登陆信息和数据库(mysql)”连接中,出现“服务器连接错误Host 'XXX' is not allowed to connect to this MySQL server”的错误.像这种错误,就是典型的远程权限问题. 问题症结是MySQL 没有开放远程登录的权限.这时要看你的服务器到底用的那种系统,linux或者是Windows,这个解决办法不同.解决的办法就是开启 MySQL 的远程登陆帐号. 有两大步: 1.确定服务器上的防火墙没有阻止 3306

Linux服务器连接不上的几种解决办法

Linux远程服务器连接不上,或连接超时解决办法:1.测试网络是否通:    ping 远程IP 2.如果能ping通则表示与服务器网络连接是正常,接下来测试端口:telnet 远程ip 端口 3.如果telnet不上,要考虑服务器是否有防火墙拦截:CentOS7查看防火墙是否运行:firewall-cmd --state CentOS6查看防火墙是否运行/sbin/service iptables status 4.如果防火墙被拦截,需要放行端口.如果防火墙没有拦截,则要考虑服务内部是否配置限

打印机故障转移集群之三:打印机节点服务器连接

节点服务器连接iSCSI磁盘: 下面我们需要让节点服务器(PRT01\PRT02)连接到所创建的三块iSCSI磁盘,节点1上和节点2分别执行下列的步骤将iSCSI的3块共享盘分别挂接到群集节点上,在节点1上进行格式化, 节点2上直接使用即可. 节点上需要使用iSCSI程序连接到目标服务器,如下图所示: 点击管理工具中的iSCSI发起程序,第一次使用会出现下面的提示,必须启动 iSCSI服务. 点击:是,出现下图所示的界面. 点击"发现"选项卡,再点击"发现门户",输

nginx服务器的网站权限问题

有时候我们的网站根目录会从一个目录迁移到另一个目录,如果我们服务器使用的是nginx或者Apache,我们一般会配置好网站根目录后然后往直接把网站解压或者上传到根目录中,这样引起的问题是无法对对文件进行任何的操作导致网站的异常,这在框架中最为常见,本地运行好好的网站,上传到服务器之后突然就不能访问了,出现很多错误,这就是在Linux下存在的权限问题,网上有些方法是很粗暴的使用chmod -R 777 dirname把所有的文件权限全部打开,其实这样能解决问题,但是不是最好的解决方案,我们如果理解

PostgreSQL添加新服务器连接时,报错“Server doesn't listen ”,已解决。

PostgreSQL添加新的服务器连接时,报错: 解决方法: 第一步:修改配置文件中连接的服务器列表,添加服务器IP地址(图pg002.png) 配置文件地址:数据库右击属性,打开数据库的安装路径在data文件中找到配置文件pg_hba.conf. 如:D:\Program Files\PostgreSQL\9.4\data\pg_hba.conf 注:只要修改IP路径就可以了,‘/’后面的数字都为32. 第二步:修改配置文件后,启动服务器的服务: 启动服务完成,连接服务器,新服务器就可以正常的

mysql1130远程连接没有权限的解决方法

远程连接没有权限的原因有两种,一个是因为mysql的限制,一个是防火墙的限制. 1,解决防火墙限制: 在mysql服务主机上将防火墙关闭或者在防火墙高级设置里面加入出入站规则,加上mysql的端口,允许通过mysql的端口进行访问主机. 2,解决mysql的限制,在mysql服务主机上执行下列sql [sql] view plaincopy -- 更改root用户的登录主机为任意主机 UPDATE USER SET Host = '%' WHERE User = 'root'; -- 更改权限(

设置linux服务器文件夹权限

最近搞的网站一上传图片,就报500错误.经排查是服务器文件夹权限设置问题. 使用命令: chmod o+rwx avatar 即可改变文件夹权限设置.

SCCM2012R2安装时,先决条件”站点服务器计算机帐户管理权限“失败

安装SCCM时,先决条件必须要全部通过,否则无法进行下一步的安装操作.下图中有个SQL的警告,是由于服务器配置的内存不足8GB而显示的警告信息. 此处的重点是:SCCM2012R2安装时,先决条件检查"站点服务器计算机帐户管理权限"失败 问题现象: ConfigurationManager 安装程序要求站点服务器计算机对 SQL Server和管理点计算机拥有管理权限. 解决方法: 把sccm计算机对象加到sql本地管理员组中,这里由于时SQL安装在AD计算机是,所以用如下方法:打开&