简介
在此前的课程中曾陆续学习了网站.FTP等各种网络服务.实际上大多数企业服务器是通过远程登录的方式来进行管理的。当需要从一个工作站管理数以百计的服务器主机时,远程维护的方式将更占优势。 本章将学习如何针对Linux环境使用安全的方式远程管理,以及通过TCP Wrappers 机制为应用提供访问控制。
安装openssh服务 1.安装服务器端
[root@centos01 ~]# mount /dev/cdrom /mnt/ [root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-* [root@centos01 ~]# rpm -ivh /mnt/Packages/openssh-server-7.4p1-11.el7.x86_64.rpm2.安装客户端
[root@centos01 ~]# rpm -ivh /mnt/Packages/openssh-clients-7.4p1-11.el7.x86_64.rpm [root@centos01 ~]# ls -ld /etc/ssh/sshd_config [root@centos01 ~]# rpm -qa | grep openssh*3.设置ssh服务开机自动启动
[root@centos01 ~]# systemctl enable sshd [root@centos01 ~]# systemctl start sshd 检查端口号: [root@centos01 ~]# netstat -anptu | grep sshd4.openssh-server常见的配置选项
1. 监听的端口 Port 22 2. 监听任意IP地址 ListenAddress 0.0.0.0 3. 登录超时时间2分钟 LoginGraceTime 2m 4. 允许root登录no表示阻止root登录 PermitRootLogin yes 5. 开启密钥对身份验证 PubkeyAuthentication yes 6. 存储身份验证密钥文件 AuthorizedKeysFile .ssh/authorized_keys 7. 开启账户密码验证 PasswordAuthentication yes配置修改监听|IP地址和端口号 1.修改sshd主配置文件
[root@centos01 ~]# vim /etc/ssh/sshd_config Port 2222 ListenAddress 192.168.100.102.重新启动sshd服务
[root@centos01 ~]# systemctl restart sshd [root@centos01 ~]# netstat -anptu | grep sshd3.客户端访问远程访问服务器
[root@centos02 ~]# ssh -p 2222 root@192.168.100.104.ssh-server访问控制
[root@centos01 ~]# vim /etc/ssh/sshd. config //1. 阻止root用户本地登录 PermitRootLogin no //2. 拒绝192.168.100.20使用root远程登录服务器端 DenyUsers root@192.168.100.20配置密钥对身份验证和访问控制 1.修改远程访问服务器主配置文件支持密钥对验证
[root@centos01 ~]# vim /etc/ssh/sshd_config //1. 开启密钥对验证 PubkeyAuthentication yes //2. 指定公钥存储位置 AuthorizedKeysFile .ssh/authorized_keys [root@centos01 ~]# systemctl restart sshd2.客户端生成密钥对
[root@centos02 ~]# ssh-keygen -t rsa3.客户端上传公钥到远程访问服务器
[root@centos02 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.100.10 //1. 公钥 [root@centos02 ~]# cat .ssh/id_rsa.pub //2.私钥 [root@centos02 ~]# cat .ssh/id_rsa //3. 服务器公钥 [root@centos01 ~]# cat .ssh/authorized_keys //4. 登出 [root@centos02 ~]# ssh root@192.168.100.10远程数据复制 1.将远程服务器数据下载到本地当前目录
[root@centos01 ~]# cp .ssh/authorized_keys ./ [root@centos02~]#scp root@192.168.100.10:/root/authorized_keys ./2.远程主机数据复制到客户端192.168.100.20的opt目录中
[root@centos01 ~]# scp authorized_keys root@192.168.100.20:/opt3.复制远程主机目录中的所有数据到本地
[root@centos01 ~]# mkdir -p /benet/bdqn [root@centos01 ~]# echo "jiaoxinyuan" > /benet/1.txt [root@centos01 ~]# echo "jiaoxinyuan" > /benet/bdqn/2.txt [root@centos01 ~]# ls /benet/ [root@centos01 ~]# ls /benet/bdqn/ [root@centos01 ~]# scp -r /benet/ root@192.168.100.20:/opt/准备环境 1.开三台虚拟机,分别为Web, wzadm, jacky
[root@web ~]# [root@web ~]# mount /dev/cdrom /mnt/ [root@web ~]# rm -rf /etc/yum.repos.d/CentOS-* [root@web ~]# rpm -ivh /mnt/Packages/openssh-server-7.4p1-11.el7.x86_64.rpm [root@web ~]# rpm -ivh /mnt/Packages/openssh-clients-7.4p1-11.el7.x86_64.rpm [root@wzadm ~]# [root@jacky ~]#2.在Web主机创建jacky并设置密码
[root@web ~]# useradd jacky [root@web ~]# passwd jacky3.在Web主机创建wzadm并设置密码
[root@web ~]# useradd wzadm [root@web ~]# passwd wzadm允许网站管理员wzadm通过笔记本电脑远程登录Web服务器,笔记本电脑的IP地址并不是固定的,采用密钥对验证方式以提高安全性
1.生成秘钥对
[root@wzadm ~]# ssh-keygen -t rsa2.上传公钥到服务器并且导入数据库
[root@wzadm ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.100.103.验证wzadm访问Web主机
[root@wzadm ~]# ssh wzadm@192.168.100.10允许用户jacky远程登录Web服务器,但仅限于从网管工作站192.168.100.30访问
1.配置Web主机 仅限于192.168.100.30中的jacky访问
[root@web ~]# vim /etc/ssh/sshd_config Port 22 ListenAddress 192.168.100.10 AllowUsers jacky@192.168.100.30 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host_ed25519_key2.重启服务
[root@web ~]# systemctl restart sshd3.在jacky主机中测试是否能够登录
[root@jacky ~]# ssh jacky@192.168.100.10禁止其他用户通过SSH方式远程登录Web服务器。 配置Web主机的tcp wrappers 策略文件 1.允许访问
[root@web ~]# vim /etc/hosts.allow sshd:192.168.100.*2.拒绝访问
[root@web ~]# vim /etc/hosts.deny sshd:All3.测试结果
[root@wzadm ~]# ssh wzadm@192.168.100.10实验完成