【Linux网络配置实验】FTP配置

总体流程

服务端

  1. 创建站点主目录/var/xxxftp
  2. 配置vsftpd 的主配置文件,/etc/vsftpd/vsftpd.conf
  3. 创建不能通过 Shell 登录的用户
  4. 创建用户操作目录
  5. 创建FTP服务中的用户配置文件/etc/vsftpd/vsftpd_user_conf/
  6. 配置FTP服务中的用户配置文件/etc/vsftpd/vsftpd_user_conf/shnsftp1
  7. 启动服务service vsftpd restart

虚拟用户登录,并且SSL认证
  1. 创建用户目录 mkdir /home/shnvftp touch /home/shnvftp/testv1
  2. 配置虚拟用户 /etc/vsftpd/login.txt
  3. txt转换db db_load -T -t hash -f login.txt login.db
  4. 验证虚拟用户 /etc/pam.d/vsftpd
  5. 创建FTP服务中的用户配置文件/etc/vsftpd/vsftpd_user_conf/
  6. 配置FTP服务中的用户配置文件/etc/vsftpd/vsftpd_user_conf/shnvftp1 目录与权限
  7. 创建SSL证书
  8. 开启/etc/vsftpd/vsftpd.conf中的SSL
  9. 启动服务service vsftpd restart
  10. 监听管口 tshark -ni eth0 -R "tcp.port eq 21"

客户端

  1. 登录ftp
虚拟用户登录,并且SSL认证
  1. 使用高级的图形客户端登录

配置vsftpd

ini 复制代码
1 #允许匿名用户登录
2 anonymous_enable=no

14 #本地用户登录服务器所访问的路径
15 local_root=/var/shnftp

52 #登录时显示欢迎信息,如果设置了banner_file则此设置无效
53 ftpd_banner=欢迎登录shn'ftp服务器。
54 #登录用户允许使用ls -R命令,(一般禁止,服务器开销巨大)
55 #ls_recurse_enable=YES
56 #是定服务器在StandAlone模式下,不依赖于xinetd,可以独立启动
57 listen=YES
58 listen_address=10.10.1.10

61 # SSL/TLS加密 先No 后面使用SSL再开启
62 ssl_enable=No

创建用户

bash 复制代码
useradd shnsftp1 -s /sbin/nologin
passwd shnsftp1

创建操作目录

bash 复制代码
mkdir shnsftp
chown -R shnsftp1.shnsftp1 /shnsftp
chmod 777 shnsftp
touch shnsftp/tests1

创建FTP服务中的用户配置文件

bash 复制代码
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd_user_conf/shnsftp1
  • shnsftp1:为刚才创建的用户名

配置FTP服务中的用户配置文件

ini 复制代码
 8 #全局控制-可以上传
 9 write_enable=no 
10 #设置允许下载
11 download_enable=yes

14 #本地用户登录服务器所访问的路径
15 local_root=/shnsftp
16 #允许匿名用户上传
17 anon_upload_enable=no

39 #设定vsftpd的服务日志保存路径(默认不存在,必须手动touch,并提升权限)
40 #xferlog_file=/var/log/xferlog
41 #设定日志使用标准的记录格式
  • 权限允许下载,禁止上传,操作目录只限于/xxxsftp下
  • write_enable=yse 就可以增删改
  • 40行注释以后的内容都可以删掉

配置虚拟用户

复制代码
  1 shnvftp1
  2 shnvftp1
  • 单数行为用户名
  • 双数行为密码

验证虚拟用户

bash 复制代码
3 auth    sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/login

7 account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/login

创建SSL

bash 复制代码
# openssl req -x509 -days 365 -newkey rsa:2048 -nodes -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem                                   // 创建 SSL
Generating a 2048 bit RSA private key
.............................................+++
....+++
writing new private key to '/etc/vsftpd/vsftpd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:cn                                  // 国家
State or Province Name (full name) [Berkshire]:ln                     // 省
Locality Name (eg, city) [Newbury]:ltu                                // 城市
Organization Name (eg, company) [My Company Ltd]:soft                 // 组织
Organizational Unit Name (eg, section) []:network                     // 单位名称
Common Name (eg, your name or your server's hostname) []:localhost    // 主机名称        
Email Address []:
# chmod 600 vsftpd.pem                                                // 授权权限

登录ftp

bash 复制代码
# ftp 10.10.1.10                                                // 连接 ftp
Connected to 10.10.1.10.
220 欢迎登录shn'ftp服务器。
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (10.10.1.10:root): shnmftp1                              // 登录
331 Please specify the password.
Password:                                                     // 密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls                                                       // 查看
227 Entering Passive Mode (10,10,1,10,247,9)
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 May 13 06:14 m1
drwx------    2 603      603          4096 May 20 03:31 shnm
226 Directory send OK.
ftp> get m1 /var/m99                                          // 下载
local: /var/m99 remote: m1
227 Entering Passive Mode (10,10,1,10,35,242)
150 Opening BINARY mode data connection for m1 (0 bytes).
226 File send OK.
ftp> put /var/m99 ./s99                                      // 上传
local: /var/m99 remote: ./s99
227 Entering Passive Mode (10,10,1,10,244,124)
150 Ok to send data.
226 File receive OK.
ftp> delete s99                                              // 删除
250 Delete operation successful.
ftp> quit                                                    // 退出
221 Goodbye.

高级的图形客户端登录

相关推荐
星沉地动34 分钟前
Makefile参考样例5:多个文件夹.c和.cpp混合编译
linux
街灯L35 分钟前
【Linux】Tomcat搭建
java·linux·服务器·tomcat
riverz12271 小时前
‘Target closed‘ error in Puppeteer解决
linux
GineLee1 小时前
吉林大学操作系统期末复习整理
linux·服务器·经验分享·架构·硬件工程·安全架构
就叫飞六吧1 小时前
VMware安装Ubuntu并实现root远程登录
linux·运维·ubuntu
潇-xiao2 小时前
Makefile的通用模板 + 倒计时小程序(13)
linux·makefile
我叫黑大帅2 小时前
【Linux网络配置实验】Web配置
linux
tq10863 小时前
值类:Kotlin中的零成本抽象
java·linux·前端
Jooolin4 小时前
【操作系统】这么多任务,操作系统是怎么忙得过来的?
linux·操作系统·ai编程