我是靠谱客的博主 老迟到板凳,最近开发中收集的这篇文章主要介绍RHEL7的FTP、Samba、NFS服务,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

A.FTP服务

    FTP是为了解决不同设备之间文件传输的问题而产生的技术,基于客户端/服务器模式,默认使用20,21端口。端口20用于传输数据,端口21用于接受客户端的命令和参数。FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向服务端发送请求连接,以建立数据传输链路的主机。FTP有两种工作模式:1.主动模式,FTP服务器主动向客户端发起连接请求。2.被动模式,FTP服务器等待客户端发起连接请求。vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux系统上的FTP服务程序。安装vftpd,yum  install  vsftpd -y。vsftpd服务的主配置文件(/etc/vsftpd/vsftpd.conf)。过滤主配置文件,mv  /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf_bak,cat  /etc/vsftpd/vsftpd.conf_bak  |  grep  -v  "#"  > /etc/vsftpd/vsftpd.conf。

    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为不限制

    vsftpd服务程序,允许用户以三种模式登录到FTP服务器上:1.匿名开放模式。2.本地用户模式。3.虚拟用户模式。安装FTP客户端,yum  install  ftp  -y。

    匿名开放模式

    1.编辑主配置文件。

vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=YES
  anon_umask=022
  anon_upload_enable=YES
  anon_mkdir_write_enable=YES
  anon_other_write_enable=YES

    2.重启服务,并加入启动项

systemctl restart vsftpd
systemctl enable vsftpd

    3.修改/var/ftp/pub目录的所有者身份

ls -ld /var/ftp/pub
查看目录的所有者
chown -Rf ftp /var/ftp/pub

    4.设置SELinux

getseboot -a | grep ftp
查看域策略
setseboot -P ftpd_full_access=on
修改域策略

    本地用户模式

    1.修改主配置文件

vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
  local_enable=YES
  write_enable=YES
  local_umask=022

    2.重启服务,并加入启动项

systemctl restart vsftpd
systemctl enable vsftpd

    3.因为在ftpusers和user_list文件中root用户被禁止访问FTP服务器,所以用这两个文件中没有禁止的普通用户,比如xiaoming。

    4.修改SELinux域

getsebool -a | grep ftp
查看与ftp相关的域策略
setseboot -P ftpd_access=on
修改域策略

    虚拟用户模式

    1.创建用于进行FTP认证的用户数据库文件,奇数行为用户名,偶数行为密码。

cd /etc/vsftpd
vim vuser.list
zhangsan
redhat
lisi
redhat

    2.加密信息,设置权限并删除明文文件。

db_load -T -t hash -f vuser.list vuser.db
chmod 600 vuser.db
rm -f vuser.list

    3.创建vsftpd服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户。

useradd -d /var/ftproot -s /sbin/nologin virtual
chmod -Rf 755 /var/ftproot

    4.建立用于支持虚拟用户的PAM文件

vim /etc/pam.d/vsftpd.vu
auth    required    pam_userdb.so    db=/etc/vsftpd/vuser
account    required    pam_userdb.so    db=/etc/vsftpd/vuser

    5.修改主配置文件

vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
  local_enable=YES
  guest_enable=YES
  guest_username=virtual
  allow_writeable_chroot=YES

14 pam_service_name=vsftpd.vu

    6.为虚拟用户设置不同的权限

mkdir /etc/vsftpd/vusers_dir
cd /etc/vsftpd/vusers_dir
touch lisi
vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

    7.再次修改主配置文件,重启服务,并加入启动项

vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir

systemctl restart vsftpd
systemctl enable vsftpd

    8.设置SELinux策略

getsebool -a | grep ftp
setseboot -P ftpd_full_access=ON

    简单文件传输协议

    简单文件传输协议(Trivial File Transfer Protocal,TFTP)是一种基于UDP协议在客户端和服务器之间进行简单文件传输的协议,占用的端口号是69。

    1.安装TFTP软件包

yum install tftp-server tftp -y

    2.编辑配置文件

vim /etc/xinetd.d/tftp
service tftp
{
    socket_type = dgram
    protocol    = udp
    wait        = yes
    user        = root
    server      = /usr/sbin/in.tftpd
    server_args = -s /var/lib/tftpboot
    disable     = no
    per_source  = 11
    cps         = 100 2
    flags       = IPv4
}

    4.重启服务,加入启动项,设置firewalld防火墙

systemctl restart xinetd
systemctl enable xinetd
firewall-cmd --permanent --add-port=69/udp
firewall-cmd --reload

B.Samba服务

    Samba服务是用于在Linux和Windows系统之间共享文件的。

    安装Samba服务程序,yum  install  Samba  -y。主配置文件是,/etc/samba/smb.comf。可以使用下面的方法过滤掉注释信息。

    mv  /etc/samba/smb.conf  /etc/samba/smb.confg.bak   

    cat  /etc/samba/smb.conf.bak  |  grep  -v "#"  |  grep  -v  ";'  | grep -v "^$"  >  /etc/samba/smb.conf

    Samba服务程序参数的意义

