学习笔记供以后参考复习
File Transfer Protocol
FTP是仅基于TCP的服务,不支持UDP,端口为:21命令端口和20数据端口
两种模式:PORT(主动)模式和PASV(被动)模式
主动FTP:
命令连接:客户端>1024端口 --> 服务器21端口
数据连接:客户端>1024端口 <-- 服务器20端口
File Transfer Protocol
FTP是仅基于TCP的服务,不支持UDP,端口为:21命令端口和20数据端口
两种模式:PORT(主动)模式和PASV(被动)模式
主动FTP:
命令连接:客户端>1024端口 --> 服务器21端口
数据连接:客户端>1024端口 <-- 服务器20端口
被动FTP:
命令连接:客户端>1024端口 --> 服务器21端口
数据连接:客户端>1024端口 --> 服务器>1024端口
命令连接:客户端>1024端口 --> 服务器21端口
数据连接:客户端>1024端口 --> 服务器>1024端口
主动FTP对FTP服务器的管理有利,但对客户端的管理不利,因为FTP服务器预与客户端的大于1024的随机端口建立连接
而这个端口很有可能被客户端的防火墙挡住!
被动FTP对FTP客户端的管理有利,但对服务器的管理不利,因为客户端与服务器建立连接,其中一个连接到一个大于1024
的随机端口,而这个端口很有可能被服务器的防火墙挡住!
而这个端口很有可能被客户端的防火墙挡住!
被动FTP对FTP客户端的管理有利,但对服务器的管理不利,因为客户端与服务器建立连接,其中一个连接到一个大于1024
的随机端口,而这个端口很有可能被服务器的防火墙挡住!
实验案例:
搭建需求:1、公司有两个部门分别为caiwu和jishu,user1属于caiwu组,test1,test2属于jishu组,所有的FTP用户都
不能拥有自己的shell环境(不能本地登录)
2、caiwu组当中的成员不能登录FTP服务器(要求限制整个组)
3、jishu组的用户不能离开自己的家环境
4、当用户登录FTP服务器时,显示欢迎信息“welcome to my FTP Server”
实验过程:
一、根据需求创建用户和组
[root@server ~]# groupadd caiwu
[root@server ~]# groupadd jishu
[root@server ~]# useradd user1;echo redhat | passwd --stdin user1
Changing password for user user1.
passwd: all authentication tokens updated successfully.
[root@server ~]# useradd test1;echo redhat | passwd --stdin test1
Changing password for user test1.
passwd: all authentication tokens updated successfully.
[root@server ~]# useradd test2;echo redhat | passwd --stdin test2
Changing password for user test2.
passwd: all authentication tokens updated successfully.
[root@server ~]# usermod -G caiwu user1
[root@server ~]# usermod -G jishu test1
[root@server ~]# usermod -G jishu test2
[root@server ~]# usermod -s /sbin/nologin user1 ----限制用户本地登录
[root@server ~]# usermod -s /sbin/nologin test1
[root@server ~]# usermod -s /sbin/nologin test2
二、配置FTP服务器
[root@server ~]# yum install vsftpd
[root@server ~]#cd /etc/vsftpd
[root@server vsftpd]# cp vsftpd.conf vsftpd.confbak
[root@server vsftpd]# vim vsftpd.conf
[root@server vsftpd]# grep -v "#" /etc/vsftpd/vsftpd.conf
anonymous_enable=YES ----匿名账户可登录
local_enable=YES ----本地账户可以登录
write_enable=YES ----可以写入
local_umask=022 ----创建默认权限,(文件夹777,文件666)
anon_upload_enable=YES ----允许匿名上传
dirmessage_enable=YES -- 如果启动这个选项,使用者第一次进入一个目录时,会检查该目录下是否有 .message 这个档案,若是有,则会出现此档案的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。默认值为开启。
xferlog_enable=YES --- 如果启动,上传与下载的信息将被完整纪录在底 xferlog_file 所定义的档案中。预设为开启。
connect_from_port_20=YES
xferlog_std_format=YES ---- 如果启动,则纪录文件将会写为 xferlog 的标准格式,如同 wu-ftpd 一般。默认值为关 闭。
ftpd_banner=Welcome to my FTP Server. ---登录界面信息
chroot_list_enable=YES ---限制在用户自己家目录中
chroot_list_file=/etc/vsftpd/chroot_list --需创建chroot_list,在其中定义用户,使其不能更改目录
listen=YES
搭建需求:1、公司有两个部门分别为caiwu和jishu,user1属于caiwu组,test1,test2属于jishu组,所有的FTP用户都
不能拥有自己的shell环境(不能本地登录)
2、caiwu组当中的成员不能登录FTP服务器(要求限制整个组)
3、jishu组的用户不能离开自己的家环境
4、当用户登录FTP服务器时,显示欢迎信息“welcome to my FTP Server”
实验过程:
一、根据需求创建用户和组
[root@server ~]# groupadd caiwu
[root@server ~]# groupadd jishu
[root@server ~]# useradd user1;echo redhat | passwd --stdin user1
Changing password for user user1.
passwd: all authentication tokens updated successfully.
[root@server ~]# useradd test1;echo redhat | passwd --stdin test1
Changing password for user test1.
passwd: all authentication tokens updated successfully.
[root@server ~]# useradd test2;echo redhat | passwd --stdin test2
Changing password for user test2.
passwd: all authentication tokens updated successfully.
[root@server ~]# usermod -G caiwu user1
[root@server ~]# usermod -G jishu test1
[root@server ~]# usermod -G jishu test2
[root@server ~]# usermod -s /sbin/nologin user1 ----限制用户本地登录
[root@server ~]# usermod -s /sbin/nologin test1
[root@server ~]# usermod -s /sbin/nologin test2
二、配置FTP服务器
[root@server ~]# yum install vsftpd
[root@server ~]#cd /etc/vsftpd
[root@server vsftpd]# cp vsftpd.conf vsftpd.confbak
[root@server vsftpd]# vim vsftpd.conf
[root@server vsftpd]# grep -v "#" /etc/vsftpd/vsftpd.conf
anonymous_enable=YES ----匿名账户可登录
local_enable=YES ----本地账户可以登录
write_enable=YES ----可以写入
local_umask=022 ----创建默认权限,(文件夹777,文件666)
anon_upload_enable=YES ----允许匿名上传
dirmessage_enable=YES -- 如果启动这个选项,使用者第一次进入一个目录时,会检查该目录下是否有 .message 这个档案,若是有,则会出现此档案的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。默认值为开启。
xferlog_enable=YES --- 如果启动,上传与下载的信息将被完整纪录在底 xferlog_file 所定义的档案中。预设为开启。
connect_from_port_20=YES
xferlog_std_format=YES ---- 如果启动,则纪录文件将会写为 xferlog 的标准格式,如同 wu-ftpd 一般。默认值为关 闭。
ftpd_banner=Welcome to my FTP Server. ---登录界面信息
chroot_list_enable=YES ---限制在用户自己家目录中
chroot_list_file=/etc/vsftpd/chroot_list --需创建chroot_list,在其中定义用户,使其不能更改目录
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=NO ---其中定义的用户能登陆ftp服务器,若userlist_deny=YES,则其中的用户不能登录
[root@server vsftpd]# vim user_list
添加test1,test2
[root@server vsftpd]# touch chroot_list
[root@server vsftpd]# vim chroot_list
添加test1,test2
[root@server vsftpd]# vim ftpusers
添加caiwu组
[root@server ~]# cd /etc/pam.d/
[root@server pam.d]# vim vsftpd
auth required pam_listfile.so item=group sense=deny file=/etc/vsftpd/ftpgroup onerr=succeed
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=NO ---其中定义的用户能登陆ftp服务器,若userlist_deny=YES,则其中的用户不能登录
[root@server vsftpd]# vim user_list
添加test1,test2
[root@server vsftpd]# touch chroot_list
[root@server vsftpd]# vim chroot_list
添加test1,test2
[root@server vsftpd]# vim ftpusers
添加caiwu组
[root@server ~]# cd /etc/pam.d/
[root@server pam.d]# vim vsftpd
auth required pam_listfile.so item=group sense=deny file=/etc/vsftpd/ftpgroup onerr=succeed
##item=group 也可定义为用户(user)
##sense=deny 若为allow则ftpgroup中定义的为可登录
##拒绝/etc/vsftpd/ftpgroup中组访问ftp
[root@server vsftpd]# /etc/init.d/vsftpd restart
##sense=deny 若为allow则ftpgroup中定义的为可登录
##拒绝/etc/vsftpd/ftpgroup中组访问ftp
[root@server vsftpd]# /etc/init.d/vsftpd restart
三、测试
[root@server ~]# lftp 192.168.100.200 -u test1
Password:
lftp test1@192.168.100.200:~> ls
lftp test1@192.168.100.200:/> cd /opt
cd: Access failed: 550 Failed to change directory. (/opt)
lftp test1@192.168.100.200:/> mkdir share
mkdir ok, `share' created
lftp test1@192.168.100.200:/> ls
drwxr-xr-x 2 502 504 4096 Jun 06 16:04 share
lftp test1@192.168.100.200:~> exit
[root@server ~]# lftp 192.168.100.200 -u user1
Password:
lftp user1@192.168.100.200:~> ls
`ls' at 0 [Delaying before reconnect: 18]
四、排错
[root@server ~]# lftp 192.168.100.200 -u test1
Password:
lftp test1@192.168.100.200:~> ls
lftp test1@192.168.100.200:/> cd /opt
cd: Access failed: 550 Failed to change directory. (/opt)
lftp test1@192.168.100.200:/> mkdir share
mkdir ok, `share' created
lftp test1@192.168.100.200:/> ls
drwxr-xr-x 2 502 504 4096 Jun 06 16:04 share
lftp test1@192.168.100.200:~> exit
[root@server ~]# lftp 192.168.100.200 -u user1
Password:
lftp user1@192.168.100.200:~> ls
`ls' at 0 [Delaying before reconnect: 18]
四、排错
如果登录失败,检查selinux,530错误通常是因为/etc/pam.d/vsftpd 中内容的出现问题的报错!
转载于:https://blog.51cto.com/sunsiroo8/890347