网络安全攻防:Linux系统安全之OpenSSH安全配置

[[383105]]

 OpenSSH是安全Shell协议族(SSH)的一个免费版本。SSH协议族可以用来进行远程控件,或在计算机之间传送文件。而实现此功能的传统方式,如Telnet(终端仿真协议)、RCP都是极不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程的中的数据,并由此来代替原来的类似服务。

SSHD是一个典型的独立守护进程(Standalone Daemon),但也可以根据需要通过网络守护进程(Internet Daemon)-inetd或Ineternet Daemon’s more modern-xinted加载。OpenSSH服务可以通过/etc/ssh/sshd_config文件进行配置。

1. 禁止Root用户登录

只允许普通用户登录,设置如下。 

  1. # Authentication:  
  2. LoginGraceTime 120  
  3. PermitRootLogin no  
  4. StrictModes yes 

2. 限制SSH验证重试次数

超过6次Socket连接会断开,设置如下。

  1. MaxAuthTries 6 

3. 禁止证书登录

证书登录非常安全,但是正常用户很有可能在不知情的情况下,给系统安装一个证书,他随时都可能进入系统。任何一个有权限的用户都能很方便地植入一个证书到.ssh/authorized_keys文件中,可以禁用证书登录,设置如下。 

  1. PubkeyAuthenticationno 

4. 使用证书替代密码认证

这个与上面讲的正好相反,只允许使用key文件登录,设置如下。 

  1. PasswordAuthenticationno 

5. 图形窗口客户端记忆密码的问题

当使用XShell、Xftp、WinSCP、SecureCRT、SecureFX等软件登录时,该软件都提供记住密码的功能,使下次再登录的时候不需要输入密码就可以进入系统。这样做的确非常方便,但是电脑一旦丢失或被其他人进入,那么就十分危险了。设置如下。 

  1. ChallengeResponseAuthentication yes 

6. 禁止SSH端口映射

禁止使用SSH映射作为Socks5代理等,命令如下。 

  1. AllowTcpForwarding no 

7. IP地址限制

如果只希望特定IP地址的用户登录主机,如只允许192.168.1.1和192.168.1.2登录,可以对/etc/host.allow进行如下修改。

  1. sshd:192.168.1.1 192.168.1.2 

如果希望禁止所有人访问主机,对/etc/hosts.deny修改,如下所示。 

  1. sshd:ALL 

8. 禁止SSH密码穷举

攻击者通常会使用字典攻击来穷举目标主机的SSH密码,可以通过编写Shell脚本或使用Fail2ban工具对SSH连接进行访问控制,这里介绍Fail2ban的使用。

Fail2ban 可以监视系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是防火墙),而且可以发送E-mail通知系统管理员。

下面是Fail2ban的实战部署演示。

(1)Fail2ban可以直接通过apt或yum获得,如下。 

  1. root@kali:~# apt-get install fail2ban  
  2. Reading package lists...Done  
  3. Building dependency tree  
  4. Reading state information...Done  
  5. Suggested packages:  
  6. python-gamin  
  7. The following NEW packages will be installed:  
  8. fail2ban  
  9. 0 upgraded,1 newly installed,0 to remove and 0 not upgraded.  
  10. Need to get 165 kB of archives.  
  11. After this operation,577 kB of additional disk space will be used.  
  12. Get:1 http://mirrors.aliyun.com/kali/sana/main fail2ban all 0.8.13-1[165 kB]  
  13. Fetched 165 kB in 2s(75.2 kB/s)  
  14. Selecting previously unselected package fail2ban.  
  15. (Reading database...322944 files and directories currently installed.)  
  16. Preparing to unpack.../fail2ban_0.8.13-1_all.deb...  
  17. Unpacking fail2ban(0.8.13-1)...  
  18. Processing triggers for man-db(2.7.0.2-5)...  
  19. Processing triggers for systemd(215-17+deb8u1)...  
  20. Setting up fail2ban(0.8.13-1)...  
  21. update-rc.d: We have no instructions for the fail2ban init script.  
  22. update-rc.d: It looks like a network service,we disable it.  
  23. insserv: warning: current start runlevel(s)(empty)of script `fail2ban' overrides LSB defaults(2 3 4 5).  
  24. insserv: warning: current stop runlevel(s)(0 1 2 3 4 5 6)of script `fail2ban' overrides LSB defaults(0 1 6).  
  25. Processing triggers for systemd(215-17+deb8u1)... 

(2)复制一份配置文件,如下。

  1. root@ZYB-KALI-VM:/etc/fail2ban# cp jail.conf/etc/fail2ban/jail.lo cal 

(3)修改几个参数,ignoreip为忽略的登录ip,bantime为屏蔽时长,findtime为监测时长,在findtime时间内出现maxretry次尝试即执行屏蔽动作,单位为s,maxretry为最大尝试次数,设置如下。 

  1. ignoreip=127.0.0.1/8  
  2. bantime=600  
  3. findtime=600  
  4. maxretry=5 

(4)默认SSH监控是开启状态,这里将SSH登录访问的日志文件写到logpath参数中,之后保存配置文件,就可以启动Fail2ban了,如下。 

  1. #SSH servers  
  2.  
  3. [sshd]  
  4. port =ssh  
  5. logpath=/var/log/auth.log  
  6. backend=%(sshd_backend)s 

(5)Fail2ban服务开启,如下。 

  1. root@ZYB-KALI-VM:/etc/fail2ban#service fail2ban status  
  2. fail2ban.service-LSB:Start/stop fail2ban  
  3. Loaded:loaded(/etc/init.d/fail2ban)  
  4. Active:active(running)since Sun 2017-02-26 18:58:46 HKT;8s ago  
  5. Process:7536 ExecStart=/etc/init.d/fail2ban start(code=exited,status=0/SUCCESS)  
  6. CGroup:/system.slice/fail2ban.service  
  7. └─7547/usr/bin/python/usr/bin/fail2ban-server-b-s/var/run/fail2ban/fail2ban.sock-p/var/run/fail2ban/fail2ban.pid  
  8. Feb 26 18:58:46 ZYB-KALI-VM fail2ban[7536]:Starting authentication failure monitor:fail2ban. 

Fail2ban可以支持邮件报警功能,需要事先配置好mail或sendmail邮件通知才能正常工作,可以编辑jail.lo cal文件。 

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/151147.html<

(0)
管理的头像管理
上一篇2025-03-13 10:03
下一篇 2025-03-13 10:04

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注