17维客-生活百科-linux百科 >>所属分类 >> 网络安全   

OpenSSH构建安全网络 编辑词条 发表评论(0)

 

目录

openssh简介 编辑本段回目录

           SSHSecure Shell)是以远程联机服务方式操作服务器时的较为安全的解决方案。它最初由芬兰的一家公司开发,但由于受版权和加密算法的限制,很多人转而使用免费的替代软件OpenSSH

  用户通过SSH可以把所有传输的数据进行加密,使“中间人”的攻击方式不可能实现,而且也能够防止DNSIP欺骗。它还有一个额外的好处是传输的数据是经过压缩的,可以加快传输的速度。SSH作用广泛,既可以代替Telnet,又可以为FTPPOP,甚至为PPP提供一个安全的“通道”。SSH协议在预设的状态中,提供两个服务器功能:一个是类似Telnet的远程联机使用Shell服务器,即俗称SSH功能;另一个是类似FTP服务的SFTP-Server功能,可提供更安全的FTP服务。

  SSH的安全验证如何工作呢?主要依靠联机加密技术。从客户端来看,有以下两种安全验证级别:

  1.基于口令的安全验证(ssh1 只要知道自己的账号和口令,就可以登录到远程主机。所有传输的数据都将被加密,但是不能保证正在连接的服务器就是想要连接的服务器。可能受到“中间人”的攻击。

  2.基于密匙的安全验证(ssh2 需要依靠密匙,即用户必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用密匙进行安全验证。服务器收到请求之后,先在该服务器的home目录下寻找公用密匙,然后把它和发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge),并把它发送给客户端软件。客户端软件收到“质询”后,就可以用私人密匙解密再把它发送给服务器。使用这种方式,用户必须知道自己密匙的口令。与第一种级别相比,这种级别不需要在网络上传送口令,不仅加密所有传送的数据,而且阻止了“中间人”攻击方式。整个登录的过程一般需要10秒。

 

openssh安装编辑本段回目录

 

一、 所需软件
openssl-0.9.5a.tar.gz 下载网址:
http://www.openssl.org

openssh-2.5.2p2.tar.gz 下载网址:http://www.openssh.org


二、 安装步骤
下面的安装选项根据你自己的情况可适当调整,如果有不明白的地方可以参考README、INSTALL文档。此文环境假定所有源文件都在/opt下: 
1.安装OPENSSL
[root@dns opt]tar xzpf openssl-0.9.5a.tar.gz
[root@dns opt]cd openssl-0.9.5a
[root@dns openssl-0.9.5a]./configure --prefix=/usr --openssldir=/etc/ssl

编辑Makefile.ssl文件更改MANDIR=$OPENSSL/man为MANDIR=/usr/man。
[root@dns openssl-0.9.5a]make
[root@dns openssl-0.9.5a]make test
[root@dns openssl-0.9.5a]make install
2. 安装OPENSSH
在安装OPENSSL之前确认你的系统中已安装了zlib库,可用下面的命令来检查一下,若没有不要的犹豫,它就在你的系统安装光盘中,马上安装吧!
[root@dns tmp]rpm –qi zlib
[root@dns tmp]tar xzpf openssh-2.5.2p2.tar.gz
[root@dns openssh-2.5.2p2]./configure \
>--prefix=/usr \ 
>--sysconfdir=/etc/ssh \
>--with-tcp-wrappers \
>--with-ipv4-default \
>--with-ssl-dir=/usr/include/openssl
[root@dns openssh-2.5.2p2]make
[root@dns openssh-2.5.2p2]make install
[root@dns openssh-2.5.2p2]install –m 644 contrib/redhat/sshd.pam \
/etc/pam.d/sshd

三、配置

SSH服务器端配置文件/etc/ssh/sshd_config,关于下面各个参数的含义请参考使用手册,此例中使用第二种认证方式(基于密钥的认证)以提高安全性。 
Port 22

HostKey /etc/ssh/ssh_host_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
ServerKeyBits 768
LoginGraceTime 600
KeyRegenerationInterval 3600
PermitRootLogin without-password

IgnoreRhosts yes
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
StrictModes yes
X11Forwarding no
X11DisplayOffset 10
PrintMotd yes
KeepAlive yes

# Logging
SyslogFacility AUTH
LogLevel INFO
#obsoletes QuietMode and FascistLogging

RhostsAuthentication no
#
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
RhostsRSAAuthentication no
#
RSAAuthentication yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
PermitEmptyPasswords no

# Comment to enable s/key passwords or PAM interactive authentication
# NB. Neither of these are compiled in by default. Please read the
# notes in the sshd(8) manpage before enabling this on a PAM system.
ChallengeResponseAuthentication no

四、生成认证密钥
当采用密钥认证方式时,每个用户在远程服务器上必须生成自己的密钥;下面我们就以实例的方式叙述此过程:
1.为服务器上的用户robin生成rsa1认证密钥:
[root@dns tmp]su robin
[root@dns tmp]ssh-keygen
此命令运行时将会提示你密钥的存放位置,直接回车;在提示你输入passphrase时建议你输入一个不短于10个字符的英文句子,以防止你的私有密钥被别人盗用。它会在当前用户的个人目录个生成两个文件:
~/.ssh/identify  robin的私有密钥
~./ssh/identify.pub  robin的公用密钥

2.不要忘记idnentify.pub更名:
[root@dns.ssh]identify.pub authorized_keys
3.拷贝文件到安全的地方,在服务器上你的宿主文件夹中删除identify文件。

五、使用PuTTY客户端登录
终于到检验我们工作结果的时候了,在WINDOWS平台的SSH客户端我推荐使用Putty,很好用,不像其它一些客户端只支持基于口令的安全验证.
在连接服务器时不要忘记在connect->SSH中指定你的私有密钥的存放位置,输入创建密钥时的passphrase,如果不出意外你就可以安全地行程控制你的服务器了。



附件列表


→如果您认为本词条还有待完善,请 编辑词条

上一篇linux的IP伪装功能下一篇linux系统安全检查

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0

收藏到: Favorites  

词条信息

hdwiki
hdwiki
书童
词条创建者 发短消息   

相关词条