远程访问及控制

it2025-04-08  19

简介

在此前的课程中曾陆续学习了网站.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.rpm

2.安装客户端

[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 sshd

4.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.10

2.重新启动sshd服务

[root@centos01 ~]# systemctl restart sshd [root@centos01 ~]# netstat -anptu | grep sshd

3.客户端访问远程访问服务器

[root@centos02 ~]# ssh -p 2222 root@192.168.100.10

4.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 sshd

2.客户端生成密钥对

[root@centos02 ~]# ssh-keygen -t rsa

3.客户端上传公钥到远程访问服务器

[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:/opt

3.复制远程主机目录中的所有数据到本地

[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 jacky

3.在Web主机创建wzadm并设置密码

[root@web ~]# useradd wzadm [root@web ~]# passwd wzadm

允许网站管理员wzadm通过笔记本电脑远程登录Web服务器,笔记本电脑的IP地址并不是固定的,采用密钥对验证方式以提高安全性

1.生成秘钥对

[root@wzadm ~]# ssh-keygen -t rsa

2.上传公钥到服务器并且导入数据库

[root@wzadm ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.100.10

3.验证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_key

2.重启服务

[root@web ~]# systemctl restart sshd

3.在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:All

3.测试结果

[root@wzadm ~]# ssh wzadm@192.168.100.10

实验完成

最新回复(0)