ssh(远程访问及连接)、TCP wrappers策略应用、FTP文件传输共享服务

远程访问及连接ssh、tcp wrappers策略应用和FTP文件传输共享服务

一、ssh远程连接

【1】配置文件

(1)服务端配置文件:/etc/ssh/sshd_config
(2)客户端配置文件:/etc/ssh/ssh_config

【2】ssh基本配置及应用

(1)远程登录的命令格式:ssh username@hostIP

[root@kgc ~]# hostname test02
[root@kgc ~]# bash(临时修改主机名方便下面的实验)
[root@test02 ~]# vim /etc/ssh/sshd_config 
Port 22(进入配置文件打开22端口)

使用远程登录的方式登录客户端root用户

[root@test02 ~]#  ssh root@192.168.60.60
root@192.168.60.60's password: 
Last login: Sun Jul 12 11:12:02 2020
[root@test01 ~]# exit
登出
Connection to 192.168.60.60 closed.
[root@test02 ~]# 

参数解释:
exit ###退出当前bash环境
Permission denied ###权限拒绝(密码输错)
(2)禁止使用root用户远程登录

[root@test01 ~]# vim /etc/ssh/sshd_config 
PermitRootLogin no(禁用以root身份远程登录)
[root@test01 ~]# systemctl restart sshd(每次修改配置文件均要重启服务)
[root@test02 ~]#  ssh root@192.168.60.60
root@192.168.60.60's password: 
Permission denied, please try again.

(3)限制切换root用户

[root@test02 ~]# ssh lisi@192.168.60.60
lisi@192.168.60.60's password: 
Last login: Sun Jul 12 11:56:27 2020 from 192.168.60.10
[lisi@test01 ~]$ su - root
密码:
上一次登录:日 7月 12 20:25:23 CST 2020从 192.168.60.10pts/2 上
[root@test01 ~]# exit
虽然仅用了以root身份登录,但可以登录客户端其他用户,在切换成root身份,所以要限制切换root用户。
[root@test01 ~]# vim /etc/pam.d/su
auth            required        pam_wheel.so use_uid
[root@test01 ~]# usermod -g wheel zhangsan(把用户zhangsan加入到wheel组中)
[root@test01 ~]# id zhangsan
uid=1001(zhangsan) gid=10(wheel) 组=10(wheel)
这样就只有在wheel组中的用户可以切换root其余的不可以。
[root@test01 ~]# ssh wangwu@192.168.60.60
The authenticity of host '192.168.60.60 (192.168.60.60)' can't be established.
ECDSA key fingerprint is SHA256:I1y8AwPDuMn4brw9K9N/buO2y4hgZ6+Ft6PJcuVoC58.
ECDSA key fingerprint is MD5:42:47:cb:ec:24:fe:9e:14:6b:77:6d:98:72:73:c4:8b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.60.60' (ECDSA) to the list of known hosts.
wangwu@192.168.60.60's password: 
Last login: Sun Jul 12 11:27:52 2020 from 192.168.60.10
[wangwu@test01 ~]$ su - root
密码:
su: 拒绝权限

(4)使用白名单或黑名单
命令格式:
AllowUsers username(用户可以使用任意终端远程登录)
DenyUsers username@host IP(用户不能能使用这一终端进行远程登录)
一般使用白名单,在配置文件中写入允许什么用户使用什么终端登录

[root@test01 ~]# vim /etc/ssh/sshd_config 
AllowUsers wangwu lisi@192.168.60.10
####允许wangwu以任何终端登录,lisi以192.168.60.10终端登录

(5)限制密码验证次数

[root@test01 ~]# vim /etc/ssh/sshd_config 
#LoginGraceTime 2m(会话超时时间)
#StrictModes yes(在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权)
MaxAuthTries 6(最大密码尝试次数)
#MaxSessions 10(允许创建会话的个数)
#PermitEmptyPasswords no(不允许空密码登录)
PasswordAuthentication yes(使用密码验证登录)
[root@test01 ~]#ssh -o NumberOfPasswdPrompts=8 lisi@192.168.60.60
####设置最大登录次数为8次,默认是3次######
【3】ssh密钥对解释及应用
(1)加密方式

