linux ftp搭建及多端口监听
一、前述 本来公司用的是window是的服务器,突然经常出现问题,现在需要搭建linux环境。必定linux相对稳定一点。二、具体1、显示如下图则表示已安装 vsftp软件。如果未显示则需要安装vsftpd软件。 如果没有则通过yum进行安装,命令如下:yum install -y vsftpd2、安装完成之后进入到ftp的根目录默认是/etc/vsftp...
一、前述
本来公司用的是window是的服务器,突然经常出现问题,现在需要搭建linux环境。必定linux相对稳定一点。
二、具体
1、显示如下图则表示已安装 vsftp软件。如果未显示则需要安装vsftpd软件。
如果没有则通过yum进行安装,命令如下:
yum install -y vsftpd
2、安装完成之后
进入到ftp的根目录默认是/etc/vsftpd/文件中进行配置
/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件
/etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器。 黑名单
/etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件。 白名单
/etc/vsftpd/chroot_list:指定允许使用vsftpd 的用户列表文件。 控制名单下的目录能不能离开ftp根目录
vsftpd.conf具体配置如下:
anonymous_enable=NO #允许匿名用户访问为了安全选择关闭
local_enable=YES # 允许本地用户登录
write_enable=YES # 是否允许写入
local_umask=022 # 本地用户上传文件的umask
dirmessage_enable=YES #为YES则进入目录时显示此目录下由message_file选项指定的文本文件(,默认为.message)的内容
xferlog_enable=YES #开启日志
xferlog_std_format=YES #标准格式
connect_from_port_20=YES
xferlog_file=/var/log/xferlog #ftp日志目录
idle_session_timeout=6000 #设置客户端连接时间
data_connection_timeout=1200 #设置数据连接时间 针对上传,下载
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #设置为YES则下面的控制有效
chroot_list_enable=YES #若为NO,则记录在chroot_list_file所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被chroot在登录后所在目录中,无法离开.如果为YES,则所记录的用户将不被chroot.这里YES.
chroot_local_user=YES
userlist_deny=NO #若设置为YES则记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户将无法login,并且将检察下面的userlist_deny选项
userlist_enable=YES #若为NO,则仅接受记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户的login请求.若为YES则不接受这些用户的请求.
userlist_file=/etc/vsftpd/user_list #白名单
chroot_list_enable=YES
local_root=/var/ftp/pub #根目录
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
3、添加用户
使用以下命令 创建myftp用户,并指定默认目录
useradd -d /website/test myftp
因为ftp用户是共用的linux用户。使用passwd 进行密码修改,连续两次输入密码。
//修改密码
passwd myftp
注意:如果你的密码比较简单的话,系统会提示密码过于简单,不过不必在意,也是可以设置成功的。不过为了安全考虑,还是建议输入一个符合要求的密码。
因为是公用的linux用户,为了安全考虑限定用户myftp不能telnet,只能myftp
usermod -s /sbin/nologin myftp
也可以使用以下命令,使myftp回复正常:
usermod -s /sbin/bash myftp
使用以下命令更改默认根目录:
usermod -d /website/test myftp
如果这个用户创建错误,可以删除用户重新创建:
userdel -r myftp
新建用户并不能够访问,添加到user_list和chroot_list中去,才可以访问。
4、关闭防火墙
centoos 7操作为systemctl stop firewalld.service
centoos 6操作位service stop iptables;
5.启动ftp服务器
cetoos 7操作为/bin/systemctl restart vsftpd.service
centoos 6操作为 service vsftpd restart
6.赋权,将ftp指定的根目录赋权为777权限
chmod 777 /var/ftp/pub
7.检查SElinux状态并关闭
getsebool -a|grep ftp
若centoos7到此结束 用ftp工具即可访问 或者本地ftp 服务器测试 通过rpm -ivh rpm..安装包 安装ftp客户端配置。
若centoos 6 则在设置几个权限:
通过:setsebool httpd_enable_ftp_server 1 设置成如下状态即可。通过 getsebool -a|grep ftp查看。
至此ftp安装完成。
在我这个项目中存在需要使用两个不同的ftp端口的问题。到网上查找了以下,结合自己测试,整理出两种可行的方案。
方案1:
复制vsftpd.conf 一份,然后把里面的端口改成你自己想要的端口,其他内容不变。
重启vsftpd 服务, 使用netsat -ntlp 查看情况 。
netstat -ntlp
方案2:
使用端口转发的方式实现:
iptables -t nat -A PREROUTING -p tcp -d 192.168.2.121 --dport 21 -j DNAT --to 192.168.2.121:2121
如此简单。
两种方式各有优缺点,个人根据自己需要选择。
更多推荐
所有评论(0)