文件共享服务
samba
nfs
vsftpd
Samba
作用:实现Linux与windows文件共享
软件:samba, samba-client
配置文件:/etc/samba/smb.conf
服务:smb nmb
端口:139/tcp, 445/tcp (smb)
137/udp, 138/udp (nmb)
配置文件-----/etc/samba/smb.conf
1、指定服务器所在工作组名称
workgroup = MYGROUP
2、基于用户认证的共享
security = user
3、指定samba描述信息
server string = Samba Server Version %v
4、指定samba监听的IP地址
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
5、基于客户端IP地址访问控制
hosts allow = 127. 192.168.12. 192.168.13.
hosts deny = 192.168.1.1/24 172.16.
共享目录配置:
[共享名称]
comment = 说明信息
path = /caiwu 目录名称
browseable = { yes | no } 可浏览的
writeable = { yes | no } 可写的
write list = tom, +caiwu 允许写入的用户列表
public = {yes | no} 允许所有用户访问
valid users = tom, +caiwu 允许访问的用户列表
配置单用户samba共享
环境:
rhel 7 10.1.1.21 服务器
rhel 7 10.1.1.22 客户端
通过SMB共享/common目录
您的服务器必须是STAFF工作组的一个成员
共享名必须是common
common必须是可浏览的
用户harry必须能够读取共享中的内容,如果需要的话,验证的密码是migwhisk
服务器端:
1、创建目录
# mkdir /common
# touch /common/{1..3}.txt
2、安装软件
# yum install -y samba samba-client
3、编辑配置文件,共享目录
# vim /etc/samba/smb.conf
workgroup = STAFF
[common]
path = /common
browseable = yes
4、创建共享用户harry
# useradd harry
# smbpasswd -a harry
列出SMB用户列表信息yu
# pdbedit -L
harry:1002:
5、启动smb服务并设置开机自启
# systemctl start smb
# systemctl enable smb
# netstat -antp | grep smb
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 3490/smbd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 3490/smbd
--------
关闭防火墙及SELinux
# systemctl stop firewalld.service
# setenforce 0
--------
客户端:
1、安装客户端软件
# yum install -y samba-client
2、连接共享目录
# smbclient //10.1.1.21/common -U harry
Enter harry's password:
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
. D 0 Fri May 13 22:29:56 2016
.. D 0 Fri May 13 22:29:51 2016
1.txt N 0 Fri May 13 22:29:56 2016
2.txt N 0 Fri May 13 22:29:56 2016
3.txt N 0 Fri May 13 22:29:56 2016
49975 blocks of size 1048576. 46703 blocks available
smb: \> get 3.txt
getting file \3.txt of size 0 as 3.txt (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec)
9、配置多用户SMB
在10.1.1.21通过SMB共享目录/devops满足以下要求:
共享名为devops
共享目录devops必须可以被浏览
用户kenji必须能以读的方式访问此共享,密码是redhat
用户chihiro必须能以读写的方式访问此共享,访问密码是redhat
此共享永久挂载在10.1.1.22上的/bb目录,并使用用户kenji作为认证。
任何用户可以通过用户chihiro来临时获取写权限
服务器:
1、创建目录
# mkdir /devops
# touch /devops/{1..3}.mp3
2、创建共享用户
# useradd kenji
# useradd chihiro
# smbpasswd -a kenji
# smbpasswd -a chihiro
3、编辑配置文件,共享目录
# vim /etc/samba/smb.conf
[devops]
path = /devops
browseable = yes
write list = chihiro
# setfacl -m u:chihiro:rwx /devops
4、重启服务
# systemctl restart smb
客户端:
1、创建挂载点,并实现自动挂载
# mkdir /bb
# vim /etc/fstab
//10.1.1.21/devops /bb cifs multiuser,credentials=/etc/user.txt,sec=ntlmssp 0 0
# vim /etc/user.txt
username=kenji
password=redhat
# yum install -y cifs-utils
# useradd kenji
# useradd chihiro
# mount -a
# df -h
2、 测试chihiro的写权限
# su - chihiro
# cifscreds add 10.1.1.21
# touch /bb/4.mp3
最终测试使用chihiro用户在/bb中可创建文件即成功
防火墙:
内核模块netfilter
rhel 6:iptables
rhel 7:firewall-cmd, firewalld服务
区域zone:
trusted
允许所有流量通过
home/internal
仅允许ssh数据通过
work
仅允许ssh,ipp-client,dhcpv6-client数据通过
public
默认区域,仅允许ssh,dhcpv6-client数据通过
external
仅允许ssh数据通过,通过该区域的数据将会伪装(SNAT/DNAT)
dmz
仅允许ssh数据通过
block
拒绝所有流量
drop
拒绝所有流量
1、查看默认区域
# firewall-cmd --get-default-zone
public
2、修改默认区域为dmz
# firewall-cmd --set-default-zone=dmz
# firewall-cmd --reload
3、查看区域详细规则
# firewall-cmd --list-all --zone=public
public
interfaces:
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
4、指定由public区域处理192.168.1.0/24的访问请求
# firewall-cmd --permanent --add-source=192.168.1.0/24 --zone=public
# firewall-cmd --reload
5、在public区域移除192.168.1.0/24的访问请求
# firewall-cmd --permanent --remove-source=192.168.1.0/24 --zone=public
# firewall-cmd --reload
6、在dmz区域中移除samba服务
# firewall-cmd --permanent --remove-service=samba --zone=dmz
# firewall-cmd --reload
7、向dmz区域添加http服务
# firewall-cmd --permanent --add-service=http --zone=dmz
# firewall-cmd --reload
8、向dmz区域中添加443端口的访问
# firewall-cmd --permanent --add-port=443/tcp --zone=dmz
# firewall-cmd --reload
常用端口:
http 80/tcp, https 443/tcp
ssh 22/tcp, telnet 23/tcp
ftp 20/tcp 21/tcp,
dhcp 67/udp 68/udp
samba 139/tcp 445/tcp
dns 53/udp 53/tcp
mysql 3306/tcp
iSCSI 3260/tcp
smtp 25/tcp pop3 110/tcp imap4 143/tcp
ntp 123/udp
-------------------
设置防火墙允许samba服务
# firewall-cmd --set-default-zone=dmz
# firewall-cmd --permanent --add-service=samba --zone=dmz
# firewall-cmd --reload
-----------------------
SELinux---------Security Enhanced Linux
作用:控制进程是否有权限打开文件或者目录
查看文件的SELinux的安全上下文
# ls -lZ /etc/fstab
-rw-r--r--. root root system_u:object_r:etc_t:s0 /etc/fstab
samba----> samba_share_t
修改目录的SELinux安全上下文
# chcon -R -t samba_share_t /devops
samba
nfs
vsftpd
Samba
作用:实现Linux与windows文件共享
软件:samba, samba-client
配置文件:/etc/samba/smb.conf
服务:smb nmb
端口:139/tcp, 445/tcp (smb)
137/udp, 138/udp (nmb)
配置文件-----/etc/samba/smb.conf
1、指定服务器所在工作组名称
workgroup = MYGROUP
2、基于用户认证的共享
security = user
3、指定samba描述信息
server string = Samba Server Version %v
4、指定samba监听的IP地址
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
5、基于客户端IP地址访问控制
hosts allow = 127. 192.168.12. 192.168.13.
hosts deny = 192.168.1.1/24 172.16.
共享目录配置:
[共享名称]
comment = 说明信息
path = /caiwu 目录名称
browseable = { yes | no } 可浏览的
writeable = { yes | no } 可写的
write list = tom, +caiwu 允许写入的用户列表
public = {yes | no} 允许所有用户访问
valid users = tom, +caiwu 允许访问的用户列表
配置单用户samba共享
环境:
rhel 7 10.1.1.21 服务器
rhel 7 10.1.1.22 客户端
通过SMB共享/common目录
您的服务器必须是STAFF工作组的一个成员
共享名必须是common
common必须是可浏览的
用户harry必须能够读取共享中的内容,如果需要的话,验证的密码是migwhisk
服务器端:
1、创建目录
# mkdir /common
# touch /common/{1..3}.txt
2、安装软件
# yum install -y samba samba-client
3、编辑配置文件,共享目录
# vim /etc/samba/smb.conf
workgroup = STAFF
[common]
path = /common
browseable = yes
4、创建共享用户harry
# useradd harry
# smbpasswd -a harry
列出SMB用户列表信息yu
# pdbedit -L
harry:1002:
5、启动smb服务并设置开机自启
# systemctl start smb
# systemctl enable smb
# netstat -antp | grep smb
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 3490/smbd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 3490/smbd
--------
关闭防火墙及SELinux
# systemctl stop firewalld.service
# setenforce 0
--------
客户端:
1、安装客户端软件
# yum install -y samba-client
2、连接共享目录
# smbclient //10.1.1.21/common -U harry
Enter harry's password:
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
. D 0 Fri May 13 22:29:56 2016
.. D 0 Fri May 13 22:29:51 2016
1.txt N 0 Fri May 13 22:29:56 2016
2.txt N 0 Fri May 13 22:29:56 2016
3.txt N 0 Fri May 13 22:29:56 2016
49975 blocks of size 1048576. 46703 blocks available
smb: \> get 3.txt
getting file \3.txt of size 0 as 3.txt (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec)
9、配置多用户SMB
在10.1.1.21通过SMB共享目录/devops满足以下要求:
共享名为devops
共享目录devops必须可以被浏览
用户kenji必须能以读的方式访问此共享,密码是redhat
用户chihiro必须能以读写的方式访问此共享,访问密码是redhat
此共享永久挂载在10.1.1.22上的/bb目录,并使用用户kenji作为认证。
任何用户可以通过用户chihiro来临时获取写权限
服务器:
1、创建目录
# mkdir /devops
# touch /devops/{1..3}.mp3
2、创建共享用户
# useradd kenji
# useradd chihiro
# smbpasswd -a kenji
# smbpasswd -a chihiro
3、编辑配置文件,共享目录
# vim /etc/samba/smb.conf
[devops]
path = /devops
browseable = yes
write list = chihiro
# setfacl -m u:chihiro:rwx /devops
4、重启服务
# systemctl restart smb
客户端:
1、创建挂载点,并实现自动挂载
# mkdir /bb
# vim /etc/fstab
//10.1.1.21/devops /bb cifs multiuser,credentials=/etc/user.txt,sec=ntlmssp 0 0
# vim /etc/user.txt
username=kenji
password=redhat
# yum install -y cifs-utils
# useradd kenji
# useradd chihiro
# mount -a
# df -h
2、 测试chihiro的写权限
# su - chihiro
# cifscreds add 10.1.1.21
# touch /bb/4.mp3
最终测试使用chihiro用户在/bb中可创建文件即成功
防火墙:
内核模块netfilter
rhel 6:iptables
rhel 7:firewall-cmd, firewalld服务
区域zone:
trusted
允许所有流量通过
home/internal
仅允许ssh数据通过
work
仅允许ssh,ipp-client,dhcpv6-client数据通过
public
默认区域,仅允许ssh,dhcpv6-client数据通过
external
仅允许ssh数据通过,通过该区域的数据将会伪装(SNAT/DNAT)
dmz
仅允许ssh数据通过
block
拒绝所有流量
drop
拒绝所有流量
1、查看默认区域
# firewall-cmd --get-default-zone
public
2、修改默认区域为dmz
# firewall-cmd --set-default-zone=dmz
# firewall-cmd --reload
3、查看区域详细规则
# firewall-cmd --list-all --zone=public
public
interfaces:
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
4、指定由public区域处理192.168.1.0/24的访问请求
# firewall-cmd --permanent --add-source=192.168.1.0/24 --zone=public
# firewall-cmd --reload
5、在public区域移除192.168.1.0/24的访问请求
# firewall-cmd --permanent --remove-source=192.168.1.0/24 --zone=public
# firewall-cmd --reload
6、在dmz区域中移除samba服务
# firewall-cmd --permanent --remove-service=samba --zone=dmz
# firewall-cmd --reload
7、向dmz区域添加http服务
# firewall-cmd --permanent --add-service=http --zone=dmz
# firewall-cmd --reload
8、向dmz区域中添加443端口的访问
# firewall-cmd --permanent --add-port=443/tcp --zone=dmz
# firewall-cmd --reload
常用端口:
http 80/tcp, https 443/tcp
ssh 22/tcp, telnet 23/tcp
ftp 20/tcp 21/tcp,
dhcp 67/udp 68/udp
samba 139/tcp 445/tcp
dns 53/udp 53/tcp
mysql 3306/tcp
iSCSI 3260/tcp
smtp 25/tcp pop3 110/tcp imap4 143/tcp
ntp 123/udp
-------------------
设置防火墙允许samba服务
# firewall-cmd --set-default-zone=dmz
# firewall-cmd --permanent --add-service=samba --zone=dmz
# firewall-cmd --reload
-----------------------
SELinux---------Security Enhanced Linux
作用:控制进程是否有权限打开文件或者目录
查看文件的SELinux的安全上下文
# ls -lZ /etc/fstab
-rw-r--r--. root root system_u:object_r:etc_t:s0 /etc/fstab
samba----> samba_share_t
修改目录的SELinux安全上下文
# chcon -R -t samba_share_t /devops