前言:linux运维管理的时候,通常都是经过远程方式管理,当须要从一个工做站管理数以百计的服务器主机时,远程维护的方式将更占优点。linux
一:SSH远程管理shell
SSH是一种安全通道协议,主要用来实现字符界面的远程管理、远程复制等功能。SSH协议对通讯双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。vim
与早起的TELNET(远程登陆)、RSH(Remote Shell,远程执行)、RCP(Remote File Copy,远程文件复制)等应用相比,SSH协议提供了更好的安全性。c#
OpenSSH软件官网:http://www.openssh.comwindows
一、服务监听选项安全
[root@localhost ~]# vim /etc/ssh/sshd_config ......//省略部份内容 Port 22 //监听端口为22 #AddressFamily any ListenAddress 192.168.1.1 //监听地址为192.168.1.1 ......//省略部份内容 Protocol 2 //使用SSH V2协议 ......//省略部份内容 UseDNS no //禁用DNS反向解析 ......//省略部份内容 sshd服务器使用的默认端口是22,必要时建议修改次端口号,并指定监听服务的具体IP地址,以提升在网络中的隐蔽性。除此以外,SSH协议的版本选用V2比V1的安全 性更要好,禁用DNS反向解析能够提升服务器的响应速度。 [root@localhost ~]# service sshd restart //从新加载服务才能生效 中止 sshd: [肯定] 正在启动 sshd: [肯定]
二、用户登录控制bash
一般应禁止root用户或密码为空的用户登陆,另外,能够限制登陆验证的时间(默认为2分钟)及最大重试次数,若超过限制后仍未登陆则断开链接。服务器
[root@localhost ~]# vim /etc/ssh/sshd_config .....//省略部份内容 LoginGraceTime 2m //登录验证时间为2分钟 PermitRootLogin yes //容许root用户登录 #StrictModes yes MaxAuthTries 6 //最大重试次数为6 #MaxSessions 10 .....//省略部份内容 PermitEmptyPasswords no //禁止空密码用户登录 .....//省略部份内容
PermitRootLogin yes是容许root登陆,若是不容许把yes改成no网络
PermitEmptyPasswords no的意思是禁止空密码用户登陆,PasswordAuthentication yes是启用密码验证。app
三、登陆验证方式
对于服务器的远程管理,除了用户帐号的安全控制之外,登录验证的方式也很是重要。sshd服务支持两种验证--密码验证、秘钥对验证,能够设置只使用其中的一种方式,
也能够两种都启用。
[root@localhost ~]# vim /etc/ssh/sshd_config .....//省略部份内容 #RSAAuthentication yes PubkeyAuthentication yes //启用秘钥对验证 AuthorizedKeysFile .ssh/authorized_keys //指定公钥库数据文件 #AuthorizedKeysCommand none #AuthorizedKeysCommandRunAs nobody .....//省略部份内容 PasswordAuthentication yes //启用密码验证
4若是但愿只容许或禁止某些用户登陆时,可使用AllowUsers或DenyUsers,若是只容许某些用户,以下:
[root@localhost ~]# vim /etc/ssh/sshd_config ....//省略部份内容 # Example of overriding settings on a per-user basis #Match User anoncvs # X11Forwarding no # AllowTcpForwarding no # ForceCommand cvs server AllowUsers root zhangsan lisi //添加只容许的用户
五、使用SSH客户端程序
1).程登录:ssh zhangsan@192.168.1.1 whoami //肯定当前用户 /sbin/ifconfig eth0 | grep "inet addr" //确认当前主机地址 若是使用了非默认端口号(如2345),则在登录时必须登录经过“-p"选项指定端口号。 默认是22,不安全,能够修改端口:vim etc/ssh/sshd_config ssh -p 2345 zhangsan@192.168.1.1
2).远程链接到服务器以后,可使用scp远程复制的方法在服务器和客户机之间传递文件。 例如:将远程主机中的/etc/passwd文件复制到本机,并将本机的/etc/vsftpd目录复制到远程主机。 scp root@192.168.1.1:/etc/passwd /root/chen1.txt scp -r /etc/vsftpd/ root@192.168.1.1:/opt
3).经过sftp命令能够利用SSH安全链接与远程主机上传,下载文件,采用了相似于ftp的方式。 登录服务器:sftp root@192.168.1.1 上传文件:put /boot/config-2.6.32-431.e6.x86 下载文件:get /boot/grub.conf 退出:bye 六、在windows客户端上使用图形工具xshell链接服务器 安装后新建会话,输入用户名和密码便可链接,以下图:
七、构建密钥对验证的SSH体系(这种验证方法更安全)
实验环境:一共两台linux,一台ssh客户机192.168.1.2,另外一台linux服务器192.168.1.1
1)在客户端建立密钥对
执行命令以后一路回车
2)将公钥上传到服务器
3)在服务器中导入公钥文本
4)在客户端使用密钥对验证(验证以前别忘记在sshd主配置文件中容许xiaohong)
验证秘钥对
八、配置tcp wrappers访问控制 tcp wrappers机制针对访问服务的客户机地址进行访问控制,对应两个策略文件/etc/hosts.allow和/etc/hosts.deny,分别用来设置容许和拒绝策略。 策略的应用顺序:首先检查/etc/hosts.allow文件,若是找到匹配策略,则容许访问,不然继续检查/etc/hosts.deny文件,若是找到匹配,则拒绝,若是上述两个文件都找不到匹配的策略,则容许访问。 例如:容许192.168.1.2的主机或者192.168.2.0的网段访问sshd,其余地址被拒绝,执行如下操做。 1)vim /etc/hosts.allow
2)vim /etc/hosts.deny
3)在客户端上修改ip为192.168.1.200,测试链接失败
4)把客户端的ip改回到192.168.1.2以后,成功链接。