码迷,mamicode.com
首页 > 系统相关 > 详细

学习Linux课程第十三天

时间:2018-12-08 13:20:31      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:防火墙   认证方式   share   RKE   object   删除文件   count   虚拟账户   三种模式   

复习学习内容

一、文件传输协议

FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数。

FTP有两种工作模式:

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

被动模式:FTP服务器等待客户端发起连接请求(默认工作方式)

二、vsftpd服务程序

三种认证方式:匿名开放模式:是一种最不安全的认证模式,任何人都能过无需密码登录到FTP服务器中

                         本地用户模式:通过Linux系统本地账户密码信息进行认证模式

                          虚拟用户模式:三种模式中最安全的一种认证,需要为FTP服务单独建立用户数据库,虚拟用来登录的用户口令进行登录

1、匿名开放模式

(1)编辑主配置服务

[root@doopli ~]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
[root@doopli ~]# grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf
[root@doopli ~]# 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=YE

(2)重启服务并加入启动项

systemctl restart vsftpd

systemctl enable vsftpd

(3)登录

ftp  IP地址

注:编辑 /var/ftp目录权限

       开启SELinux域策略中FTP权限

      setsebool  -P ftpd_full_access=on

2、本地用户模式

(1)配置主配置文件

[root@doopli ~]# vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
2 local_enable=YES
3 write_enable=YES
4 local_umask=022
5 dirmessage_enable=YES
6 xferlog_enable=YES
7 connect_from_port_20=YES
8 xferlog_std_format=YES
9 listen=NO
10 listen_ipv6=YES
11 pam_service_name=vsftpd
12 userlist_enable=YES
13 tcp_wrappers=YES

(2)重启服务并加入启动项

systemctl  restart vsftpd

systemctl  enable  vsftpd

(3)登录

ftp IP地址

注:删除   etc/vsftpd/user_list和/etc/vsftpd/ftpusers中的root

       开启SELinux域中ftp服务 setsebool -P ftpd_full_access=on

3、虚拟用户模式

(1)、创建用于进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。例如,我们分别创建出zhangsan和lisi两个用户,密码均为redhat:

[root@doopli ~]# cd /etc/vsftpd/
[root@doopli vsftpd]# vim vuser.list
zhangsan
redhat
lisi
redhat
转换用户数据库文件
[root@doopli vsftpd]# db_load -T -t hash -f vuser.list vuser.db
[root@doopli vsftpd]# file vuser.db
vuser.db: Berkeley DB (Hash, version 9, native byte-order)
[root@doopli vsftpd]# chmod 600 vuser.db
[root@doopli vsftpd]# rm -f vuser.list

(2)创建vsftpd服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户。FTP服务用于存储文件的根目录指的是,当虚拟用户登录后所访问的默认位置。

[root@doopli ~]# useradd -d /var/ftproot -s /sbin/nologin virtual
[root@doopli ~]# ls -ld /var/ftproot/
drwx------. 3 virtual virtual 74 Jul 14 17:50 /var/ftproot/
[root@doopli ~]# chmod -Rf 755 /var/ftproot/

(3)建立用于支持虚拟用户的PAM文件

新建一个用于虚拟用户认证的PAM文件vsftpd.vu,其中PAM文件内的“db=”参数为使用db_load命令生成的账户密码数据库文件的路径,但不用写数据库文件的后缀:

[root@doopli ~]# vim /etc/pam.d/vsftpd.vu
auth       required     pam_userdb.so db=/etc/vsftpd/vuser
account    required     pam_userdb.so db=/etc/vsftpd/vuser

(4)配置主配置文件

[root@doopli ~]# vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
2 local_enable=YES
3 guest_enable=YES
4 guest_username=virtual
5 allow_writeable_chroot=YES
6 write_enable=YES
7 local_umask=022
8 dirmessage_enable=YES
9 xferlog_enable=YES
10 connect_from_port_20=YES
11 xferlog_std_format=YES
12 listen=NO
13 listen_ipv6=YES
14 pam_service_name=vsftpd.vu
15 userlist_enable=YES
16 tcp_wrappers=YES

