网络服务
网络服务:在网络服务器上持续运行的守护进程,能够为客户提供特定的资源
服务通常为 C/S 架构
网络服务就是常驻在内存中的程序,常驻在内存中的程序通常都是负责一些系统所提供的功能来提供给系统使用者,因此这些常驻程序就会被我们称之为:服务(daemon)。
记录各个服务所对应的端口号的文件:/etc/services
配置服务端的准备工作:
-
关闭firewalld
1 2
[root@server ~]# systemctl stop firewalld # 立即关闭 [root@server ~]# systemctl disable firewalld # 开机不启动
-
关闭 selinux
1 2
[root@server ~]# getenforce # 查询selinux状态 [root@server ~]# setenforce 0 # 立即关闭selinux,但重启后失效
永久关闭selinux需要修改 /etc/selinux/config 文件, 设置 SELINUX=disabled
-
配置好 yum 源
-
配置好静态 ip 地址
-
配置好主机名
CentOS 服务管理命令
操作 | 命令 |
---|---|
启动服务 | systemctl start XXX |
停止服务 | systemctl stop XXX |
重启服务 | systemctl restart XXX |
查看服务状态 | systemctl status XXX |
开机启动 | systemctl enable XXX |
开机不启动 | systemctl disable XXX |
查看开机启动状态 | systemctl list-unit-files --type service |
NTP:Network Time Protocol
协议端口: udp/123
客户端配置:
安装 ntpdate:
|
|
向服务器同步时间:
|
|
服务端配置
|
|
修改配置文件:
|
|
重启服务:
|
|
查看服务状态:
|
|
查看网络时间服务器资源情况:
|
|
时区信息:
|
|
SSH
ssh: 安全shell连接
功能:实现加密方式的远程连接
默认端口及协议:tcp/22
服务端包名:openssh-server
服务名称:sshd
服务器配置文件
vim /etc/ssh/sshd_config
|
|
netstat: 查看网络连接状况
|
|
|
|
vsftpd
Very Secure FTP Daemon
ftp:文件传输协议
服务端软件:vsftpd
客户端软件:lftp、浏览器、FileZilla 等
默认端口及协议
传输层协议:tcp /21
应用层协议:FTP(File Transfer Protocol),中文名称:文件传输协议
端口:
- 管理端口:21
- 数据端口:
- 主动模式:20
- 被动模式:随机(1025-65535)
工作模式
主动模式:
- 客户端与服务器的 21 端口建立连接,发送 PORT 命令(告诉服务器自己接收到数据的套接字)。
- 服务器用 20 号端口与客户端连接,将数据发送给客户端
图示如下:
|
|
被动模式(默认模式):
- 客户端与服务器的 21 端口建立连接,发送 PASV 命令,服务器随即开启一个随机数据端口并告知客户端。
- 客户端与服务器开启的数据端口建立数据连接,获取数据。
图示如下:
|
|
数据的连接方向决定是主动连接还是被动连接
FTP 三类用户
- 本地用户:服务器上存在的用户
- 匿名用户:不用输入用户名密码即可上传下载,匿名用户上传文件将映射为 ftp 用户
- 虚拟用户
vsftpd 实验
实验环境
server:10.10.10.10
client:10.20.20.22
服务端操作
-
安装软件
1
yum install -y vsftpd
服务端的几个重要文件
- /etc/vsftpd/vsftpd.conf 主配置文件
- /var/ftp 匿名用户的家目录
-
启动服务
1
systemctl enable --now vsftpd # 启动服务并设置为开机自启动
-
查看服务状态
1 2 3 4
[root@server ~]# netstat -tlnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp6 0 0 :::21 :::* LISTEN 2419/vsftpd
-
准备给客户端下载的文件
1 2 3 4 5 6
# 使用 dd 命令创建一个 800M 的大文件到 /var/ftp/test 文件中 [root@server ~]# dd if=/dev/zero of=/var/ftp/test bs=10M count=80 [root@server ~]# ll -h /var/ftp/ 总用量 800M drwxr-xr-x. 2 root root 6 6月 10 2021 pub -rw-r--r--. 1 root root 800M 6月 15 10:12 test
-
监控网络连接情况
1
[root@server ~]# watch -n1 'netstat -tanp'
开启后进行观察,主要观察
Local Address
列
客户端验证
-
安装客户端软件
1 2
[root@client ~]# yum install -y lftp lftp 10.10.10.10 # 被动连接
-
使用被动模式下载
下载:
1 2 3 4
# 下载文件 $ get 文件 -o 下载到指定的地方 # 下载文件夹 $ mirror 文件夹
-
使用主动模式下载
配置文件
关于下载文件的配置
匿名用户下载文件,需要其他人对文件有读权限
关于上传文件的配置
匿名用户登录到FTP服务器,是以FTP用户的身份进行写操作的
- 打开vsftpd配置文件中的上传开关
- 在服务器上使得ftp用户对上传目录有写权限
在 FTP 中,匿名用户的写权限分为三种:
- upload:普通文件的上传
anon_upload_enable
- mkdir:目录的上传
anon_mkdir_write_enable
- other:删除文件
anon_other_write_enable
主配置项
主配置文件:/etc/vsftpd/vsftpd.conf
匿名用户:
|
|
本地用户:
|
|
访问限制
|
|
其他配置
|
|
访问控制
根据访问者 ip 进行控制
使用以下两个文件进行控制,方法同 sshd 的访问控制
- /etc/hosts.allow
- /etc/hosts.deny
根据访问者用户名进行控制(只对有用户名的用户有效)
-
黑名单文件:
/etc/vsftpd/ftpusers
此文件中的记录的用户不能访问 -
黑白名单:
/etc/vsftpd/user_list
此文件可能是白名单,也可能是黑名单,具体看配置-
白名单:配置方法
1 2
userlist_enable=YES userlist_deny=NO
-
黑名单:配置方法(默认)
1 2
userlist_enable=YES userlist_deny=YES
-
客户端的使用
|
|
本地用户操作
-
在服务器上创建用户,并配置密码
-
修改配置文件
1
user_config_dir=/etc/vsftpd/user_conf # 设置用户个性化设置目录
修改完后重启服务,使其生效,并创建出相应目录
1 2
$ systemctl restart vsftpd $ mkdir /etc/vsftpd/user_conf
-
对指定用户进行配置
配置方法:在个性化设置目录内创建与用户同名的文件,并将配置写入该文件中
例:配置 tom 用户限速为512K
|
|
配置完成后重启服务使其生效
-
用户登录测试
1 2
$lftp -u tom 192.168.10.11 lftp [email protected]:~> get test # 观察下载速度
扩展:关于本地用户禁锢黑白名单的配置
黑名单 所有在列表文件内的用户不能切换
|
|
白名单 只有在列表文件内的用户可以切换
|
|