027 LAMP(apache)与LNMP(nginx)安全配置
目录:一:建立php主页解析以及主页的访问控制1.1:apache配置1.2:访问控制设定二:Nginx服务建立以及tomcat负载均衡2.1:nginx服务的建立2.2:tomcat服务的搭建2.3:nginx负载均衡一:建立php主页解析以及主页的访问控制1.1:apache配置1.1:apache配置web服务httplamp平台:linux appache mysql php发帖留言进行提
目录:
一:建立php主页解析以及主页的访问控制
1.1:apache配置
1.1:apache配置
web服务
http
lamp平台:linux appache mysql php
发帖留言进行提交,php把你的发言提交
php登录数据调用你所有的留言 将你的留言生成html语句然后显示到主页上
对外服务:ip地址,端口号80 443
查看是否安装了apache:
rpm -q httpd
回车之后出现:httpd-2.4.37-43.module_el8.5.0+1022+b541f3b1.x86_64出现类似这一行就说明安装了apache
1)启动/终止服务
service httpd start/stop
2)验证
ss -antpl | grep 80 # a:所有,n:数字显示的ip,t:tcp协议,p:进程号pid,l:监听状态
3)主页建立
cd /var/www/html
rm -rf *
ls
vim index.html
<html><h1>hello</h1></html>
setenforce 0(最好写上)
执行命令关闭防火墙:systemctl stop firewalld.service(最好写上)ccentos8中使用了firewalld代替了原来的iptables -F
执行命令查看防火墙状态:systemctl status firewalld.service
然后在windows上通过访问IP地址即可访问html内容
4)主配置文件分析
vim /etc/httpd/conf/httpd.conf
这里面有一条这个语句:Options Indexes FollowSymLinks把这条语句注释掉,重新写一条Options FollowSymLinks
要不然可以利用如下漏洞进行破坏:
利用apache漏洞,进行窃取账号密码等信息
mkdir /var/www/html/share # 创建一个共享文件夹
cp /etc/passwd /etc/shadow /var/www/html/share/
然后在window上web浏览器地址栏输入ip地址+/share即可访问,可以把passwd和shadow下载下来
shadow可能权限不够,那就需要在Linux上通过root给apache赋予权限
cd /var/www/html/share
chmod 0+r shadow
然后浏览器上重新下载,把文件另存为windows上,用记事本打开可以获得账号密码信息
更改主配置文件之后,shadow文件无法访问
1.2:访问控制设定
1)仅允许192.168.1.2主机访问主页
vim /etc/httpd/conf/httpd.conf
Order allow,deny # 白名单, 黑名单:Order deny,allow Deny from all
Allow from all
all改为192.168.1.2,若是改为192.168.1. 后面没有0,这是代表这个网段
重启服务service httpd restart
2)对页面进行加密,先输入用户名再输入密码才能进入
用户名 密码 自己配置
cd /var/www/html/share
htpasswd -c /etc/httpd/conf/httpuser tom
vim /etc/httpd/conf/httpd.conf
找到上述“白名单”下面输入:
authtype basic
authname "please input username and password"
authuserfile /etc/httpd/conf/httpuser
require valid-user
重启服务:service httpd restart
3)mysql数据库的安装
yum install mysql-server -y
service mysql start
mysqladmin -u root -p password "123" # 为mysql创建账号密码
mysql -u root -p
4)PHP的安装
yum install php
yum install php-mysql # 安装连接数据的PHP插件
还需要安装另一个插件:在centos6上,这个插件在另一张光盘上面,所以需要先卸载正在用的这张光盘
umount /dev/cdrom
然后点击虚拟机更换镜像
mount /dev/cdrom /media
cd /media/Packages
cp php-mbstring...到/root/Desktop 然后这张光盘就用不到了
cd /root/Desktop/
rpm -ivh php-mbstring...
vim /etc/php.ini
搜索关键字short_open_tag = Off 改成On,不改的话,PHP的函数命令有可能不识别
cd /var/www/html
vim index.php
<?
phpinfo();
?>
然后在windows浏览器上输入地址+/index.php,看能否出来页面,若是有,则是说明apache可以解析PHP函数语句了
二:Nginx服务建立以及tomcat负载均衡
2.1:nginx服务的建立
什么是LNMP:
Linux Nginx Mysql PHP/Perl/Python,继apache之后的另一款在Linux下被大量使用的web服务软件
nginx web:支持庞大的并发访问
2.1:nginx服务的建立
编译安装之前确保已存在开发环境软件包(一般带有devel的都是开发包)
yum -y install pcre-devel zlib-devel
创建运行用户和组
useradd -M -s /sbin/nologin nginx(名称)
然后把nginx-1.6.0.tar.gz拷贝到虚拟机中,这是下载路径:https://www.nginx.cn/nginx-download
编译安装
进入有tar.gz的目录下:
tar zxf nginx-1.6.0.tar.gz
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
make # 编译C程序
make install # 安装
找到nginx路径/usr/local/nginx里的sbin文件夹,进入之后./nginx启动nginx 关闭:./nginx -s stop
在上述过程中,进行到./configure --prefix=/usr/local/nginx --user=nginx --group=nginx可能会报错,我就报错了,如图:
这是因为:Nginx是C/C++语言开发,建议在Linux上运行,安装Nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,所以需要安装gcc
Nginx还需要安装其它依赖环境 pcre、zlib、openssl, 这些是解压包、ssl相关的依赖。
所以:
yum -y install gcc-c++
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
然后再执行./configure --prefix=/usr/local/nginx --user=nginx --group=nginx 成功
再运行:
make
查看是否安装成功
启动nginx:
cd /usr/local/nginx/sbin
./nginx
检查是否搭建成功:
关闭nginx:
./nginx -s stop
上述在centos8上:
运行make:
原因,是将警告当成了错误处理,
vim /root/Desktop/nginx-1.6.0/objs/Makefile
这个路径是tar zxf nginx-1.6.0.tar.gz产生的文件夹的路径
去掉CFLAGS中的-Werror
再重新make
-Wall 表示打开gcc的所有警告
-Werror,它要求gcc将所有的警告当成错误进行处理
/root/Desktop/nginx-1.6.0
make
会发现又有一个错误
根据错误提示:
src/os/unix/ngx_user.c: In function ‘ngx_libc_crypt’:
src/os/unix/ngx_user.c:35:7: error: ‘struct crypt_data’ has no member named ‘current_salt’
cd.current_salt[0] = ~salt[0];
进入
/root/Desktop/nginx-1.6.0/src/os/unix
vim ngx_user.c
然后再
make
没有报错
再运行
make install
在centos 8上我是创建得这个用户名nginx_server
查看是否安装成功
启动
进行网页验证
后来我把centos8和真实机连接,没有成功显示页面,那是因为我公司的电脑设置了代理,把代理去掉即可
2.1.2:nginx的php环境安装:
先下载文件:php-5.3.28.tar.gz
php下载链接
tar zxf php-5.3.28.tar.gz
yum install -y libxml2-devel libjpeg-devel libpng-devel
./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm --with-jpeg-dir=/usr/lib
enable-fpm:进程管理器,在后台启动一个端口专门用来解析PHP
make
make install
2.2:tomcat服务的搭建
先下载文件
文件链接🔗:apache-tomcat-7.0.54.tar.gz
下载文件apache-tomcat-7.0.54.tar.gz
链接:点我下载
下载后放在桌面上,
cd /root/Desktop
tar zxf apache-tomcat-7.0.54.tar.gz
mv apache-tomcat-7.0.54 /usr/local/tomcat7
cd /usr/local/tomcat7
cd bin
./startup.sh # 启动
java -version # 查看是否有JDK 查看java路径 which java
ss -antpl | grep 8080 # 查看tomcat是否开启
2.3:nginx负载均衡
nginx支持多并发,并且可以负责调度
nginx + tomcat负载均衡集群一:
安装nginx反向代理两个tomcat站点实现负载均衡
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module
usr,group 指定用户和组
with-file-aio 启用文件修改
with-http_stub_status_module 启用状态统计
with-http_gzip_static_module 启用gzip静态压缩
with-http_flv_module 启用flv模块
with-http_ssl_module 启用ssl模块
nginx + tomcat负载均衡集群二:
配置nginx
vim /usr/local/nginx/conf/nginx.conf
在http{...}区域中加入:
upstream tomcat_server{
server 172.16.1.10:8080 weight=1;
server 172.16.1.20:8080 weight=1;
}
weight为权重值设定为相同来演示实验效果
在location/{...}区域中加入
proxy_pass http://tomcat_server;
启动nginx验证
注意在两个tomcat上使用不同主页通过刷新火狐浏览器观察主页变化
更多推荐
所有评论(0)