(5)为虚拟用户设置不同的权限。虽然账户zhangsan和lisi都是用于vsftpd服务程序认证的虚拟账户,但是我们依然想对这两人进行区别对待。比如,允许张三上传、创建、修改、查看、删除文件,只允许李四查看文件。这可以通过vsftpd服务程序来实现。只需新建一个目录,在里面分别创建两个以zhangsan和lisi命名的文件,其中在名为zhangsan的文件中写入允许的相关权限(使用匿名用户的参数):

[root@doopli ~]# mkdir /etc/vsftpd/vusers_dir/
[root@doopli ~]# cd /etc/vsftpd/vusers_dir/
[root@doopli vusers_dir]# touch lisi
[root@doopli vusers_dir]# vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

然后再次修改vsftpd主配置文件,通过添加user_config_dir参数来定义这两个虚拟用户不同权限的配置文件所存放的路径。为了让修改后的参数立即生效,需要重启vsftpd服务程序并将该服务添加到开机启动项中:

[root@doopli ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=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.vu
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/vusers_dir
[root@doopli ~]# systemctl restart vsftpd
[root@doopli ~]# systemctl enable vsftpd
 ln -s ‘/usr/lib/systemd/system/vsftpd.service‘ ‘/etc/systemd/system/multi-user.target.wants/vsftpd.service

 (6)登录

ftp IP地址

注:开启SELinux域中ftp服务  setsebool  -P  ftpd_full_access=on

三、简单文件传输协议

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

1、安装TFTP服务  yum install tftp-server tftp

2、编辑主配置文件

[root@doopli ~]# 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
}

3、重启服务并加入启动项  

systemctl  restart tftp

systemctl  enable tftp

4、登录

tftp IP地址

注:关闭防火墙或把UDP协议的69端口打开

四、Samba文件共享服务

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

pdbedit  -a -u 用户

2、创建用于共享的文件目录

在创建时,不仅要考虑到文件读写权限的问题,而且由于/home目录是系统中普通用户的家目录,因此还需要考虑应用于该目录的SELinux安全上下文所带来的限制。在前面对Samba服务程序配置文件中的注释信息进行过滤时,这些过滤的信息中就有关于SELinux安全上下文策略的说明,我们只需按照过滤信息中有关SELinux安全上下文策略中的说明中给的值进行修改即可。修改完毕后执行restorecon命令,让应用于目录的新SELinux安全上下文立即生效。

[root@doopli ~]# mkdir /home/database
[root@doopli ~]# chown -Rf doopli:doopli /home/database
[root@doopli ~]# semanage fcontext -a -t samba_share_t /home/database
[root@doopli ~]# restorecon -Rv /home/database
restorecon reset /home/database context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:samba_share_t:s0

3、开启SELinux域中Samba服务  setsebool -P  Samba_enable_home_dirs  on

4、在Samba服务程序的主配置文件中,在原始的配置文件中,[homes]参数为来访用户的家目录共享信息,[printers]参数为共享的打印机设备。

[root@doopli ~]# vim /etc/samba/smb.conf 
[global]
 workgroup = MYGROUP
 server string = Samba Server Version %v
 log file = /var/log/samba/log.%m
 max log size = 50
 security = user
 passdb backend = tdbsam
 load printers = yes
 cups options = raw
[database]
comment = Do not arbitrarily modify the database file
 path = /home/database
 public = no
 writable = yes

5、Samba服务程序的配置工作基本完毕。接下来重启smb服务(Samba服务程序在Linux系统中的名字为smb)并清空iptables防火墙,然后就可以检验配置效果了。

[root@doopli ~]# systemctl restart smb
[root@doopli ~]# systemctl enable smb
 ln -s ‘/usr/lib/systemd/system/smb.service‘ ‘/etc/systemd/system/multi-user.target.wants/smb.service‘
[root@doopli ~]# iptables -F
[root@doopli ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
6、Windows系统登录共享文件夹   \\ip地址

7、Linux挂载使用

(1)安装支持共享服务  

yum install cifs-utils

(2)挂载共享目录并写入 /etc/fstab

//192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0

技术分享图片

 

技术分享图片

 

技术分享图片

 

学习Linux课程第十三天

标签:防火墙   认证方式   share   RKE   object   删除文件   count   虚拟账户   三种模式   

原文地址:https://www.cnblogs.com/doopli/p/10087022.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!