- 浏览: 2549311 次
- 性别:
- 来自: 深圳
-
文章分类
- 全部博客 (676)
- linux运维 (157)
- php (65)
- mysql (78)
- nginx (27)
- apche (18)
- framework (6)
- windows (9)
- IDE工具 (23)
- struts2 (7)
- java (13)
- 移动互联网 (14)
- memcache redis (23)
- shell基础/命令/语法 (37)
- shell (50)
- puppet (4)
- C (11)
- python (9)
- 产品经理 (27)
- Sphinx (4)
- svn (12)
- 设计构建 (12)
- 项目管理 (44)
- SEO (1)
- 网站架构 (26)
- 审时度势 (42)
- 网络 (14)
- 激发事业[书&视频] (81)
- 其它 (12)
- 摄影 (8)
- android (21)
最新评论
-
zhongmin2012:
原文的书在哪里
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
renzhengzhi:
你好,请问个问题,从master同步数据到slave的时候,s ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
ibc789:
你好,看了你的文章,我想请教个问题, 我在用 redis的时候 ...
redis 的两种持久化方式及原理 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
OpenSSH(或者 Secure Shell)以经成为一个取代 telnet 协议作远程访问用的现有标準。SSH 已经令 telnet 等协议多余的,当中絕大部份原因是由於连接被加密,以及不再以纯文本公开地传送口令。
然而,缺省的 ssh 安装並非完美。当你营运一个 ssh 服务器时,有数个简单的步骤可以明显地加固你的安装。
1. 採用难猜测的口令/用戶名称
如果你所营运的 ssh 是对外的,你首先会发现的事情,很可能就是骇客尝试猜测用戶名称/口令的记錄。骇客一般会扫描端口 22(ssh 缺省聆听的端口)来找寻执行 ssh 的机器,然后尝试強行攻擊它。借著使用难猜测的口令,我们希望任何攻擊在成功前会被记錄底及被留意到。
盼望你已经採用了难猜测的口令。要不然,请尝试选拥有以下特征的口令:
- 最少有 8 个字符
- 同时有大楷和细楷字母
- 同时有字母和数目字
- 有非英数的字符(例如 ! " £ $ % ^ 等特別字符)
使用难测口令的好处並不止於 ssh,它更会影响到系统安全的各个范筹。有关口令的更多信息可以在 CentOS 的文档內找到:
http://www.centos.org/docs/4/html/rhel-sg-en-4/s1-wstation-pass.html
如果你完全沒法阻止你的用戶选用易猜测的口令,请考虑以随机產生或难猜测的字中作为用戶名称。如果坏人不能猜测用戶名称,他们便不能強加猜测口令。然而,这只是隐晦信息来換取安全,所以要留心用戶名称通过用戶发送的电邮等途径而被洩漏。
2. 停用 root 登录
SSH 服务器的设置都存储在 /etcshh/sshd_confg 这个文件。要停用 root 登录,请确定你有以下一行:
# 阻止 root 登录:
PermitRootLogin no
然后请重新引导 sshd 服务:
service sshd restart
你果你需要 root 的权限,请登录为一般用戶,然后使用 su 这个指令。
3. 限制用戶登录
SSH 登录可以局限给某些需要远程访问的用戶。如果你的系统有很多用戶,一个合理的个法就是局限远程访问给那真正有需要的用戶,借以減低其它用戶採用易测口令的影响。在 /etc/ssh/sshd_config 內加入 AllowUsers 一行,以空格隔开用戶名称。例如:
AllowUsers alice bob
接著请重新引导 sshd 服务。
4. 停用第 1 类协议
SSH 可以採用两款协议:第 1 类及第 2 类协议。较旧的第 1 类协议的安全性较低,因此它应该被停用,除非你知道你必须要使用它。请在 /etc/ssh/sshd_config 档內找寻以下一行,解除註释,並作出如下修改:
# Protocol 2,1
Protocol 2
然后请重新引导 sshd 服务。
5. 採用非标準的端口 38332
根据缺省值,ssh 在端口 22 聆听对內的连接。一个骇客如果要断定 ssh 是否在你的机器上运行,他最大可能就是扫描端口 22。一个有效混淆他的方法就是在非标準的端口上运行 ssh。任何未被使用的端口都可行,但首选的是 1024 以上的。很多人选用 2222 作为替换的端口(它很易记),正如 8080 经常被用作 HTTP 的替换端口。正正由於这个原因令它不是个好的选择,因为任何扫描端口 22 的骇客亦不会放过端口 2222。随机地选用一个未被使用的高位端口会比较合宜。要进行改动,请在你的 /etc/ssh/sshd_config 档內加入以下一行:
# 在非标準的端口上执行 ssh:
Port 38332 #修改
然后重新引导 sshd 服务。请勿忘记在你的路由器及相关的防火牆规则裡作出任何必要的改动。
因为 ssh 不再在标準的端口上聆听连接,你须要告诉客戶端要连接到哪个端口。在命令行上执行 ssh 客戶端时,你可以用 -p 选项来指定端口:
$ ssh -p 2345 myserver
又或著如果你使用 konqueror 的 fish 协议,你可用:
fish://myserver:2345/remote/dir
如果你觉得每次连接时都要指定端口似乎很痛苦,你只需在你个人的 ~/.ssh/config 文件裡加入一个指定端口的记錄:
# 客戶端 ~/.ssh/config Host myserver HostName 72.232.194.162 User bob Port 2345
~/.ssh/config 必须有以下访问权:
$ chmod 600 ~/.ssh/config
6. 在防火牆过滤 SSH
如果你只须由一个 IP 地址进行远程访问(例如由办工室进入家中的服务器),请考虑在你的路由器或 iptables 內加入一条防火牆的规则,将端口 22 的访问权限制到特定的 IP 地址,借此对连接进行过滤。举个例說,在 iptables 內你可以用这类型的规则达至这个目的:
iptables -A INPUT -p tcp -s 72.232.194.162 --dport 22 -j ACCEPT
SSH 亦对 TCP 包装函式有內置支持,因此 ssh 服务的访问权亦可同时用 host.allow 及 hosts.deny 来进行管制。
如果你不能限制来源地的 IP 地址,而必须公开 ssh 端口,那麼 iptables 依然可以通过记錄及拦截来自同一 IP 地址的重覆登录尝试,帮助你阻止強行的攻擊。例如:
iptables -A INPUT -p tcp --dport 22 -m recent --set --name ssh --rsource iptables -A INPUT -p tcp --dport 22 -m recent ! --rcheck --seconds 60 --hitcount 4 --name ssh --rsource -j ACCEPT
第一条规则利用 recent 模块来记錄每个访问端口 22 的尝试。第二条规则检查这个 IP 地址在过去 60 移內有否尝试 4 次或以上的连接,若然沒有更接纳压缩。注意这个规则须要输入链採用 DROP 的缺省政策。
下面是另一个样例,这次採用了 iptables 的 limit 模块来限制 ssh 端口每分钟最多可以有 3 个连接:
iptables -A INPUT -p tcp --dport 22 --syn -m limit --limit 1/m --limit-burst 3 -j ACCEPT iptables -A INPUT -p tcp --dport 22 --syn -j DROP
第一行接纳新连接到端口 22 时,必须来自过在去一分钟內连接不多过三次的 IP 地址。如果多於三个连接尝试在过去一分钟出现过,第二行会中断这个连接。
如果你在非标準的端口上执行 ssh,请不要忘记对端口作出相应修改。情況许可的话,利用防火牆进行过滤是一个非常有效的方法来加固 ssh 服务器。 Don't forget to change the port as appropriate if you are running ssh on a non-standard port. Where possible, filtering at the firewall is an extremely effective method of securing access to an ssh server.
7. 採用公共/专用金钥来验证
採用加密金钥来验证提供两大好处。首先,如果你应用公共/专用金钥,是方便,因为你不用再输入口令(除非你用口令来保护你的金钥)。第二,当服务器能进行金钥对的验证,你便可以完全停用口令验证,意即访问时靠赖授权的金钥 —— 因此不再有猜测口令的尝试。
创建及在你的 ssh 服务器上安装金钥对是个相对地简单的过程。
首先,在你会用来连接到服务器的客戶端上创建一对金钥(你须要在每台用来连接的机器上这樣做):
$ ssh-keygen -t rsa
这樣做会在你的(隐藏了的)~/.ssh 目錄内置立两个文件,名叫 id_rsa 及 id_rsa.pub。id_rsa 是你的专用金钥,而 id_rsa.pub 是你的公共金钥。
如果你不想每次连接时都被问及口令,在创建金钥对的时候,你只按 enter 作为口令。创建金钥对时,是否以口令加密纯粹是你的決定。如何你不将金钥加密,任何人夺得你的本地机器后,便自动拥有远程服务器的 ssh 访问权。此外,本地机器上的 root 能夠访问你的金钥:但假若你不能信任 root(或者 root 已被攻佔),你已经大祸临头。将金钥加密舍棄了不用口令的 ssh 服务器,来換取额外的安全,得来的就是输入口令来使用这条金钥。
现在为你的专用金钥设置权限:
$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/id_rsa
请将公共金钥(id_rsa.pub)复制到服务器上,然后安装它在 authorized_keys 清单內:
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
註:一但你输入了公共金钥,你可以在服务器上刪除它。
最后,设置服务器上的文件权限:
$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/authorized_keys
如果 /etc/ssh/sshd_config 內的 StrictModes 被啟用(缺省值),以上的权限是必须的。
现在当你登录服务器的时候,你便不用再输入口令(除非你在创建金钥对的时候输入了一个口令)。ssh 缺省是会先利用金钥进行验证。如何它找不到金钥,或验证失败,ssh 会回落到平常的口令验证。
一但你检查过可以用金钥对来登录服务器,你可以在你的 /etc/ssh/sshd_conf 档內加入以下设置来停用口令验证:
# 停用口令验证,強制使用金钥 PasswordAuthentication no
8. 常见问题(FAQ)
问:CentOS 採用 X 版的 OpenSSH,而最新版本是 Y 版。X 版藏有一个严重的安全性漏洞,我应否升级?
答:不应该。上游供应者有一个政策,会将最新版本的安全性修正反向移植到现有的发行版本內。只要你拥有最新的更新,你的 CentOS 发行版本已经得到全面修正。有关反向移植安全性修正的详情,请参閱这裡:
http://www.redhat.com/advice/speaks_backport.html
9. 连结
http://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-openssh.html
发表评论
-
设置sudo为不需要密码
2015-04-17 09:04 10524有时候我们只需要执 ... -
haproxy 安装配置和负载实例
2015-03-27 11:49 11540一、环境说明实验环境 OS CentOS5.4 192.1 ... -
/dev/mapper/VolGroup00-LogVol00 100% 如何处理
2015-03-03 10:51 8235服务器磁盘跑满了, 命令查看 如下 [root@lo ... -
Tsar开源:淘宝内部大量使用的系统监控工具
2014-08-07 09:51 985Tsar是淘宝的一个用来收集服务器系统和应用信息的采集报告 ... -
Linux运维常用命令 (转载)
2013-01-31 10:23 25351 删除0字节文件find-type f - ... -
linux恢复 rm -rf 删除的文件:extundelete
2013-01-24 15:47 8930http://blog.csdn.net/pang6013 ... -
网站排障分析常用的命令
2013-01-21 18:17 1407------------------------------- ... -
迁移vmware服务器后Device eth0 does not seem to be present
2013-01-21 10:58 2259用VMware 安装 linux 6.0 ... -
LoadRunner如何监控Linux系统资源 : rpc.rstatd
2012-12-17 14:49 10318一 简述:LoadRunner监控Linux资源时弹出如下错误 ... -
僵尸Z进程和D进程
2012-12-10 16:47 13166-------------- 1 关于ZOMBIE进 ... -
Unix操作系统硬链接与符号链接的区别
2012-12-10 16:08 2035Unix操作系统有很多值得 ... -
nagios配置参数详解
2012-12-04 14:12 9462# Nagios return codes#定 ... -
nagios自定义监控nginx php和ip_conn
2012-12-03 17:57 3178自定义ip_conn.sh :http://zhume ... -
【汇总】shell show收藏
2012-11-29 14:03 1300================== shell从文本取对应的 ... -
Kickstart+PXE+DHCP+TFTP+NFS自动安装Centos5
2012-11-29 11:34 1613http://5ydycm.blog.51cto.com/11 ... -
haproxy+keepalived高可用负载均衡(七层)
2012-11-29 10:36 4016HAproxy是一款基于TCP( ... -
LVS+Keepalived
2012-11-29 10:10 1745http://www.linuxvirtualserver.o ... -
haproxy & LVS*(keepalived和heartbeat) & ng的比较
2012-11-29 10:04 7619http://network.51cto.com/art/ ... -
运维架构师-并不遥远的彼岸
2012-11-28 17:45 1745在百度里搜索运维架构师,你会发现招聘的职位还不少并且月薪、年 ... -
puppet模块汇总
2012-11-21 17:08 3045在磁盘上,一个模块对应一个特殊的目录结构: MODULE_ ...
相关推荐
执行此命令将替换旧版本的OpenSSH为7.9p1。 3. **修改sshd_config**:升级后,可能需要根据新的安全标准或特定环境调整`sshd_config`文件。这可能涉及设置更严格的密码策略,禁用密码登录,启用公钥认证,限制可...
openssh 版本9.3p1 适用于centos7 aarch64安装升级使用 二进制rpm包,用于修复安全漏洞,升级更新openssh版本,安全加固 当前最新版本openssh
2. **安全加固**:OpenSSH的加固涉及多个方面,例如加强密码策略、限制默认端口、启用公钥认证、禁用弱加密算法等。在银河麒麟v10上,这些加固措施可能被进一步优化,以适应国产化环境的安全要求,确保用户的数据...
安全加固openssh8.3p1最新编译完成的RPM安装包20200609 openssh-8.3p1-1.el6.x86_64.rpm openssh-askpass-8.3p1-1.el6.x86_64.rpm openssh-askpass-gnome-8.3p1-1.el6.x86_64.rpm openssh-clients-8.3p1-1.el6.x86_...
4、已默认安全加固(已有配置跳过) 安装: 执行 bash upgrade_ssl_ssh.sh 进行安装 注意,升级安装后,确保sshd服务正常,请新开终端进行验证测试 验证 openssl版本: openssl version OpenSSL 3.0.15 3 Sep 2024 ...
openssh 9.3p1 适用于centos9 redhat9操作系统安全加固、漏洞修复 x86架构 二进制rpm包,可直接安装
2023年12月18日 官方发布openssh 9.6 p1版本 基于官方源码制作 适用于centos 7 x86架构的操作系统 二进制...可直接使用安装,升级更新openssh ,修复安全漏洞,系统安全加固 2023年12月21日基于openssl 1.1.1w 制作
在对RedHat Linux服务器进行安全加固的过程中,升级openssh是一项关键任务,以确保远程访问的安全性。以下是详细的操作步骤: **一、安装前的准备** 1. **检查与安装gcc**:由于RedHat Linux系统中的一些包可能有...
3、已默认安全加固(已有配置跳过) 安装: 执行 bash upgrade_ssl_ssh_ubuntu.sh 进行安装 注意,升级安装后,确保sshd服务正常,请新开终端进行验证测试 验证 openssl版本: openssl version OpenSSL 3.0.14 4 ...
用于漏扫出的系统安全加固,适用于CentOS7,脚本自动升级为openssh9.4p1,升级完版本OpenSSH_9.4p1, OpenSSL 3.0.11 19 Sep 2023 编译时间:20230927
openssh-8.1p1版本是2019年10月9日发布的最新,修复一些漏洞。适合防火墙加固升级,亲测有效。
适用于centos 7 redhat 7...可用此源码包制作openssh 9.5 p1版本的rpm包文件 此处基于openssl 1.1.1w编译制作,如需其他版本的openssl,请参考我的博客进行编译安装 2023年10月4日 发布openssh 9.5版本,当前最新版本
安全加固centos系统升级openssh-9.8p1-1.el7.x86_64离线包
3、已默认安全加固(已有配置跳过) 安装: 执行 bash upgrade_ssl_ssh_ubuntu.sh 进行安装 注意,升级安装后,确保sshd服务正常,请新开终端进行验证测试 验证 openssl版本: openssl version OpenSSL 3.0.15 3 ...
Solaris OpenSSH 安装包,小机专用,之前做加固的时候留下的包
银河麒麟v10 aarch64架构操作系统 适用的openssh 9.7p1版本 二进制rpm包 可用于升级更新openssh 版本,修复安全漏洞,对ssh进行安全加固 显示openssl版本信息
3、已默认安全加固(已有配置跳过) 安装: 执行 bash upgrade_ssl_ssh_ubuntu.sh 进行安装 注意,升级安装后,确保sshd服务正常,请新开终端进行验证测试 验证 openssl版本: openssl version OpenSSL 3.0.15 3 ...
4、已默认安全加固(已有配置跳过) 使用方法: 将压缩包上传到服务器,使用unzip 解压 然后输入命令: sh upgrade.sh 。 运行upgrade_ssl_ssh.sh文件 运行完成后输入:ssh -V 然后就会显示出版本号
适用于centos 7 x86_64 操作系统 适用于redhat 7 系列操作系统 二进制rpm包 openssh 9.3p2 版本 修复安全漏洞 CVE-2023-38408,当前2023年7月24日最新openssh版本