在这里插入图片描述
进入配置文件启用相关参数

[root@test01 ~]# vim /etc/ssh/sshd_config
PubkeyAuthentication yes (启用密钥认证)
AuthorizedKeysFile      .ssh/authorized_keys(密钥文件默认路径)
(2)应用步骤
1、创建生成密钥对
[caiwu@tes02 ~]$  ssh-keygen -t ecdsa 
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/caiwu/.ssh/id_ecdsa): (选择默认路径)
Created directory '/home/caiwu/.ssh'.
Enter passphrase (empty for no passphrase): (输入密钥对密码)
Enter same passphrase again: (再确认密码)
Your identification has been saved in /home/caiwu/.ssh/id_ecdsa.
Your public key has been saved in /home/caiwu/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:4XCsX9haLvwHYPwh4OKhfDkITiVyLPFzJaAwEhQo7xw caiwu@tes02
The key's randomart image is:
+---[ECDSA 256]---+
|O*o.. .          |
|B=o. o..         |
|++= ...o+        |
|..Eoo .==+.      |
|o= = +..S++.     |
| .* =  o =o      |
|   . .  = ..     |
|         o  .    |
|          ..     |
+----[SHA256]-----+
[caiwu@tes02 ~]$ ls -a /home/caiwu/.ssh
.  ..  id_ecdsa  id_ecdsa.pub
[caiwu@tes02 ~]$ 
2、上传公钥文件给客户端
[caiwu@tes02 ~]$ ssh-copy-id  -i .ssh/id_ecdsa.pub zhangsan@192.168.60.60
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_ecdsa.pub"
The authenticity of host '192.168.60.60 (192.168.60.60)' can't be established.
ECDSA key fingerprint is SHA256:I1y8AwPDuMn4brw9K9N/buO2y4hgZ6+Ft6PJcuVoC58.
ECDSA key fingerprint is MD5:42:47:cb:ec:24:fe:9e:14:6b:77:6d:98:72:73:c4:8b.
Are you sure you want to continue connecting (yes/no)? yes
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
zhangsan@192.168.60.60's password: (输入zhangsan用户的密码)
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh 'zhangsan@192.168.60.60'"
and check to make sure that only the key(s) you wanted were added.
3、查看客户端公钥信息是否正确
[zhangsan@test01 ~]$ cat .ssh/authorized_keys 
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBN7Q6CI+ERkPcsG9vfCNFWt+VcWWQNptxbdxJJ3/sdARpKhnBrW1poJEucVO2C8Sb7XZjd8DpU7kIy5FpaORMUs= caiwu@tes02
[zhangsan@test01 ~]$ 
4、使用密钥对验证
[caiwu@tes02 ~]$ ssh zhangsan@192.168.60.60
Enter passphrase for key '/home/caiwu/.ssh/id_ecdsa': (输入密钥对的密码)
Last login: Sun Jul 12 21:09:27 2020
[zhangsan@test01 ~]$ 
5、赋予免密登录权限
因为每次登录要输入密钥对密码,为了方便起见,直接免密登录
[caiwu@tes02 ~]$ ssh-agent bash
[caiwu@tes02 ~]$ ssh-add 
Enter passphrase for /home/caiwu/.ssh/id_ecdsa: (密钥对密码)
Identity added: /home/caiwu/.ssh/id_ecdsa (/home/caiwu/.ssh/id_ecdsa)
[caiwu@tes02 ~]$ ssh zhangsan@192.168.60.60
Last login: Sun Jul 12 21:11:53 2020 from 192.168.60.10
[zhangsan@test01 ~]$ 
【4】ssh客户端的上传和下载
(1)普通的上传和下载
[root@tes02 opt]# ls
ssh_server.txt  test02
上传:
[root@tes02 opt]# scp -r test02 root@192.168.60.60:/opt
root@192.168.60.60's password: (root用户登录密码)
[root@test01 ~]# cd /opt
[root@test01 opt]# ls
test02 test03
下载:
[root@tes02 opt]# scp -r root@192.168.60.60:/opt/test03/ /opt
root@192.168.60.60's password: 
txt.txt                             100%    0     0.0KB/s   00:00    
[root@tes02 opt]# ls
ssh_server.txt  test02  test03
(2)在线快速上传和下载
[root@tes02 opt]# sftp root@192.168.60.60
root@192.168.60.60's password: 
Connected to 192.168.60.60.
sftp> cd /opt(可以在对方的任何目录做任何操作)
sftp> ls(如果写错可以ctrl+backspace删除)
test02  test03  
sftp> put ssh_server.txt (上传)
Uploading ssh_server.txt to /opt/ssh_server.txt
ssh_server.txt       100%   17    26.6KB/s   00:00    
sftp> ls
ssh_server.txt    test02            test03     
sftp> get -r test04 (下载)
Fetching /opt/test04/ to test04
Retrieving /opt/test04
[root@tes02 opt]# ls
ssh_server.txt  test02  test03  test04

