安全和稳定是Linux操作系统的两大特点。由于Linux采取了许多安全技术措施,包括读/写权限控制、带保护的子系统、审计跟踪、核心授权等,为网络多用户环境中的用户提供了必要的安全保障,因此越来越多的用户开始学习和使用Linux。但是Linux的安全要建立在有效的防范基础上,如果是一个不加任何防范和限制的Linux系统,同样也有较多漏洞。以传统的网络服务程序为例,FTP、R Shell和Telnet等服务在本质上都存在不安全因素,因为它们在网络上用“明文”传送口令和数据,使别有用心的人很容易截获这些口令和数据。同时这些服务程序的安全验证方式也有弱点,很容易受到“中间人”(man-in-the-middle)的攻击。所谓“中间人”的攻击方式,即“中间人”冒充真正的服务器接收用户传给服务器的数据,然后再冒充该用户把数据传给真正的服务器。服务器和用户之间的数据传送被“中间人”做了手脚之后,会出现很严重的问题。所以,尽可能地使用安全的工具来管理系统显得愈发重要。
传统远程管理工具的特点
远程登录的作用就是让用户以模拟终端的方式,登录到Internet的某台主机上。一旦连接成功,这些个人计算机就像远程计算机的一个终端,可以像使用终端计算机一样输入命令,并运行远程计算机中的程序。
在企业通常的使用环境中,服务器放在ISP托管中心或其服务器机房内,只有少数人才能进入并接触到主机。因此管理员通常会在服务器上开启Telnet服务守护进程,以便能够随时观察服务器上的变化,并登录到服务器上进行维护;如果管理员需要在服务器调试程序,还会开启FTP服务进程,从本地机上传程序到服务器进行调试(如图1所示)。可见这种终端的服务对网络管理员来说非常重要。
图1 管理员利用终端服务对ISP进行操控
一般在远程管理中经常使用远程管理Telnet的工具有CRT、 NetTerm、ShellNet,以及Rlogin、Rcp、Rexec、Rsh(所有以“R”开头的服务都建立在不与外界进行任何联系的基础上。出于安全方面的考虑,必须禁止这些进程的启动)。这些工具的优点是使用方便、配置简单;缺点是不够安全。以Telnet为例,因为其以“明码”传输,所以不能称为一个很好的联机方式。什么是“明码”?简单地说,使用Telnet时,系统会出现一个主机界面,如果没有设置系统的issue.net文件为空,系统默认出现的界面就会泄露一些对用户不利的信息给别人,如图2所示。
图2 Telnet登录主机界面
用户需要输入账号与密码,当主机接受资料后才能进行确认。此时,用户资料就会经过 Telnet协议传输到主机上。如果有人正在某个router节点监听封包,就可以轻而易举地截获资料封包,并可以通过解读窃取账号和密码。建议非必要时不要激活Telnet;如果一定要激活,必须确定限制的联机范围,并使用iptables设定联机的限制区域。此外,还要随时注意登录档案里关于登录的事项,不要让root用户以Telnet方式登入Linux主机。
SSH及OpenSSH简介
SSH(Secure Shell)是以远程联机服务方式操作服务器时的较为安全的解决方案。它最初由芬兰的一家公司开发,但由于受版权和加密算法的限制,很多人转而使用免费的替代软件OpenSSH。
用户通过SSH可以把所有传输的数据进行加密,使“中间人”的攻击方式不可能实现,而且也能够防止DNS和IP欺骗。它还有一个额外的好处是传输的数据是经过压缩的,可以加快传输的速度。SSH作用广泛,既可以代替Telnet,又可以为FTP、POP,甚至为PPP提供一个安全的“通道”。SSH协议在预设的状态中,提供两个服务器功能:一个是类似Telnet的远程联机使用Shell服务器,即俗称SSH功能;另一个是类似FTP服务的SFTP-Server功能,可提供更安全的FTP服务。
SSH的安全验证如何工作呢?主要依靠联机加密技术。从客户端来看,有以下两种安全验证级别:
1.基于口令的安全验证(ssh1) 只要知道自己的账号和口令,就可以登录到远程主机。所有传输的数据都将被加密,但是不能保证正在连接的服务器就是想要连接的服务器。可能受到“中间人”的攻击。
2.基于密匙的安全验证(ssh2) 需要依靠密匙,即用户必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用密匙进行安全验证。服务器收到请求之后,先在该服务器的home目录下寻找公用密匙,然后把它和发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge),并把它发送给客户端软件。客户端软件收到“质询”后,就可以用私人密匙解密再把它发送给服务器。使用这种方式,用户必须知道自己密匙的口令。与第一种级别相比,这种级别不需要在网络上传送口令,不仅加密所有传送的数据,而且阻止了“中间人”攻击方式。整个登录的过程一般需要10秒。
OpenSSH的安装和启动
OpenSSH的安装非常简便,操作如下。
1.下载软件包。到http://www.openssh.com下载最新软件包OpenSSH 3.6.1(最好下载源程序软件包后自行编译)。本文以openssh-3.5p1.tar.gz为例进行介绍,安装环境为Red Hat 7.1/kernel 2.4.8/gcc-2.96-98。
2. 解压及安装,代码如下:
# tar zxvf openssh-3.5p1.tar.gz
# cd openssh-3.5p1
# ./configure --prefix=/opt --sysconfdir=/etc/openssh
# make
# make install
# cd /etc/rc.d/init.d/
# vi sshd
//加入/opt/sbin/sshd启动进程
# cd /etc/rc.d/rc3.d/
# ln -s ../init.d/sshd S59sshd
重启计算机以后,用下列命令进行测试:
# ssh -l geminis www.test.com
The authenticity of host 'www.test.com (*.*.*.*)' can't be established.
RSA key fingerprint is a7:35:3c:bd:47:b0:5d:30:68:f1:15:77:1a:b1:67:dd.
Are you sure you want to continue connecting (yes/no)?
因为是第一次登录主机,OpenSSH将显示不能识别该主机。键入“yes”,把主机的“识别标记”加到“~/.ssh/know_hosts”文件中。第二次访问这台主机的时候就不会再显示这条提示信息。然后,OpenSSH提示输入远程主机上的账号及口令。输入完后就建立了SSH连接,可以像使用 Telnet一样使用OpenSSH。
配置基于密钥认证的OpenSSH
缺省情况下,SSH将默认使用口令验证方式。不需要对系统进行任何配置就可以使用账号和口令登录到远程主机。下面介绍如何配置并使用基于密匙认证的OpenSSH(假设用户名为geminis,主机IP为192.168.0.1)。
首先创建一对密匙(包括公匙和密匙,并且用公匙加密的数据只能用密匙解密),把公匙放到需要远程服务器上。当登录远程服务器时,客户端软件会向服务器发出请求,请求用密匙进行认证,代码如下:
# ssh-keygen -d
// 加上参数d是创建一个一基于ssh2的密匙对
#Generating public/private DSA key pair.
// 生成DSA加密模式的密匙对
# Enter file in which to save the key (/home/geminis/.ssh/id_dsa):
//存放密匙文件的路径,直接回车为默认目录
# Enter passphrase (empty for no passphrase):
//必须输入一个>4个字符的标识符
# Enter same passphrase again:
//重新确认一次
如果创建成功,系统将返回以下信息:
Your identification has been saved in /home/geminis/.ssh/id_dsa.
Your public key has been saved in /home/geminis/.ssh/id_dsa.pub.
The key fingerprint is:
29:1b:46:00:08:38:d5:87:da:96:e7:c4:a3:6b:b1:3f geminis@www.test.com
接下来,把id_dsa.pub发布到服务器上。通过FTP将公匙文件“/home/admin/.ssh/id_dsa.pub”,复制到远程服务器的“/home/admin/.ssh”目录。如果.ssh目录不存在,可以用mkdir命令先建立。然后,将“id_dsa.pub”重命名为“authorized_keys2”,代码如下:
# mv id_dsa.pub authorized_keys2
# chmod 644 authorized_keys2
注意,如果authorized_keys2文件的权限不正确,会导致SSH连接失败。
服务器收到请求之后,在该服务器的宿主目录下寻找公匙,然后检查该公匙是否合法。如果合法就用公匙加密一随机数(即所谓的challenge)并发送给客户端软件。客户端软件收到后就用私匙解密再把它发送给服务器。因为用公匙加密的数据只能用密匙解密,服务器经过比较就可以知道该客户连接的合法性。连接代码如下:
# ssh -l geminis www.test.com
系统返回以下信息:
# Enter passphrase for key '/home/geminis/.ssh/id_dsa': ******
Last login: Wed Apr 16 12:31:49 2003 from www.geminis.com
OpenSSH客户端使用方法
1. Windows平台
客户端通常使用Windows平台,操作较为直观。下面对几种客户端工具进行介绍。
◆ PuTTY
在客户端使用SSH较好的工具是PuTTY,这是一个开源软件。用户可以根据自己的配置情况对该软件进行修改,如图3所示。
图3 PuTTY配置界面
如果是第一次使用该软件,系统会提示下载有关主机的“识别标记”,选择“yes”,下次登录就不会出现提示框。
◆ Filezilla
Filezilla是客户端使用SFTP的一款不错的开源软件,对中文支持很好,配置界面如图4所示。
图4 Filezilla配置界面
2. Linux终端
在Linux终端下使用SSH,优点是操作更方便,无须其它软件;缺点是不太直观。使用方法及命令介绍如下:
◆ SSH的使用
# ssh -l geminis www.test.com
Enter passphrase for key '/home/geminis/.ssh/id_dsa':
//输入以前设置的标识符
◆ SFTP的使用
# sftp www.test.com
SFTP相关命令的使用方法如表1所示。
3.进阶提高要点
配置SSH客户端文件“/etc/ssh/ssh_config”,如图5所示。
图5 配置“/etc/ssh/ssh_config”文件
表1 SFTP相关命令的使用方法
选项设置说明如表2所示。
表2 SSH配置选项说明
配置SSH服务器端文件“/etc/ssh/sshd_config”,取消口令验证。把“PasswordAuthentication Yes”改为“no”,可以禁止使用第一种口令验证。
配置“/etc/ssh/sshd_config”文件,编辑“sshd_config”文件,加入或改变下面的参数:
# This is ssh server systemwide configuration file.
Port 22
ListenAddress 192.168.1.1
HostKey /etc/ssh/ssh_host_key
ServerKeyBits 1024
LoginGraceTime 600
KeyRegenerationInterval 3600
PermitRootLogin no
IgnoreRhosts yes
IgnoreUserKnownHosts yes
StrictModes yes
X11Forwarding no
PrintMotd yes
SyslogFacility AUTH
LogLevel INFO
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication yes
PasswordAuthentication yes
PermitEmptyPasswords no
AllowUsers admin
分享到:
相关推荐
### Openssh工具远程管理知识点详解 #### 一、OpenSSH工具概述 OpenSSH(Secure Shell)是一种用于实现安全网络通信的协议与软件包。它基于SSH协议,为远程登录和其他网络服务提供加密通信的安全环境。在众多操作...
OpenSSH作为远程连接和安全管理的重要工具,其版本的更新与维护对于系统的安全防护至关重要。本教程将详细介绍如何在离线环境下,将OpenSSH升级到7.8版本,并使用提供的资源包进行依赖包的安装与使用案例。 一、...
在IT行业中,安全远程访问是至关重要的,OpenSSH就是这样一种工具。本文将深入探讨`openssh包.rar`,这是专为CentOS 7系统设计的RPM(Red Hat ...正确安装和配置OpenSSH,可以为系统提供强大而可靠的远程管理能力。
总结,OpenSSH 7.8p1 RPM包为CentOS 7用户提供了便捷的升级途径,通过理解其关键特性、安装步骤以及使用维护,可以更好地利用OpenSSH提供的安全远程访问功能。在实际操作中,务必注意安全配置和更新管理,确保系统的...
OpenSSH是Secure Shell (SSH) 的开源实现,用于在不安全的网络上提供加密的通信。...总之,OpenSSH的每一个版本都是为了提供更安全、更可靠的远程连接服务,而这套合集正是见证这一发展历程的宝贵资源。
SSH,即Secure Shell,...总的来说,SSH是Linux系统中进行远程管理的重要工具,其安全性和便捷性使其在IT运维中不可或缺。通过配置和优化SSH服务,我们可以有效地保护网络资源,防止未授权访问,并提高远程操作的效率。
在CentOS 7系统中,OpenSSH是默认的远程访问服务,它提供了安全的网络连接。然而,为了保持系统的安全性,及时更新OpenSSH至最新版本是至关重要的。本篇文章将详细讲解如何通过脚本方式在CentOS 7上将OpenSSH升级到...
OpenSSH广泛应用于远程管理、文件传输和自动化任务。它的安全特性包括:使用公钥/私钥对进行身份验证、数据传输的加密、防止中间人攻击等。为保持系统的安全性,建议定期更新OpenSSH到最新版本,避免使用弱密码,并...
OpenSSH是一款在类Unix系统上广泛使用的网络服务,它提供了安全的远程登录和其他网络服务,如SFTP和SCP。然而,如同任何软件一样,OpenSSH可能存在安全漏洞,这些漏洞可能被恶意用户利用来入侵系统或进行未经授权的...
《OpenSSH:安全远程连接的首选工具》 OpenSSH,这个在IT领域广泛使用的开源工具,是连接远程系统的必备利器。其全名是Open Source Secure SHell,它为网络管理员和用户提供了安全、可靠的远程登录服务,使得可以...
了解并正确使用OpenSSH,对于管理远程Linux系统和保护网络通信的安全至关重要。定期更新到最新版本,可以确保利用最新的安全补丁和功能,提升系统的安全性。同时,理解OpenSSH的配置和工作原理,对于排查网络问题和...
OpenSSH 9.0p1 是一个安全的网络通信协议套件,用于在不安全的网络上提供加密的远程登录和其他服务。这个版本是OpenSSH的最新稳定版本,旨在提高安全性、性能和功能。OpenSSH是由OpenBSD项目开发并维护的,它包括多...
在Linux系统管理中,安全性和稳定性是至关重要的,OpenSSH作为远程访问和管理的主要工具,其版本的更新通常伴随着安全修复和新特性的引入。本教程将聚焦于如何在CentOS 7系统上快速升级到OpenSSH 8.8版本。这个过程...
而OpenSSH是Linux/Unix环境中广泛使用的安全 shell (SSH) 实现,它提供了远程登录和其他安全网络服务。当我们谈论"openssh升级ansible-playbook"时,意味着我们需要使用Ansible的Playbook来自动化OpenSSH的更新过程...
OpenSSH Server允许管理员和用户通过加密通道进行远程访问,执行各种系统管理任务,如文件传输、命令执行等。 2. **Ubuntu中的OpenSSH Server**:Ubuntu是一个基于Debian的Linux发行版,其软件包管理系统Apt包含...
总之,OpenSSH 是网络安全中的关键组件,openssh-9.7p1 的更新提供了更高的安全性和功能性,为 IT 管理员和远程用户提供了更加可靠的服务。保持 SSH 客户端和服务器的最新状态是保障网络安全的重要步骤。
《openssh-9.5p1 RPM安装包在openEuler20.03系统中的应用与实践》 在Linux操作系统的世界中,安全的远程访问是运维工作中...通过规范的安装和管理,可以确保OpenSSH服务的安全稳定运行,为远程管理提供强有力的支持。
在IT领域,安全是至关重要的,特别是在网络通信中。...通过编写和运行脚本,你可以更高效地管理这些升级过程,同时减少人为错误的可能性。记得在执行任何系统级别的变更之前,都要先备份重要数据,以防万一。
《OpenSSH 8.8p1在银河麒麟V10/飞腾版(ARM CPU)平台的部署...正确部署和使用OpenSSH,不仅可以提升系统的安全性,还能提高远程管理的效率。因此,对OpenSSH的理解和熟练运用,对于任何IT管理员来说都是必不可少的技能。