解决iptables和vsftpd设置的问题

解决iptables和vsftpd设置的问题

博客分类:

防火墙J#工作

修改 
vi /etc/sysconfig/iptables-config 
IPTABLES_MODULES="ip_conntrack_ftp"

iptables -P INPUT DROP 
iptables -A INPUT -p tcp --dport 20 -j ACCEPT 
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -i lo -j ACCEPT 
iptables -A INPUT -p tcp --dport 21 -j ACCEPT 
service iptables save 
service iptables restart

附件 
FTP两种方式的工作原理: 
Port模式

FTP 客户端首先动态的选择一个端口(一般是1024以上的)和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。 
Passive模式 
在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。 
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作

1.安装vsftpd软件

yum install vsftpd -y

2.开启匿名访问和被动模式端口

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES              --开启匿名用户访问

anon_upload_enable=YES              --匿名用户名可以上传文件

anon_mkdir_write_enable=YES        --匿名用户可以创建文件
anon_other_write_enable=YES        --匿名用户可以重命名文件

pasv_enable=YES                        --开启被动模式
pasv_min_port=30000                    --被动模式最小端口
pasv_max_port=31000                  --被动模式最大端口

3.加载ftp模块

vim /etc/modprobe.d/vsftpd.conf

alias ip_conntrack ip_conntrack_ftp ip_nat_ftp    --加载ftp模块

vim /etc/rc.local

/sbin/modprobe ip_conntract                --开机加载模块
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp

4.端口过滤

vim /etc/sysconfig/iptables

-A INPUT -p tcp -m multiport --dport 20,21  -m state --state NEW -j ACCEPT  --开启20,21端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT            --开启21主动端口
-A INPUT -p tcp --dport 30000:31000 -j ACCEPT            --开启被动端口

5.登陆测试

ftp连接方式有两种,一种是PORT,也就是主动连接,一种是PASV,也就是被动模式。两者的具体区别就不讲了,网上资料很多。

我们采用客户端PASV被动模式

首先我们配置linux系统的防火墙iptables(防火墙一定要配好,不然会导致连接不上报227 Entering Passive Mode (182,92,150,235,145,19).错误)

1、编辑/etc/sysconfig/iptables-config文件,添加以下两行:

?


1

2

IPTABLES_MODULES="ip_conntrack_ftp"

IPTABLES_MODULES="ip_nat_ftp"

请一定注意两行内容的位置关系不要搞反了。如果将"ip_nat_ftp"放到前面是加载不到的。如果你的ftp服务是过路由或者防火墙(即内网映射方式一定需要此模块)。以上等同于在加载iptables之前运行modprobe命令加载"ip_nat_ftp"和"ip_conntrack_ftp"模块。

2、iptables文件添加如下两行:

?


1

2

3

4

 [[email protected] ~]# vi /etc/sysconfig/iptables

-A -INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

-A -INPUT -p tcp -m state --state NEW -m tcp --sport 21 -j ACCEPT

-A -INPUT -P tcp --dport 20 -j ACCEPT

3、检查iptables文件是否存在以下行(默认是有的),如没有则添加;

?


1

 -A -INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

现在我们开始配置vsftp

安装vsftpd

1、以管理员(root)身份执行以下命令(yum安装vsftp)

?


1

yum install vsftpd

2、设置开机启动vsftpd ftp服务

?


1

chkconfig vsftpd on

3、启动vsftpd服务

?


1

service vsftpd start

管理vsftpd相关命令:

停止vsftpd:  service vsftpd stop

重启vsftpd:  service vsftpd restart

配置vsftpd服务器

默认的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本编辑器打开。

?


1

vi /etc/vsftpd/vsftpd.conf

添加ftp用户

下面是添加user用户,设置根目录为/home/wwwroot/user,禁止此用户登录SSH的权限,并限制其访问其它目录。

1、修改/etc/vsftpd/vsftpd.conf

将底下三行

?


1

2

3

#chroot_list_enable=YES

# (default follows)

#chroot_list_file=/etc/vsftpd.chroot_list

改为

?


1

2

3

4

5

6

7

chroot_list_enable=YES

# (default follows)

chroot_list_file=/etc/vsftpd/chroot_list

修改以下参数

?


1

2

3

4

 anonymous_enable=NO //禁用匿名用户登陆 

 local_enable=YES //开启本地用户登陆

 userlist_enable=NO

 userlist_deny=YES

禁止用户登录目录userlist_file=/etc/vsftpd.user_list 若上面userlist_deny=YES 这样/etc/vsftpd.user_list就无法登陆了

3、增加用户ftpuser,指向目录/home/wwwroot/ftpuser,禁止登录SSH权限。

?


1

useradd -d /home/wwwroot/user -g ftp -s /sbin/nologin user

4、设置用户口令

?


1

passwd ftpuser

5、编辑文件chroot_list:(用来禁止访问用户根目录的上级目录)

