SSH安全与配置
Secure Shell(SSH)的目的在于在通过网络远程访问另一个主机时提供最大的保护。它通过提供更好的身份验证工具和Secure Copy(SCP)、Secure File Transfer Protocol(SFTP)、X会话转发和端口转发等功能来加密网络交换,从而增加其他非安全协议的安全性。
SSH的一般用途
通常使用SSH来允许用户登录到一个远程主机并执行命令。SSH还支持隧道和X11链接。SSH也可以使用SFTP或SCP传输文件。
1.远程主机shell访问(取代telnet和rlogin等使用明文的不安全协议);
2.在远程主机(代替rsh)执行单一命令;
3.通过SCP命令将文件在本地主机与远程服务器之间进行复制;
4.结合SFTP,作为FTP文件传输的一个安全替代品;
5.结合rsync有效安全的备份、复制和镜像文件到一个本地或远程主机;
6.端口转发;
7.从一个远程主机转发X会话;
8.使用sshfs将一个远程SSH服务器上的目录安全地挂载到本地计算机文件系统中使用。
SSH安全性和配置最佳实践
1.将root账户仅限制为控制台访问;
2.配置TCP Wrappers,对远程主机进行访问控制;
3.在工作站或笔记本电脑上,关闭SSH服务并卸载SSH服务器包;
4.通过控制用户账号,限制其对SSH的访问;
5.仅使用SSH Protocol 2;
6.不支持闲置回话,并配置Idle Logout Timeout间隔;
7.禁用空密码,设置密码重试次数;
8.禁用基于主机的身份验证;
9.禁用用户的.rhosts文件;
10.限制SSH,将侦听绑定到制定的可用网络接口与端口;
11.始终保持SSH补丁版本更新。
配置SSH身份认证
1.登录验证对象:服务器中的本地用户账号;
2.登录验证方式:密码验证(核对客户的私钥、服务端公钥是否匹配);密钥对验证(核对客户的私钥、服务端公钥是否匹配);
3.构建密钥对验证的SSH体系
第一步:创建密钥对(在客户端)
私钥文件:id_rsa
共要文件:id_rsa.pub
第二步:上传公钥文件id_rsa.pub
第三步:导入公钥信息
公钥库文件:~/.ssh/authorized_keys
第四步:使用密钥对验证方式
配置SFTP安全
1.建立SFTP账号目录;
2.SFTP的账户直接使用Linux操作系统账户;
3.编辑/etc/ssh/sshd_cinfig配置文件;
4.目录权限设置要遵循2点:ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是775;
注:由于文件夹的权限问题,SFTP账号都不具有写权限;因此,在其宿主目录下创建一个具有写权限的文件夹,用于资源上传。