CenOS6.0 源码安装vsftpd 配置虚拟用户
来源:互联网 发布:搞基漫画软件 编辑:程序博客网 时间:2024/05/29 03:36
#先做些准备工作
#查看安装vsftpd需要的基本组件是否安装
#虚拟用户生成密码时需要组件
rpm –qa | grep db4
#虚拟用户需要使用的组件
rpm –qa | grep pam-devel
#编译安装时需要使用的组件
rpm –qa | grep gcc
#支持tcp_wrappers使用的组件
rpm –qa | grep tcp_wrappers
#ftp客户端测试时使用
rpm –qa | grep ftp
#安装前,如果已经安装则不需要安装
#通过yum安装
yum install pam-devel
yum install gcc
yum install tcp_wr*
yum install ftp
#或批量安装,自动确认。
yum install pam-devel gcc tcp_wr* ftp -y
#安装完所需软件
#建立所需的目录
#解压之前存放的路径
mkdir –p /data/software
#存放vsftpd的主文件
mkdir –p /usr/local/vsftpd/sbin
#存放vsftpd的配置文件
mkdir /usr/local/vsftpd/etc
#vsftd所需的特殊目录
mkdir /usr/local/vsftpd/empty
chmod 555 /usr/local/vsftpd/empty
#建立ftp目录
mkdir /data/ftp
#建立日志目录
mkdir –p /data/log/vsftpd/
#创建日志文件
touch /data/log/vsftpd/vsftpd.log
#建立所需的用户
useradd –M vsftp –d /data/ftp –s /sbin/nologin
备注:要确认系统存在nobody用户,如果没有需要添加
cat /etc/passwd | grep ^nobody
#nobody 用户配置
nobody:x:99:99:Nobody:/:/sbin/nologin
#下载vsftpd
#下载链接获取,vsftpd官方网站。
#https://security.appspot.com/vsftpd.html#download
#貌似被墙了,用代理上吧。
#如果被墙了,用代理下载完,通过SSH传到主机里吧。
#备注
#2.3.5版本有bug..把文件名改成2.3.4下载,bug困扰我好长时间。。。
#解压缩文件
tar –zxvf /data/software/vsftpd-2.3.5.tar.gz –C /usr/local/src/
#进入解压缩的目录
cd /usr/local/src/vsftpd-2.3.5
#查看README
cat README
#软件自身介绍,如果安装查看INSTALL,可以通过man 5 vsftpd.conf查看配置帮助,示例文件在EXAMPLE目录下。
#查看安装说明
cat INSTALL
#此文件说明如何安装vsftpd
#首先编辑builddefs.h
vi builddefs.h
#支持tcpwrappers,和pam
#编译,如果没有错误就说明更新成功
make
#安装,实际复制几个文件就OK了
cp vsftpd /usr/local/vsftpd/sbin/
cp vsftpd.conf /usr/local/vsftpd/etc/
#配置vsftpd
vi /usr/local/vsftpd/etc/vsftpd.conf
#日志保存路径
xferlog_file=/data/log/vsftpd/vsftpd.log
#标准日志格式
xferlog_std_format=YES
#ftp 欢迎语
ftpd_banner=Welcome to blah FTP service.
#独立监听
listen=YES
#匿名用户为vsftp
ftp_username=vsftp
#空目录
secure_chroot_dir=/usr/local/vsftpd/empty
#建立测试目录
mkdir /data/ftp/test
#启动服务
/usr/local/vsftpd/sbin/vsftpd /usr/local/vsftpd/etc/vsftpd.conf &
#测试连接
ftp 127.0.0.1
#用户名 anonymous
#密码为空
#显示列表
dir
#ftp 成功登陆,下面开始配置虚拟用户。
#创建密码库
vi /usr/local/vsftpd/etc/login
test1
123
test2
123
#创建两个用户,test1,test2,密码为123
#奇数为用户名,偶数为密码。
#更改文件权限
chmod 600 /usr/local/vsftpd/etc/login
#生成密码库
db_load -T -t hash -f /usr/local/vsftpd/etc/login /usr/local/vsftpd/etc/login.db
chmod 600 /usr/local/vsftpd/etc/login.db
#复制认证文件
cp /usr/local/src/vsftpd-2.3.5/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd
#修改文件内容
vi /etc/pam.d/vsftpd
auth required /lib/security/pam_userdb.so db=/usr/local/vsftpd/etc/login
account required /lib/security/pam_userdb.so db=/usr/local/vsftpd/etc/login
#创建虚拟用户配置目录
mkdir /usr/local/vsftpd/etc/user_config
#编辑配置文件
vi /usr/local/vsftpd/etc/vsftpd.conf
#禁止匿名登录
anonymous_enable=NO
#开启本地登录
local_enable=YES
#开启写权限,如果此权限不开,anon_mkdir_write_enable设置会无效。
write_enable=YES
#开启虚拟用户
guest_enable=YES
#虚拟用户
guest_username=vsftp
#pam
pam_service_name=vsftpd
#虚拟用户权限配置目录
user_config_dir=/usr/local/vsftpd/etc/user_config
#被动模式端口
pasv_max_port=60050
pasv_min_port=60000
#具体配置如下
cat /usr/local/vsftpd/etc/vsftpd.conf | grep ^# -v
#更改目录所属者,否则不能创建文件等
chown vsftp:vsftp /data/ftp
#建立test1用户
mkdir /data/ftp/test1
chown vsftp:vsftp /data/ftp/test1
#建立和用户名相同的文件
vi /usr/local/vsftpd/etc/user_config/test1
#是否禁止浏览目录,默认是
anon_world_readable_only=NO
#是否允许创建文件夹,但不能阻止用户上传文件夹
anon_mkdir_write_enable=YES
#是否允许上传文件及文件夹
anon_upload_enable=YES
#是否允许用户修改,删除文件和文件夹
anon_other_write_enable=YES
#主目录
local_root=/data/ftp/test1
#kill掉进程
#重启服务即可
/usr/local/vsftpd/sbin/vsftpd /usr/local/vsftpd/etc/vsftpd.conf &
#测试
#开机启动
echo '/usr/local/vsftpd/sbin/vsftpd /usr/local/vsftpd/etc/vsftpd.conf &' >> /etc/rc.local
#更改监听端口,IP访问限制
#监听端口
listen_port=自定义其他端口
#开启tcp_wrappers
vi /usr/local/vsftpd/etc/vsftpd.conf
tcp_wrappers=YES
#开启192.168.0.1网段允许访问
echo 'vsftpd:192.168.0.*:allow' >> /etc/hosts.allow
#阻止所有用户
echo 'vsftpd:all:deny' >> /etc/hosts.deny
#hosts.allow和hosts.deny发生冲突时以host.allow为准。
#开启iptables
/sbin/iptables -A INPUT -p tcp --dport 60000:60050 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#卸载程序
rm –rf /usr/local/vsftpd
rm –r /etc/pam.d/vsftpd
#删除开机启动,删除对应行
vi /etc/rc.local
#删除IP限制,对应行
vi /etc/host.allow
vi /etc/host.deny
#日志及数据根据自己的情况是否删除
安装过程中可能出现问题:
Make的时候报错:
安装vsftpd 报告错误 undefined reference to `crypt'
gcc -c access.c -lcrypt -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c features.c -lcrypt -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c readwrite.c -lcrypt -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c opts.c -lcrypt -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ssl.c -lcrypt -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c sslslave.c -lcrypt -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ptracesandbox.c -lcrypt -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ftppolicy.c -lcrypt -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c sysutil.c -lcrypt -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c sysdeputil.c -lcrypt -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -o vsftpd main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o tunables.o ftpdataio.o secbuf.o ls.o postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o banner.o filestr.o parseconf.o secutil.o ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o tcpwrap.o ipaddrparse.o access.o features.o readwrite.o opts.o ssl.o sslslave.o ptracesandbox.o ftppolicy.o sysutil.o sysdeputil.o -Wl,-s `./vsf_findlibs.sh`
sysdeputil.o: In function `vsf_sysdep_check_auth':
sysdeputil.c:(.text+0xf1): undefined reference to `crypt'
sysdeputil.c:(.text+0x122): undefined reference to `crypt'
解决方法:
打开Makefile
vim Makefile
LIBS = `./vsf_findlibs.sh`
末尾增加 -lcrypt 变成
LIBS = `./vsf_findlibs.sh` -lcrypt
http://stackoverflow.com/questions/12884229/gcc-lcrypt-flag-error-in-unix-c-undefined-reference-to-crypt
转载:http://www.cnblogs.com/madehua/archive/2011/12/22/2298065.html
- CenOS6.0 源码安装vsftpd 配置虚拟用户
- vsftpd 安装与虚拟用户配置
- VSFTPD虚拟用户配置
- vsftpd虚拟用户配置
- vsftpd虚拟用户配置
- vsftpd 虚拟用户配置
- vsftpd虚拟用户配置
- Vsftpd虚拟用户配置
- vsftpd 配置虚拟用户
- 为VSFTPD配置虚拟用户
- vsftpd虚拟用户 权限配置
- vsftpd服务虚拟用户配置
- vsftpd虚拟用户配置(转载)
- vsftpd配置虚拟用户(实战)
- vsftpd 服务器配置:虚拟用户
- vsftpd服务器配置虚拟用户
- 安装vsftpd, 设置虚拟用户
- CentOS 5.5编译安装vsftpd-2.3.4配置虚拟用户
- hdu 2767
- 【MFC/C++操作Excel】Excel篇
- QT源码之QT创建窗口程序、消息循环和WinMain函数
- PHP伪静态配置
- More is better hdu1856 并查集
- CenOS6.0 源码安装vsftpd 配置虚拟用户
- Graphics View柜架
- 独辟蹊径网络安装系列之Redhat衍生版重构初探[09年3月刊]
- 多路复用(select 群回发)
- [android] 通过xml文件设置控件的阴影效果
- win7 wifi 共享 设置方法
- 利用谷歌语法查找网站后台和数据库
- Jvmstat监控JVM内存
- cmd chcp命令切换字符格式