<1> 搭建匿名的FTP
1.IP配置
vim
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=192.168.1.10 NETMASK=255.255.255.0
reboot
2.安装vsftpd软件包
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/local.repo
[local] name=loca baseurl=file:///mnt gpgcheck=0
mount /dev/cdrom /mnt
yum -y install vsftpd
3.编辑配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES //启用匿名访问 anon_root=/ftproot/ //指定匿名用户访问目录(默认/var/ftp/) anon_upload_enable=YES //允许匿名用户上传 anon_other_write_enable=YES //允许匿名用户删除文件、文件夹 anon_mkdir_write_enable=YES //允许匿名用户创建文件夹 anon_umask=022 //匿名用户上传的文件权限为644
pasv_enable=YES //启用被动模式 pasv_min_port=10000 //指定被动模式最小端口 pasv_max_port=11000 //指定被动模式最大端口
local_enable=NO //不启用本地用户访问 write_enable=YES //允许写入 local_umask=022 //本地用户上传的文件权限为644 dirmessage_enable=YES //启用message信息显示(如目录下存在.message文件,会显示该文件内容) xferlog_enable=YES //启动xferlog日志文件 connect_from_port_20=YES //数据连接端口 xferlog_std_format=YES //指定xferlog日志格式为std listen=YES //启动监听
pam_service_name=vsftpd //pam认证模块 userlist_enable=YES //启动userlist列表文件 tcp_wrappers=YES //启动TCP_WAPPER控制
4.启动服务
mkdir /ftproot/
/etc/init.d/vsftpd start && chkconfig --level 35 vsftpd on
测试
<2>搭建本地用户
1.IP配置
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.255.0
service network restart
1.安装vsftpd软件包
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/local.repo
[local]
name=loca
baseurl=file:///mnt
gpgcheck=0
mount /dev/cdrom /mnt
yum -y install vsftpd
2.编辑配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO //禁用匿名访问
pasv_enable=YES //启用被动模式
pasv_min_port=10000 //指定被动模式最小端口
pasv_max_port=11000 //指定被动模式最大端口
local_enable=YES //启用本地用户访问
local_root=/ftproot/ //指定本地用户访问目录(默认/home/xxx)
write_enable=YES //允许写入
local_umask=022 //本地用户上传的文件权限为644
dirmessage_enable=YES //启用message信息显示(如目录下存在.message文件,会显示该文件内容)
xferlog_enable=YES //启动xferlog日志文件
connect_from_port_20=YES //数据连接端口
xferlog_std_format=YES //指定xferlog日志格式为std
listen=YES //启动监听
pam_service_name=vsftpd //pam认证模块
userlist_enable=YES //启动userlist列表文件
tcp_wrappers=YES //启动TCP_WAPPER控制
3.新建本地用户
useradd -s /sbin/nologin hehe //新建本地系统用户hehe
passwd hehe //设置hehe密码为123
测试
<3>搭建虚拟用户
1.定义用户密码文件
vim /etc/vsftpd/user
a 123 b 123
注:奇数为用户名,偶数为上一行用户密码
2.转换用户密码文件为数据库文件
db_load -T -t hash -f /etc/vsftpd/user /etc/vsftpd/user.db
//将定义的用户密码使用hash转换为数据库文件
3.新建PAM认证文件
vim /etc/pam.d/haha
#PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/user account required pam_userdb.so db=/etc/vsftpd/user
4.新建本地用户
useradd -s /sbin/nologin -d /ftproot/ qwe
chmod o+w /ftproot/
5.编辑配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO //禁用匿名访问
pasv_enable=YES //启用被动模式 pasv_min_port=10000 //指定被动模式最小端口 pasv_max_port=11000 //指定被动模式最大端口
guest_enable=YES //启用虚拟用户 guest_username=qwe //指定虚拟用户对应的本地映射用户 user_config_dir=/etc/vsftpd/virtual //指定虚拟用户配置文件存放目录
local_enable=YES //启用本地用户访问 local_root=/ftproot/ //指定本地、虚拟用户访问的目录 write_enable=YES //允许写入 local_umask=022 //本地用户上传的文件权限为644 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES //启动监听
pam_service_name=haha //pam认证模块(注:修改默认vsftpd认证PAM,修改为自建PAM) userlist_enable=YES //启动userlist列表文件 tcp_wrappers=YES //启动TCP_WAPPER控制
注:如虚拟用户不当前新建配置文件,则使用全局的虚拟用户权限
6.新建虚拟用户配置文件
mkdir /etc/vsftpd/virtual
touch /etc/vsftpd/virtual/a
touch /etc/vsftpd/virtual/b
vim /etc/vsftpd/virtual/a
anon_upload_enable=YES anon_other_write_enable=YES anon_mkdir_write_enable=YES anon_umask=022
vim /etc/vsftpd/virtual/b
anon_root=/ftproot/
anon_upload_enable=YES
anon_otanonymous_enable=YES
her_write_enable=YES
anon_mkdir_write_enable=YES
anon_umask=022
7.启动服务
/etc/init.d/vsftpd start && chkconfig --level 35 vsftpd on
8.测试
a拥有完全权限
b只能下载,不能上传
<4>搭建虚拟用户与匿名用户共存
1.定义用户密码文件
vim /etc/vsftpd/user
a 123 b 123
注:奇数为用户名,偶数为上一行用户密码
2.转换用户密码文件为数据库文件
db_load -T -t hash -f /etc/vsftpd/user /etc/vsftpd/user.db
//将定义的用户密码使用hash转换为数据库文件
3.新建PAM认证文件
vim /etc/pam.d/haha
#PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/user account required pam_userdb.so db=/etc/vsftpd/user
4.新建本地用户
useradd -s /sbin/nologin qwe
chmod o+w /ftproot/
5.编辑配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES //启动匿名访问 anon_root=/ftproot/ //指定匿名用户访问目录(默认/var/ftp/)
pasv_enable=YES //启用被动模式 pasv_min_port=10000 //指定被动模式最小端口 pasv_max_port=11000 //指定被动模式最大端口
guest_enable=YES //启用虚拟用户 guest_username=qwe //指定虚拟用户对应的本地映射用户 user_config_dir=/etc/vsftpd/virtual //指定虚拟用户配置文件存放目录
local_enable=YES //启用本地用户访问 local_root=/ftproot/ //指定本地、虚拟用户访问的目录 write_enable=YES //允许写入 local_umask=022 //本地用户上传的文件权限为644 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES //启动监听
pam_service_name=haha //pam认证模块(注:修改默认vsftpd认证PAM,修改为自建PAM) userlist_enable=YES //启动userlist列表文件 tcp_wrappers=YES //启动TCP_WAPPER控制
注:如虚拟用户不当前新建配置文件,则使用全局的虚拟用户权限
6.新建虚拟用户配置文件
mkdir /etc/vsftpd/virtual
touch /etc/vsftpd/virtual/a
touch /etc/vsftpd/virtual/b
vim /etc/vsftpd/virtual/b
anon_upload_enable=NO //允许匿名用户上传
7.启动服务
/etc/init.d/vsftpd start && chkconfig --level 35 vsftpd on
/etc/init.d/iptables stop && setenforce 0
8.测试
hehe拥有完全权限
haha只能下载,不能上传
匿名用户只能下载,不能上传
Linux访问FTP
lftp FTP服务器IP -u 用户名
lftp> ls //列表显示当前所有内容
lftp> cd xxx //进入指定目录
lftp> get xxx //下载指定文件或目录到当前位置
lftp> pub xxx //上传指定文件或目录到FTP
ftp FTP服务器IP
Name (192.168.1.10:root): xxx //输入FTP服务器登陆用户
Password:xxx //输入FTP服务网登陆密码
lftp> ls //列表显示当前所有内容
lftp> cd xxx //进入指定目录
lftp> get xxx //下载指定文件或目录到当前位置
lftp> pub xxx //上传指定文件或目录到FTP