菜鸟学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并配置