Linux

Linux 网络服务

·23 分钟阅读·8985 字

DHCP、FTP、NFS 等 Linux 常见网络服务配置与管理

📋 目录

一、DHCP

(1).DHCP工作原理

DHCP全称是(Dynamic Host Configuration Protocol)动态主机配置协议。

 

①发现阶段(DHCP Discover):当一个设备(如计算机或手机)首次加入网络时,它会发送一个DHCP Discover消息,以寻找可用的DHCP服务器。这个消息包含一个空的或临时的IP地址 ,以及其他选项,以指示它需要DHCP服务。

②提供阶段(DHCP Offer ):DHCP服务器接收到客户端的Discover消息后,会回应一个DHCP Offer消息,其中包含可用的IP地址、子网掩码、网关、DNS服务器等网络配置信息。如果有多个DHCP服务器可用,客户端可以接收多个Offer,但通常只会选择一个。

③请求阶段(DHCP Request):客户端在收到Offer后,选择其中一个DHCP服务器提供的配置,并向该服务器发送DHCP Request消息,以请求分配该配置。

④确认阶段(DHCP Acknowledgment):DHCP服务器收到客户端的Request后,确认分配给客户端的IP地址和其他配置信息,并通过DHCP Acknowledgment消息通知客户端。同时,其他DHCP服务器将停止向该客户端提供配置。

⑤配置生效:客户端接收到DHCP Acknowledgment后,会配置自己的网络接口,使用分配的IP地址和其他配置信息。此时,客户端可以开始正常的网络通信。

⑥租约和续约:DHCP分配的IP地址通常有一个租约期限,客户端在租约到期前需要续约。在租约到期前,客户端可以选择继续使用分配的IP地址,或者请求新的分配。

⑦释放:当设备不再需要网络配置时,它可以向DHCP服务器发送一个Release消息,以释放分配的IP地址,使其可供其他设备使用。

(2)DHCP服务部署

1.安装DHCP服务组件

2.启动DHCP进程

3.配置/etc/dhcp.conf配置文件

cat >> /etc/dhcpd.conf <<EOF

定义:全局性参数

定义:客户端主机名的DNS域名后缀

option domain-name “test.com”;

定义:DNS服务器IP地址

option domain-name-servers 10.0.0.1, 114.114.114.114;

定义:默认租约时限

default-lease-time 43200;

定义:最大租约时限

max-lease-time 86400;

定义:DHCP服务的日志设施

log-facility local7;

定义:subnet 本地作用域(10.0.0.0/24),# 注意:必须匹配本机网卡的IP子网

subnet 10.0.0.0 netmask 255.255.255.0 {

定义:可分配的IP地址范围

range dynamic-bootp 10.0.0.11 10.0.0.250;

定义:网关IP地址

option routers 10.0.0.1;

定义:子网广播地址

option broadcast-address 10.0.0.255;

}

EOF

4.ip地址保留方法

第一步,在ip地址里将地址空出

第二步,定义:fixed 固定IP地址,使之与笔记本网卡MAC地址永久绑定在一起

二、samba

(1)安装部署

yum install samba -y

smb.service:为客户端提供SMB/CIFS文件共享服务

nmb.service:为客户端提供NetBIOS名称解析服务

(2)配置文件

vim /etc/samba/smb.conf

修改:[global]全局参数

[global]

添加:以下选项

map to guest = Bad User含义如下:

如果登录用户名 存在,但是用户密码不正确,则视为:登录失败

如果登录用户名不存在,则直接视为:由guest account选项定义的nobody账户

map to guest = Bad User

(匿名)共享发布:/public目录,共享名为[pub],只读共享权限

[pub]

设置:共享名的注释信息

comment = My public Share

允许:网络邻居浏览

browseable = Yes

设置:只读共享权限

read only = Yes

允许:权限继承

inherit acls = Yes

设置:共享目录路径

path = /public

允许:匿名访问

guest ok = Yes

设置:匿名账户为nobody账户

guest account = nobody

