当前位置:首页 » 文件管理 » linuxftp内网

linuxftp内网

发布时间: 2022-05-08 21:52:55

linux iptables ftp设置

这些规则很罗嗦,最重要的是概念不清,加了基本等于没加,该防护的都没防护到,反而加重系统负担。
OUTPUT链默认就是允许的,如果这个主机是你管理并可控的,你为何不让本机可以访问外部所有的地址?非得加那么多啰嗦的脚本
一、本机做NAT,让内部主机访问外部FTP服务器的做法
1、清除所有旧有的规则
service iptables stop //RHEL才有的命令
2、加载让NAT内部主机访问外部FTP的模块:
modeprobe ip_nat_ftp
//从RHEL4开始,该模块会自动在系统加载ip_nat/ip_conntrack/ip_tables/ip_conntrack_ftp/ip_conntrack_irc等多个模块
3、打开linux的转发开关
echo "1" /proc/sys/net/ipv4/ip_forward
4、开启NAT
iptables -t nat -A POSTROUTING -s $INT_NET -j SNAT --to $FW_IP
这样,内部主机就可以访问外部的FTP服务了,你不需要知道对方是主动还是被动模式

二、如果本机做FTP被访问
service iptables stop
modprobe ip_conntrack_irc //如果端口不是21,后面还需要加上端口号。如果是21,这步也可以用modprobe ip_nat_ftp,把其他模块也加载上。
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
当INPUT的默认策略是DROP时,RELATED模块用途就是为本机的FTP服务打开衍生端口,ESTABLISHED是允许回包。
iptables -A INPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT //开放21端口
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT //开放管理端口
iptables -P INPUT DROP //默认策略拒绝

② suse linux进行端口映射实现内网ftp服务

# ftp
modprobe ip_nat_ftp ###加载ip_nat_ftp模块(若没有编译进内核),以使ftp能被正确NAT
modprobe ip_conntrack_ftp ###加载ip_conntrack_ftp模块
# 用DNAT作端口映射
iptables -t nat -A PREROUTING -d a.b.c.d -p tcp --dport 21 -j DNAT --to 192.168.0.5
iptables -A FORWARD -o eth0 -d 192.168.0.5 -p tcp --dport 21 -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.0.5-p tcp --sport 21 -m --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.0.5 -p tcp --sport 20 -m --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o eth0 -d 192.168.0.5 -p tcp --dport 20 -m --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth0 -d 192.168.0.5 -p tcp --dport 1024: -m --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.0.5 -p tcp --sport 1024: -m --state ESTABLISHED -j ACCEPT
# 用SNAT作源地址转换(关键),以使回应包能正确返回
iptables -t nat -A POSTROUTING -d 192.168.0.5 -p tcp --dport 21 -i eth0 -j SNAT --to 192.168.0.1

最后配置自动启动文件,这样开机就自动启动服务了

③ 基于linux防火墙仅允许FTP内网访问如何做

iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --dport 21 -j ACCEPT 你所说的内网,就看你在哪个网段了,修改192.168.0.0即可

④ 如何设置linux防火墙使外网访问内网的ftp

ftp服务设置为PORT模式,然后放开外网到内网的21,20端口,流量
iptables -A FORWARD -p tcp --dport 21 -d 内网服务器ip -j ACCEPT
iptables -A FORWARD -p tcp --sport 21 -s 内网服务器ip -j ACCEPT
iptables -A FORWARD -p tcp --dport 20 -d 内网服务器ip -j ACCEPT
iptables -A FORWARD -p tcp --sport 20 -s 内网服务器ip -j ACCEPT

下面那个没搞明白啥意思。是ping不同内网网卡但能访问服务吧?
iptables -A FORWARD -p icmp -d 内网服务器ip -j DROP

⑤ 如何在linux下开启FTP服务

Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令rpm -qa |grepvsftpd来查看是否安装相应的包,如果没有安装那么可以执行yum-yinstallvsftpd来安装,安装之后首先创建ftp用户,比如ftp_test,命令如下:

useradd-s/sbin/nologin-d/home/ftp_testftp_test

