热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

安全增强措施用Openssh构建安全网络

文章标题:安全增强措施用Openssh构建安全网络。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  实施步骤:
  在每台服务器上
  1. 安装软件包:
  openssh-3.4pl-sol7-sparc-local
  openssl-0.96d-sol7-sparc-local
  zlib-1.1.4-sol7-sparc-local
  prngd-0.0.25-sol7-sparc-local
  egd-0.8-sol7-sparc-local
  
  2. 安装prngd和sshd的启动脚本
  ::::::::::::::
  S98prngd
  ::::::::::::::
  #!/bin/sh
  
  pid=`/usr/bin/ps -e | /usr/bin/grep prngd | /usr/bin/sed -e 's/^ *//' -e 's/ .*//'`
  case $1 in
  'start')
  /usr/local/sbin/prngd /var/spool/prngd/pool
  ;;
  'stop')
  if [ "${pid}" != "" ]
  then
  /usr/bin/kill ${pid}
  fi
  ;;
  *)
  echo "usage: /etc/init.d/prngd {start|stop}"
  ;;
  esac
  
  ::::::::::::::
  S98sshd
  ::::::::::::::
  #!/bin/sh
  
  pid=`/usr/bin/ps -e | /usr/bin/grep sshd | /usr/bin/sed -e 's/^ *//' -e 's/ .*//'`
  case $1 in
  'start')
  /usr/local/sbin/sshd
  ;;
  'stop')
  if [ "${pid}" != "" ]
  then
  /usr/bin/kill ${pid}
  fi
  ;;
  *)
  echo "usage: /etc/init.d/sshd {start|stop}"
  ;;
  esac
  
  3. 用prngd生成伪随机初始种子数
  cat /var/log/syslog /var/adm/messages > /usr/local/etc/prngd/prngd-seed
  mkdir /var/spool/prngd
  /etc/rc2.d/S98prngd start
  检查prngd工作是否正常: /usr/local/bin/egc.pl /var/spool/prngd/pool get
  显示如: 9151 bits of entropy in pool
  
  4. 增加sshd用户
  mkdir /var/empty
  chown root /var/empty
  chgrp sys /var/empty
  chmod 755 /var/empty
  groupadd sshd
  useradd ?g sshd ?c ‘sshd privsep’ ?d /var/empty ?s /bin/false sshd
  
  5. 修改tcpd的控制文件/etc/hosts.allow和/etc/hosts.deny
  ALL:n.n.n.n #登录主机IP
  
  6. 在server端创建主机密钥对
  ssh-keygen ?t rsa1 ?f /usr/local/etc/ssh_host_key ?N “”
  ssh-keygen ?t dsa ?f /usr/local/etc/ssh_host_dsa_key ?N “”
  ssh-keygen ?t rsa ?f /usr/local/etc/ssh_host_rsa_key ?N “”
  
  启动sshd:
  /etc/rc2.d/S98sshd start
  
  7. 关闭原telnet和ftp服务
  修改/etc/inetd.conf 文件,kill ?HUP 关闭telnet和ftp服务
  8. 在客户端做以下测试
  UNIX客户端:
  Ssh [-l username] [-p port] //如果用-v参数,进入调试状态,这是一个很好的帮助工具(取代telnet)
  Sftp [-l username] [-p port] (取代ftp)
  
  WINDOWS:客户端
  Securecrt 3.4.5 //在session的配置中,authentication使用password方式
  Securefx2.0.3
  
  以上为默认安装情况,即SSH的密码验证。
  为了保证唯一的一台登录服务器的安全,又不至于在修改sshd配置后重启进程带来无法登录管理的问题,继续使用telnet和ftp服务,结合采用SSHD的密钥验证方式,并且在/etc/hosts.allow文件中做以下设置:
  ################# internal network ######################
  ALL:n.n.n.n #operator1
  ALL:n.n.n.n #operator2
  ################## out network ###########################
  sshd: ALL #RSA auth
  这样,管理员在公司的固定IP地址仍旧可以很方便地登录到主机上操作,而如果在家中或外出出差,由于IP地址是非固定的,可以通过sshd的密钥验证来进行登录。
  
  服务器配置如下:
  /usr/local/etc/sshd_config:
  # $OpenBSD: sshd_config,v 1.56 2002/06/20 23:37:12 markus Exp $
  
  # This is the sshd server system-wide configuration file. See
  # sshd_config(5) for more information.
  
  # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
  
  # The strategy used for options in the default sshd_config shipped with
  # OpenSSH is to specify options with their default value where
  # possible, but leave them commented. Uncommented options change a
  # default value.
  
  #Port 22
  #Protocol 2,1
  #ListenAddress 0.0.0.0
  #ListenAddress ::
  
  # HostKey for protocol version 1
  HostKey /usr/local/etc/ssh_host_key
  # HostKeys for protocol version 2
  HostKey /usr/local/etc/ssh_host_rsa_key
  HostKey /usr/local/etc/ssh_host_dsa_key
  
  # Lifetime and size of ephemeral version 1 server key
  KeyRegenerationInterval 3600
  ServerKeyBits 768
  
  # Logging
  #obsoletes QuietMode and FascistLogging
  SyslogFacility AUTH
  LogLevel INFO
  
  # Authentication:
  
  #LoginGraceTime 600
  #PermitRootLogin yes
  #StrictModes yes
  
  RSAAuthentication yes
  PubkeyAuthentication yes
  AuthorizedKeysFile .ssh/authorized_keys
  
  # rhosts authentication should not be used
  #RhostsAuthentication no
  # Don't read the user's ~/.rhosts and ~/.shosts files
  #IgnoreRhosts yes
  # For this to work you will also need host keys in /usr/local/etc/ssh_known_hosts
  #RhostsRSAAuthentication no
  # similar for protocol version 2
  #HostbasedAuthentication no
  # Change to yes if you don't trust ~/.ssh/known_hosts for
  # RhostsRSAAuthentication and HostbasedAuthentication
  #IgnoreUserKnownHosts no
  
  # To disable tunneled clear text passwords, change to no here!
  PasswordAuthentication yes
  PermitEmptyPasswords no
  
  # Change to no to disable s/key passwords
  #ChallengeResponseAuthentication yes
  
  # Kerberos options
  #KerberosAuthentication no
  #KerberosOrLocalPasswd yes
  #KerberosTicketCleanup yes
  
  #AFSTokenPassing no
  
  # Kerberos TGT Passing only works with the AFS kaserver
  #KerberosTgtPassing no
  
  # Set this to 'yes' to enable PAM keyboard-interactive authentication
  # Warning: enabling this may bypass the setting of 'PasswordAuthentication'
  #PAMAuthenticationViaKbdInt yes
  
  #X11Forwarding no
  #X11DisplayOffset 10
  #X11UseLocalhost yes
  #PrintMotd yes
  #PrintLastLog yes
  #KeepAlive yes
  #UseLogin no
  UsePrivilegeSeparation yes
  Compression yes
  
  #MaxStartups 10
  # no default banner path
  #Banner /some/path
  #VerifyReverseMapping no
  
  # override default of no subsystems
  Subsystem sftp /usr/local/libexec/sftp-server
  
  这里关闭了SSH的密码验证方式,采用RSA的密钥验证方法,用户需要首先在服务器上用ssh-keygen ?t rsa在自己的主目录下.ssh目录里自动生成密钥对,id_rsa(私钥)和id_rsa.pub(公钥),然后手工将id_rsa.pub拷贝成autohrized_keys文件.并将id_rsa和id_rsa..pub文件传至客户端保存好,同时删除服务器端的id_rsa和id_rsa.pub文件。
  
  客户端测试:如果是UNIX客户端,将id_rsa和id_rsa.pub放在用户主目录的.ssh子目录下, 用ssh和sftp可以进行测试;如果是WINDOWS系统的客户端,可以通过SECURECRT指定authencation为publickey方式,并且在properties中的session settings中选用use identity file,指定具体的id_rsa的文件位置,即可登录。这样,只有拥有密钥对的用户才可以登录。当然,得保护好自己的钥匙不可泄露,为安全起见,服务器需要定时改变每个用户的密钥。
  
  通过以上对intranet内部服务器的安全配置,实现了安全性和方便性的整合。
推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • 原理:dismiss再弹出,把dialog设为全局对象。if(dialog!null&&dialog.isShowing()&&!(Activity.)isFinishing()) ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 本文详细介绍了在Centos7上部署安装zabbix5.0的步骤和注意事项,包括准备工作、获取所需的yum源、关闭防火墙和SELINUX等。提供了一步一步的操作指南,帮助读者顺利完成安装过程。 ... [详细]
  • GSIOpenSSH PAM_USER 安全绕过漏洞
    漏洞名称:GSI-OpenSSHPAM_USER安全绕过漏洞CNNVD编号:CNNVD-201304-097发布时间:2013-04-09 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • 一、修改注册表去掉桌面图标小箭头1按下win+R组合快捷键,打开windows10系统的“运行”窗口,输入“regedit”,打开注册表编辑器,找到HKEY_CLASSES_ROOT\lnkfi ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • hadoop1.2.1文档中这样写:Nowcheckthatyoucansshtothelocalhostwithoutapassphrase:$sshlocalhostIfyou ... [详细]
author-avatar
灰包蛋啦_199
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有