catalog

. 引言
. 修改ssh端口
. 禁用root远程ssh登录
. 只使用SSH v2
. 限制用户的SSH访问
. 禁用.rhosts文件
. 禁用基于主机的身份验证
. 基于公私钥的证书登录
. Linux SSH配置基线检查

0. 引言

关于企业IT系统建设安全性问题在任何时候都不会成为一个过时的话题,企业在构建适合自己业务需求的IT系统之初以及整个IT系统生命周期内,系统的安全运行都是一项非常重要的工作,安全健康体检主要着眼于服务器的入口安全,SSH服务是目前类unix系统上使用最为广泛的远程安全登录服务之一,默认端口为tcp 22端口。由于远程管理的需要,很多防火墙都对外开放了22端口,这就使得SSH服务很容易成为黑客的攻击目标。为避免系统的SSH服务被黑客攻击,我们需要对SSH服务进行一些加固操作,以保证服务器的安全

Relevant Link:

http://xjsunjie.blog.51cto.com/999372/691330
http://security.zdnet.com.cn/security_zone/2009/1214/1556391.shtml
http://blog.chinaunix.net/uid-25723371-id-4542221.html
http://www.cyberciti.biz/faq/ssh-passwordless-login-with-keychain-for-scripts/
http://heyihome.blog.51cto.com/2657805/480885

1. 修改ssh端口

SSH的默认端口是tcp 22,从最佳实践的角度来说,将SSH入口端口修改为非默认值,有助于阻止黑客的恶意扫描攻击

. vim /etc/ssh/sshd_config
. 修改为port
//ssh_config和sshd_config必须同时修改成11220,重启ssh服务(service sshd restart)后方可生效

2. 禁用root远程ssh登录

从最佳实践的角度来说,入口点的身份授权应该遵循"最小化权限原则",即用户应该在准确识别自己的业务需要,创建并赋予帐号最小化仅仅够用的权限,使用这个帐号进行登录

. vim /etc/ssh/sshd_config
. 修改PermitRootLogin no
. 重启sshd服务: #servicesshd restart

没有必要使用root用户通过SSH远程登录,普通用户可以通过su或sudo(推荐)获得root级别的访问权,这样你可以得到完整的审计信息,谁通过sudo在系统上执行特权命令就会一清二楚

3. 只使用SSH v2

SSH协议的第一个版本(SSH v1或SSH-1)存在中间人攻击问题和安全漏洞,它已经被作废,应该避免使用SSH v1

. vim /etc/ssh/sshd_config
. 增加Protocol

这样启动sshd后就只会使用SSH协议的第二个版本(SSH v2或SSH-2)了

4. 限制用户的SSH访问

默认情况下,所有系统用户都可以用他们的密码或公钥通过SSH实现远程登录,但有时你创建的UNIX/Linux用户是用于ftp或email目的,如果不加限制,这些用户也可以使用ssh登录到系统

. vim /etc/ssh/sshd_config
. 增加AllowUsers root vivek jerry
//只允许root、vivek、jerry进行ssh登录

5. 禁用.rhosts文件

不要读取用户的~/.rhosts和~/.shosts文件,使用下面的设置更新sshd_config配置文件

. vim /etc/ssh/sshd_config
. IgnoreRhosts yes

SSH可以模拟过时的rsh命令的行为,rsh被公认为是不安全的远程访问协议,因此必须得禁用掉

Relevant Link:

https://www-uxsup.csx.cam.ac.uk/doc/remote_access/rhosts.html
http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.qb.server.doc/doc/t0007952.html?lang=zh
http://www.mcsr.olemiss.edu/unixhelp/tasks/3.6.1.2.html
http://www.cnblogs.com/itech/archive/2012/09/09/2678097.html

6. 禁用基于主机的身份验证

禁用基于主机的身份验证,使用下面的选项更新sshd_config配置文件

. vim /etc/ssh/sshd_config
. HostbasedAuthentication no

7. 基于公私钥的证书登录 

0x1: 证书登录的步骤