(3)验证方式

①无验证:匿名访问

第一步, 创建:用于匿名共享的目录,并设置本地权限

mkdir -p /public

chmod 750 /public # 拒绝 :other其他人的任何权限

setfacl -m u:nobody:rwx /public # 仅允许:nobody匿名用户的读、写、执行权限

第二步, 编辑:smb.conf配置文件

vim /etc/samba/smb.conf

修改:[global]全局参数

[global]

添加:以下选项

map to guest = Bad User含义如下:

如果登录用户名 存在,但是用户密码不正确,则视为:登录失败

如果登录用户名不存在,则直接视为:由guest account选项定义的nobody账户

map to guest = Bad User

(匿名)共享发布:/public目录,共享名为[pub],只读共享权限

[pub]

设置:共享名的注释信息

comment = My public Share

允许:网络邻居浏览

browseable = Yes

设置:只读共享权限

read only = Yes

允许:权限继承

inherit acls = Yes

设置:共享目录路径

path = /public

允许:匿名访问

guest ok = Yes

设置:匿名账户为nobody账户

guest account = nobody

②本地验证:本地用户

第一步, 创建:本地用户账户,并设置Samba访问密码

useradd u1 -s /usr/sbin/nologin

创建:不可login登录的u1用户

useradd u2 -s /usr/sbin/nologin

创建:不可login登录的u2用户

smbpasswd -x root; (echo -e ‘123456\n123456’ | smbpasswd -a root)

smbpasswd -x u1; (echo -e ‘123456\n123456’ | smbpasswd -a u1)

smbpasswd -x u2; (echo -e ‘123456\n123456’ | smbpasswd -a u2)

pdbedit -Lw

查看:Samba用户及密码的存储信息

第二步, 创建:用于本地验证的目录,并设置本地权限

mkdir -p /company

chmod 750 /company # 拒绝 :other其他人的任何权限

setfacl -m u:u1:rwx /company # 仅允许:u1用户的读、写、执行权限

setfacl -m u:u2:r-x /company # 仅允许:u2用户的读、执行权限

第三步,编辑:smb.conf配置文件

vim /etc/samba/smb.conf

修改:[global]全局参数

[global]

确保以下配置选项值

security = user # 这是Samba最重要的设置之一,设置:设置验证方式,user表示samba用户本地验证

passdb backend = tdbsam # 设置:samba的用户口令验证的后台为tdbsam数据库文件(本地验证)共享发布:/company目

录,共享名为[company],读写共享权限

[company]

comment = My company Share

允许:网络邻居浏览

browseable = Yes

设置:读写共享权限

read only = No

允许:权限继承

inherit acls = Yes

设置:共享目录路径

path = /company

禁止:匿名访问

guest ok = No

三、FTP

(1)FTP介绍

主要用于互联网中文件的双向传输(上传/下载)、文件共享

l 跨平台 Linux、Windows

l FTP 是 C/S 架构,拥有一个客户端和服务端,使用 TCP 协议作为底层传输协议, 提供可靠的数据传输

l FTP 的默认端口 21 号(命令端口)20 号(数据端口,主动模式下)默认被动模式

l FTP 程序(软件)vsftpd

(2)FTP的两种模式

在 FTP 服务中,一共有两种模式(主动模式+被动模式)

说明:如果是 FTP 服务器主动连接客户端就是主动模式,如果是客户端主动连接 FTP服务器就是被动模式

①主动模式

 

原理:

第一步,客户端打开大于 1023 的随机命令端口和大于 1023 的随机数据端口向服务的的 21 号端口发起请求

第二步,服务端的 21 号命令端口响应客户端的随机命令端口

第三步,服务端的 20 号端口主动请求连接客户端的随机数据端口

第四步,客户端的随机数据端口进行确认

②被动模式

 

原理:

第一步,客户端打开大于 1023 的随机命令端口和大于 1023 的随机数据端口向服务的的 21 号端口发起请求

第二步,服务端的 21 号命令端口响应客户端的随机命令端口

