第一、NFS服务器的搭建
nfs-utils
必须依赖的服务 portmap
/etc/exports
/share/rhel_source 10.1.10/24(ro)
/share/rhel_source 10.1.10.111(ro) 10.1.1.222(rw)
^ 没有空格
* 代表所有IP
rw
sync
rsync
root_squash <---默认就带有这个参数,作用就把root的身份映射成nfsnobody
no_root_squash <--不把root的身份映射成nfsnobody
all_squash <--- nfsnobody
决定一个服务器资源是否有写的权限,除了服务应用程序的配置之外,还要决定于文件系统的权限
练习:
man exports配置文件, 实现所有普通帐号对nfs资源访问的时候,都统一采用一个服务器指定的身份进行操作,服务器的资源配置要求: 允许10.1.1.0/24网段读写,允许192.168.20.0/24网段只读。服务器资源路径 /share/it
/share/it 10.1.1.0/24(rw,all_squash,anonuid=65534) 192.168.20.0/24(ro,all_squash,anonuid=65534)
============================================
第二、vsftp服务器配置
ftp的两种工作模式:不管是哪种模式,都默认监听21端口
主动模式:默认情况下,ftp监听21端口,通过该端口接受客户端的控制命令,然后ftp服务器端会主动打开20端口去连接客户端,来进行数据传输。缺点:当ftp客户端处于和ftp服务端是工作在不同的网络,而且客户段的网络是局域网,这种工作模式就传输失败了。
[ftp_server]210.38.224.38 : 20 <---> [Router] <---> ( LAN: [ftp_client] 10.1.1.20)
被动模式:默认情况下,ftp监听21端口,通过该端口接受客户端的控制命令,然后客户端会告诉ftp服务器端打开某个大于1024的端口,等待客户端的主动连接。
验证主动模式:
service vsftpd restart
第一终端:
[root@dns vsftpd]# ftp 10.1.1.20
Connected to 10.1.1.20.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (10.1.1.20:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> passive
Passive mode off.
ftp> ls
。。。。。
第二个终端:
[root@dns ~]# netstat -nt | grep :20 | grep TIME_W
tcp 0 0 10.1.1.20:20 10.1.1.20:50783 TIME_WAIT
^证明了服务器用了20端口发送数据
验证被动模式:
第一个终端:
[root@dns vsftpd]# telnet 10.1.1.20 21
Trying 10.1.1.20...
Connected to dns.upl.com (10.1.1.20).
Escape character is '^]'.
220 (vsFTPd 2.0.5)
USER ftp
331 Please specify the password.
PASS
230 Login successful.
PASV
227 Entering Passive Mode (10,1,1,20,204,127)
第二个终端:
[root@dns ~]# nc -p 7889 10.1.1.20 $((204*256+127))
参数说明 : -p 打开本地一个没有使用的>1024的端口用于建立连接
10.1.1.20就是你要与它建立连接的目标机器
$((204*256+127)) 计算出你要连接10.1.1.20的哪个端口
第三个终端:验证服务器的确监听了$((204*256+127))这个端口
[root@dns ~]# netstat -ntl | grep 52351
tcp 0 0 10.1.1.20:52351 0.0.0.0:* LISTEN
第一个终端:
LIST <---发送一个列表指令
150 Here comes the directory listing.
226 Directory send OK.
第二个终端: 看到ftp服务器传过来的列表数据
-rwxr-xr-x 1 0 0 462 Sep 14 08:52 shell_1.txt
-rw-r--r-- 1 0 0 453 Sep 14 08:47 shell_1.txt~
man 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=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
例子1:最简单的ftp服务器的搭建,完成上面两种工作模式的验证
yum install vsftpd -y
service vsftpd restart
anonymous_enable=YES <---允许匿名登录
例子2:实现匿名上传文件
注意: 匿名ftp登录的根目录(ftp的家目录)不能是777
chmod 777 /var/ftp/pub
配置文件添加参数
anon_upload_enable=yes
例子3: 实现匿名下载刚上传的文件
默认情况: 只允许匿名帐号下载所有人都能读的文件 r--r--r--
如果想改变这个行为:
anon_world_readable_only=NO
方法2:
不允许下载:600 rw-------
允许下载: 444 r--r--r--
anon_umask=022 <--- 文件权限 666-022=644
例子4:实现匿名帐号可以删除文件
anon_other_write_enable=yes
例子5: 允许匿名创建文件夹
anon_mkdir_write_enable=yes
例子6:锁定普通帐号登录的活动范围
local_enable=YES <---允许普通帐号登录
write_enable=YES <---允许写
local_umask=022
chroot_local_user=yes <--- *
例子7:实现某些用户不锁定活动范围,某些用户就锁定
chroot_local_user=yes
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
shell> vim /etc/vsftpd/chroot_list 《--只运许列表中的用户切换目录,其他一律锁定
tom
例子8: 实现统一所有普通帐号登录之后的路径
local_root=/ftp
例子9:禁止某个用户登录ftp
方法1:
把该用户的默认shell更改为/bin/false就不允许登录
方法2:修改配置文件
userlist_enable=YES <--- 启用名单功能
userlist_deny=YES <---如果是YES的话,userlist_file参数指定的文件(/etc/vsftpd/user_list)里面的用户都不允许登录ftp,如果是NO代表里面的用户允许登录
shell> vim /etc/vsftpd/user_list
tom
阅读(1046) | 评论(0) | 转发(0) |