菜鸟学Linux 第064篇笔记 ftp概念,vsftp配置

简介:

菜鸟学Linux 第064篇笔记 ftp概念,vsftp配置




Name Resolve (名称解析): 

Username--> UID, Group-->GID, Service Name --> Port, Hostname --> IP


Username --> UID /etc/passwd

hostname --> IP DNS, /etc/hosts

Service Name --> Ports /etc/services, 

只要有一种数据存储格式格式: 解析库;不同的解析库需要不同的查询方式;


NS Switch (Name Server Switch)



S/MIME

Openssl, GPG(PGP) GNU Is Guard



FTP (File Transfer Protocol) 21/tcp

文件共享服务; 

工作在应用层;

RPC:Remote Procedure Call, 远程过程调用, 基于二进制格式实现数据通信

NFS:Network File System (RFC)

Samba: CIFS/SMB,通用网络文件系统(跨平台


FTP: tcp 两个连接

命令连接(控制连接) 21/tcp

数据连接 

主动模式 20/tcp  服务器主动发送连接请求

被动模式 端口随机, 由服务器随机打开一个端口通过控制连接发送给客户端

 由客户端发起连接 (避免被客户端Firewall阻止)如果server也有Firewall

Firewall 具有连接追踪功能,可以觉察出进程间的联系,而做出相应反应(以后细讲)


数据传输模式(自动模式):

文本(ASCII America Standard Code for Information InterChange)

二进制


结构化数据、半结构化数据、非结构化数据




FTP 实现 

服务器端程序

wu-ftpd: Warshington University

vsftpd: Very Secure ftp Daemon

proftpd:

pureftpd:

Filezilla

Serv-U(windows)


客户端程序

CLI:

ftp

lftp


GUI:

gftpd

FlashFXP

Cuteftp

Filezilla



vsftpd

/etc/vsftpd 配置文件夹

/etc/init.d/vsftpd 服务脚本

/usr/sbin/vsftpd 主程序

/var/ftp  该目录除管理员之外其它用户没有写权限,FTP的根目录


基于PAM实现用户认证 (Pluggable Authentication Modules)

类似nsswitch 一种框架认证机制

/etc/pam.d/*

/lib/security/*

支持虚拟用户



ftp 用户

匿名用户-->系统用户 anonymous

系统用户 local-enable

虚拟用户-->系统用户 


/var/ftp ftp用户家目录 

匿名用户访问目录 anonymous

chroot 

禁锢用户锁定其只可在家目录内



下面开始安装FTP 服务器vsftpd (默认开启匿名访问)

# yum install vsftpd

# service vsftpd start

# chkconfig --list vsftpd

(服务器安装成功,并可以访问)


分析配置文件

/etc/vsftpd/vsftpd.conf

用来配置用户权限

记录日志

定义会议日志

文本模式上传下载

配置用户使其禁锢在其家目录中

#chroot_list_enable=YES

# (default follows)

#chroot_list_file=/etc/vsftpd/chroot_list

或直接使用chroot_local_user=YES

配置vsftpd是启动为独立守护进程

基于pam认证的文件名字

用户列表是否启用

用户列表是否允许登录

Userlist_deny={YES|NO}

max_clients=

max_per_ip=


守护进程

独立守护

瞬时守护

由xinetd



ftp安全通信方式

ftps: ftp+ssl/tls

sftp: OpenSSH, subsystem, sftp(SSH)


建立CA服务器

生成ftp私钥、密钥请求文件、

使用CA 服务器为ftp服务器颁发证书

在/etc/vsftpd/vsftpd.conf 添加如下配置


ssl_enable=YES

ssl_tlsv1=YES

ssl_sslv3=YES

allow_anon_ssl=NO

force_local_data_ssl=YES

force_local_logins_ssl=YES

rsa_cert_file=/etc/vsftpd/ssl/vsftpd_cert.pem

rsa_private_key_file=/etc/vsftpd/ssl/vsftpd_key.pem



ftp 虚拟用户实现PAM(手动配置PAM文件)

基于mysql: VSFTPD user:name,password

基于file /etc/vsftpd/vusers: -->db_load

USERNAME

PASSWORD


基于mysql实现虚拟用户

安装mysql mysql-devel mysql-server

安装pam mysql模块使其可支持其于mysql来进行认证

在mysql创建数据库,表,字段和专用来访问该数据库的用户, 供pam调用

在表中创建几条数据供vsftp服务器用户登录

建立pam认证所需文件/etc/pam.d/vsftp.mysql并配置

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1887774如需转载请自行联系原作者


Winthcloud
相关文章
|
4月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
2月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
316 11
|
9月前
|
安全 Linux 开发工具
【Linux】vim使用与配置教程
Vim是一款功能强大的文本编辑器,广泛应用于Linux环境,是开发者和系统管理员的必备工具。本文介绍了Vim的基本操作与简单配置,涵盖命令模式、插入模式和底行模式的使用方法,以及光标定位、复制粘贴、搜索替换等常用技巧。同时,文章还提供了实用的分屏操作和代码注释方法,并分享了通过`.vimrc`文件进行个性化配置(如显示行号、语法高亮、自动缩进等)的技巧,帮助用户提升文本编辑效率。掌握这些内容,能让Vim更好地服务于日常工作与开发需求。
655 3
|
5月前
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
301 0
|
7月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
489 11
|
7月前
|
运维 监控 中间件
Linux运维笔记 - 如何使用WGCLOUD监控交换机的流量
WGCLOUD是一款开源免费的通用主机监控工具,安装使用都非常简单,它可以监控主机、服务器的cpu、内存、磁盘、流量等数据,也可以监控数据库、中间件、网络设备
|
6月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
357 0
|
8月前
|
Ubuntu 安全 网络安全
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
482 13
|
8月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
377 10
|
9月前
|
Java Linux 应用服务中间件
在Rocky Linux 9上安装JDK并配置环境变量!
本教程介绍在Rocky Linux 9上安装JDK并配置环境变量的完整步骤。首先更新系统,清理旧版本JDK相关包及残留文件,确保环境干净。接着搜索并安装所需版本的JDK(如OpenJDK 17),验证安装是否成功。然后查找JDK安装路径,配置全局环境变量`JAVA_HOME`和`PATH`,最后验证环境变量设置。按照此流程操作,可顺利完成Java开发环境搭建,支持多版本切换(如JDK 8/11/17)。生产环境请谨慎操作,避免影响现有服务。
1509 21