二、TCPWrappers策略的应用

【1】保护原理

TCPWrappers相当于一个简略的防火墙,客户机的访问请求经过TCP wrappers时监听端口号,对请求的端口号进行控制调出相应的网络程序。
在这里插入图片描述

【2】访问策略的配置文件(先白后黑)
(1)白名单允许

配置文件:/etc/hosts.allow

[root@tes02 ~]# vim /etc/hosts.allow 
sshd:192.168.60.*,20.0.0.20 ####允许192.168.60网段所有以及20.0.0.20主机远程登录
(2)黑名单拒绝

配置文件:/etc/hosts.deny

[root@tes02 ~]# vim /etc/hosts.deny 
sshd:ALL(禁止所有进行远程登录)

三、FTP文件传输共享服务

【1】ftp的认识

FTP是 File Transfer Protocol (文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet 上的控制文件的双向传输。同时,它也是一个应用程序( Application )。基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP 的使用当中,用户经常遇到两个概念: 下载 Download )和 上传 Upload )。"下载 文件就是从远程主机拷贝文件至自己的计算机上; 上传 文件就是将文件从自己的计算机 中拷贝至远程主机上。用 Internet 语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

【2】vsftpd的简介

vsftpd 是“ very secure FTP daemon ”的缩写,安全性是它的一个最大的特点。 vsftpd是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux 、 BSD 、 Solaris 、HP UNIX 等系统上面,是一个完全免费的、开放源代码的 ftp 服务器软件,支持很多其他的FTP 服务器所不支持的特征。

【3】vsftpd服务的搭建
(1)服务器与客户端之间的网络(同一个网段)

服务器端网卡配置:
在这里插入图片描述
客户端网卡配置:
在这里插入图片描述
连通性测试
在这里插入图片描述

