linux 登陆ftp linux查看ftp服务状态

各位老铁们,大家好,今天由我来为大家分享linux 登陆ftp,以及linux查看ftp服务状态的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

Linux登录FTP服务器每一步都在进步linux登陆ftp

Linux登录FTP服务器是一项非常重要的技能,它可以帮助您远程管理、访问和操作远程服务器。虽然有很多种方法可以登录FTP服务器,但是以下是最容易的方法,希望可以帮助你学习使用Linux登录FTP服务器。

首先,需要准备一些必要的信息,比如FTP服务器的地址、端口号、用户名和密码。

其次,安装并配置FTP客户端。如果你使用的是Ubuntu系统,就可以使用官网推荐:sudo apt-get install ftp。否则在控制台设置中找到ftp命令,并且可以使用。

然后,配置FTP客户端。例如:

1、启动一个控制台,输入以下命令以设定其他选项:ftp-u%h%p%r%f%l%h@%r

2、设置FTP传输模式:set ftp:transfer-mode binary

3、设置超时时间:set net:timeout-1

最后,使用SSH登录FTP服务器。输入以下命令:ssh%r%h%p%u%P,其中%r、%h、%p、%u和%P是刚刚准备的信息,替换成你实际的信息即可。

同时,我们可以使用以下命令建立与FTP服务器的连接:open%h%p%u%p

当然,如果你使用的是Linux系统,你也可以尝试cURL。使用cURL可以建立到FTP服务器的连接,并且可以在支持的操作系统上完成许多不同类型的文件传输操作,例如上传、下载、复制和删除文件。使用以下命令可以使用cURL操作FTP服务器:

curl-u%u:%p-T%f%h:%p

因此,以上就是Linux登录FTP服务器的步骤,掌握了这些步骤之后,即使是新手也可以轻松实现Linux熟练度的提高。

怎么通过linux访问服务器上的ftp

这个直接推荐你看看这里:

文件传输协议(FTP,File Transfer Protocol),即能够让用户在互联网中上传、下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要想完成文件传输则需要FTP服务端和FTP客户端的配合才行。

通常用户使用FTP客户端软件向FTP服务器发起连接并发送FTP指令,服务器收到用户指令后将执行结果返回客户端。

FTP协议占用两个端口号:

21端口:命令控制,用于接收客户端执行的FTP命令。

20端口:数据传输,用于上传、下载文件数据。

FTP数据传输的类型:

主动模式:FTP服务端主动向FTP客户端发起连接请求。

被动模式:FTP服务端等待FTP客户端的连接请求。

11.2安装vsftpd服务程序

Vsftpd即“Very Secure FTP Daemon”是一款运行在类Unix操作系统的FTP服务端程序,Vsftpd主打的是安全性、完全开源及免费、速率高、支持IPv6、虚拟用户功能等等其他FTP服务端软件不具备的功能。

安装vsftpd服务程序包:

[root@linuxprobe~]# yum install vsftpd-y

Loaded plugins: langpacks, product-id, subscription-manager

…………………省略部分安装过程………………

---> Package vsftpd.x86_64 0:3.0.2-9.el7 will be installed

--> Finished Dependency Resolution

…………………省略部分安装过程…………………

Installed:

vsftpd.x86_64 0:3.0.2-9.el7

Complete!

清空默认的防火墙默认规则:

[root@linuxprobe~]# iptables-F

保存清空后的防火墙规则表:

[root@linuxprobe~]# service iptables save

Vsftpd的程序与配置文件:

主程序/usr/sbin/vsftpd

用户禁止登陆列表/etc/vsftpd/ftpusers

/etc/vsftpd/user_list

主配置文件/etc/vsftpd/vsftpd.conf

先来分析下vsftpd程序的主配置文件吧:

[root@linuxprobe~]# cat/etc/vsftpd/vsftpd.conf

主配置文件长达123行,但大部分是以#号开始的,这些都是注释信息,我们可以过滤掉它们。

备份vsftpd的主配置文件:

[root@linuxprobe~]# mv/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf_bak

过滤掉所有包含#号的行,并将过滤结果写回到vsftpd.conf文件中:

[root@linuxprobe~]# grep-v"#"/etc/vsftpd/vsftpd.conf_bak>/etc/vsftpd/vsftpd.conf

此时再分析下vsftpd程序的主配置文件吧:

