Linux下安装并配置FTP服务

kyle 2017-06-22 564次浏览 0条评论 0 打赏作者 0 0

FTP工作时会启动两个通道:控制通道, 数据通道。

在FTP协议中,控制连接均是由客户端发起的,而数据连接有两种模式:port模式(主动模式)和 pasv(被动模式)

PORT模式:
在客户端需要接收数据时,ftp_client(大于1024的随机端口)-PORT命令->ftp_server(21) 发送PORT命令,这个PORT命令包含了客户端是用什么端口来接收数据(大于1024的随机端口),在传送数据时,ftp_server将通过自己的TCP 20 端口和PORT中包含的端口建立新的连接来传送数据。

PASV模式:
传送数据时,ftp_client--PASV命令-->ftp_server(21) 发送PASV命令时,ftp_server自动打开一个1024--5000之间的随机端口并且通知ftp_client在这个端口上传送数据,然后客户端向指定的端口发出请求连接,建立一条数据链路进行数据传输。


安装FTP

1、检查安装

#rpm -qa vsftpd                      查看是否已经安装
#yum install -y vsftpd               安装
#rpm -ql vsftpd
/etc/logrotate.d/vsftpd.             vsftpd的日志文件
/etc/pam.d/vsftpd                    PAM认证文件
/etc/rc.d/init.d/vsftpd              启动脚本
/etc/vsftpd                          vsftpd的配置文件存放的目录
/etc/vsftpd/ftpusers                 禁止使用vsftpd的用户列表文件
/etc/vsftpd/user_list                禁止或允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpd.conf              主配置文件
/etc/vsftpd/vsftpd_conf_migrate.sh   vsftpd操作的一些变量和设置
/usr/sbin/vsftpd                     vsftpd的主程序
其他一些说明文档和手册文件略!
/var/ftp                            匿名用户主目录
/var/ftp/pub                        匿名用户的下载目录
#service vsftpd start               启动       
#chkconfig --level vsftpd           查看开机启动        
#chkconfig --level 2345 vsftpd on   设置开机启动


2、匿名用户

登录名:ftp(anonymous) 密码空 ,登录的目录为/var/ftp 用匿名用户登录的时候默认是只有下载的权限,没有上传,创建和删除的权限:

开启(允许)匿名用户的登录:
#vi /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES         上传
anon_mkdir_write_enable=YES    创建
anon_other_write_enable=YES    删除
#service vsftpd restart
关闭(禁止)匿名用户的登录:
#vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
#anon_upload_enable=YES         上传
#anon_mkdir_write_enable=YES    创建
#anon_other_write_enable=YES    删除
#service vsftpd restart


3、创建一个直接登录系统用户来登录FTP

#useradd -s /sbin/nologin ftpusername      #创建不可登录的系统用户
#passwd ftpusername                        #设置密码


4、加强vsftp安全设置

4.1、限制系统用户锁定在家目录

#vi /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list  限制更多的系统用户,把需要限制的用户加入/etc/vsftpd/chroot_list中即可
#touch /etc/vsftpd/chroot_list
#cut -d: -f 1 /etc/passwd >>/etc/vsftpd/chroot_list 将本地用户都加入到chroot_list

4.2、限制重要系统用户不能登录FTP

#cat /etc/vsftpd/ftpusers  默认已经添加了系统中一些比较重要的用户
#echo "viong" >>/etc/vsftpd/ftpusers  此时viong不能登录ftp

4.3、利用FTP用户策略允许登录FTP的系统用户

/etc/vsftpd/user_list 只有在这个文件中的用户才能登录系统
#vi /etc/vsftpd/vsftpd.conf
userlist_enable=YES 在此后面添加
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list

4.4、设置登录FTP目标IP地址(iptables设置)

#vi /etc/sysconfig/iptables-config    #编辑,添加一行如下
IPTABLES_MODULES="ip_conntrack_ftp"
#vi /etc/sysconfig/iptables     #编辑,添加一行如下
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
#service iptables restart       #重启

如以上过程未出现错误,至此已经可以使用FTP工具连接。


5、[可选]搭建支持SSL加密传输的vsftpd

#openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem    生成证书
#vi /etc/vsftpd/vsftpd.conf
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem
下面是ssl参数一些定义,根据自己需求去修改:
ssl_enable=yes/no            //是否启用 SSL,默认为no
allow_anon_ssl=yes/no        //是否允许匿名用户使用SSL,默认为no
rsa_cert_file=/path/to/file      //rsa证书的位置
dsa_cert_file=/path/to/file      //dsa证书的位置
force_local_logins_ssl=yes/no    //非匿名用户登陆时是否加密,默认为yes
force_local_data_ssl=yes/no    //非匿名用户传输数据时是否加密,默认为yes
force_anon_logins_ssl=yes/no    //匿名用户登录时是否加密,默认为no
force_anon_data_ssl=yes/no    //匿名用户数据传输时是否加密,默认为no
ssl_sslv2=yes/no              //是否激活sslv2加密,默认no
ssl_sslv3=yes/no                //是否激活sslv3加密,默认no
ssl_tlsv1=yes/no                //是否激活tls v1加密,默认yes
ssl_ciphers=加密方法            //默认是DES-CBC3-SHA
#service vsftpd restart
用flashftp连接:
连接类型为:FTP使用公开SSL(验证SSL)
地址:192.168.1.108:21      #主机:端口
登录类型:普通
用户:ftpusername
密码:ftpuserpwd


6、新增FTP用户

1、新增ftp用户并指定主目录(先添加系统用户再设置用户权限也可。设置用户不能tcp登录和更新主目录: vi /etc/passwd  找到对应用户行进行编辑即可)
   useradd -s /sbin/nologin -d /data/ftp/user1 user1        #此处主目录 /data/ftp/user1  用户user1
   
2、设置密码
   passwd user1        #回车输入两次密码即可

3、设置用户只能访问其主目录
   vi /etc/vsftpd/chroot_list        #将用户名(user1)加入其中即可


0

0 条评论

    没有找到数据。

发表评论

kyle
土豪

kyle

注册时间:2016-10-28
最后登录:1天前
发布
带到手机上看