(2)挂载镜像安装vsftpd服务或直接线网yum安装
[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:vsftpd-3.0.2-25.el7              ################################# [100%]

或者可以使用线网安装
在这里插入图片描述

[root@localhost ~]# yum install -y vsftpd
(3)关闭防火防护,开启服务,查看配置文件和客户机访问站点
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl start vsftpd

查看配置文件

[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@localhost vsftpd]# cat vsftpd.conf |grep -vE "#"
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

查看站点

[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# ls
pub
[root@localhost ftp]# 

在这里插入图片描述

(4)匿名用户上传下载文件

在服务器端修改上传下载的权限

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
anonymous_enable=YES(允许匿名访问)
anon_upload_enable=YES(允许上传)
anon_mkdir_write_enable=YES(允许创建目录和写入)
anon_other_write_enable=YES(允许其他权限和写入,自己添加)
[root@localhost ~]# systemctl restart vsftpd

下载,在站点创建一个文件,客户端连接ftp,下载到客户端本地

[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# echo "this is test" > ./test.txt
[root@localhost ftp]# ls
pub  test.txt

在客户端进行下载
在这里插入图片描述
在客户端执行上传和删除

[root@localhost ftp]# chmod 777 pub/(修改站点目录写入权限)
[root@localhost ftp]# ll
drwxrwxrwx. 2 root root  6 4月   1 12:55 pub

在这里插入图片描述

[root@localhost ftp]# cd pub/
[root@localhost pub]# ls
qing.txt
(5)本地用户的上传和下载

新建两个本地用户

[root@localhost ~]# useradd zhangyang
[root@localhost ~]#passwd zhangyang
[root@localhost ~]# useradd zhangqing
[root@localhost ~]#passwd zhangqing(密码自己设置)

在客户端使用ftp使用本地用户连接
在这里插入图片描述
但问题是:作为一个普通用户可以随意切换服务器的主目录,很危险,所以要在服务器设置

[root@localhost /]# vim /etc/vsftpd/vsftpd.conf 
chroot_local_user=YES(禁锢本地用户切换其他目录)
[root@localhost /]# systemctl restart vsftpd

再到客户机上面就不可以随意切换了。
使用列表限制用户进行ftp连接

[root@localhost vsftpd]# vim vsftpd.conf 
userlist_enable=YES
[root@localhost vsftpd]# vim user_list 
# If userlist_deny=NO, only allow users in this file(如果在配置文件中写入这个条件是只允许列表中的用户访问)
# If userlist_deny=YES (default), never allow users in this file, and(默认情况下是不允许列表中的用户访问的)
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
zhangyang
(6)虚拟用户上传和下载
1)创建虚拟用户映射文件
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# vim vuser
tom
000000
jack
000000
#########奇数行创建用户,偶数行添加密码##########
2)把映射文件转化成数据库文件
[root@localhost vsftpd]# db_load -T -t hash -f vuser vuser.db
[root@localhost vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh  vuser  vuser.db

由于虚拟用户密码写在文件中,所以为了安全起见,修改文件的访问权限

[root@localhost vsftpd]# chmod 600 vuser vuser.db 
[root@localhost vsftpd]# ll
-rw-------. 1 root root    23 7月  20 11:04 vuser
-rw-------. 1 root root 12288 7月  20 11:07 vuser.db
3)创建一个用户,指定家目录在/opt/vuser下,不允许shell登录
[root@localhost vsftpd]# useradd -d /opt/vsuser -s /sbin/nologin vuser
[root@localhost vsftpd]# cd /etc/pam.d/
[root@localhost pam.d]# cp vsftpd vuser(新建pam认证模块)
[root@localhost pam.d]# vim vuser 
auth       required     pam_userdb.so db=/etc/vsftpd/vuser(这儿的vuser对应的是vuser.db)
account    required     pam_userdb.so db=/etc/vsftpd/vuser
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
#pam_service_name=vsftpd(为了防止重复注释掉)
guest_enable=YES(允许来宾访问)
guest_username=vuser(来宾名称对应数据库文件名)
pam_service_name=vuser(新建的pam认证模块名)
4)重启服务验证
[root@localhost ~]# systemctl restart vsftpd

在客户端使用虚拟用户登录就可以了
在这里插入图片描述
上传的文件属主和属组是vuser

[root@localhost opt]# cd vsuser/
[root@localhost vsuser]# ll
-rw-------. 1 vuser vuser 14 7月  20 10:16 zhangqing.txt
5)修改上传文件的权限
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
user_config_dir=/etc/vsftpd/vudir
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# mkdir vudir
[root@localhost vsftpd]# cd vudir/
[root@localhost vudir]# vim tom
anon_umask=022

再次上传文件,权限就改变为644

[root@localhost opt]# cd vsuser/
[root@localhost vsuser]# ll
-rw-------. 1 vuser vuser 14 7月  20 10:16 zhangqing.txt
-rw-r--r--. 1 vuser vuser 14 7月  20 10:20 zhangqin.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值