本贴由来:转载请注明出处尊重版权你我做起共同实现技术开源;CN技术一定会是全球最屌!!!
最近老大让我搭建个FTP,当时感觉这TM的多简单百度一搜yum一上完活,结果问题来了服务器在IDC而我在办公室却是死活连接不上,更要命的是没有错误信息和日志,当时整个人蒙圈了产品还一直催,国内的技术文档很多都是前篇一律估计大部分都是转载(个人观点不喜欢勿喷),最后我连续抽了三根烟(小孩子不要学习哦),想到问同学结果QQ回复是老子现在很忙,在非常无奈又不想丢了饭碗的痛苦思绪过后吾决定请假去图书馆,(谁叫咱不好好学,谁叫别人学习的时候我去打游戏,放TM的血老子拼了)好吧,发个帖子骂人真是没素质,兄弟你错了这叫真性情好吧,至于这句话谁说的大家自己找资料吧0.0;反正我是学会了真性情但愿版主不和谐掉。
正题来了,为了提高自己和帮助大家共同学习现在开设了运维交流群,不为别的就为咱菜怎么增加工作经验?帮别人处理问题!怎么提高?帮别人学习!我听张卫健老师说,“他听刘德华说”“赚够了就要帮人,学会了就要教人”欢迎大家加QQ群一起交流学习309135684,最后请记住“我们不是神,但是我们要相信别人做到的我们也一定能做到,只要我们够努力够拼”
以下资料均为个人学习总结和理解如有不准确请大家予以留言更正
FTP协议原理:
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 哈哈最后那便我不说了气死你!!!!!!!!!!!!!!!!!!