目录尽量不要选择根目录下,这里是/home/ftp_test,并且ftp_test这个目录不要手动创建,否则权限会有问题,执行命令的时候会自动创建,

现在可以看到上面的路径是一个/,对于ftp用户来说也就是根目录了,只能在这个目录下操作,而无法跳出这个目录

以上就是vsftpd服务的基本搭建过程,实际使用时可以分配多个用户

⑥ Linux下搭建ftp 服务器,在局域网内分配的用户不能访问,只能匿名访问,

匿名用户一般是映射到系统的ftp用户,用下面的命令查看ftp用户的家目录

cat/etc/passwd|grepftp

假设是在/var/ftp,需要赋予这个目录的写权限匿名用户才能写,最好是把拥有者直接赋予给ftp

chownftp:ftp/var/ftp&&chmo+wx/var/ftp

另外就是vsftpd.conf的设置了,按照楼上fyzq2008说的设置就对了

⑦ linux虚拟机怎么设置ftp服务器

下面是在虚拟机中的linux的ftp的基本配置(redhat AS 4.0为例):
首先要安装linux下的vsftp软件包。
rpm -qa|gerp vsftpd //查找vsftpd有没有安装
如果没有安装就 vsftpd-2.0.1-5.i386.rpm (在第一张光盘)
在linux中有一个非常重要的一点就是要挂载光驱 mount /media/cdrom
在这里我们就不用源代码安装了。用的是rpm安装
#rpm -ivh vsftpd-2.0.1-5.i386.rpm
这里就安装好了。
service vsftpd start 启动vsftpd服务
如果在不设置任何的情况下,可以以匿名的方式访问该ftp。
注.如果访问不了的时候请大家要把linux的防火墙也要关闭:
iptables -F 清除防火墙
在安装好ftp会产生几个文件:
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/vsftpd.ftpusers 指定哪些用户不能访问FTP服务器
/etc/vsftpd.user_list 文件中指定的用户是否可以访问ftp服务器由vsftpd.conf文件中的userlist_deny的取值来决定。
这几个文件就是整个ftp控制和禁止用户的权限配置。。。
下面我们就来设置一个vsftpd的核心文件
# cd /etc/vsftpd/vsftpd.conf 这就是vsftpd的核心配置文件
anonymous_enable=YES/no 是否允许匿名用户登录
anonymous_enable=yes/no 是否允许匿名上传文件
local_enable= YES/no 是否允许本地用户登录
write_enable= YES/no 是否允许本地用户上传
guest_enable=yes/no 是否允许虚拟用户登录;
local_mask=022 设置本地用户的文件生成掩码为022,默认值为077
dirmessage_enable= YES 设置切换到目录时显示.message隐含文件的内容
xferlog_enable= YES 激活上传和下载日志
connect_from_port_20=YES 启用FTP数据端口连接
pam_service_name=vsftpd 设置PAM认证服务的配置文件名称, 该文件存放在/etc/pam.d目录下
userlist_enable= YES 允许vsftpd.user_list文件中的用户访问服务器
userlist_deny= YES 拒绝vsftpd.user_list文件中的用户访问服务器
listen= YES/no 是否使用独占启动方式(这一项比较重要)
tcp_wrappers= YES/no 是否使用tcp_wrappers作为主机访问控制方式
最主要的就是这些设置了。(这是一般都是默认的不是太懂的不要动)
大家可以设置下面的设置:
ftpd_banner=welcome to ftp service 设置连接服务器后的欢迎信息
idle_session_timeout=60 限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)
data_connection_timeout=120 设置客户机在进行数据传输时,设置空闲的数据中断时间
accept_timeout=60 设置在多长时间后自动建立连接
connect_timeout=60 设置数据连接的最大激活时间,多长时间断开,为别人所使用;
max_clients=200 指明服务器总的客户并发连接数为200
max_per_ip=3 指明每个客户机的最大连接数为3
local_max_rate=50000(50kbytes/sec)
anon_max_rate=30000 设置本地用户和匿名用户的最大传输速率限制
pasv_min_port=端口
pasv-max-prot=端口号 定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;
listen_address=IP地址 设置ftp服务来监听的地址,客户端可以用哪个地址来连接;
listen_port=端口号 设置FTP工作的端口号,默认的为21
chroot_local_user=YES 设置所有的本地用户可以chroot
chroot_local_user=NO 设置指定用户能够chroot
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list(只有/etc/vsftpd.chroot_list中的指定的用户才能执行)
local_root=path 无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录;
chroot_local_user=yes/no 是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user,不能利用cd命令向上转;只能向下;
chroot_list_enable=yes/no 锁定指定文件中用户的主目录(部分),文件:/chroot_list_file=path 中指定;
userlist_enable=YES/NO 是否加载用户列表文件;
userlist_deny=YES 表示上面所加载的用户是否允许拒绝登录;
userlist_file=/etc/vsftpd.user_list 列表文件
这些就是高级设置了。大家可以适当的更改。
#vi /etc/hosts.allow
vsftpd:192.168.5.128:DENY 设置该IP地址不可以访问ftp服务(vsftpd在独占启动方式下支持tcp_wrappers主机访问控制方式)
时间限制:
#cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd
#vi /etc/xinetd.d/vsftpd/
修改 disable = no
access_time = hour:min-hour:min (添加配置访问的时间限制(注:与vsftpd.conf中listen=NO相对应)
例: access_time = 8:30-11:30 17:30-21:30 表示只有这两个时间段可以访问ftp

配置文件是 /etc/vsftpd/vsftpd.conf 按如下编辑此文件,编辑文件当然用vi了
1)实现匿名用户的上传下载文件
程序代码:
Anonymous_enable=yes 匿名登陆
Connect_form_port_20=yes 启用FTP数据端口的数据连接
Pam_service_name=vsftpd 验证方式
Listen=yes 独立的VSFTPD服务器