第三步,客户端主动连接服务端打开的大于 1023 的随机数据端口

第四步,服务端进行确认

提示: FTP 默认使用的就是被动模式

(3)搭建FTP服务

①安装

yum -y install vsftpd

②启动vsftp并设置开机自启

systemctl start vsftpd

systemctl enable vsftpd

③测试

Ftp 默认的上传下载文件目录在/var/ftp/pub

(4)vsftp配置文件

/etc/vsftpd 配置文件的目录

/etc/vsftpd/ftpusers 用户列表文件,黑名单

/etc/vsftpd/user_list 用户列表文件,可黑可白(默认是黑名单)

/etc/vsftpd/vsftpd.conf 配置文件

/usr/lib/systemd/system/vsftpd.service 启动脚本

/usr/sbin/vsftpd 程序文件

/var/ftp 匿名用户的默认数据根目录(根目录权限最大 755)

/var/ftp/pub 匿名用户登录的数据目录

配置文件参数:

anonymous_enable=YES 支持匿名用户访问

local_enable=YES 支持非匿名用户,普通账号登录,默认进入用户的家目录

write_enable=YES 写总开关

local_umask=022 反掩码

dirmessage_enable=YES 启动消息功能

xferlog_enable=YES 开启或启用 xferlog 日志文件

connect_from_port_20=YES 是否支持主动模式

xferlog_std_format=YES xferlog 日志格式

listen=NO ftp 独立模式下的监听

listen_ipv6=YES

pam_service_name=vsftpd 指定认证文件

userlist_enable=YES 启用用户列表

tcp_wrappers=YES 限速操作

可以通过 man 5 vsftpd.conf 查看 vsftpd.conf 中配置文件其它参数,常用参数如下:

anonymous_enable 是否允许匿名用户访问 FTP

anon_mkdir_write_enable 是否允许匿名用户创建目录

anon_other_write_enable 是否允许匿名用户修改删除文件

anon_upload_enable 是否允许匿名用户上传文件

anon_root 设置匿名用户的根目录

write_enable 是否允许写操作

local_root 设置本地用户的根目录

chroot_list_file 指定限制用户的文件

chroot_local_user 是否限制用户在根目录下活动

(5)访问方式

vsftp支持匿名用访问与本地用户访问两种方式。

①配置匿名用户访问

Vsftpd 默认情况下是开启匿名用户访问,并且只允许匿名用户查看根目录下的文件和下载及切换根目录,不允许其它操作

anonymous_enable 是否允许匿名用户访问 FTP

anon_mkdir_write_enable 是否允许匿名用户创建目录

anon_other_write_enable 是否允许匿名用户修改删除文件

anon_upload_enable 是否允许匿名用户上传文件

anon_root 设置匿名用户的根目录

注意:设置了普通用户的根目录后,根目录权限不能超过 755,如果超过,访问时就会提示输入用户名和密码,无法登录。只能在根目录(/data/anon)下创建一个共享目录并给 777权限进行文件共享。

②配置本地用户访问

第一步,在 ftp 服务器上创建一个账号

第二步,设置本地共享目录权限

(6)客户端工具LFTP的使用

①上传

基本用法: put 本地文件

②下载

基本用法: get 远程文件名

默下载到当前路径下

③批量上传

只针对文件目录不行上传

基本用法: mput 本地文件

④批量下载

只争对文件,目录不可下载

基本用法: mget 远程文件名

⑤上传目录

基本用法: mirror -R

⑥本地目录

基本用法: mirror 远程目录

⑦ 删除文件

基本用法: rm [选项] 远程文件

四、RSYNC

(1)什么是rsync

rsync(remote sync)是一个功能强大的文件同步和备份工具,它支持本地和远程文件

复制,特别适用于需要增量备份或高效传输大型目录的场景。配置文件在/etc/rsyncd.conf。

数据同步过程

sync 数据同步:强制将修改过的数据块写入磁盘,对实时性要求较高