. 客户端生成证书:私钥和公钥,然后私钥放在客户端,妥当保存,一般为了安全,会设置一个密码,以后每次登录ssh服务器时,客户端都要输入密码解开私钥
ssh-keygen -t rsa
/*
rsa是一种密码算法,还有一种是dsa,证书登录常用的是rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /home/user/.ssh/id_rsa
(生成私钥与公钥存放位置,使用哪个账户操作就放在哪个账户下面)
Enter passphrase (empty for no passphrase): 输入密码
Enter same passphrase again:再次输入密码
Your identification has been saved in /home/user/.ssh/id_rsa. (生成的私钥)
Your public key has been saved in /home/user/.ssh/id_rsa.pub. (生成的公钥)
The key fingerprint is:
76:04:4d:44:25:37:0f:b1:a5:b7:6e:63:d4:97:22:6b
*/ . 服务器添加信用公钥: 把客户端生成的公钥,上传到ssh服务器,添加到指定的文件中
将生成的公钥id_rsa.pub复制一份并重命名为authorized_keys放在服务器用户主文件夹的.ssh目录下
//假设客户端想通过私钥要登录其他ssh服务器,同理,可以把公钥上传到其他ssh服务器 . 重新启动ssh服务:/etc/init.d/ssh restart . 简化客户端putty、xshell配置
启动客户端连接软件,点击Advanced选项,选择User Keys,点击Import Key,在弹出的“打开”中找到刚刚复制到本地的id_rsa文件并打开。输入在制作这个私钥时设置的密码,输入完确定之后为该key命名,确定后设置此证书在本地发起连接时是否需要输入密码,如需要则设置,不需要就留空,最后点击Ok,本地证书就制作添加完成了

真实的工作中:员工生成好私钥和公钥(千万要记得设置私钥密码),然后把公钥发给运维人员,运维人员会登记你的公钥,为你开通一台或者多台服务器的权限,然后员工就可以通过一个私钥,登录他有权限的服务器做系统维护等工作,所以,员工是有责任保护他的私钥的
0x2: SSH配置加固

. vim /etc/ssh/sshd_config
. PermitEmptyPasswords no #不允许空密码用户login(仅仅是明文密码方式,非证书方式)
. RSAAuthentication yes #启用RSA认证
. PubkeyAuthentication yes #启用公钥认证
. PasswordAuthentication no #禁止密码认证
//补充: 修改vi /etc/ssh/ssh_config 文件(全局配置文件)
. RSAAuthentication yes # 允许RSA私钥方式认证
. PasswordAuthentication no #禁止明文密码登陆

Relevant Link:

http://www.edu.cn/jm_9957/20120508/t20120508_774165.shtml
http://www.jb51.net/LINUXjishu/72805.html
http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646346.html

8. Linux SSH配置基线检查

所有基线检查项都来自/etc/ssh/sshd_config

. port
) expectedvalue: 非22
) vul: 缺省(#)、或显式配置为22
) discription: 建议将ssh默认端口改为9999之后的非默认端口,防止黑客的恶意扫描 . PermitRootLogin
) expectedvalue: no
) vul: 缺省(#)、或显式配置为yes
) discription: 没有必要使用root用户通过SSH远程登录,普通用户可以通过su或sudo(推荐)获得root级别的访问权 . Protocol
) expectedvalue:
) vul: 显式配置为1
) discription: SSH协议的第一个版本(SSH v1或SSH-)存在中间人攻击问题和安全漏洞,它已经被作废,应该避免使用SSH v1 . IgnoreRhosts
) expectedvalue: yes
) vul: 显式配置为no
) discription: SSH可以模拟过时的rsh命令的行为,rsh被公认为是不安全的远程访问协议,因此必须得禁用掉 . HostbasedAuthentication
) expectedvalue: no
) vul: 显式配置为yes
) discription: 建议禁用基于主机的身份验证

Copyright (c) 2015 LittleHann All rights reserved