这样你就可以实现匿名登陆ftp了,但还不能上传文件
程序代码:
Anon_upload_enable=yes 开放上传权限
Anon_mkdir_write_enable=yes 可创建目录的同时可以在此目录中上传文件
Write_enable=yes 开放本地用户写的权限
Anon_other_write_enable=yes 匿名帐号可以有删除的权限
加上上面的这段,你就可以实现匿名ftp的上传下载文件了
然后你保存文件,用service vsftpd start来启动vsftp的服务,然后就可以用ftp了
注意:确定你的防火墙 iptables上打开21端口,不然在登陆ftp的时候会提示socket错误,拒绝连接。还有就是当你再次编辑vsftp.conf后用 service vsftpd restart重起的时候总是提示你不能关闭vsftp服务,这时候你用service vsftpd status察看一下他的状态,如果提示你vsftpd被locked 那可能是因为你的vsftpd.conf中配置的有错误,你要重新编辑他,直到能正常重起他为止,一次配置不对,多配置几次就好了
2)实现本地用户上传下载
程序代码:
新建一个用户
adser 用户名 增加一个用户
passwd 用户名 增加用户的密码
然后看/etc/passwd中最后一行就是你刚才添加的用户信息
然后编辑/etc/vsftpd/vsftpd.conf文件,
Local_enable=yes 允许使用本地用户来登陆ftp
在/etc/vsftpd.ftpuser中可以增加想要阻止登陆ftp的用户
限制用户只能在自己的目录中
Chroot_list_enable=yes 文件中的名单可以调用
Chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no,在文件中加入用户名

