在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
SSH-Server配置指南 一、SSH简介 SSH (Secure Shell)是一个应用程序中提供安全通信的协议,通过SSH协议可以安全地访问服务器,因为SSH 具有成熟的公钥加密体系,在数据进行传输时进行加密,保证数据在传输时不被恶意篡改、破坏和泄露,能有效防止网络嗅探和IP欺骗等攻击。 二、服务器端Ubuntu平台下OpenSSH server的安装 SSH是由芬兰的一家公司开发的,但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的。 下以命令均是以管理员身份登录使用 1. 在Ubuntu终端使用apt命令 复制代码 代码如下:# apt-get install openssh-server 如果下载失败,可能是由于系统需要更新的缘故,尝试更新一下,就可以了。使用一下命令: 复制代码 代码如下:# apt-get update 2. 配置openssh server,可以按照需求修改配置文件 复制代码 代码如下:# vi etc/ssh/ssh_config 3. 重启服务器 复制代码 代码如下:# /etc/init.d/ssh restart 以上OpenSSH server就算安装完成。 配置“/etc/ssh/ssh_config”文件 “/etc/ssh/ssh_config” 文件是OpenSSH系统范围的配置文件,允许你通过设置不同的选项来改变客户端程序的运行方式。这个文件的每一行 包含“关键词-值”的匹配,其中“关键词”是忽略大小写的。下面列出来的是最重要的关键词,用man命令查看帮助页(ssh (1))可以得到 详细的列表。 编辑“ssh_config”文件(vi /etc/ssh/ssh_config),添加或改变下面的参数: 复制代码 代码如下:# Site-wide defaults for various options Host * ForwardAgent no ForwardX11 no RhostsAuthentication no RhostsRSAAuthentication no RSAAuthentication yes PasswordAuthentication yes FallBackToRsh no UseRsh no BatchMode no CheckHostIP yes StrictHostKeyChecking no IdentityFile ~/.ssh/identity Port 22 Cipher blowfish EscapeChar ~ 下面逐行说明上面的选项设置:
ForwardAgent no ForwardX11 no RhostsAuthentication no RhostsRSAAuthentication no RSAAuthentication yes PasswordAuthentication yes FallBackToRsh no UseRsh no BatchMode no 文件和批处理任务十分有用。 CheckHostIP yes StrictHostKeyChecking no 匙发生了变化,就拒绝连接。 IdentityFile ~/.ssh/identity Port 22 Cipher blowfish EscapeChar ~ 配置“/etc/ssh/sshd_config”文件 “/etc/ssh/sshd_config”是OpenSSH的配置文件,允许设置选项改变这个daemon的运行。这个文件的每一行包含“关键词-值”的匹配,其中 “关键词”是忽略大小写的。下面列出来的是最重要的关键词,用man命令查看帮助页(sshd (8))可以得到详细的列表。 编辑“sshd_config”文件(vi /etc/ssh/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 下面逐行说明上面的选项设置: Port 22 ListenAddress 192.168.1.1 HostKey /etc/ssh/ssh_host_key “HostKey”设置包含计算机私人密匙的文件。 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 DNS名或IP地址。 使用SFTP代替FTP传输文件 FTP(文件传输协议)是一种使用非常广泛的在网络中传输文件的方式,但是,它也同样存在被网络窃听的危险,因为它也是以明文传送用户认证信息。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure FTP)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。若要开启 SFTP功能可以修改sshd2_config文件的下列内容: 复制代码 代码如下:# subsystem-sftp sftp-server 去掉行首的“#”,然后重新启动SSH服务器,这样在进行SSH连接时就可以同时使用SFTP传输文件。 关于客户端设置 以上是对服务器的设置,其实在SSH服务器中已经包含了一些客户端工具(如SSH,SFTP工具)。但是,更多的客户端用户使用Windows系统,下 面就对Windows上的客户端系统设置加以说明。 Secure Shell Client”,用于远程管理,另一个是“SSH Secure File Transfer Client”,用于和服务器进行文件传输。在工具栏中点击 “quick connnect”,输入正确的主机名和用户名,然后在弹出的对话框中输入密码完成登录,即可开始执行命令或者传输文件。在使用SFTP 时,默认只能显示用户的宿主目录的内容和非隐藏文件。但是,有时候您可能还要查看其它目录或者隐藏文件,这时只需要在菜单“eidt- >setting-> file transfer”的选项中选中“show root directory”和“show hidden file”两个选项即可。 使普通用户仅使用SFTP而没有使用Shell的权限 户使用shell执行命令而仅使用SFTP传输文件,就能消除这种安全隐患,完全实现FTP的功能, 具体实现方法如下: 首先,在编译安装时,编译中一定要有“–enable-static” 选项。安装成功后,在安装目录下的bin目录中执行下面的命令: 复制代码 代码如下:[root@localhost bin]# ls -l ssh-dummy-shell* sftp-server2* 将看到下列输出内容: 复制代码 代码如下:-rwxr-xr-x 1 root root 1350417 Apr 28 16:30 sftp-server2 -rwxr-xr-x 1 root root 3566890 Apr 28 16:30 sftp-server2.static -rwxr-xr-x 1 root root 72388 Apr 28 16:30 ssh-dummy-shell -rwxr-xr-x 1 root root 1813412 Apr 28 16:30 ssh-dummy-shell.static 其中带“static”后缀名,且比较大的两个文件就是加上“–enable-static”选项后生成的,后面我们将用到这里两个文件。 下面以添加普通账号test为例讲述具体操作步骤。 1.在“/home”目录(或者将要存放普通用户宿主目录的目录)下创建“bin”子目录,并将两个static文件复制到此目录下(复制后改名去掉static后缀),执行如下命令: 复制代码 代码如下:[root@localhost bin]# cd /usr/local/ssh3.2/bin [root@localhost bin]#cp ssh-dummy-shell.static /home/bin/ssh-dummy-shell [root@localhost bin]# cp sftp-server2.static /home/bin/sftp-server [root@localhost bin]#chown -R root.root /home/bin [root@localhost bin]#chmod -R 755 /home/bin 2.添加一个组,使以后所有禁止使用shell的用户都属于这个组,这样便于管理更多的用户: 3.在添加系统账号时使用如下命令: 复制代码 代码如下:[root@localhost root]#useradd -s /bin/ssh-dummy-shell -g template test [root@localhost root]#passwd test [root@localhost root]#mkdir /home/test/bin [root@localhost root]#cd /home/test/bin [root@localhost bin]#ln /home/bin/ssh-dummy-shell ssh-dummy-shell [root@localhost bin]#ln /home/bin/sftp-server sftp-server [root@localhost bin]#chown -R root.root /home/test/bin [root@localhost bin]#chmod -R 755 /home/test/bin 3.用户添加成功后,还需要修改/etc/ssh2/sshd2_config文件,将下列内容: 复制代码 代码如下:#ChRootUsers anonymous,ftp,guest 事实证明SSH是一种非常好的网络安全解决方案,但是,目前仍有很多管理员使用Telnet或FTP这种非常不安全的工具,希望尽快转移到SSH上来,以减少网络安全隐患。 |
请发表评论