开发者社区> luchao669> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

apache的web安全三部曲

简介:
+关注继续查看

apache的web安全三部曲

古云“蜀道之难,难于上青天~”在我这个刚入门不就得来说,想要维护一个网站的安全还真的挺不容易的,我们要时刻关注最新的安全动态,关注系统的漏洞,并积极的做好应对,对于一个网管,网站的维护,是比较重要的一个工程,先不论一些高层次的安全保护措施,对于httpd服务的基本安全措施,我们是应该好好掌握的,否则好不容易架起来一个网站,分分钟被一些电脑爱好者们给攻破了---------------》那那那就尴尬了。。。

  那么当我们架好一个网站之后,怎样去配置他的安全性呢??
  在linux中,我们有这样三种方法:

1.身份验证:对要在网页上执行操作的用户,进行身份验证,验证其合法性,真实性。

2.来源控制:某些东西比如公司的机密,我们是不能让外来人登录并查看的,假设:单位团队好不容易研发出了科技成果,一个外界用户一个”另存为“,或者“复制,粘贴”给考走了,那真是。。。。。

3.ssl套接层:也就是我们常常发现的网页上url的http变成了https,在有关金钱交易的购物网站上用的很多很多。

那下面我们就来看看如何走好这三部曲!!!

__

第一部曲:身份验证
要实现身份验证大致的流程:
A.在站点的主目录下写说明文件.htacess,说明的内容当然就是要进行身份验证了,这里有四个部分。
authuserfile /var/www/.htpasswd说明对用户身份验证,但是要创建用户验证账号库,但这里的与系统的账号库不是一个。
authname “please input youusername and passwd!!”弹出验证的端口,要求用户输入口令
authtype 验证的类型
required 要求什么样的用户可以访问
B.产生账号文件
htpasswd –c .htpasswd 账号名;使用该命令新建用户账号【注意-c 参数只用添加一次就好】
1.修改配置文件,httpd.conf
image

在 AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 ".htaccess" 作用域的指令都允许出现在 .htaccess 文件中。
2.创建站点的首页
image

[root@localhost html]# echo"welcome to lining's web" >> index.html
开启httpd服务,然后登陆,显示我们的测试页面。

3.配置身份验证
在网站根目录下 /var/www/html 建立 .htacss文件
image

4.在/var/www目录下,创建账号库文件,创建用户 lining
[root@localhostwww]# htpasswd -c .htpasswd lining
New password:
Re-type new password:
image

测试:
image

__
第二部曲------》来源控制
直接配置httpd.conf文件。
image

重启httpd服务,测试。
image

在这里我们进入到了其他的页面,而不是我们的主页面,因为我被拒绝访问了。
__
第二部曲-----》网站的加密访问【https】
在访问网站的时候我们通常,使用的是http开头的网站,http提供的是明码的传送方式,十分不安全。所以我们需要让他进行密文的传输,来提供安全性。
但是当我们浏览银行网站的时候,就变成https的网站。那么https是怎么实现的呢???
答:它是通过安全套阶层协议 ssl 实现的。
那么我们在linux中又怎么实现安全套阶层呢??
答:在linux要实现安全套接层时间加密访问我们就需要知道两样东西。

  1.openssl命令的使用
  2.PKI公钥基础设施

首先我们来了解一下openssl命令的使用。
1.查看openssl的文件目录,使用rpm -ql openssl命令。
image

查看openssl的功能,包括对称加密,非对称加密,校验等等功能!!!
image

2.摘要的做法【使用md5】。摘要的用途,可以用来检验内容的完整性,当我们使用MD5算法对内容进行运算,产生一个定长的摘要,我们可以将摘要和内容发给接收方,接收方通过再次计算摘要,对比两份摘要来确定内容是否被更改过。
【小例子】
复制inittab到以我的名字命名的文件夹,并做一个摘要。
[root@localhostlining]# openssl md5 inittab
MD5(inittab)=9d49303d50eb59151fc24eb0e3802232
更改inittab文件中的内容,再次做一个摘要。
[root@localhostlining]# openssl md5 inittab
MD5(inittab)=a30c76ea4096ab1eddf06657d4e9a590
3.加密 passwd【引入salt概念,当我们查看/etc/shadow文件时,你可能会发现,用户设置的密码在显示中是不一样的乱码,这些乱码就是由系统加密过得密码。系统通过添加一组字符串,然后混入输入的密码中,进行加密。】
image

4.对称加密/解密文件 des/des3
[root@localhost lining]# openssldes3 -a -in inittab -out f1 //用3倍des算法加密inittab文件,并将加密后的内容输出为f1文件。
enter des-ede3-cbcencryption password: lining //加密时所用的密码。解密是要用到。
Verifying -enter des-ede3-cbc encryption password: lining
image

