SSH远程管理和TCP Wrappers访问控制
文章目录
SSH远程管理
SSH是Secure Shell Protocol的简写,由 IETF 网络工作小组(Network Working Group)制定;
在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。
确保了传递的数据安全。
SSH是专为远程登录会话和其他网络服务提供的安全性协议。
利用SSH协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境运维工作中,
绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件,如telnet(23端口,非加密的)等。
配置OpenSSH服务端
配置文件位置 | 配置文件说明 |
---|---|
/etc/ssh/sshd_config | SSHD 服务器的配置文件 |
/etc/ssh/ssh_config | SSH 客户端的配置文件 |
/etc/ssh/ssh_host_key | SSH1用的RSA私钥 |
/etc/ssh/ssh_host_key.pub | SHH1用的 RSA公钥 |
/etc/ssh/ssh_host_rsa_key | SSH2用的RSA私钥 |
/etc/ssh/ssh_host_rsa_key.pub | SSH2用的RSA公钥 |
/etc/ssh/ssh_host_dsa_key | SSH2用的DSA私钥 |
/etc/ssh/ssh_host_dsa_key.pub | SSH2用的DSA公钥 |
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install openssh
[root@localhost ~]# systemctl start openssh
[root@localhost ~]# ps -ef | grep sshd
[root@localhost ~]# vim/etc/ssh/sshd_config
Port 3090 #修改监听端口为3090,默认为22
ListenAddress192.168.0.1 #只在Web服务器上提供服务
PermitRootLogin no #禁止root用户远程登录
PermitEmpeyPassword no #禁止空密码用户登录
LoginGraceTime 1m #登录验证过程时间为1分钟
MaxAuthTries 3 #允许用户登录验证的最大重试次数为3
PasswordAuthentication yes #允许使用密码验证
AllowUsers root wpc@192.168.78.103 #此项需要手动添加,允许root用户可以从任何客户端登录,允许用户wpc只能从192.168.78.103客服端登录,其他用户拒绝。
[root@localhost ~]# useradd wpc #建立远程连接用户
[root@localhost ~]# passwd wpc #更改密码
[root@localhost ~]# systemctl restart openssh
[root@localhost ~]# ssh -p 3090 wpc@192.168.78.103 #客户端验证
SSH客户端程序
SSH Secure Shell、PuTTY、securecrt、xshell、Mobaxterm 它们都是SSH客户端,使用它们就可以在windows下去连接并操作linux服务器
参数 | 说明 |
---|---|
-1 | 强制使用ssh协议版本1 |
-2 | 强制使用ssh协议版本2 |
-4 | 强制使用IPv4地址 |
-6 | 强制使用IPv6地址 |
-A | 开启认证代理连接转发功能 |
-a | 关闭认证代理连接转发功能 |
-b | 使用本机指定地址作为对应连接的源ip地址 |
-C | 请求压缩所有数据 |
-F | 指定ssh指令的配置文件 |
-f | 后台执行ssh指令 |
-g | 允许远程主机连接主机的转发端口 |
-i | 指定身份文件 |
-l | 指定连接远程服务器登录用户名 |
-N | 不执行远程指令 |
-o | 指定配置选项 |
-o | 指定远程服务器上的端口 |
-q | 静默模式 |
-X | 开启X11转发功能 |
-x | 关闭X11转发功能 |
-y | 开启信任X11转发功能 |
ssh -p 3090 wpc@192.168.78.103 #登录
ssh root@192.168.78.103 ls -ltr /backup/data #直接执行命令,最好全路径 cat /root/ . ssh /known_hosts #查看已知主机
ssh -t omd@192.168.78.103 sudo rsync hosts /etc/ #ssh远程执行,sudo命令
scp -p 3090 -r -p /home/wpc/h.txt wpc@192.168.78.103: /home/wpc/ #远程文件的安全(加密)拷贝
sftp -o Port=22 root@192.168.78.103
put /etc/hosts /tmp #put加客户端本地路径上传
get /etc/hosts /home/wpc #get下载服务器端内容到本地
SSH密匙
SSH登录是用的RSA非对称加密的,所以我们在SSH登录的时候就可以使用RSA密钥登录,SSH有专门创建SSH密钥的工具ssh-keygen
免密登录
[root@localhost ~]# cd /root/.ssh
[root@localhost ~]# ssh-keygen -t rsa -b 4096
回车
回车
密钥生成后会在当前目录下多出两个文件,id_rsa和id_rsa.pub,其中id_rsa是私钥(这个很重要,不能外泄),id_rsa.pub这个是公钥
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.100.10 -p 3090
TCP Wrappers访问控制
TCP Wrappers概述
TCP Wrappers是一个工作在第四层(传输层)的的安全工具,对有状态连接的特定服务进行安全检测并实现访问控制,凡是包含有libwrap.so库文件的的程序就可以受TCP Wrappers的安全控制。它的主要功能就是控制谁可以访问,常见的程序有rpcbind、vsftpd、sshd,telnet
TCP Wrappers的使用主要是依靠两个配置文件**/etc/hosts.allow**, /etc/hosts.deny,用于拒绝和接受具有TCP Wrappers控制全的程序
TCP Wrappers访问策略
示例1:
hosts.deny中写
sshd@192.168.78.110:192.168.78.120 #这样192.168.78.120就不能访问192.168.78.110
示例2:
hosts.adeny中写
in.telnetd,sshd: ALL #telnetd,sshd都不允许访问
hosts.allow中写
sshd:192.168.78.120 #允许ssh192.168.110.120访问
示例3:
hosts.adeny中写
in.telnetd,sshd@192.168.78.110:192.168.37. #不允许telnetd,sshd的192.168.37网段访问192.168.78.110
示例4:
hosts.allow中写
sshd:192.168.78. EXCEPT 192.168.78.120 #允许192.168.78网段使用ssh访问,但是192.168.78.120除外