027 LAMP(apache)与LNMP(nginx)安全配置

一:建立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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值