vsftpd配置备份
很早很早之前,在学校时写的,拿过来看看。还是颇有用得啥O(∩_∩)O~
上学期做过vsftpd的实验,是在学校里那台机子上的,由于要学rhce的课程,现在虚拟一台centos5.1的机子,主机建一个ftp用做数据交流 和centos的零时源。 上次的实验报告给删了,这次有意记下了主要的配置过程………… 可能不太详细(毕竟是在以前的基础上回忆做的)
1.保证内核编译正确
– Security options —>;
– Enable different security models
– <*>; Default Linux Capabilities
或者 ~# modprobe capability 也可。。
2.建立虚拟用户使用的 本地账户
– # useradd werewolf -s /sbin/nologin -d /home/ftp/
– # passwd werewolf
3.更改ftp目录权限
– # chmod 755 /home/ftp/
– # mkdir /home/ftp/pub
– # chmod 777 /home/ftp/pub/
vsftpd不允许在根目录下上传,所以见pub用来上传
4.进入mysql,创建数据库和用户表(使用pam_mysql 0.7RC1)
~# mysql -u root -p
– 创建数据库
create database ftpdb;
– 进入数据库
use ftpdb;
– 创建表
create table users(name char(20) not null, passwd char(128) not null);
– 插入用户
insert into users values(‘kldoo’, md5(‘***’)),(‘vampire’, md5(‘***’));
– 创建受限mysql用户,提供给vsftpd的pam验证模块使用
grant select on ftpdb.users to ftp_user@localhost identified by "***";
grant select on ftpdb.users to ftp_user@"%" identified by "***";
– 特权用户,用于日常维护
grant select,delete,update,insert on ftpdb.users to ftp_root@localhost identified by "***";
– 刷新权限
flush privileges;
5.修改/etc/pam.d/ftpdb (pam认证文件)
auth required /usr/lib/security/pam_mysql.so user=ftp_user passwd=*** host=localhost db=ftpdb table=users usercolumn=name passwdcolumn=passwd crypt=3
account required /usr/lib/security/pam_mysql.so user=ftp_user passwd=*** host=localhost db=ftpdb table=users usercolumn=name passwdcolumn=passwd crypt=3
– /etc/pam.d/ftpdb 文件中字段的意思是:
– 访问数据库用户名 user
– 访问数据库用户密码 passwd
– 数据库主机 host
– 数据库名 db
– 表名 table
– 用户列名 usercolumn
– 密码列名 passwdcolumn
– 密码验证机制 crypt (0 代表明文,1 代表DES 加密,2 代表Mysql的password()函数加密,3代表md5算法,4代表sha加密)
6.配置单个用户的权限
用户vampire
# 用户主目录
anon_root=/home/ftp
# 是否可写
write_enable=YES
# 本地用户上传权限
local_umask=022
# 最大下载速度 10000K
anon_max_rate=10240000
# 允许上传文件
anon_upload_enable=YES
# 下载可以访问的文件
anon_world_readable_only=NO
# 可以建文件夹
anon_mkdir_write_enable=YES
用户kldoo
# 用户主目录
anon_root=/home/ftp
# 是否可写
write_enable=YES
# 本地用户上传权限
local_umask=022
# 最大下载速度 1000K
anon_max_rate=1024000
# 允许上传文件
anon_upload_enable=YES
# 下载可以访问的文件
anon_world_readable_only=NO
# 可以建文件夹
anon_mkdir_write_enable=YES
# 其他权限(rename,delete...)
anon_other_write_enable=YES
7.我的/etc/vsftpd.conf文件
#@file: /etc/vsftpd.conf
#
##############################
### 1.连接设置
##############################
# Use this to use vsftpd in standalone mode, otherwise it runs through (x)inetd
listen=YES
#listen_ipv6=YES
# 监听IP
listen_address=172.16.109.1
#listen_address=192.168.1.121
#listen_address6=
# 最大客户端连接数
max_clients=20
# 每IP最大连接数
max_per_ip=5
# 交互发呆时间(空闲连接超时)
idle_session_timeout=600
# 数据传输超时
data_connection_timeout=120
#
# 1.2 连接模式
# 监听端口
listen_port=2221
#
# PORT模式
# 是否启用port模式
port_enable=YES
# port模式下是否使用默认固定20端口
connect_from_port_20=YES
# 自定义port端口
#ftp_data_port=2220
# 是否使用安全的port模式
#port_promiscuous=NO
# port模式连接超时
connect_timeout=60
#
# Passive连接模式
# 启用pasv模式(vsftpd默认)
pasv_enable=YES
# pasv模式下开启的端口范围
pasv_min_port=2222
pasv_max_port=2227
# 启用安全的pasv模式
pasv_promiscuous=NO
# pasv模式监听的IP地址
#pasv_address=192.168.1.121
# pasv模式连接超时
accept_timeout=60
#
##############################
### 2.用户权限管理
##############################
# 2.1 全局变量
# Uncomment this to enable any form of FTP write command.
write_enable=NO
# 全局可下载
download_enable=YES
# 允许所有用户列出文件列表(全局可浏览)
dirlist_enable=YES
#
# 2.2 匿名用户设置
# 允许匿名用户
anonymous_enable=YES
# 匿名用户无需密码
no_anon_password=YES
# 匿名用户主目录
#anon_root=
# 下载速度上限 8000KB: 1024x80=81920字节
anon_max_rate=8192000
# 是否允许匿名用户上传文件
anon_upload_enable=NO
# 是否允许匿名用户建立文件夹
anon_mkdir_write_enable=NO
# 可以下载所有用户都可以访问的文件
# NO则可以下载所有文件
anon_world_readable_only=YES
# 其他权限(rename,delete...)
anon_other_write_enable=NO
# 修改上传文件所有者
#chown_uploads=YES
# 上传文件所有者
#chown_username=ftp
# 上传文件权限
anon_umask=022
# 使用邮件列表来控制匿名用户的登录
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# 2.2 本地用户设置
# 允许本地用户登录
local_enable=YES
# 本地用户主目录
#local_root=/path
# 本地用户上传文件权限
local_umask=022
# 本地用户传输速率
#local_max_rate=
# 是否允许本地用户改变ftp服务器上文件的权限
chmod_enable=NO
# 用户单独配置文件所在目录
user_config_dir=/etc/vsftpd/users
# 是否开启userlist功能模块
userlist_enable=NO
# 是否拒绝userlist中的用户
userlist_deny=NO
# 指定userlist文件路径
userlist_file=/etc/vsftpd/userlist
# 是否启用chroot_list功能
chroot_list_enable=NO
# 是否限制本地用户的根目录为自己的主目录
chroot_local_user=YES
# 设置chrootlist的路径
#chroot_list_file=/etc/vsftpd/chrootlist
#
# 2.3 虚拟用户
# 是否允许虚拟用户
guest_enable=YES
# 虚拟用户映射的本地用户
guest_username=werewolf
# 虚拟用户使用本地用户权限
#virtual_use_local_privs=NO
#
##############################
### 3.FTP服务器配置
##############################
# 使用PAM认证
#pam_service_name=vsftpd.pam
pam_service_name=ftpdb
# TCP Wrappers IP 防火墙
#tcp_wrappers=YES
# 登录FTP时的欢迎语句
ftpd_banner="Welcome to kldoo's FTP Server."
# 使用欢迎文件
#banner_file=/path/to/filename
# 显示单个文件夹信息(目录下.message文件)
dirmessage_enable=YES
# 禁止`ls -R`,提高性能
#ls_recurse_enable=YES
# 显示本地时间
use_localtime=YES
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
### 3.2 日志
# 是否把日志写入系统日志/var/log/message
#syslog_enable=NO
#
# 3.2.2 早期Wu-ftpd的日志格式
# 采用xferlog日志格式
xferlog_enable=NO
# 日志位置
#xferlog_file=/var/log/vsftpd.log
# 采用标准格式记录日志
#xferlog_std_format=YES
#
# 3.2.3 Vsftpd日志方式
# 采用vsftpd自己的日志记录方式
dual_log_enable=YES
# 是否记录所有ftp命令
log_ftp_protocol=YES
# 日志位置
vsftpd_log_file=/var/log/vsftpd.log
#
### 3.3 SSL 加密
# 启用SSL加密
ssl_enable=NO
# rsa证书的位置
rsa_cert_file=/etc/vsftpd/vsftpd.pem
# dsa证书位置
#dsa_cert_file=/path
#
# 允许匿名用户使用SSL,默认为no
allow_anon_ssl=YES
# 匿名用户登录时是否加密,默认为no
force_anon_logins_ssl=YES
# 匿名用户数据传输时是否加密,默认为no
force_anon_data_ssl=YES
#
# 非匿名用户登陆时是否加密,默认为yes
force_local_logins_ssl=YES
# 非匿名用户传输数据时是否加密,默认为yes
force_local_data_ssl=YES
#
# 是否激活sslv2加密,默认no
#ssl_sslv2=YES
# 是否激活sslv3加密,默认no
#ssl_sslv3=YES
# 激活tls v1加密,默认yes
#ssl_tlsv1=YES/NO
# 默认是DES-CBC3-SHA
#ssl_ciphers=
#
# File /etc/vsftpd.conf DONE
The End...... 现在启动vsftpd即可