[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程序配置文件参数的作用:

参数作用

listen=[YES|NO]是否以独立运行的方式监听服务。

listen_address=IP地址设置要监听的IP地址。

listen_port=21设置FTP服务的监听端口。

download_enable=[YES|NO]是否允许下载文件。

userlist_enable=[YES|NO]

userlist_deny=[YES|NO]是否启用“禁止登陆用户名单”。

max_clients=0最大客户端连接数,0为不限制。

max_per_ip=0同一IP地址最大连接数,0位不限制。

anonymous_enable=[YES|NO]是否允许匿名用户访问。

anon_upload_enable=[YES|NO]是否允许匿名用户上传文件。

anon_umask=022匿名用户上传文件的umask值。

anon_root=/var/ftp匿名用户的FTP根目录。

anon_mkdir_write_enable=[YES|NO]是否允许匿名用户创建目录。

anon_other_write_enable=[YES|NO]是否开放匿名用户其他写入权限。

anon_max_rate=0匿名用户最大传输速率(字节),0为不限制。

local_enable=[YES|NO]是否允许本地用户登陆FTP。

local_umask=022本地用户上传文件的umask值。

local_root=/var/ftp本地用户的FTP根目录。

chroot_local_user=[YES|NO]是否将用户权限禁锢在FTP目录,更加的安全。

local_max_rate=0本地用户最大传输速率(字节),0为不限制。

11.3 Vsftpd的验证方式

vsftpd程序提供的FTP服务可选认证方式,分别为匿名访问、本地用户和虚拟用户:

匿名访问:任何人无需验证口令即可登入FTP服务端。

本地用户:使用FTP服务器中的用户、密码信息。

虚拟用户:创建独立的FTP帐号资料。

顾名思义匿名访问就是所有人均可随意登入FTP服务,这样自然会产生安全问题,一般用于存放公开的数据。

而本地用户与虚拟用户则需要用户提供帐号及口令后才能登入FTP服务,更加的安全,而虚拟用户则是最安全的。

下面的实验环节将使用两台红帽RHEL7系统的主机,读者需要提前配置网卡的IP地址等信息:

主机名称操作系统 IP地址

FTP服务端红帽RHEL7操作系统 192.168.10.10

FTP客户端红帽RHEL7操作系统 192.168.10.20

11.3.1匿名访问模式

FTP匿名访问模式是比较不安全的服务模式,尤其在真实的工作环境中千万不要存放敏感的数据,以免泄露。

vsftpd程序默认已经允许匿名访问模式,我们要做的就是开启匿名用户的上传和写入权限,写入下面的参数:

[root@linuxprobe~]# vim/etc/vsftpd/vsftpd.conf

参数作用

anonymous_enable=YES允许匿名访问模式。

anon_umask=022匿名用户上传文件的umask值。

anon_upload_enable=YES允许匿名用户上传文件

anon_mkdir_write_enable=YES允许匿名用户创建目录

anon_other_write_enable=YES允许匿名用户修改目录名或删除目录

确认填写正确后保存并退出vsftpd.conf文件,然后重启vsftpd服务程序并设置为开机自启动。

[root@linuxprobe~]# systemctl restart vsftpd

[root@linuxprobe~]# systemctl enable vsftpd

ln-s'/usr/lib/systemd/system/vsftpd.service''/etc/systemd/system/multi-user.target.wants/vsftpd.service

因为在红帽RHCSA、RHCE或RHCA考试后都要重启您的实验机再执行判分脚本。

所以请读者在日常工作中也要记得将需要的服务加入到开机启动项中:"systemctl enable vsftpd"。

如果重启vsftpd服务程序时没有报错,此时便可以使用FTP客户机(192.168.10.20)尝试登入FTP服务了。

ftp命令用于使用FTP服务,格式为:“ftp [参数] [FTP主机]”。

红帽RHEL7系统中ftp命令默认没有安装,请执行"yum install ftp-y"即可安装完毕。

在客户端尝试登入FTP服务:

[root@linuxprobe~]# ftp 192.168.10.10

Connected to 192.168.10.10(192.168.10.10).

220(vsFTPd 3.0.2)

Name(192.168.10.10:root): anonymous

331 Please specify the password.

Password:敲击回车

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> cd pub

250 Directory successfully changed.

ftp> mkdir files

550 Permission denied.

上面操作中已经将防火墙规则清空,在vsftpd.conf文件中也已经允许匿名用户创建目录与写入权限,那怎么会被拒绝了呢?

这里建议读者先不要往下看,思考后用自己的方法解决下这个问题,长期这样你的Linux的排错能力一定会练出来的。

回想前面的参数细节,匿名访问模式的FTP根目录为/var/ftp:

[root@linuxprobe~]# ls-ld/var/ftp/pub

drwxr-xr-x. 3 root root 16 Jul 13 14:38/var/ftp/pub

原来匿名用户的FTP根目录所有者/组都是root,所以匿名用户没有写入权限,那我们将所有者修改为ftp试试吧。

[root@linuxprobe~]# chown ftp/var/ftp/pub

此时再用ftp命令尝试登入FTP服务并创建文件:

ftp> mkdir files

550 Create directory operation failed.

可恶!又报错了!!虽然这次报错代码还是550,但前面提示权限拒绝,这次是操作失败,马上想到是SELinux服务在捣鬼。

查看所有与ftp相关的SELinux规则:

[root@linuxprobe~]# getsebool-a| grep ftp

ftp_home_dir--> off

ftpd_anon_write--> off

ftpd_connect_all_unreserved--> off

ftpd_connect_db--> off

ftpd_full_access--> off

ftpd_use_cifs--> off

ftpd_use_fusefs--> off

ftpd_use_nfs--> off

ftpd_use_passive_mode--> off

httpd_can_connect_ftp--> off

httpd_enable_ftp_server--> off

sftpd_anon_write--> off

sftpd_enable_homedirs--> off

sftpd_full_access--> off

sftpd_write_ssh_home--> off

tftp_anon_write--> off

tftp_home_dir--> off

设置SELinux服务对ftp服务的访问规则策略为允许。

[root@linuxprobe~]# setsebool-P ftpd_full_access=on

此时再来创建文件或目录就没有问题了:

[root@linuxprobe~]# ftp 192.168.10.10

Connected to 192.168.10.10(192.168.10.10).

220(vsFTPd 3.0.2)

Name(192.168.10.10:root): anonymous

331 Please specify the password.

Password:敲击回车

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> cd pub

250 Directory successfully changed.

ftp> mkdir files

257"/pub/files" created

ftp> rename files database

350 Ready for RNTO.

250 Rename successful.

ftp> rmdir database

250 Remove directory operation successful.

ftp> exit

221 Goodbye.

请注意:当您完成本实验后请还原虚拟机快照再进行下一个实验,否则可能导致配置文件冲突而报错。

11.3.2本地用户模式

既然要使用本地用户模式,而本地用户模式确实要比匿名访问模式更加的安全,所以本实验中会关闭匿名访问模式。

vsftpd服务程序默认已经允许本地用户模式,我们要做的是添加设置本地用户模式权限的参数:

[root@linuxprobe~]# vim/etc/vsftpd/vsftpd.conf

参数作用

anonymous_enable=NO禁止匿名访问模式。

local_enable=YES允许本地用户模式。

write_enable=YES设置可写入权限。

local_umask=022本地用户模式创建文件的umask值。

userlist_deny=YES参数值为YES即禁止名单中的用户,参数值为NO则代表仅允许名单中的用户。

userlist_enable=YES允许“禁止登陆名单”,名单文件为ftpusers与user_list。

确认填写正确后保存并退出vsftpd.conf文件,然后重启vsftpd服务程序并设置为开机自启动。

[root@linuxprobe~]# systemctl restart vsftpd

[root@linuxprobe~]# systemctl enable vsftpd

ln-s'/usr/lib/systemd/system/vsftpd.service''/etc/systemd/system/multi-user.target.wants/vsftpd.service

因为在红帽RHCSA、RHCE或RHCA考试后都要重启您的实验机再执行判分脚本。

所以请读者在日常工作中也要记得将需要的服务加入到开机启动项中:”systemctl enable vsftpd“。

如果重启vsftpd服务程序时没有报错,此时便可以使用FTP客户机(192.168.10.20)尝试登入FTP服务了~

我们先来看下ftpusers或user_list文件中禁止登陆用户名单:

root

bin

daemon

adm

lp

sync

shutdown

halt

mail

news

uucp

operator

games

nobody

vsftpd服务为了让FTP服务更加的安全,默认禁止以root身份登入,那么创建个普通用户吧:

[root@linuxprobe~]# useradd linuxprobe

为linuxprobe用户设置密码:

[root@linuxprobe~]# passwd linuxprobe

Changing password for user linuxprobe.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

在客户端尝试登入FTP服务:

[root@linuxprobe~]# ftp 192.168.10.10

Connected to 192.168.10.10(192.168.10.10).

220(vsFTPd 3.0.2)

Name(192.168.10.10:root): linuxprobe

331 Please specify the password.

Password:输入用户的本地密码

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> mkdir files

550 Create directory operation failed.

有了上面配置匿名访问模式的经验,这次再遇到了“操作被拒绝”,应该马上想到SELinux了吧。

查看所有与ftp相关的SELinux规则:

[root@linuxprobe~]# getsebool-a| grep ftp

ftp_home_dir--> off

ftpd_anon_write--> off

ftpd_connect_all_unreserved--> off

ftpd_connect_db--> off

ftpd_full_access--> off

ftpd_use_cifs--> off

ftpd_use_fusefs--> off

ftpd_use_nfs--> off

ftpd_use_passive_mode--> off

httpd_can_connect_ftp--> off

httpd_enable_ftp_server--> off

sftpd_anon_write--> off

sftpd_enable_homedirs--> off

sftpd_full_access--> off

sftpd_write_ssh_home--> off

tftp_anon_write--> off

tftp_home_dir--> off

设置SELinux对FTP服务的规则为允许:

[root@linuxprobe~]# setsebool-P ftpd_full_access=on

此时再来创建文件或目录就没有问题了:

[root@linuxprobe~]# ftp 192.168.10.10

Connected to 192.168.10.10(192.168.10.10).

220(vsFTPd 3.0.2)

Name(192.168.10.10:root): linuxprobe

331 Please specify the password.

Password:输入用户本地密码

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> mkdir files

257"/home/linuxprobe/files" created

ftp> rename files database

350 Ready for RNTO.

250 Rename successful.

ftp> rmdir database

250 Remove directory operation successful.

ftp> exit

221 Goodbye.

linux下如何匿名登录ftp

一、说明

1、配置文件:

/etc/vsftpd/vsftpd.conf

2、默认匿名用户:

more/etc/passwd

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

二、举例

用系统匿名用户FTP登陆访问FTP目录,只赋予下载权限,FTP目录指定到/home/ftp

1、修改配置文件

# vi/etc/vsftpd/vsftpd.conf

local_enable=NO

connect_from_port_20=YES

listen=YES

listen_port=21

tcp_wrappers=YES

anonymous_enable=YES

ftp_username=ftp

no_anon_password=YES

anon_root=/home/ftp

anon_world_readable_only=YES

2、重启ftp服务

#service vsftpd restart

3、如果出现421 Service not available, remote server has closed connection错误

vi/etc/hosts.allow

添加:

vsftpd:ALL

三、匿名用户相关设置说明

anonymous_enable=YES|NO

控制是否允许匿名用户登录,YES允许,NO不允许,默认值为YES。

ftp_username=

匿名用户所使用的系统用户名。默认下,此参数在配置文件中不出现,值为ftp。

no_anon_password=YES|NO

控制匿名用户登入时是否需要密码,YES不需要,NO需要。默认值为NO。

deny_email_enable=YES|NO

此参数默认值为NO。当值为YES时,拒绝使用banned_email_file参数指定文件中所列出的e-mail地址进行登录的匿名用户。即,当匿名用户使用banned_email_file文件中所列出的e-mail进行登录时,被拒绝。显然,这对于阻击某些Dos攻击有效。当此参数生效时,需追加banned_email_file参数

banned_email_file=/etc/vsftpd.banned_emails

指定包含被拒绝的e-mail地址的文件,默认文件为/etc/vsftpd.banned_emails。

anon_root=

设定匿名用户的根目录,即匿名用户登入后,被定位到此目录下。主配置文件中默认无此项,默认值为/var/ftp/。

anon_world_readable_only=YES|NO

控制是否只允许匿名用户下载可阅读文档。YES,只允许匿名用户下载可阅读的文件。NO,允许匿名用户浏览整个服务器的文件系统。默认值为YES。

anon_upload_enable=YES|NO

控制是否允许匿名用户上传文件,YES允许,NO不允许,默认是不设值,即为NO。除了这个参数外,匿名用户要能上传文件,还需要两个条件:一,write_enable参数为YES;二,在文件系统上,FTP匿名用户对某个目录有写权限。

anon_mkdir_write_enable=YES|NO

控制是否允许匿名用户创建新目录,YES允许,NO不允许,默认是不设值,即为NO。当然在文件系统上,FTP匿名用户必需对新目录的上层目录拥有写权限。

anon_other_write_enable=YES|NO

控制匿名用户是否拥有除了上传和新建目录之外的其他权限,如删除、更名等。YES拥有,NO不拥有,默认值为NO。

chown_uploads=YES|NO

是否修改匿名用户所上传文件的所有权。YES,匿名用户所上传的文件的所有权将改为另外一个不同的用户所有,用户由chown_username参数指定。此选项默认值为NO。

chown_username=whoever

指定拥有匿名用户上传文件所有权的用户。此参数与chown_uploads联用。不推荐使用root用户。

阅读剩余
THE END