?


1

vi /etc/vsftpd/chroot_list

    1. peter
  1. john

6、重新启动vsftpd

?


1

service vsftpd restart

详细参数设置请看 http://vsftpd.beasts.org/vsftpd_conf.html

时间: 2024-12-15 05:25:53

解决iptables和vsftpd设置的问题的相关文章

iptables 规则策略设置

Iptables 一.防火墙基础知识 1.防火墙是什么 工作于主机或网络边缘,对于进出的定义的报文的规则做检查,进而对被规则匹配到的报文作为相应处理的 套件 2.防火墙的作用 防火墙的作用主要是防黑客,防恶意攻击,有点类似于acl机制.主要针对服务器或者保护局域网中的主机. 防火墙主要作用是不防病毒和木马的,但是有一定的防护作用. 3.防火墙的分类 主机防火墙:工作在主机上的软件防火 网络防火墙:工作在网络边缘保护局域网,在网络中检测 ip 首部 tcp首部 帧首部 应用层网关防火墙:让消息报文

解决在网页里设置锚点后,链接不到相应位置

在网页里设置锚点后,链接不到相应位置,常常出现点完链接后跳到相应位置偏下的位置, <div class="row" id="alter-title" name="alter-title"> 只需要在设置id的位置设置它的样式padding-top; .row{padding-top:20px;} 像数根据实际情况调 解决在网页里设置锚点后,链接不到相应位置,布布扣,bubuko.com

iptables防火墙规则设置

#注:Linux7 默认启用的是firewalld.service,要启用iptables,需要关闭firewalld.service systemctl stop firewalld.service;systemctl disable firewalld.service yum install iptables -y;systemctl start iptables.service;systemctl enable iptables.service 规则设置: 规则1:控制单个IP的最大并发连

Hadoop集群之vsftpd设置

1.centos最小化安装很有可能没装vsftpd(这么说是因为,非最小化安装有可能装了的) chkconfig –list | grep vsftpd 没有任何反应 yum –y install vsftpd    #-y的作用?回答安装过程中一切的问题 2.创建日志文件 touch /var/log/vsftpd.log 但此时ftp服务器还是关闭的. 3.配置vsfpd 服务 anonymous_enable=YES --> anonymous_enable=NO //不允许匿名用户访问,

如何解决java环境变量设置不起作用的问题

在读书的时候学过java开发环境(http://www.maiziedu.com/group/article/11995/)的安装,其中涉及到java环境变量的设置,可是前段时间我在win7系统下安装jdk后,总是弹出"javac不是内部命令或外部命令,也不是可运行的程序或批处理文件"的提示框.折腾好长一段时间,终于找到解决办法,现在小编就把这个方法分享给大家,希望对大家有用,具体整理如下: 第一步:安装jdk-6u26-windows-x32.exe,路径为默认路径,一直下一步直到完

在iptables防火墙中设置对yum放行

iptables做了下安全设置,先做INPUT和OUTPUT方向的全部丢弃,然后在逐个开启要用的端口 #iptables -P INPUT DROP #iptables -P OUTPUT DROP 发现无法使用yum安装软件,最后查询得知需要在/etc/sysconfig/iptables里确保有如下规则: # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables -A INPUT -p udp

Centos Samba 服务器 iptables 和 SElinux 设置

1.安装samba服务器 # yum install samba 2.配置 # vi /etc/samba/smb.conf security = user (100行左右) 在Share Definitions下 注释以下的所有配置文件 添加以下几行 [共享的名字(如果linux支持中文,可以写中文)] path = 你需要共享的路径 browseable = yes writable = yes 3.新建用户名,新建文件夹并且设定ACL权限 # useradd -s /sbin/nologi

SVN的搭建及使用(三)用TortoiseSVN修改文件,添加文件,删除文件,以及如何解决冲突,重新设置用户名和密码等

添加文件 在检出的工作副本中添加一个Readme.txt文本文件,这时候这个文本文件会显示为没有版本控制的状态,如图: 这时候,你需要告知TortoiseSVN你的操作,如图: 加入以后,你的文件会变成这个状态,如图: 这时候使用TortoiseSVN进行提交.这样别人就能看到你所做的更改了,如图. 修改文件 使用TortoiseSVN更新,修改工作副本中的Readme.txt文件,加入"hello world!",然后保存,你会发现Readme.txt文件的图标改变了,如图: 这个红

iptables的常用设置

iptables -F #清空所有规则链 iptables -X #删除特定手工设置的链 iptables -P INPUT DROP #默认INPUT规则 丢弃 iptables -P OUTPUT DROP #默认OUTPUT规则 丢弃 iptables -P FORWARD DROP #默认FORWARD规则 丢弃 iptables -A INPUT  -p tcp --dport 22 -o eth0 -j ACCEPT #开SSH服务进站端口 iptables -A INPUT  -p