[global]
workgroup=MYGROUP  工作组名称
server string= Samba Server Version %v  服务器介绍信息,参数%v为显示SMB版本号
log file=/var/log/samba/log.%m  定义日志文件的存放位置和名称,参数%m为来访的主机名
max log size=50  定义日志文件的最大容量为50KB
security=user  安全验证的方式,总共有4种
#share:  来访主机无需验证口令;比较方便,但安全性很差
#user:  需验证来访主机提供的口令才可以访问;提升了安全性
#server:  使用独立的远程主机验证来访主机提供的口令(集中管理账户)
#domain:  使用域控制器进行身份验证
passdb backend=tdbsam  定义用户后台的类型,共有3种
#smbpasswd:  使用smbpasswd命令为系统用户设置Samba服务程序的密码
#tdbsam:  创建数据库文件并使用pdbedit命令建立Samba服务程序的用户
#ldapsam:  基于LDAP服务进行账户验证
load printers=yes  设置在Samba服务启动时是否共享打印机设备
cups options=raw  打印机的选项
[homes]
comment=Home Directories  描述信息
browseable=no  指定共享信息是否在“网上邻居”中可见
writable=yes  定义是否可以执行写入操作,与“read only”相反

    Samba服务程序的主配置文件包括全局配置参数和区域配置参数。

    配置共享资源

    编辑主配置文件,并重启服务加入启动项

[database]
comment = Do not arbitrarily modify the database file
path = /home/database
public = no
writable = yes

systemctl restart smb
systemctl enable smb

    1.创建用于访问共享资源的账户信息。

id xiaoming
pdbedit -a -u xiaoming

    2.创建用户共享资源的目录

mkdir /home/database
chown -Rf xiaoming:xiaoming /home/database
semanage fcontext -a -t samba_share_t /home/database
restorecon -Rv /home/database

    3.设置SELinux策略

getsebool -a | grep Samba
setsebool -P samba_enable_home_dirs=on

    4.清空防火墙

iptables -F
service iptables save

    Windows访问文件共享服务

    配置IP地址,RHEL7,192.168.10.10,Windows7,192.168.10.30,直接访问IP地址就可以了。由于Windows的缓存原因,有可能在第二次输入用户名和密码后报错,这时候重启一下Windows客户端就好了。

    Linux访问文件共享服务

    1.设置IP地址,RHEL7,192.168.10.10,RHEL7,192.168.10.20。

    2.在客户端安装支持文件共享服务的软件包(cifs-utils),yum  install  cifs-utils  -y。

    3.创建Samba的认证文件并设置权限不让其他人随意看到。

vim auth.smb
username=xiaoming
password=redhat
domain=MYGROUP

chmod 600 auth.smb

    4.创建挂载目录,并写入到/etc/fstab。

mkdir /database
vim /etc/fstab
//192.168.10.10/database  /database  cifs  credentials=/root/auth.smb 0 0

mount -a

C.NFS(网络文件系统)

    如果共享的主机都时Linux的话用NFS比价合适。RHEL7系统默认已经安装了NFS服务,配置前用yum检查一下是否安装。yum  install  nfs-utils。

    1.用两台Linux主机,一台做服务器,一台做客户端,并设置IP地址。服务端RHEL7  192.168.10.10,客户端RHEL7  192.168.10.20。

    2.清空防火墙

iptables -F
service iptables save

    3.在服务器上建立共享目录,并设置权限

mkdir /nfsfile
chmod -Rf 777 /nfsfile
echo "welcome to linux" > /nfsfile/readme

    4.配置NFS的配置文件。

vim /etc/exports
/nfsfile 192.168.10.*(rw,sync,root_squash)

    5.启动NFS服务程序,rpcbind服务,并将两个服务加入启动项

systemctl restart rpcbind
systemctl enable rpcbind
systemctl restart nfs-server
systemctl enable nfs-server

    6.配置客户端

    使用showmount查询NFS服务器的远程共享信息,showmount  -e  192.168.10.10。创建目录并挂载,mkdir /nfsfile,mount  -t  nfs  192.168.10.10:/nfsfile  /nfsfile。编辑/etc/fstab文件使共享功能一直有效,vim  /etc/fstab,192.168.10.10:/nfsfile  /nfsfile  nfs  defaults  0  0。

    autofs自动挂载服务

    将挂载信息写入到/etc/fstab文件后,系统在每次开机时都自动将其挂载,而autofs服务程序则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。

    1.安装autofs。yum  install autofs  -y。

    2.编辑配置文件。

vim /etc/auto.master
/media /etc/iso.misc

    3.配置子配置文件

vim /etc/iso.misc
iso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

systemctl restart autofs
systemctl enable autofs

 

最后

以上就是老迟到板凳为你收集整理的RHEL7的FTP、Samba、NFS服务的全部内容,希望文章能够帮你解决RHEL7的FTP、Samba、NFS服务所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部