FTP服务器简介:

 
在Linux中简单的搭建ftp服务器的步骤:
vim /etc/sysconfig/i18n 禁止文件中的中文支持,防止乱码
rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm 安装vsftp
service vsftpd start 启动vsftp     chkconfig vsftpd on 设为开机启动
这时可以通过浏览器输入ftp服务器的地址访问ftp
不通过用户名和密码登陆,此时的登陆方式为---匿名登陆
vim /etc/vsftpd/vsftpd.conf 查看ftp的配置文件:
anonymous_enable=YES       匿名登陆开启
local_enable=YES            本地登陆开启
write_enable=YES            支持网路写权限
local_umask=022             本地账号的权限掩码,最终造成本地权限为644
anon_umask=073             匿名登陆权限掩码,最终权限为603
#anon_upload_enable=YES     匿名上传功能关闭
#anon_mkdir_write_enable=YES    匿名写的功能关闭
anon_other_write_enable=YES      匿名的其他写的权限(自己设置)
dirmessage_enable=YES        目录提示
xferlog_enable=YES           日志功能
#xferlog_file=/var/log/xferlog    日志产生的文件位置(要产生日志把此行打开)
xferlog_std_format=YES        日志的格式
#deny_email_enable=YES        默认管理邮箱
#banned_email_file=/etc/vsftpd/banned_emails 邮箱所在位置
#chroot_list_enable=YES         本地账号切换目录功能
#chroot_list_file=/etc/vsftpd/chroot_list 不可以切换目录账号设置文件位置
listen=YES      独立进程不依赖于超级守护进程
pam_service_name=vsftpd 支持pam模块的验证方式
userlist_enable=YES    
tcp_wrappers=YES      借助于软件防火墙进行用户过滤
修改上传文件的权限,可以支持其他用户下载 chmod o+r 文件名
本地登陆:通过浏览器访问ftp时。右键有登陆选项,选择登陆,输入正确的账号和密码,可以看到账号特有的文件,当网络权限开启,本地权限也支持写,这样还可以对ftp服务器进行编写文件的操作
登陆ftp服务器的方法有:
1命令行登陆 ftp 地址
2浏览器      ftp:// 地址
3客户端软件登陆 如cuteftp      leapftp   flusbxp
ftp服务器的安全性的增强:
方法一:安装ftps增强安全性
cd /etc/pki/CA 切换目录
vim /etc/pki/tls/openssl.cnf 编辑文件
dir              = /etc/pki/CA 证书路径
countryName              = optional
stateOrProvinceName      = optional
organizationName         = optional
证书文件修改好后创建3个目录2个文件
mkdir crl certs newerts
touch index.txt serial
echo "01">serial 给文件赋初值
openssl genrsa 1024 >private/cakey.pem生成公钥
chmod 600 private/*    修改权限
openssl req -new -key private/cakey.pem -x509 -out cacert.pem生成证书
mkdir /etc/vsftpd/certs 在ftp上创建存放证书的目录
cd /etc/vsftpd/certs/
openssl genrsa 1024 >vsftpd.key 生成私钥
openssl req -new -key vsftpd.key -out vsftpd.csr 请求
openssl ca -in vsftpd.csr -out vsftpd.cert 生成证书
vim /etc/vsftpd/vsftpd.conf编辑文件声明证书和钥匙位置,并设置哪些方式启用ssl
rsa_cert_file=/etc/vsftpd/certs/vsftpd.cert
rsa_private_key_file=/etc/vsftpd/certs/vsftpd.key
ssl_tlsv1=YES
ssl_sslv3=YES
ssl_sslv2=YES
ssl_enable=YES
force_local_logins_ssl=YES
force_local_data_ssl=YES
service vsftpd restart重启ftp
登陆测试此时抓包工具无法获取数据。
方法二:利用虚拟账号登陆
虚拟账号登陆是利用一个虚拟的账号映射一个真实账号进行登录ftp,但抓包只能抓取虚拟的账号和密码从而增强ftp服务器的安全性。
cd /etc/vsftpd/ 切换到目录
vim viruser.txt 创建一个文件,写入虚拟账号和密码
例如:test
            123
rpm -ivh db4-utils-4.3.29-10.el5.i386.rpm安装db工具包
db_load -T -t hash -f viruser.txt viruser.db 把存放虚拟账号的文件变为数据库文件
vim /etc/pam.d/vsftpd编辑文件,只保留以下内容
auth        required     pam_userdb.so db=/etc/vsftpd/viruser
account        required pam_userdb.so db=/etc/vsftpd/viruser
为pam模块指定文件位置和操作
vim /etc/vsftpd/vsftpd.conf编辑文件
guest_enable=YES
guest_username=user4    //设置user4为虚拟账号
创建测试账号user4
测试虚拟账号登陆

 

虚拟账号登陆成功
可以在ftp配置文件/etc/vsftpd/vsftpd.conf中设置相关参数来控制本地账户和匿名账户登陆和下载的不同待遇
anon_max_rate    匿名账户下载速率
local_max_rate    本地账户下载速率
max_clients       控制连接用户数量
max_per_ip       每位用户的最大连接数