本贴由来:转载请注明出处尊重版权你我做起共同实现技术开源;CN技术一定会是全球最屌!!!

最近老大让我搭建个FTP,当时感觉这TM的多简单百度一搜yum一上完活,结果问题来了服务器在IDC而我在办公室却是死活连接不上,更要命的是没有错误信息和日志,当时整个人蒙圈了产品还一直催,国内的技术文档很多都是前篇一律估计大部分都是转载(个人观点不喜欢勿喷),最后我连续抽了三根烟(小孩子不要学习哦),想到问同学结果QQ回复是老子现在很忙,在非常无奈又不想丢了饭碗的痛苦思绪过后吾决定请假去图书馆,(谁叫咱不好好学,谁叫别人学习的时候我去打游戏,放TM的血老子拼了)好吧,发个帖子骂人真是没素质,兄弟你错了这叫真性情好吧,至于这句话谁说的大家自己找资料吧0.0;反正我是学会了真性情但愿版主不和谐掉。

  正题来了,为了提高自己和帮助大家共同学习现在开设了运维交流群,不为别的就为咱菜怎么增加工作经验?帮别人处理问题!怎么提高?帮别人学习!我听张卫健老师说,“他听刘德华说”“赚够了就要帮人,学会了就要教人”欢迎大家加QQ群一起交流学习309135684,最后请记住“我们不是神,但是我们要相信别人做到的我们也一定能做到,只要我们够努力够拼”

 

以下资料均为个人学习总结和理解如有不准确请大家予以留言更正

FTP协议原理:

wKiom1dZ4eeT0mf9AACQLqe9a-U974.png-wh_50

 

FTP服务器:

FTP服务使用了两个连接: 命令通道、数据通道

两种工作模式:主动式连接(Active)被动连接(PASV)

FTP的安全注意问题

① 随时更新到最新版本,并随时注意漏洞信息

② 使用iptables来规定可以使用FTP的网络

③ 使用TCP_Wrappers 来规范可以登录的网络

④ 使用FTP软件的设置来限制用户的不同权限

⑤ 使用Super deamon来管理FTP

⑥ 注意用户主目录及匿名用户主目录文件权限

⑦ 若不对外公开可以修改FTP的port

⑧ 可以用FTPs加密FTP功能

重要参数说明:

环境相关:

connect_from_port_20=YES(NO) 主动连接使用的端口

listen_port=21 命令通道端口

listen=YES(NO) 表示以stand alone的方式启动

pasv_enable=YES(NO) 支持被动模式连接

use_localtime=YES(NO) 是否使用本地时间

write_enable=YES(NO) 允许用户上传

connect_timeout=60 主动模式下连接超时时间

data_connection_timeout=300 数据传输时间超时连接失败

idle_session_timeout=300 最大空闲时间

max_clients=5 最大连接数

max_per_ip=5 相同IP最大连接数

masv_min_port=65400

masv_max_port=65405   (被动连接开发的端口范围)

banner_file=/etc/vsftpd/welcom.txt 用户登录显示的信息

用户相关:

local_enable=YES(NO) 是否允许本地用户登录

local_max_rate=0 传输速率限制

chroot_local_user=YES(NO) 是否开启用户宿主目录限制

chroot_list_enable=YES(NO) 是否启用chroot写入列表功能

chroot_list_file=/etc/vsftp/chroot_list 写入列表文件

userlist_enable=YES(NO) 是否启用vsftp的阻挡机制

userlist_deny=YES(NO) 文件中的用户是否拒绝

userlist_file=/etc/vsftp/user_list 受限制的用户

anonymous_enable=YES(NO) 是否允许匿名登录

安全相关:

ascii_download_enable=YES(NO) 是否优先使用ASCII格式下载

ascii_upload_enable=YES(NO)

one_process_model=YES(NO) 是否每个建立连都有process负责

tcp_wrappers=YES(NO) 是否支持 TCP wrappers

xferlog_enable=YES(NO) 用户行为是否记录

xferlog_file=/var/log/xferlog

nopriv_user=nobody 服务的默认执行者

pam_service_name=vsftpd PAM模块名/etc/pam.d/vsftpd

到这里重要参数就基本介绍完毕了,当然关于匿名连接超时等还有很多,但是我对于一个应用不是很复杂的服务器来说是可以的了,下面是个简单FTP的完成安装及配置过程最后是防火墙的配置,如果大家客户端的路由器使用的是静态IP地址,防火墙可以优化到限定访问的源IP地址和目的IP地址详细情况嘛大家可以找度娘,或者关注我以后的文档吧我尽量每周发一篇看能坚持多久!开始喽啊。。注意下面代码你可以不用更改直接复制粘贴到相关位置即可:

 

安装:

yum install vsftpd -y

配置:

1、vsftpd.conf配置

listen_port=21

pasv_enable=YES

pasv_min_port=65400

pasv_max_port=65405

pasv_promiscuous=YES

anonymous_enable=YES

local_enable=YES

write_enable=YES

local_umask=002

userlist_enable=YES

userlist_deny=NO

userlist_file=/etc/vsftpd/user_list

use_localtime=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=YES

pam_service_name=vsftpd

tcp_wrappers=YES

banner_file=/etc/vsftpd/welcome.txt

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

max_clients=5

max_per_ip=3

 

2、建立欢迎文件

vim /etc/vsftpd/welcome.txt

欢迎来到XXXXXXX,本站提供FTP相关服务!

主要为产品部提供后台管理服务;

若您非本公司人员请您高抬贵手;

若有任何问题请您与管理员联系;

我们会非常感激您的手下留情!

 

3、建立chroot的用户列表

vim /etc/vsftpd/chroot_list

备注:由于上面的设定你需要把要访问的FTP账号输入到/etc/vsftpd/user_list文件

      例如:useradd changwei -d /用户宿主目录 -s /sbin/nologin

            passwd changwei 密码

            echo "changwei" >>/etc/vsftpd/user_list

好了账号changwei创建完毕!

4、iptables设置

ACCEPT     tcp  --  0.0.0.0/0   0.0.0.0/0    state NEW tcp dpt:21
ACCEPT     tcp  --  0.0.0.0/0   0.0.0.0/0    state NEW tcp dpts:65400:65405

到此已经大功告成,最后还是那句话来吧兄弟到碗里来,进群吹B,搞技术学习经验积累因有尽有(妹子没有),Q群人数已经有一人了哦0.0重要事情说三遍QQ交流群,309135684 哈哈最后那便我不说了气死你!!!!!!!!!!!!!!!!!!