本文档默认前提是操作系统为red hat linux版本,解决:
1、 FTP服务器搭建
2、 关闭防火墙
3、 Selinux的选项开启
4、 添加新用户
5、 注意
6、 连接实现
请检查相应软件安装情况,如系统已经正确安装部分软件,可略过。
一、 搭建FTP服务器
1) 安装Fedora vsftp命令:
#yum install vsftpd
一路yes,最后提示安装成功。
2)配置Fedora vsftpd.conf
①输入命令:
#vi /ect/vsftpd/vsftpd.conf
②将vsftpd.conf文件中的设置如下:
anonymous_enable=YES
local_enables=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
ascii_upload_enables=YES
ascii_download_enable=YES
3) 启动Fedora vsftpd。
#service vsftpd start
4) 让root用户可以ftp上传
①删除ftpusers和user_list下的root记录,输入命令如下:
# vi /etc/vsftpd/ftpusers
#vi /etc/vsftpd/user_list
找到root,删除即可
②通过命令:
#setsebool -P ftpd_disable_trans 1fedora
#vi /etc/selinux/selinux/config
找到SELINUX
SELINUX=disabled
5) 重启 Fedora vsftpd
#service vsftpd restart
到此步已完成FTP服务器基本配置问题,但尚不能访问FTP服务器。原因是:因为防火墙阻止了FTP服务器与外界的通信,接下来关闭防火墙,就可实现与外界通信。
二、 关闭防火墙
1)、查看本机关于IPTABLES的设置情况
# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain RH-Firewall-1-INPUT (0 references)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
可以看出我在安装linux时,选择了有防火墙,并且开放了22,80,25端口.
2)、清除原有规则
#iptables -F (清除预设表filter中所有规则链的规则)
#iptables -X (清除预设表filter中使用者自定义链中的规则)
我们再来看一下
#iptables -L -n
所有的iptables都没有了。
3)、保存iptables配置
# /etc/rc.d/init.d/iptables save
#service iptables restart
三、 开启selinux选项
操作如下:
1)、 输入命令:
#setsebool ftpd_disable_trans 1
Could not change active booleans: Invalid boolean
又出现一个错误,我们将ftp_home_dir设置为on,重启vsftpd。
# setsebool ftp_home_dir=1
# service vsftpd restart
2)、接下来输入命令:
#sestatus -b| grep ftp
会出现如下图:
将:
#ftp_home_dir off
#tftpd_disable_trans off
中的off改成on
#setsebool -P ftp_home_dir on
# setsebool -P ftpd_disable_trans on
3)、最后重启vsftps
#service vsftpd restart
四、 添加新用户
经过以上三步终于将我们的FTP服务器搭建好了,现在可以添加FTP账号了。具体步骤如下:
1)、输入命令:
#adduser 用户名
回车后系统会给出以下提示:
Changing password for user XX用户名.
New password:
BAD PASSWORD: it does not contain enough DIFFERENT characters
Retype new password:
passwd: all authentication tokens updated successfully.
2)、但像以上这样增加用户是不行的,加样加出来的用户为普通用户,有系统登陆权限,所以我要在adduser命令后后面加上参数,如下:
[root@srsman]# adduser -g ftp -s /sbin/nologin srsman
[root@srsman]# passwd beinan
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
3)、这样加出来的用户也是普通用户,但这个用户是不能登入系统的,只能是登入FTP
通过上面的命令加的用户系统会在/home目录下建立一个同名的文件夹,用户FTP上来后指向的目录也为此目录,如何为ftp用户指定到特定的目录呢?
命令如下:
[root@srsman]adduser -d /opt/btgup -g ftp -s /sbin/nologin btgup
[root@srsman]passwd btgup
Changing password for user btgup.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
这样就为系统增加了一个名为srsman,目录指向为/opt/srsman的ftp用户
五、注意:
1)、在增加用户后ftp上服务器的时候可能会有提示 :
ftp服务器连接失败,错误提示:
500 OOPS: cannot change directory:/home/*******
500 OOPS: child died
2)、当你看到以上提示时,试着再输入以下命令解决
setsebool -P ftpd_disable_trans 1
service vsftpd restart
第一行中的-P参数是为了以后不需要每次开机都输入这个命令
//===================================================================
3)、修改vsftpd.conf文件:
user_config_dir=/etc/vsftpd/user_config_dir
并在这个文件夹下面添加用户名的文件
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
4)、修改文件夹的读写权限:
chown ftp /var/ftp/upload
chmod 777 /var/ftp/upload
六、连接实现
上述所示步骤配置好了之后就可以进行FTP连接了,步骤如下:
2)、打开软件依次输入FTP服务器的主机IP、ftp用户名、密码、端口号(ftp服务器默认端口号为:21)。点击快速连接。