一、NFS
NFS是Network File System的缩写,即网络文件系统。
NFS服务器安装
1、NFS服务器主要的软件是rpcbind(rhel 5中的版本叫portmap)和nfs-utils
rpcbind:是RPC主程序,负责NFS端口的监听。
nfs-utils:是NFS主程序
我们只有通过yum或者RPM来安装就可以
2、启动NFS
[root@web ~]# service nfs start 启动 NFS 服务: [确定] 启动 NFS mountd: [确定] 启动 NFS 守护进程: [确定] 正在启动 RPC idmapd: [确定]
3、NFS服务端配置
# 编辑NFS服务端配置 [root@web data]# vim /etc/exports # 配置的格式:服务端要共享的目录 允许访问共享目录的计算机(选项) /data 192.168.1.*(rw,sync,all_squash,anonuid=500,anongid=500)
当配置更改之后需要使之生效,无需重启NFS服务
[root@web data]# exportfs -arv exporting 192.168.1.*:/data # -a 全部,对所有的共享目录 # -r 重新加载配置 # -v 显示当前共享的目录及他们的配置 # -u 取消一个或者多个共享目录
客户端选项 |
说明 |
---|---|
ro |
客户端只能以只读方式访问共享目录中的文件,不能写入,删除,创建 |
rw |
对共享目录可读写 |
sync |
同步写入,对数据的安全性有好处,但是降低效率 |
async |
异步写入,效率高,但是对数据的安全性比较差 |
all_squash |
不管登陆NFS的使用者身份是什么,都把它的UID和GID映射为匿名用户和 用户组一般是nfsnobody |
no_all_squash |
保留用户原来的UID和GID,不进行映射 |
anonuid=id |
指定NFS服务器使用/etc/passwd文件中的UID为该值的用户作为匿名用户 |
anongid=id |
指定NFS服务器使用/etc/passwd文件中的GID为该值的用户作为匿名用户组 |
root_squash |
如果登陆NFS服务器使用共享目录的使用者是root,则把这个使用者的权限 映射为匿名用户 |
no_root_squash |
如果登陆NFS服务器使用共享目录的使用者是root,那么就保留它的root的 权限,不映射为匿名用户,不建议使用,影响安全性 |
4、客户端的使用
客户端如果想要使用NFS的共享目录,也需要在客户安装并启动rpcbind服务
# 查看NFS服务端共享目录的列表 [root@mysql mnt]# showmount -e 192.168.1.10 Export list for 192.168.1.10: /data 192.168.1.* # 挂载共享目录 # 挂载的格式:mount [选项] NFS服务器IP或主机名:共享目录 挂载点 # 常用选项:-t nfs 指定要挂载的文件系统类型为NFS [root@mysql ~]# mount -t nfs 192.168.1.10:/data /mnt [root@mysql ~]# df -t nfs Filesystem 1K-blocks Used Available Use% Mounted on 192.168.1.10:/data/ 16180224 1676544 13675008 11% /mnt
二、FTP
Puer-FTP:是一个高效,简单,安全的FTP服务器软件,功能多,使用
1、Puer-FTP
pure-ftp可以用源码包进行编译安装,也可以通过yum源进行安装,源码安装在这里就不讲了,今天我们通过用yum安装
# yum安装前先要安装扩展源 [root@web ~]# yum install -y epel-release [root@web ~]# yum list |grep pure-ftpd pure-ftpd.i686 1.0.30-1.el6 epel pure-ftpd-selinux.i686 1.0.30-1.el6 epel [root@web ~]# yum install -y pure-ftpd # 编辑配置文件 [root@web ~]# vim /etc/pure-ftpd/pure-ftpd.conf # 默认参数不需要去修改什么,就可以直接用,有一些地方需要注意一下 ChrootEveryone yes BrokenClientsCompatibility no MaxClientsNumber 50 Daemonize yes MaxClientsPerIP 8 VerboseLog no DisplayDotFiles yes AnonymousOnly no NoAnonymous no SyslogFacility ftp DontResolve yes MaxIdleTime 15 # 数据类型,这里我们使用pureftpd.pdb,这个功能需要打开 PureDB /etc/pure-ftpd/pureftpd.pdb PAMAuthentication yes LimitRecursion 10000 8 AnonymousCanCreateDirs no MaxLoad 4 AntiWarez yes Umask 133:022 MinUID 500 UseFtpUsers no AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite no ProhibitDotFilesRead no AutoRename no AnonymousCantUpload yes AltLog clf:/var/log/pureftpd.log MaxDiskUsage 99 CustomerProof yes
2、创建连接用的虚拟用户
# 创建一个系统用户 [root@web ~]# useradd -s /sbin/nologin testftp # 在创建一个匿名用户,并把这个用户挂依靠到指定的系统用户下,指定匿名用户家目录 [root@web ~]# pure-pw useradd ftp_user1 -u testftp -d /data/ftpuser1 Password: Enter it again: # 列出已经创建的匿名用户及其家目录 [root@web ~]# pure-pw list ftp1 /data/www/./ ftp_user1 /data/ftpuser1/./ # 生成数据库 [root@web ~]# pure-pw mkdb # 启动pureftpd [root@web ~]# /etc/init.d/pure-ftpd start 正在启动 pure-ftpd: [确定]
3、在客户端上的登陆与访问
在客户端需要安装lftp,进行登陆工作
[root@mysql ~]# yum install -y lftp # 格式 lftp 匿名用户@ftp服务器地址 [root@mysql ~]# lftp [email protected] 口令: lftp [email protected]:~> ls drwxr-xr-x 2 0 0 4096 May 24 11:12 . drwxr-xr-x 2 0 0 4096 May 24 11:12 ..
vsftpd:安全,稳定,高性能的开源FTP服务器软件
虚拟用户认证
1、yum 安装vsftpd与db4-utils
[root@web ~]# yum install -y vsftpd db4-utils [root@web ~]# /etc/init.d/vsftpd start 为 vsftpd 启动 vsftpd: [确定] [root@web ~]# useradd virftp -s /sbin/nologin [root@web ~]# vim /etc/vsftpd/vsftpd_login hp 1 lenovo 2 [root@web ~]# chmod 600 /etc/vsftpd/vsftpd_login [root@web ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db [root@web ~]# mkdir /etc/vsftpd/vsftpd_user_conf [root@web ~]# cd /etc/vsftpd/vsftpd_user_conf [root@web vsftpd_user_conf]# vim hp local_root=/data/virftp/hp anonymous_enable=NO write_enable=YES local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10 max_per_ip=5 local_max_rate=50000 [root@web vsftpd_user_conf]# ls hp lenovo [root@web vsftpd_user_conf]# mkdir -p /data/virftp/hp [root@web vsftpd_user_conf]# mkdir -p /data/virftp/lenovo [root@web vsftpd_user_conf]# chown -R virftp.virftp /data/virftp/hp/ [root@web vsftpd_user_conf]# chown -R virftp.virftp /data/virftp/lenovo/ [root@web vsftpd_user_conf]# vim /etc/pam.d/vsftpd # 增加的内容 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login [root@Samba vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf # 修改的内容 anonymous_enable=YES改为anonymous_enable=NO #anon_upload_enable=YES 改为 anon_upload_enable=NO #anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO # 增加的内容 chroot_local_user=YES guest_enable=YES guest_username=virftp virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vsftpd_user_conf [root@web ~]# service vsftpd restart 关闭 vsftpd: [确定] 为 vsftpd 启动 vsftpd: [确定]
对于iptables的设置需要开发默认21监听端口,在设置数据传输端口
示例:
[root@web ~]# vim /etc/vsftpd/vsftpd.conf # 增加内容 pasv_min_port=6000 pasv_max_port=7000 [root@web ~]# iptables -I INPUT -p tcp --dport 6000:7000 -j ACCEPT [root@Samba OS]# service vsftpd restart 关闭 vsftpd: [确定] 为 vsftpd 启动 vsftpd: [确定]