FTP服务器简介:
FTP服务器,则是在互联网上提供
存储空间的计算机,它们依照
FTP协议提供服务。 FTP的全称是File Transfer Protocol()
在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
每位用户的最大连接数
转载于:https://blog.51cto.com/sunentao/991898