网络系统管理Linux环境——AppSrv之SSH
题目要求
服务器AppSrv上的工作任务
1. SSH
安装 SSH,工作端口监听在 2101;
仅允许 InsideCli 客户端进行 ssh 访问,其余所有主机的请求都应该拒绝;
在 cskadmin 用户环境下可以免秘钥登录,并且拥有 root 控制权限。
将 SSH 跟 SFTP 进行分离,要求 SFTP 监听端口为 54321,并且通过服务的方式进行启动或停止。
项目实施
SSH 配置
编辑SSH配置文件:
[root@appsrv ~]# vim /etc/ssh/sshd_config
Port 2101
PermitRootLogin yes
PubkeyAuthentication yes
仅允许InsideCli客户端进行ssh访问:
[root@appsrv ~]# vim /etc/hosts.allow
# 添加
sshd:192.168.0.190:allow
拒绝所有其他主机的SSH请求:
[root@appsrv ~]# vim /etc/hosts.deny
# 添加
sshd:ALL
允许cskadmin用户在centos上使用SSH免密码登录并拥有root控制权限:
客户端创建cskadmin用户并设置密码:
[root@insidecli ~]# useradd cskadmin
[root@insidecli ~]# passwd cskadmin
进入cskamdin用户生成密钥传入AppSrv服务器:
[root@insidecli ~]# su cskadmin
[cskadmin@insidecli root]$ ssh-keygen
# 一直回车即可
将密钥传到AppSrv:
[cskadmin@insidecli root]$ ssh-copy-id root@192.168.100.100
重启SSH:
[root@AppSrv ~]# systemctl restart sshd
SFTP 配置
将SSH服务的systemd配置文件复制到一个新的文件中,作为SFTP服务的配置文件
[root@appsrv ~]# cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service
复制PAM(可插拔认证模块)配置文件,以便新服务也能使用相同的认证配置
[root@appsrv ~]# cp /etc/pam.d/sshd /etc/pam.d/sftpd
复制SSH守护进程的配置文件,创建一个新的配置文件以供SFTP服务使用
[root@appsrv ~]# cp /etc/ssh/sshd_config /etc/ssh/sftpd_config
创建一个链接,使得可以通过rcsftpd命令来控制新的SFTP服务
[root@appsrv ~]# ln -sf /usr/sbin/service /usr/sbin/rcsftpd
创建一个链接,将新的SFTP服务指向现有的SSH守护进程可执行文件
[root@appsrv ~]# ln -sf /usr/sbin/sshd /usr/sbin/sftpd
复制SSH守护进程的sysconfig配置文件,以供SFTP服务使用
[root@appsrv ~]# cp /etc/sysconfig/sshd /etc/sysconfig/sftp
复制SSH守护进程的PID文件,以供SFTP服务使用
[root@appsrv ~]# cp /var/run/sshd.pid /var/run/sftpd.pid
修改新创建的SFTP服务配置文件
[root@appsrv ~]# vim /etc/systemd/system/sftpd.service
# 修改如下内容
Description=Sftp server daemon
EnvironmentFile=-/etc/sysconfig/sftpd
ExecStart=/usr/sbin/sftpd -f /etc/ssh/sftpd_config
修改SFTP服务的配置文件设置新的端口
[root@appsrv ~]# vim /etc/ssh/sftpd_config
Port 54321
重新加载systemd并启动sftp
[root@appsrv ~]# systemctl daemon-reload
[root@appsrv ~]# systemctl start sftpd
[root@appsrv ~]# systemctl status sftpd
评分标准
(1)安装和监听端口设置(在 appsrv 上执行:ss -nltp | grep ssh);【1 分】
评分要点: sshd 程序监听 tcp2101 端口 |
(2)访问限制(在 storagesrv 上执行指令:ssh -p 2101 root@192.168.100.100);【2 分】
评分要点: 返回结果为 Connection reset by peer |
(3)免密登录(InsideCli 的 cskadmin 用户环境上执行指令:ssh -p 2101 root@192.168.100.100);【2 分】
评分要点: Insidecli 可以进行 SSH 免密登录,并且成功 |
(4)分离 SFTP(appsrv 执行 systemctl status sftpd);【3 分】
评分要点: 状态显示为 running 得分 |
(5)SFTP 端口号(appsrv 执行 ss -ntpl | grep sftpd);【2 分】
评分要点: 监听端口号为 54321 得分 |