Security configuration of SSH login entry - enterprise security practice的更多相关文章

  1. Spring Security(十九):6. Security Namespace Configuration

    6.1 Introduction Namespace configuration has been available since version 2.0 of the Spring Framewor ...

  2. Spring Security笔记:自定义Login/Logout Filter、AuthenticationProvider、AuthenticationToken

    在前面的学习中,配置文件中的<http>...</http>都是采用的auto-config="true"这种自动配置模式,根据Spring Securit ...

  3. Security Configuration and Auditing Scripts for Oracle E-Business Suite (文档 ID 2069190.1)

    This document provides the security configuration and auditing scripts for Oracle E-Business Suite. ...

  4. REST Security with JWT using Java and Spring Security

    Security Security is the enemy of convenience, and vice versa. This statement is true for any system ...

  5. Fixing ssh login long delay

    原文:http://injustfiveminutes.com/2013/03/13/fixing-ssh-login-long-delay/ For a long time I had a prob ...

  6. Debian Security Advisory(Debian安全报告) DSA-4414-1 libapache2-mod-auth-mellon security update

    Debian Security Advisory(Debian安全报告) DSA-4414-1 libapache2-mod-auth-mellon security update Package:l ...

  7. Debian Security Advisory(Debian安全报告) DSA-4416-1 wireshark security update

    Debian Security Advisory(Debian安全报告) DSA-4416-1 wireshark security update Package:wireshark CVE ID : ...

  8. Debian Security Advisory(Debian安全报告) DSA-4415-1 passenger security update

    Debian Security Advisory(Debian安全报告) DSA-4415-1  passenger security update Package : passenger CVE I ...

  9. Debian Security Advisory(Debian安全报告) DSA-4412-1 drupal7 security update

    Debian Security Advisory(Debian安全报告) DSA-4412-1 drupal7 security update Package:drupal7 CVE ID:暂无 Dr ...

随机推荐

  1. 韩国网页设计资料《网页设计大师2》JPG+PSD+TXT等 73.89G 百度云下载

    < 网页设计大师2 >超越第一代版本,提供更新更精美的网页素材模板.全部由国际顶级设计师精选打造,完全展示走在潮流 之前的设计风格.是网页设计师/UI交互界面设计师必备工具. < 网 ...

  2. HBase配置项详解

    hbase.tmp.dir:本地文件系统的临时目录,默认是java.io.tmpdir/hbase−java.io.tmpdir/hbase−{user.name}: hbase.rootdir:hb ...

  3. 从Nodejs脚本到vue首页看开源始末的DemoHouse

    最近上Github看见了大漠的DemoHouse项目,看到Issues说准备做一个首页,于是我的第一想法就是做一个md列表页面,md文件可以很容易的生成一个html文件.刚刚做好脚本文件,可以生成li ...

  4. [BZOJ1232][[Usaco2008Nov]安慰奶牛cheer(MST)

    题目:http://hzwer.com/2493.html 分析:对于每条边,贡献的价值是这条边的边权加上这条边连接的两点的权值,所以可以把每条边的边权加上两顶点的点权作为新的边权,然后跑个最小生成树 ...

  5. 重叠(Overlapping) NAT

    当内部网络也使用公网注册地址(或者是外网合法地址)时,如果仍使用标准的静态或者动态NAT转换,则可能使得转换的内网地址与外网中合法地址冲突,使数据包又返回到了本地网络,这肯定是不行的.这时我们就要使用 ...

  6. MATLAB axis和axes的区别

    axis中文为“轴”之意,在matlab中用于控制坐标轴的范围和样式(颜色等). axis([XMIN XMAX YMIN YMAX]) 设置当前所绘图像的x轴和y轴的范围.axis([XMIN XM ...

  7. 无线AP和无线路由器区别

    无线AP,即Access Point,也就是无线接入点.简单来说就是wifi共享上网中的无线交换机,它是移动终端用户进入有线网络的接入点. AD:51CTO技术沙龙 | 赋予APP不同凡响的交互和体验 ...

  8. XMl各种格式转换功能代码

    package com.cdv.test; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.File ...

  9. 个人阅读作业——M1/M2总结

    ~ http://www.cnblogs.com/wx1306/p/4831950.html 在这篇博客中,我提出来一些关于软件工程的问题,但随着这一个学期的即将结束,以及我对软件开发的了解的深入,我 ...

  10. 1031MySQL事务隔离级别详解

    转自http://xm-king.iteye.com/blog/770721 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的.低级别的隔离级一般支 ...