vsftpd.conf的参数
程序代码:
Anonymous_enable=yes 允许匿名登陆
Dirmessage_enable=yes 切换目录时,显示目录下.message的内容
Local_umask=022 FTP上本地的文件权限,默认是077
Connect_form_port_20=yes 启用FTP数据端口的数据连接
Xferlog_enable=yes 激活上传和下传的日志
Xferlog_std_format=yes 使用标准的日志格式
Ftpd_banner=XXXXX 显示欢迎信息
Pam_service_name=vsftpd 验证方式
Listen=yes 独立的VSFTPD服务器
Anon_upload_enable=yes 匿名用户上传权限
Anon_mkdir_write_enable=yes 创建目录的同时可以在此目录中上传文件
Write_enable=yes 本地用户写的权限
Anon_other_write_enable=yes 匿名帐号可以有删除的权限
Anon_world_readable_only=no 匿名用户浏览权限
Ascii_upload_enable=yes 启用上传的ASCII传输方式
Ascii_download_enable=yes 启用下载的ASCII传输方式
Banner_file=/var/vsftpd_banner_file 用户连接后欢迎信息使用的是此文件中的相关信息
Idle_session_timeout=600(秒) 用户会话空闲后10分钟
Data_connection_timeout=120(秒) 将数据连接空闲2分钟断
Accept_timeout=60(秒) 将客户端空闲1分钟后断
Connect_timeout=60(秒) 中断1分钟后又重新连接
Local_max_rate=50000(bite) 本地用户传输率50K
Anon_max_rate=30000(bite) 匿名用户传输率30K
Pasv_min_port=5000 将客户端的数据连接端口改在
Pasv_max_port=6000 5000—6000之间
Max_clients=200 FTP的最大连接数
Max_per_ip=4 每IP的最大连接数
Listen_port=5555 从5555端口进行数据连接
Local_enble=yes 本地帐户能够登陆
Write_enable=no 本地帐户登陆后无权删除和修改文件
Chroot_local_user=yes 本地所有帐户都只能在自家目录
Chroot_list_enable=yes 文件中的名单可以调用
Chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no
Userlist_enable=yes 在指定的文件中的用户不可以访问
Userlist_deny=yes
Userlist_file=/etc/vsftpd.user_list
Banner_fail=/路径/文件名 连接失败时显示文件中的内容
Ls_recurse_enable=no
Async_abor_enable=yes
one_process_model=yes
Listen_address=10.2.2.2 将虚拟服务绑定到某端口
Guest_enable=yes 虚拟用户可以登陆
Guest_username=所设的用户名 将虚拟用户映射为本地用户
Chown_uploads=yes 改变上传文件的所有者为root
Chown_username=root
Deny_email_enable=yes 是否允许禁止匿名用户使用某些邮件地址
Banned_email_file=//任意指定的路径/xx/
Pasv_enable=yes 服务器端用被动模式
User_config_dir=/任意指定的路径//任意文件目录指定虚拟用户存放配置文件的路径

⑧ 求linux下写shell脚本 FTP直接连接内网里的服务器的思路

不用shell脚步,安装一个端口映射工具,比如stunnel,把C的ftp端口映射到B即可,你在A上访问B的ftp就会映射到C的ftp。

⑨ 怎么用linux搭建ftp服务

一般来讲,人们将电脑联网的首要需求就是获取资料,而文件传输是其中非常重要的方式之一,21世纪的互联网是由几千万台个人电脑、工作站、小型机、大型机等等不同型号、架构的物理设备共同组成的,即便是个人电脑上也可能会装有诸如Linux、Windows、UNIX、DOS等等不同的操作系统,所以为了能够在如此复杂多样的操作设备之间解决文件传输问题,于是便有了统一的FTP文件传输协议(File Transfer Protocol),这是一种能够让使用者在互联网中上传、下载文件的传输协议。很多同学在大学期间只知道FTP协议使用了21端口号,但实际上FTP文件传输协议默认占用了20、21两个端口号,20端口号用于进行数据传输,21端口号用于接受客户端执行的相关FTP命令与参数,FTP服务端普遍更多的应用于内网中,具有易于搭建、方便管理的特点,并且可以借助FTP客户端工具还可以轻松实现文件的多点下载和断点续传技术

FTP服务器就是支持FTP传输协议的主机,与大多数服务程序一样,要想完成文件传输则需要FTP服务端和客户端的配合才行,用户可以通过客户端向FTP服务端发送指令参数,FTP服务端从而会依据接受到的命令作出相应动作,比如显示执行结果或把文件传输到客户端主机上,FTP协议的传输有两种不同的模式,主动模式是让FTP服务端主动向客户端发起链接请求,而被动模式则是让FTP服务端等待客户端的链接请求,默认情况下被动模式,因为咱们在第八章的防火墙课程中学习过,防火墙一般更多的是过滤从外网到内网的流量数据,因此有些时候必须改成主动模式才可以传输。

