十一、SAMBA服务和FTP服务讲解
Samba只用于局域网,相当于windows的网上邻居。
ftp可以作服务器,其他人可以登录到你机子,下载或者上传东西。
一、samba服务
Smb主要作为网络通信协议;
Smb是基于cs架构;
完成Linux与windows之间的共享;linux与linux之间共享用NFS
第一步:安装samba
[root@ww ~]# yum install samba -y
第二步:编辑配置文件
[root@ww~]# vim /etc/samba/smb.conf …
在global后面加入
[ken] path = /ken(path:共享linux的哪个目录)前后有空格
read only = no
public = yes
启动 smb:systemctl restart smb
第三步:添加访问用户
[root@ww ~]# pdbedit -a -u ken(ken:系统当中存在的用户)
(a:create user 添加用户 u:usage指定用户名)
第四步:创建共享目录
[root@ww ~]# mkdir /ken
第五步:关闭防火墙
[root@ww ~]# setenforce 0 [root@ken ~]# systemctl stop firewalld
第六步:启动samba服务
[root@ww ~]# systemctl restart smb
第七步:windows访问
输入两个反斜线加上samba服务器的地址。输入你的用户名和密码即可
第八步:测试创建文件
添加管理权限:
[root@ww ~]#chmod a= /home/test
[root@ww ~]#Chmod -R o+w /ken
映射:直接可以访问
二、FTP服务概述
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。
FTP(File Transfer Protocol: 文件传输协议)作用: Internet 上用来传送文件的协议
今天的主角:vsftp
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
特点:
它是一个安全、高速、稳定的FTP服务器;
模式: C/S 模式
端口:
20 (传数据)
21(传指令)
三、FTP工作流程(原理):
##面试经常会遇到这样问题,大家需要注意下
这里的主动和被动,是相对于的FTP server 端来判断的
如果server 去连接client 开放的端口,说明是主动的,相反,如果client去连接server开放的端口,则是被动的。
两种模式的比较:
(1)PORT(主动)模式模式只要开启服务器的21和20端口,而PASV(被动)模式需要开启服务器大于1024所有tcp端口和21端口。
(2)从网络安全的角度来看的话似乎ftp PORT模式更安全,而ftp PASV更不安全,那么为什么RFC要在ftp PORT基础再制定一个ftp PASV模式呢?其实RFC制定ftp PASV模式的主要目的是为了数据传输安全角度出发的,因为ftp port使用固定20端口进行传输数据,那么作为黑客很容使用sniffer等探嗅器抓取ftp数据,这样一来通过ftp PORT模式传输数据很容易被黑客窃取,因此使用PASV方式来架设ftp server是最安全绝佳方案。(默认是被动工作模式)
四、部署安装FTP
下载vsftpd
[root@ww ~]# yum install vsftpd -y
1.配置匿名开放模式
匿名开放模式:是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器。
表11-2 可以向匿名用户开放的权限参数以及作用
参数 |
作用 |
anonymous_enable=YES |
允许匿名访问模式 |
anon_umask=022 |
匿名用户上传文件的umask值 |
anon_upload_enable=YES |
允许匿名用户上传文件 |
anon_mkdir_write_enable=YES |
允许匿名用户创建目录 |
anon_other_write_enable=YES |
允许匿名用户修改目录名称或删除目录 |
第一步:编辑配置文件
[root@ww ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
第二步:启动ftp
[root@ww ~]# systemctl restart vsftpd
第三步:windows访问
第四步:写入文件进行测试
发现没有权限
第五步:更改属主
[root@ww ~]#find /-name "pub"
[root@ww ~]#ls -ld /var/ftp/pub/ 默认访问pub目录
[root@ww ~]#chmod -R o+w /var/ftp/pub/
(也可以chmod ftp: /var/ftp/pub/)
想要删除:
[root@ww ~]#vim /etc/vsftpd/vsftpd.conf
加anon_other_write_enable=YES
[root@ww ~]#systemctl restart vsftpd
第六步:再次创建文件
创建成功
2.配置本地用户模式
本地用户模式使用的权限参数以及作用
参数 |
作用 |
anonymous_enable=NO |
禁止匿名访问模式 |
local_enable=YES |
允许本地用户模式 |
write_enable=YES |
设置可写权限 |
local_umask=022 |
本地用户模式创建文件的umask值 |
userlist_deny=YES |
启用“禁止用户名单”,名单文件为ftpusers和user_list |
userlist_enable=YES |
开启用户作用名单文件功能 |
第一步:编辑配置文件
[root@ww ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
第二步:重启服务
[root@ww ~]# systemctl restart vsftpd
第三步:创建一个普通用户
[root@ww ~]# useradd ken
[root@ken ~]# passwd ken
第四步:windows访问
输入创建的用户和密码
第五步:创建文件进行测试
文件被上传到了用户家目录下面
[root@ww ~]# ls /home/ken
yum.repo test
用户黑名单:
[root@ww ~]#cd /etc/vsftpd/
[root@ww ~]#vim ftpusers
[root@ww ~]#Vim user_list
(ftpusers user_list用户黑名单)
查询端口号:ss- tnl
端口所对应的服务:[root@ken ~]#lsof -i :22
(t:tcp n:numeric不解析服务名称 l:监听listen)
yum install tcpdump -y
[root@ww ~]#ip a
tcpdump -i eth0 -x src 192.168.67.1 and port 21
(i:指定端口 x:显示产生数据的信息 21:端口)
ss -tna
创建文件
五、systemctl常用操作
以samba为列:
systemctl start smb #启动smb服务
systemctl restart smb #重启smb服务
systemctl stop smb #停止smb服务
systemctl status smb #查看smb服务状态(active正在运行)
systemctl reload smb #平滑重启smb(不停止服务的情况下重启)
systemctl enable smb #开机自启smb服务
systemctl disable smb #开机不启动smb服务
systemctl is-emabled smb #查看开机启动smb服务吗
systemctl list-units #查看开机自启动服务
六、sshd服务讲解
SSHD服务
介绍:SSH 协议:安全外壳协议。为 Secure Shell 的缩写。SSH 为建立在应用层和传输层基础上的安全协议。
默认端口22
作用
sshd服务使用SSH协议可以用来进行远程控制, 或在计算机之间传送文件
相比较之前用telnet方式来传输文件要安全很多,因为telnet使用明文传输,是加密传输。
SSH服务安装
这里用yum安装(系统已经默认安装并开机自启)
[root@ken ~]# yum -y install openssh openssh-clients openssh-server openssh-askpass
SSH 配置文件
SH 常用配置文件有两个/etc/ssh/ssh_config 和/etc/ssh/sshd_config
ssh_config 为客户端配置文件
sshd_config 为服务器端配置文件
[root@ken ~]#vim /etc/ssh/sshd_config
UseDNS:no 禁止用域名解析
1.几个隐藏文件
主节点:即执行ssh-keygen的主机
[root@ww ~]# ls .ssh/
id_rsa: 私钥(执行ssh-keygen生成)
id_rsa.pub: 公钥(执行ssh-keygen生成)
known_hosts: 主机信息
从节点:接收秘钥的主机
[root@ken-node2 ~]# ls .ssh/ authorized_keys
authorized_keys文件内容和主节点的 id_rsa.pub文件内容一致,即保存了公钥信息。
2.使用ssh免密登录远程主机
1、ssh [远程主机用户名] @[远程服务器主机名或IP地址]
[root@ww ~]# ssh 192.168.100.156
[root@ww ~]# cat /root/.ssh/known_hosts
3.生成密钥对
[root@ken ~]# ssh-keygen 一直回车
4.发送密钥
[root@ww ~]# ssh-copy-id 192.168.163.128(传送密钥至想要登陆的ip)
5.登录节点
[root@ww ~]# ssh 192.168.163.128
实例:
[root@ww ~]#vim /etc/ssh/sshd_config
UseDNS:no 禁止用域名解析
[root@ken ~]#ssh-keygen
[root@ww ~]#ls -la (看有没有生成.ssh)
[root@ww ~]#ls .ssh/
[root@ww ~]#ssh-copy-id 192.168.163.128
[root@ww ~]#ssh 192.168.163.128
[root@ww ~]#cat .ssh/known_hosts
去另一台
[root@ww ~]#ls.ssh
[root@ww ~]#cat .ssh/id_rsa.pub