架设FTP服务以及相关设置
1、安装vsftpd
1、以管理员(root)身份执行以下命令
yum install vsftpd
2、安装ftp客户端组件(用来验证是否vsftpd)
yum -y install ftp
2、设置开机启动vsftpd ftp服务
chkconfig vsftpd on
2. vsftpd状态设置与测试
3、启动vsftpd服务(默认ftp服务是没有启动的,用下面命令启动)
service vsftpd start
如果启动失败,可以先stop再start
管理vsftpd相关命令:
停止vsftpd: service vsftpd stop
重启vsftpd: service vsftpd restart
查看vsftpd状态: service vsftpd status
3. 设置信息
pam模块 -- 可插拔用户认证模块
/etc/pam.d/vsftpd
vsftpd使用PAM模块时的配置文件
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
file后接的档案是【限制使用者无法使用vsftpd的意思
/etc/vsftpd/ftpusers
与PAM模块里指定的无法登入的用户配置文件
这个档案的设定很简单,你只要将『不想让他登入 FTP 的账号』写入这个档案即可。一行一个账号
用户帐号
/etc/vsftpd/user_list
这个档案是否生效与vsftpd.conf里两个参数有关,分别是 userlist_enable, userlist_deny。
/etc/vsftpd/ftpusers是PAM模块的禁止登入名单设置
/etc/vsftpd/user_list则是vsftpd自定义的名单设置,在预设的情况下,你可以将不希望登入vsftpd的帐号写入这里,不过这个文件的功能会依据vsftpd.conf配置文件内的userlist_deny=[YES/NO]不同 ?? 具体有何不同?
vsftpd.conf配件文件
listen_port=21
vsftpd使用的命令通道port,如果想要使用非正规的端口,在这里修改,不过这个设定只适合以standalone方式来启动
listen=YES (NO)
若设定为YES表示vsftpd是以standalone的方式来启动的,默认设置是NO,
pasv_enable=YES(NO)
支持数据流的被动式联机模式(passive mode),一定要设为YES
write_enable=YES (NO)
允许用户上传数据
local_enable=YES (NO)
这个设定值必须要为 YES 时,在 /etc/passwd 内的账号才能以实体用户的方式 登入我们的 vsftpd 服务器喔!
userlist_enable=YES (NO)
是否藉助 vsftpd 的抵挡机制来处理某些不受欢迎的账号,与底下的参数设定有 关;
userlist_deny=YES (NO)
当 userlist_enable=YES 时才会生效的设定,若此设定值为 YES 时,则当使用 者账号被列入到某个档案时,在该档案内的使用者将无法登入 vsftpd 服务器! 该档案文件名与下列设定项目有关。
userlist_file=/etc/vsftpd/user_list
若上面 userlist_deny=YES 时,则这个档案就有用处了!在这个档案内的账号 都无法使用 vsftpd 喔!
Testing the Status of VSFTPD
You can always test whether the VSFTPD process is running by using the netstat -a command, which lists all the TCP and UDP ports on which the server is listening for traffic. This example shows the expected output:
[root@bigboy root]# netstat -a | grep ftp
[root@bigboy root]# tcp 0 0 *:ftp *:* LISTEN
If VSFTPD wasn’t running, there would be no output at all.
vsftpd配置主动模式和被动模式
配置文件:/etc/vsftpd/vsftpd.conf
主动模式配置方法:
#主动式连接使用的数据通道
connect_from_port_20=YES
#支持数据流的被动式连接模式
pasv_enable=NO
被动模式配置方法:
#主动式连接使用的数据通道
connect_from_port_20=NO
pasv_enable=YES(默认为YES) #设置是否允许被动模式
pasv_min_port=1024(default:0(use any port))
pasv_max_port=65536(default:0(use any port))
执行命令尝试登录
ftp localhost
输入用户名ftp,密码随便(因为默认是允许匿名的)
登录成功,就代表ftp服务可用了。
但是,外网是访问不了的,所以还要继续配置。
增加用户 kk
sudo useradd -d /home/kk kk
sudo passwd kk
查看端口状态(以80为例df)
lsof -i:80
端口
21用于TCP连接,另外一个用于数据传输
主动模式: 21 和 20
被动模式: 21 和一个大于 1024的端口
查看防火墙状态
/etc/init.d/iptables status
开启/停止防火墙
/etc/init.d/iptables start/stop
若出现 530 Login incorrect. 错误:
# 编辑文件
sudo vim /etc/pam.d/vsftpd
# 注释禁用以下内容
# auth required pam_shells.so
登录阿里云FTP
ftp 47.94.99.92 21
name : ftphaha
passwd : xxxxxxx