Vsftpd是一款运行在Linux操作系统上面的FTP服务端程序,Very SecureFTPDaemon顾名思义就是非常安全的FTP传输程序,vsftpd服务程序不仅完全开源且免费,而且具有很高的安全性、传输速率、支持虚拟用户验证功能等等其他FTP服务端程序所不具备的特点。配置妥当yum软件仓库后就可以来安装vsftpd服务程序了:

java">#www.linuxprobe.com
[root@linuxprobe~]#yuminstallvsftpd-y
Loadedplugins:langpacks,proct-id,subscription-manager
………………省略部分输出信息………………
================================================================================

================================================================================
Installing:
vsftpdx86_643.0.2-9.el7rhel166k
TransactionSummary
================================================================================
Install1Package
Totaldownloadsize:166k
Installedsize:343k
Isthisok[y/d/N]:y
Downloadingpackages:
Runningtransactioncheck
Runningtransactiontest
Transactiontestsucceeded
Runningtransaction
Installing:vsftpd-3.0.2-9.el7.x86_641/1
Verifying:vsftpd-3.0.2-9.el7.x86_641/1
Installed:
vsftpd.x86_640:3.0.2-9.el7
Complete!

iptables防火墙管理工具中默认禁止了ftp传输协议的端口号,因此咱们在正式配置vsftpd服务程序前还需要清空一下iptables防火墙的默认策略,并将当前已经被清理的防火墙策略状态保存下来:

[root@linuxprobe~]#iptables-F
[root@linuxprobe~]#serviceiptablessave
iptables:Savingfirewallrulesto/etc/sysconfig/iptables:[OK]

vsftpd服务程序的主配置文件(/etc/vsftpd/vsftpd.conf)中参数总共有123行左右,但大多数都是以#(井号)开头的注释信息,咱们可以用grep命令的-v参数来过滤并反选出没有包含#(井号)的参数行,也就是把所有的注释信息都过滤掉,这样再通过输出重定向符写会到原始的主配置文件名称中即可:

[root@linuxprobe~]#mv/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf_bak
[root@linuxprobe~]#grep-v"#"/etc/vsftpd/vsftpd.conf_bak>/etc/vsftpd/vsftpd.conf
[root@linuxprobe~]#cat/etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

刘遄老师给同学们整理出了vsftpd服务程序的主配置文件中常用的参数及作用介绍,您现在只要简单的浏览一下,接下来的实验中如果不明白再过来查阅就可以。

⑩ linux 内网ftp公网访问

依次执行下面的命令
echo1>/proc/sys/net/ipv4/ip_forward
iptables-IFORWARD-ptcp--sport21-jACCEPT
iptables-IFORWARD-ptcp--dport21-jACCEPT
iptables-tnat-IPREROUTING-ptcp--dport21-jDNAT--to10.255.199.13
iptables-tnat-IPOSTROUTING-ptcp--dport21-jMASQUERADE

热点内容
礼仪讲话脚本大全视频 发布:2024-11-18 20:17:44 浏览:709
c语言通讯录程序设计 发布:2024-11-18 19:35:21 浏览:99
微信下载的图片在哪个文件夹 发布:2024-11-18 19:23:06 浏览:358
我的世界查服务器ip地址 发布:2024-11-18 19:23:04 浏览:212
电脑加装存储硬盘不影响速度吧 发布:2024-11-18 19:21:52 浏览:693
伴生气压缩机 发布:2024-11-18 19:21:40 浏览:878
javalinux环境变量设置 发布:2024-11-18 19:20:58 浏览:843
按存取方式来分主存储器 发布:2024-11-18 19:20:55 浏览:223
安卓屏幕如何升级 发布:2024-11-18 19:01:19 浏览:479
磁盘密码在哪里看到 发布:2024-11-18 19:01:16 浏览:885