asyn 数据异步:将数据先放到缓冲区,再周期性的去同步到磁盘,适合大批量数据同步

(2)rsync特点

● 增量传输:rsync 通过比较源文件和目标文件的差异,只传输有变动的部分,从而节省带宽和时间。

● 网络支持:rsync 可以使用 SSH 或其他协议安全地在不同的计算机之间复制文件,非

常适用于远程备份和服务器之间的文件同步。

● 广泛的选项:rsync 提供了广泛的选项来定制同步过程,包括控制文件权限、所有权、

时间戳,处理符号链接,排除特定文件或目录等。

● 安全性:rsync 支持使用 scp、ssh 等方式来传输文件,确保数据传输的安全性。

● 匿名传输:支持匿名传输,方便进行网站镜像等操作。

(3)rsync的使用

基本语法 :

本地文件同步

Local: rsync [OPTION…] SRC… [DEST]

远程文件同步

Access via remote shell: (通过远程 shell 访问)

Pull: rsync [OPTION…] [USER@]HOST:SRC… [DEST]

Push: rsync [OPTION…] SRC… [USER@]HOST:DEST

Access via rsync daemon: (通过 rsync 后台进程访问)

Pull: rsync [OPTION…] [USER@]HOST::SRC… [DEST]

rsync [OPTION…] rsync://[USER@]HOST[:PORT]/SRC… [DEST]

Push: rsync [OPTION…] SRC… [USER@]HOST::DEST

rsync [OPTION…] SRC… rsync://[USER@]HOST[:PORT]/DEST

OPTION 选项说明

-v 详细模式输出

-a 归档模式,递归的方式传输文件,并保持文件的属性

-c 打开校验开关,强制对文件传输进行校验。

-r 递归拷贝目录

-l 保留软链接

-p 保留原有权限

-t 保留原有的时间

-g 保留组权限

-o 保留属组权限

-D 表示支持 b,c,s 等类型的文件

-R 保留相对路径

-H 保留硬链接

-A 保留 ACL 策略

-e 保留要执行的远程 shell 命令

-E 保留可执行权限

-X 保留扩展属性信息 a 属性

五、SSH

(1)SSH简介

ssh是一种用于安全访问远程服务器的协议,它是一种远程管理工具。它可以通过加密

的方式来管理连接服务,使登录服务器更加的安全!

(2)加密算法

①对称加密算法

发送方使用密码将明文数据加密成密文,然后发送出去

接收方收到密文后,使用同一个密钥将密文解密成明文进行读取

②非对称加密算法

发送方使用接收方发送过来的公钥将明文数据加密成密文,然后发送出去

接收方收到密文后,使用自己本地留存的私钥将密文解密成明文进行读取

对称加密算法与非对称加密算法区别:

对称加密:

①使用同一个密钥进行加密和解密,密钥容易泄露

②加密速度快,效率高,数据传输速度快,安全性较低

非对称加密:

①使用不同的密钥(公钥和私钥)进行加密和解密

②加密速度远远慢于对称加密,数据传输速度慢,安全性较高

(3)SSH原理

①SSH基于用户名密码验证

 

Ⅰ SSH 客户端向 SSH 服务端发起一个登录请求

Ⅱ SSH 服务端将自己的公钥发送给 SSH 客户端

Ⅲ SSH 客户端使用服务端发过来的公钥将自己输入的密码加密并且发送给 SSH 服务端

Ⅳ SSH 服务端收到 SSH 客户端发过来的加密密码后使用本地留存的私钥进行解密

Ⅴ SSH 服务端将解密出来的密码和/etc/shadow 文件里的用户密码对比认证

Ⅵ SSH 服务端认证成功,则返回登录成功结果,并发送一个随机会话口令给客户端,该口令用于后面两台主机进行数据传输的一个临时加密会话口令

②SSH基于密钥对验证

 

Ⅰ 客户端 A 生成秘钥对,并将公钥发送到服务端 B,服务端记录公钥匙,并保存到本地的authorized_keys 文件中

