首页 > 代码库 > 二级知识2
二级知识2
一基本安装
Web网站服务端:软件包httpd、系统服务httpd
Web网站浏览器:软件包elinks或fireox
传输协议及端口:TCP 80
Web网站服务端配置文件
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
默认首页文件:index.html
httpd网站文档的默认根目录:/var/www/html
访问 http://user:密码@服务器地址[:端口号]/目录/文件名
步骤:
1yum -y install httpd
2修改配置文件
3重新启动服务,测试
###########################################################################
二虚拟主机(扩展)
1基于域名的,ip一样,多个域名,内容也不一样
2端口不一样,80,8080,ip域名一样,适用于内部测试
3ip不一样,域名一样
步骤:
vim /etc/httpd/conf.d/**.conf
listen 端口
<VirtualHost ip:监听的端口>
ServerName 网站的名字
DocumentRoot 网站的网页根目录
DirectoryIndex 默认首页
WSGIScriptAlias / /路径别名
</VirtualHost>
一旦启用虚拟站点机制以后:
外部的 DocumentRoot、ServerName 会被忽略
第1个虚拟站点被视为默认站点,若客户机请求的URL不属于任何已知站点,则由第1个站点响应
########################################################################
三对网页的访问进行限制
方法:
1可以把根目录其他人修改为chmod o-rwx /根目录
2可以开启firewall防火墙,souch firewall-cmd --zone=public --add-source=
3可以修改/etc/httpd/conf.d/虚拟主机配置文件
<Directory "父目录路径">
Require all denied(拒绝)|granted(允许)
ip ip或者网段(表示方法:127.0.0.0/16)
</Directory>
######################################################################
四使用自定义的根目录
方法:
1关闭selinx即可
2selinux开启状态下
chcon [-R] --reference=模板目录 新目录 把允许属性复制到自定义的根目录
3将新目录增加到预设的标准Web目录范围
semanage fcontext -a -t httpd_sys_content_t ‘新目录(/.*)?‘
####################################################################
五设置https
安全Web传输协议及端口:TCP 443
访问HTTP站点(未加密):http://server0.example.com/
访问HTTPS站点(加密):https://server0.example.com/
为httpd服务端实现TLS加密的条件:1)启用一个 mod_ssl 模块;2)提供加密的素材:网站服务器的数字证书、网站服务器的私钥、根证书(证书颁发机构的数字证书)
TLS证书部署位置:/etc/pki/tls/certs/*.crt
TLS私钥部署位置:/etc/pki/tls/private/*.key
一共2个证书文件,一个是提供CA的证书服务器的数字证书,一个是网站的证书
一个私钥,是网站的私钥
步骤:
1yum -y install mod_ssl
2将下载的文件放到文件夹下,也可以随意存放,关键在于配置文件中的指定
3
vim /etc/httpd/conf.d/ssl.conf
59 DocumentRoot "/var/www/html" //网页目录
60 ServerName server0.example.com:443 //站点的域名
100 SSLCertificateFile /etc/pki/tls/certs/server0.crt //网站证书
107 SSLCertificateKeyFile /etc/pki/tls/private/server0.key //网站私钥
122 SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt //根证书
用https打开才行
###########################################################################################
netstat -antpu | grep httpd //查看监听的端口
查询服务安装位置 rpm -ql httpd
下载重命名 wget 网址 -O 重命名
elinks -dump(不用交互) 地址
回滚
cp -p ** **.2017.5.3.1
查看selinux的条目 semanage fcontext -l
restorecon -R #恢复selinux属性(要求原属性)
ls -Zd #查询selinux属性
semanage fcontext -a(添加) -t(指定属性) httpd_sys_content_t ‘/webroot(/.*)?‘
restorecon -R /webroot
tail /var/log/httpd/error_log
so为模块文件
##################################################################################
1安装php
2写文档,php结尾
<?php
phpinfo();
?>
3重起httpd服务
#################################################################################
WSGI
8909
semangae port -l | grep http_port 查看允许端口
semangae port -a -t http_port_t -p tcp 8909
补充命令:
WSGIScriptAlias / /var/www/webapp0/webinfo.wsgi 别名转发
帮助文档:
/usr/share/doc/
httpd-2.4.6/httpd-vhosts.conf
#####################################################
Samba服务,完成跨平台的共享
Samba共享用户: 与系统用户同名,但有独立的samba密码
? 使用 pdbedit 管理工具
– 添加用户:pdbedit -a 用户名
– 查询用户:pdbedit -L [用户名]
– 删除用户:pdbedit -x 用户名
server0:
1.设置防火墙默认区域为trusted
2.安装samba软件
3.创建 harry、kenji、chihiro用户
4.pdbedit工具,将harry、kenji、chihiro用户添加为Samba共享用户
5. 查询用户:pdbedit -L
vim 命令模式 G 到全文的最后
server0:
1.修改配置文件/etc/samba/smb.conf在文件的最后
[nsd] #共享名
path = /opt #共享的实际路径
2.重起smb服务
desktop0:
1.smbclient -L //172.25.0.11 进行测试,能够看到nsd共享即可
密码为空直接回车
2.安装samba-client包,提供smbclient命令
#######################################################
配置文件及参数(续1)
? 修改 /etc/samba/smb.conf
[自定共享名]
path = 文件夹绝对路径
; public = no|yes //默认no
; browseable = yes|no //默认yes
; read only = yes|no //默认yes
; write list = 用户1 .. .. //默认无
; valid users = 用户1 .. .. //默认任何用户
; hosts allow = 客户机地址 .. ..
; hosts deny = 客户机地址 .. ..
######################################################
修改工作组
89 workgroup = STAFF
访问的方式,user 必须要有用户名密码的方式
123 security = user
#####################################################
在 server0 上发布共享文件夹,要求如下:
一、发布目录 /common,共享名为 common
1.创建/common,在此目录里面创建文件123.txt
2.修改/etc/samba/smb.conf
[common]
path = /common
3.重起smb服务
在 desktop0 上:
1.smbclient -L //172.25.0.11
了解内容,当前语言环境
[root@server0 /]# echo $LANG #输出变量LANG的值
zh_CN.UTF-8
#####################################################
在 desktop0 上:
将common共享,挂载到本地/mnt/common
1. 创建目录 /mnt/common
2. 进行挂载
# mount -o username=kenji,password=123
//172.25.0.11/common /mnt/common
3. 查看挂载信息 df -h /mnt/common
###################################################
网络访问权限的判定
1.服务的权限
2.本地目录权限
3.安全的机制(防火墙、SELinux)
###################################################
SELinux
1.安全上下文值
# chcon -R --reference=/var/www /webroot
2.布尔值, 开关
查看所有布尔值,功能开关
[root@server0 /]# getsebool -a | grep samba
设置功能开启
[root@server0 /]# setsebool samba_export_all_ro on
#####################################################
在客户端测试desktop0
1. ls /mnt/common 查看没有报错
#####################################################
实现读写的samba共享
server0:
1.创建目录 /devops
2.创建文件 /devops/abcd.txt
3.修改 /etc/samba/smb.conf
[devops]
path = /devops
write list = chihiro #允许chihiro可写
4.重起smb服务
desktop0:
1. 创建目录 /mnt/dev
2. mount -o username=chihiro,pass=123
//172.25.0.11/devops /mnt/dev
3. 查看内容 ls /mnt/dev/
##################################################
server0上操作:
设置本地权限
[root@server0 /]# setfacl -m u:chihiro:rwx /devops/
[root@server0 /]# getfacl /devops/
设置SELinux
[root@server0 /]# getsebool -a | grep samba
[root@server0 /]# setsebool samba_export_all_rw on
补充: setsebool -P 大写的‘P‘ 选项可以让布尔值永久生效
####################################################
desktop0:
1.卸载 umount /mnt/dev
2.查看 ls /mnt/dev/
3.修改/etc/fstab 最后写
//172.25.0.11/devops /mnt/dev cifs username=kenji,pass=123,_netdev 0 0
_netdev:代表启动网络服务,后进行挂载
cifs: samba使用的文件系统是cifs
4.验证 : mount -a
查看 : df -h /mnt/dev
#####################################################
实现多用户的samba共享
挂载参数调整
– multiuser,提供对客户端多个用户身份的区分支持
– sec=ntlmssp,提供NT局域网管理安全支持
1.修改 /etc/fstab
//172.25.0.11/devops /mnt/dev cifs username=kenji,pass=123,multiuser,sec=ntlmssp,_netdev 0 0
2.查询命令是由那个软件包产生的
[root@desktop0 ~]# yum provides */cifscreds
[root@desktop0 ~]# yum -y install cifs-utils
3.切换普通用户验证
# su - student
# cifscreds add -u chihiro 172.25.0.11 #切换身份
# touch /mnt/dev/1234.txt
######################################################
NFS共享
适用Linux与Linux平台之间
端口号:通常在2049
安装包:nfs-utils 和portmap
服务名:nfs-server
配置文件
/etc/exports
– 文件夹路径 客户机地址(权限)
/public 172.25.0.0/24(ro)
查看nfs共享: showmount -e 172.25.0.11
######################################################
高级安全NFS共享的实现
? 作为普通NFS的增强版
– 结合 LDAP+kerberos 技术,实现认证和加密支持
– 同一个 kerberos 领域内,认证用户可实现“一次密码
认证,多次免密登录”的通行证机制
网络用户 用户名 LDAP服务器
密码 kerberos服务器
一、非常强烈建议,还原classroom、server、desktop
rht-vmctl reset classroom
rht-vmctl reset server
rht-vmctl reset desktop
######################################################
服务端server0:
1.加入LDAP , lab nfskrb5 setup
2.查看是否识别用户 id ldapuser0
3. 设置防火墙默认区域 trusted
4. 创建共享目录 mkdir -p /nsd/test
5.下载加密所需的密钥文件
wget http://classroom.example.com/pub/keytabs/server0.keytab -O /etc/krb5.keytab
6.修改配置文件/etc/exports
/nsd 172.25.0.0/24(rw,sec=krb5p)
7.重起服务 nfs-server nfs-secure-server
8.设置开机自起 nfs-server nfs-secure-server
9.为/nsd/test/设置ACL策略 ldapuser0赋予rwx权限
客户端desktop0:
1.加入LDAP , lab nfskrb5 setup
2.查看是否识别用户 id ldapuser0
3.设置防火墙默认区域 trusted
4.下载加密所需的密钥文件
wget http://classroom.example.com/pub/keytabs/desktop0.keytab -O /etc/krb5.keytab
5.创建挂载点 mkdir /mnt/nfs
6.实现开机自动挂载 vim /etc/fstab
172.25.0.11:/nsd /mnt/nfs nfs sec=krb5p,_netdev 0 0
7.重起 nfs-secure
8.设置开机自起 nfs-secure
9.验证 ssh ldapuser0@127.0.0.1 #必须用这种方式
10. 用ldapuser0身份 测试写入 /nsd/test/1.txt
###############################################
Samba的用途:为多个客户机提供共享使用的文件夹。
Samba服务端:软件包samba、系统服务smb
Samba客户端:软件包samba-client和cifs-utils、客户端工具smbclient
传输协议及端口:TCP 139、TCP 445
Samba服务端配置文件:/etc/samba/smb.conf
Samba共享账号:存在独立的账号数据文件里,必须有同名系统账号(方便给权限)
Samba账号管理工具:
pdbedit -a 用户名
pdbedit -L [用户名]
pdbedit -x 用户名
测试Samba共享资源:
smbclient -L 服务器地址 【密码为空(直接回车)】
smbclient -U 用户名 //服务器地址/共享名 【需要密码】
Samba客户端的multiuser挂载:支持切换访问Samba共享的用户身份,但不需要重新挂载共享资源。挂载参数需要添加“multiuser,sec=ntlmssp”,客户机上的普通用户可以通过cifscreds命令提交新的身份凭据。
在客户端挂载Samba共享目录,需要软件包cifs-utils的支持。
为访问网络资源配置开机挂载时,注意添加参数“_netdev”,表示等客户机网络配置可用以后才挂载对应资源。
对于普通NFS共享来说:
服务端需要运行系统服务 nfs-server.service
客户端不需要运行特定的系统服务
对于安全NFS共享来说:
服务端需要运行系统服务 nfs-server.service、nfs-secure-server.service
客户端需要运行系统服务 nfs-secure.service
kerberos认证/加密:一次认证(获取通行证),多次免密码登录。
客户机密钥部署位置:/etc/krb5.keytab 。
参与kerberos认证/加密的客户机需要加入同一个kerberos领域,在教学环境虚拟机中可通过执行lab nfskrb5 setup操作来实现。
cifscreds -u chihiro add server0.example.com
Password: //输入共享账号chihiro的密码
[student@desktop0 ~]$ touch /mnt/dev/a.txt
[student@desktop0 ~]$ ls /mnt/dev/a.txt
/mnt/dev/a.txt
host -t mx tedu.cn
二级知识2