apace虚拟主机功能:
一.基于IP地址
(1)创建基于IP得网站目录及首页 如:/home/www/html/129 、/home/www/html/130
echo "129" > /home/www/html/129/index.html
echo "130" > /home/www/html/130/index.html
(2)编辑apache网站服务配置:/etc/httpd/conf/httpd.conf
添加:
<VirtualHost 192.168.159.129>
133 DocumentRoot /home/www/html/129
134 ServerName www.linuxprobe.com
135 <Directory /home/www/html/129>
136 AllowOverride None
137 Require all granted
138 </Directory>
139 </VirtualHost>
140 <VirtualHost 192.168.159.130>
141 DocumentRoot /home/www/html/130
142 ServerName www.linuxcool.com
143 <Directory /home/www/html/130>
144 AllowOverride None
145 Require all granted
146 </Directory>
147 </VirtualHost>
(3)重启httpd服务
(4)设置安全上下文:
semanage fcontext -a -t httpd_sys_content_t /home/www/html
semanage fcontext -a -t httpd_sys_content_t /home/www/html/*
restorecon -Rv /home/www/html
restorecon -Rv /home/www/html/*
即可
二.基于主机域名
同上,1.创建目录及主页文件内容 2.编辑域名解析文件,本地解析:/etc/hosts
192.168.159.128 www.linuxprobe.com
2.编辑apache网站服务配置:/etc/httpd/conf/httpd.conf,内容同上
3.重启服务,设置selinux上下文即可,相比基于ip,只是多了一个域名解析
三.基于端口
同上,1.创建目录及主页文件内容
2.编辑apache网站服务配置:/etc/httpd/conf/httpd.conf
Listen 端口号
……
<VirtualHost 192.168.159.129:端口号>
133 DocumentRoot /home/www/html/129
134 ServerName www.linuxprobe.com
135 <Directory /home/www/html/129>
136 AllowOverride None
137 Require all granted
138 </Directory>
139 </VirtualHost>
3.重启服务,设置selinux上下文
4.selinux在http服务上放行该端口:
semanage port -a -t http_port_t -p tcp 端口号
四.apache的访问控制
通过Allow指令允许某个主机访问服务器上的网站资源,通过Deny指令实现禁止访问;
用到Order指令,定义Allow或Deny指令起作用的顺序,其匹配原则是按照顺序进行匹配,
若匹配成功则执行后面的默认指令 set environment if
匹配源主机的浏览器特征:
第1步:先在服务器上的网站数据目录中新建一个子目录及首页文件
第2步:打开httpd服务的配置文件,在第161行后面添加下述规则来限制源主机的访问。这段规则的含义是允许使用Firefox浏览器的主机访问服务器上的首页文件,其他请求都将被拒绝,vim/etc/httpd/conf/httpd.conf
<Directory "/var/www/html/server"> 162 SetEnvIf User-Agent "Firefox" ff=1 ff是别名 163 Order allow,deny 164 Allow from env=ff 165 </Directory>
重启服务,防火墙放行http,设置安全上下文
匹配源主机的IP地址:
vim /etc/httpd/conf/httpd.conf
………………省略部分输出信息………………
161 <Directory "/var/www/html/server">
162 Order allow,deny
163 Allow from 192.168.10.20
164 </Directory> ………………
省略部分输出信息………………
[root@linuxprobe ~]# systemctl restart httpd
[root@linuxprobe ~]# firefox
即可限制除指定ip外其余ip禁止访问。
vsftp服务:文件传输协议
主配置文件:/etc/vsftpd/vsftpd.conf
默认防火墙禁用ftp,需要开启
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-service=ftp
三种认证模式:
匿名开放模式:是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器。
本地用户模式:是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来也很简单。但是如果被骇客破解了账户的信息,就可以畅通无阻地登录FTP服务器,从而完全控制整台服务器。
虚拟用户模式:更安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。这样,即使骇客破解了账户信息也无法登录服务器,从而有效降低了破坏范围和影响。
三种模式存放路径:
公开匿名:/var/ftp
本地用户:本地用户家目录
虚拟用户:映射用户的家目录
一.匿名访问模式:
向匿名用户开放的权限参数以及作用
参数 | 作用 |
anonymous_enable=YES | 允许匿名访问模式 |
anon_umask=022 | 匿名用户上传文件的umask值 |
anon_upload_enable=YES | 允许匿名用户上传文件 |
anon_mkdir_write_enable=YES | 允许匿名用户创建目录 |
anon_other_write_enable=YES | 允许匿名用户修改目录名称或删除目录 |
[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=YES
2 anon_umask=022
3 anon_upload_enable=YES
4 anon_mkdir_write_enable=YES
5 anon_other_write_enable=YES
重启vsftpd服务,还是不行,需要设置selinux域
getsebool -a | grep ftp
setsebool -P ftpd_full_access=on
设置完,测试一下:
root@linuxprobe ~]# ftp 192.168.10.10
Connected to 192.168.10.10 (192.168.10.10). 220
(vsFTPd 3.0.3) Name (192.168.10.10:root): anonymous
331 Please specify the password. Password:此处敲击回车即可
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub 必须进入默认/var/ftp下的pub目录
250 Directory successfully changed.
ftp> mkdir files
257 "/pub/files" created
ftp> rename files database
350 Ready for RNTO.
250 Rename successful.
ftp> rmdir database
250 Remove directory operation successful.
ftp> exit
221 Goodbye.
二.本地用户模式:
相较于匿名开放模式,本地用户模式要更安全,而且配置起来也很简单。如果大家之前用的是匿名开放模式,现在就可以将它关了,然后开启本地用户模式:
参数 | 作用 |
anonymous_enable=NO | 禁止匿名访问模式 |
local_enable=YES | 允许本地用户模式 |
write_enable=YES | 设置可写权限 |
local_umask=022 | 本地用户模式创建文件的umask值 |
userlist_deny=YES | 启用“禁止用户名单”,名单文件为ftpusers和user_list |
userlist_enable=YES | 开启用户作用名单文件功能 |
1.修改vsftpd配置文件:
[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
2 local_enable=YES
3 write_enable=YES
4 local_umask=022
2.重启服务
3.此时在ftp 192.168.10.10使用root登录后,会被拒绝。原因:这是因为vsftpd服务程序所在的目录中默认存放着两个名为“用户名单”的文件(ftpusers和user_list),名单内的用户会被拒绝!!!
4.从名单(ftpusers和user_list)里删除root,再设置selinux域
setsebool -P ftpd_full_access=on