-A INPUT -m state --state NEW -m tcp -p tcp --dport 端口号 -j ACCEPT
添加后需要重启防火墙,使配置生效
service iptables restart
如果原来没有/etc/sysconfig/iptables,则需要新建。
vi /etc/sysconfig/iptables
添加以下内容
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2323 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
第一次在Linux上面玩装东西,还是挺好玩的,不过有点头晕,多打点命令就好了。
首先,在Linux上下载和安装ftp的安装程序,如果是内部服务器,不能链接外网的话,就需要在另一台服务器拷贝文件过去目标服务器;如果服务器是可以联网的话,就直接通过命令来处理就好了。
下载并安装
检查是否已安装ftp
离线安装 需下载和拷贝安装程序,然后安装。下载 FTP:http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64)
拷贝上传到对应的服务器
在线安装 通过命令直接下载安装
启动vsftpd,测试是否安装成功
展示
[确定]
即安装成功ftp配置
修改ftp默认21端口
一般内网情况下,端口通信是有限制的,ftp默认是21端口,如果网络不通的情况下,建议修改ftp的默认端口,使其能直接通信。
在末尾加上,然后重启
修改系统services的配置(这个系统的端口,我尝试了下不修改也是没有问题的,具体为什么要修改这个,还不确认)
修改以下配置,然后重启vsftpd即可
可查看vsftpd的端口使用情况
开启防火墙
设置了上面的步骤之后,需要查看下服务器的防火墙是否对21、2323端口开启了权限。
查看配置,要是没有对使用的端口进行配置,则需要添加上
添加下面语句
添加后需要重启防火墙,使配置生效
如果原来没有
/etc/sysconfig/iptables
,则需要新建。添加以下内容
一般配置完之后,试试能不能登录和访问,这个时候一般是不行的,看报错提示语,是获取List的问题,是没有配置ftp默认访问路径导致的。我用的是
filezilla
。添加ftp用户,并配置ftp默认访问路径
创建一个用户,然后修改用户的登陆shell为nologin,让用户不能登陆系统,只能使用ftp之内的服务
取消匿名登录,进入编进页面,把第一行
anonymous_enable=YES
,改为NO
,然后重启。指定ftp默认访问路径,在
vsftpd.conf
上添加local_root=/home/ftp
,即可。登录账号查看发现也能访问上层目录,甚至根目录,这不是我们想要的,修改一下配置文件让其只能访问自身目录。如下设置。
为ftp设置被动模式
一般完成以上步骤之后,已经可以在客户端通过8080端口匿名访问ftp的目录,不过可能会报错,可能会很慢。ftp通信有2种模式,一种是主动模式,一种是被动模式。主要使用的是ftp的被动模式,在
/etc/vsftpd/csftpd.conf
后面添加以下配置,即可设置为被动模式。配置结束后重启vsftpd重新登录,大功告成!
参考文档
vsftpd服务器userlist_enable和userlist_deny配置项的应用