Skip to content

本实验内容

1.配置Samba文件共享服务器 2.使用Samba客户程序 3.配置vsftpd服务

前置条件

02.配置镜像源

安装 Samba 服务端

1. 安装 Samba

bash
dnf install -y samba

2. 创建 Samba 用户

bash
# 创建系统用户(禁止登录)


<NolebasePageProperties />




useradd -M -s /sbin/nologin smbuser

# 设置 Samba 密码
smbpasswd -a smbuser

3. 创建共享目录

共享目录为 /srv/samba/share

bash
mkdir -p /srv/samba/share
chown -R smbuser:smbuser /srv/samba/share
chmod -R 775 /srv/samba/share

4. 编辑 Samba 配置文件

配置文件路径:/etc/samba/smb.conf

ini
[share]
    comment = Share for smbuser
    path = /srv/samba/share
    browseable = yes
    writable = yes
    valid users = smbuser
    force user = smbuser
    read only = no

说明:该配置仅允许 smbuser 用户访问共享目录,并拥有读写权限。

5. 配置 SELinux(如果启用)

bash
semanage fcontext -a -t samba_share_t "/srv/samba/share(/.*)?"
restorecon -Rv /srv/samba/share

6. 配置防火墙

bash
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

7. 启动并设置开机自启

bash
systemctl enable --now smb

8. 重启服务

bash
systemctl restart smb

上述配置用于配置smbuser用户的访问,下文配置游客模式的smb共享

Samba客户端

Windows SMB客户端

客户端IP展示: ![[Pasted image 20250930155935.png]] 客户端连接服务器的samba服务器 ![[Pasted image 20250930160249.png]] 如下图,成功连接上SMB服务 ![[Pasted image 20250930160557.png]]

配置FTP服务

安装软件包

dnf install -y vsftpd

创建FTP根目录

mkdir -p /data/vsftpd
chmod -R 755 /data/vsftpd
mkdir -p /data/vsftpd/upload
chmod 777 /data/vsftpd/upload

修改配置文件

vi /etc/vsftpd/vsftpd.conf

配置文件如下

listen=YES
listen_port=21
anonymous_enable=YES
local_enable=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

anon_root=/data/vsftpd

anon_world_readable_only=NO
allow_writeable_chroot=YES

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100

hide_ids=YES

开启防火墙

firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=40000-40100/tcp
firewall-cmd --reload

SeLinux放行

setsebool -P allow_ftpd_anon_write on
setsebool -P ftpd_full_access on

启动并设置开机重启

systemctl enable --now vsftpd

开放FTP端口

firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=40000-50000/tcp
firewall-cmd --reload

启用 vsftpd 的 SELinux 规则

setsebool -P ftpd_full_access on

配置 vsftpd 主配置文件

vsftpd 的配置文件路径为:/etc/vsftpd/vsftpd.conf

先备份文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

编辑配置文件

vim /etc/vsftpd/vsftpd.conf

推荐配置:

# 允许匿名访问(如不需要可设为NO)
anonymous_enable=NO

# 允许本地用户登录
local_enable=YES

# 允许上传文件
write_enable=YES

# 上传文件默认权限
local_umask=022

# 显示欢迎语
dirmessage_enable=YES

# 启用日志记录
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

# 使用 ASCII 模式传输文本文件
ascii_upload_enable=YES
ascii_download_enable=YES

# 使用 IPv4
listen=YES
listen_ipv6=NO

# 启用被动模式(推荐)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

# 限制用户访问自己家目录
chroot_local_user=YES
allow_writeable_chroot=YES

配置完成后重启服务

systemctl restart vsftpd

创建 FTP 用户

新建一个用户并修改密码:

useradd ftpuser -d /var/ftp/ftpuser -s /sbin/nologin
passwd ftpuser

创建目录并设置权限

mkdir -p /var/ftp/ftpuser
chown ftpuser:ftpuser /var/ftp/ftpuser
chmod 755 /var/ftp/ftpuser

![[Pasted image 20251014140331.png]]

这样配置的话没法登录到FTP服务器上,需要配置FTPS

配置FTPS

生成自签名证书

openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/pki/tls/private/vsftpd.key \
-out /etc/pki/tls/certs/vsftpd.crt

![[Pasted image 20251014140507.png]]

除了国家码需要输入CN之外,其他都默认即可

添加FTPS配置

编辑配置

vim /etc/vsftpd/vsftpd.conf
# 开启 SSL
ssl_enable=YES

# 指定证书路径(可自签)
rsa_cert_file=/etc/pki/tls/certs/vsftpd.crt
rsa_private_key_file=/etc/pki/tls/private/vsftpd.key

# 强制加密
force_local_data_ssl=YES
force_local_logins_ssl=YES

# TLS版本(Windows兼容)
ssl_tlsv1_2=YES
ssl_tlsv1_3=YES

重启配置

systemctl restart vsftpd

贡献者

The avatar of contributor named as lishu620 lishu620

文件历史

撰写