[root@localhostlining]# openssl des3 -a -d -in f1 -out inittab2 //在此之前我删除inittab文件,将f1文件解密为inittab2 文件
enterdes-ede3-cbc decryption password:
[root@localhostlining]# ll
total 20
-rw-r--r-- 1root root 2288 Jul 11 03:44 f1
-rw-r--r-- 1root root 1665 Jul 11 04:11 inittab2
5.非对称加密 rsa【非对称算法中要用到公钥和私钥,私钥我们可以使用命令创建出来,公钥是从私钥中提取的】
首先产生公钥秘钥对~ 使用genrsa 1024 产生1024位的私钥,然后从私钥中提取公钥。
image

[root@localhostlining]# openssl rsa -in key.pem -pubout -out public.k //从私钥中导出公钥
writing RSA key

其次我们需要了解一下HTTPS在PKI上的运用:
由于PKI内容比较多所以暂不在本篇幅说明。。。。

那么现在我们就着手实现一个https的站点:
1.CA认证中心的实现,先修改openssl的配置文件【CA中心来对客户端进行验证并发放证书】
image

image

image

2.对于外部的客户端,他们需要请求证书,对于根CA,只需要 私钥----》请求文件
image

https默认使用端口443.所以要加装另外的模块。
[root@localhost~]# rpm -qa mod_ssl
mod_ssl-2.2.3-31.el5 //我的已经安装了这个模块我们之前说过,模块式动态加载的,也就是当你使用的时候,它自动加载,所以并没有什么操作。

然后再创建httpd的私钥请求文件以及证书
[root@localhosthttpd]# mkdir certs
[root@localhostcerts]# openssl genrsa 1024 > httpd.key //私钥文件
GeneratingRSA private key, 1024 bit long modulus
...++++++
...........................++++++
eis 65537 (0x10001)

[root@localhostcerts]# openssl req -new -in httpd.key -out httpd.req //请求文件
Generatinga 1024 bit RSA private key
...............................................................++++++
.......++++++
发放证书
image

[root@localhostCA]# cat index.txt //在证书数据库中更新了httpd证书的信息
V 140711013035Z 01 unknown /C=CN/ST=HENAN/O=MyCompany Ltd

httpd 和 证书捆绑:
[root@localhost CA]# vim /etc/httpd/conf.d/ssl.conf
112SSLCertificateFile /etc/httpd/certs/httpd.cert //指明站点的证书文件,用户也是要通过它来确定是否访问到了正确站点,而不是钓鱼网站
119SSLCertificateKeyFile /etc/httpd/certs/httpd.key //指明网站的公钥

登陆测试:
image

112SSLCertificateFile /etc/httpd/certs/httpd.cert
119SSLCertificateKeyFile /etc/httpd/certs/httpd.key
128SSLCertificateChainFile /etc/pki/CA/cacert.pem
继续修改配置文件ssl.conf,我们可以通过查看站点的证书链然后将证书导出安装到自己的计算机上面。从而实现客户端与服务器的加密访问。
本文出自 “LN__@linux” 博客,请务必保留此出处http://6839976.blog.51cto.com/6829976/1283404

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SpringBoot | SpringBoot Web开发
本文介绍了SpringBoot中如何进行Web开发
111 0
1:Web开发入门-Java Web
1:Web开发入门-Java Web
28 0
技能学习:学习使用Node.js + Vue.js,开发前端全栈网站-13-1.使用sass工具搭建前台web端页面
Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。使用 Sass 以及 Sass 的样式库(如 Compass)有助于更好地组织管理样式文件,以及更高效地开发项目。
63 0
云开发Web应用实战营第四次打卡攻略
快来完成云开发Web应用实战营第四次打卡,有机会赢取云开发Web周边T恤
190 0
云开发Web应用实战营全面升级,限时开放报名中!带你轻松翻转课堂!
赛博和朋克不能兼得?云开发无需关心配置就能极速部署最IN的应用,让你感受畅快2077!
216 0
前端如何快速上手 Web 3D 游戏的开发
本文以「余额宝3D跑酷游戏」为例,介绍了前端如何快速上手 Web 3D 游戏的开发。
2618 0
比WEB更自然,jupyter用于通用软件开发的创新意义:使任何传统程序秒变WEB
本文关键字:online language,在线语言系统,jupyter,ipython jupyter,在线编译器,在线解释语言,engitor
409 0
msyscuione:基于msys的一体化CUI开发生产环境,支持qt,llvm,ros集成常见web appstack
CUI又称TUI,作为一个开发者和云主机这种服务性环境的使用者,无论有没有意识到,它都是装机时我们大多数情况下第一要装的。linux往往天然集成语言环境和包管理(语言级或系统桌面级),这使得云主机linux装机量往往占首位。相反在windows下没有这样一套东西,因为windows往往作为终端windows应用往往面向要求图形界面的普通用户。
167 0
+关注
luchao669
分享以下生活中遇到的一些计算相关的问题
文章
问答
文章排行榜
最热
最新
相关电子书
更多
基于webpack和npm的前端组件化实践
立即下载
《Apache RocketMQ 源码解析》
立即下载
从 2019 到 2020,Apache Dubbo 年度总结与展望
立即下载