Ⅱ 客户端 A 发送登录请求,服务端比对客户端的公钥匙与自己的 authorized_keys 文件中的是否一致,如果一致则生成随机字符串,并且通过公钥匙加密成密文

Ⅲ 服务端 B 通过公钥加密的密文生成会话窗口,并发送密文到客户端

Ⅳ 客户端 A 通过自己的私钥解密,解密后的字符串发送给服务端

Ⅴ 服务端 B 验证解密后的字符串是否与自己加密前的一致

Ⅶ 如果一致则返回客户端的登录结果,完成登录

ssh 远程登录两种认证方式

基于用户名密码认证

① 用户身份认证(认证用户名和密码)使用非对称加密算法(安全)

② 数据传输使用对称加密算法(快)

③ 要知道访问服务器用户的密码  

基于密钥对的认证(免密码)

① 用户身份认证(比对用户公钥)使用非对称加密算法(安全)

② 数据传输使用对称加密算法(快)

③ 事先要将用户的公钥远程拷贝到服务器端

(4)SSH配置文件

SSH 服务端的配置文件在/etc/ssh/sshd_config

配置文件主要参数解释

PasswordAuthentication 是否允许密码验证(yes 允许、no 不允许)

Port ssh 连接端口 22(默认)

AuthorizedKeysFile 认证 key 文件,用户家目录下.ssh/authorized_keys

UseDNS 是否开启 SSH 登录时的 DNS 解析(默认 yes)

(5)基于用户名密码验证

基于用户密码的认证

用法: # ssh [选项] user@ip

常用选项:

-p 指定端口

(6)SCP

① 上传

基本语法:

#scp [选项] 本地文件路径 远程用户名@远程服务器的 IP 地址:远程文件存储路径

选项:

-r:递归上传,主要针对的是目录

-P:更改了 SSH 服务的默认端口需要使用-P 选项

② 下载

基本语法:

#scp [选项] 远程用户名@远程服务器的 IP 地址:远程文件存储路径 本地文件路径

-r:递归下载,主要针对的是目录

-P:更改了 SSH 服务的默认端口需要使用-P 选项

(7)SSH免密登录

第一步:在客户端主机针对某个账号生成公钥和私钥

ssh-keygen

第二步:使用某些方法把公钥发送到服务端,服务端将该公钥追加到 authorized_keys 文件中

ssh-copy-id 用户名@目标IP

(8)双机互信

第一步:两台机器都生成自己的公私钥

第二步:两台机器将自己的公钥传给对方

第三步:测试

**六、**vmware 中的三种网络

vmware 的三种网络分别为 桥接网络、NAT 网络、仅主机网络,并在 windows 对应的三块网卡

桥接网络:

使用 VMnet0 虚拟交换机,此时虚拟机相当于网络上的一台独立计算机,与主机一样,拥有一个独立的 IP 地址

NAT 网络:

使用 VMnet8 虚拟交换机,此时虚拟机可以通过主机单项访问网络上的其他工作站,其他工作站不能访问虚拟机

仅主机络网:

使用 VMnet1 虚拟交换机,此时虚拟机只能与虚拟机、主机互连与网上的其他工作站不能访问。

**(1)**vmnet0 桥接模式

VMnet0 桥接模式:和物理真机连接在同一交换机,相当于系统与 windows 处于同一

个网络环境中

● 与物理真机同网段

● 桥接模式可以连接网络

(2) VMnet1 仅主机模式 

VMnet1 仅主机模式,封闭的网络环境,仅能与 windows 物理真机 进行连接。无法

连接外网

● 与物理真机就不在同一个网段,拥有独立的 IP

● 仅可以进行内部连接

● 如果拥有一个虚拟的路由器,也能访问外网环境

(3) VMnet8 NAT 模式

VMnet8 NAT 模式:相当于一个独立的网络环境,与物理真机不处于同一个网段,但

是其可以通过虚拟网络路由器连接外网

关联文档

  • ../../network/网络 — 网络协议
  • Linux 基础 — Linux 基础