apache的web安全三部曲

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

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

目录
相关文章
|
2天前
|
缓存 安全 JavaScript
掌握JAMstack:构建更快、更安全的Web应用
JAMstack 是一种现代 Web 开发架构,结合 JavaScript、APIs 和 Markup,创建更快、更安全的 Web 应用。其核心优势包括高性能、安全性、可扩展性和易维护性。JAMstack 通过预构建静态页面和 API 实现高效渲染,利用静态站点生成器如 Gatsby 和 Next.js,并借助 CDN 和缓存策略提升全球访问速度。尽管面临复杂交互、SEO 和数据更新等挑战,但通过 Serverless Functions、预渲染和实时 API 更新等方案,这些挑战正逐步得到解决。
|
18天前
|
SQL 安全 数据库
惊!Python Web安全黑洞大曝光:SQL注入、XSS、CSRF,你中招了吗?
在数字化时代,Web应用的安全性至关重要。许多Python开发者在追求功能时,常忽视SQL注入、XSS和CSRF等安全威胁。本文将深入剖析这些风险并提供最佳实践:使用参数化查询预防SQL注入;通过HTML转义阻止XSS攻击;在表单中加入CSRF令牌增强安全性。遵循这些方法,可有效提升Web应用的安全防护水平,保护用户数据与隐私。安全需持续关注与改进,每个细节都至关重要。
64 5
|
16天前
|
JSON 安全 JavaScript
Web安全-JQuery框架XSS漏洞浅析
Web安全-JQuery框架XSS漏洞浅析
95 2
|
20天前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,却也面临着SQL注入、XSS与CSRF等安全威胁。本文将剖析这些常见攻击手段,并提供示例代码,展示如何利用参数化查询、HTML转义及CSRF令牌等技术构建坚固防线,确保Python Web应用的安全性。安全之路永无止境,唯有不断改进方能应对挑战。
46 5
|
19天前
|
SQL 安全 数据安全/隐私保护
Python Web安全大挑战:面对SQL注入、XSS、CSRF,你准备好了吗?
在构建Python Web应用时,安全性至关重要。本文通过三个真实案例,探讨了如何防范SQL注入、XSS和CSRF攻击。首先,通过参数化查询替代字符串拼接,防止SQL注入;其次,利用HTML转义机制,避免XSS攻击;最后,采用CSRF令牌验证,保护用户免受CSRF攻击。这些策略能显著增强应用的安全性,帮助开发者应对复杂的网络威胁。安全是一个持续的过程,需不断学习新知识以抵御不断变化的威胁。
68 1
|
21天前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,但安全挑战不容小觑。本文剖析Python Web应用中的三大安全威胁:SQL注入、XSS及CSRF,并提供防御策略。通过示例代码展示如何利用参数化查询、HTML转义与CSRF令牌构建安全防线,助您打造更安全的应用。安全是一场持久战,需不断改进优化。
28 3
|
28天前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【9月更文挑战第13天】在开发Python Web应用时,安全性至关重要。本文通过问答形式,详细介绍如何防范SQL注入、XSS及CSRF等常见威胁。通过使用参数化查询、HTML转义和CSRF令牌等技术,确保应用安全。附带示例代码,帮助读者从入门到精通Python Web安全。
54 6
|
29天前
|
SQL 安全 JavaScript
告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
【9月更文挑战第12天】在Web开发中,安全漏洞如同暗礁,尤其对初学者而言,SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF)是常见挑战。本文通过实战案例,展示如何利用Python应对这些威胁。首先,通过参数化查询防止SQL注入;其次,借助Jinja2模板引擎自动转义机制抵御XSS攻击;最后,使用Flask-WTF库生成和验证CSRF令牌,确保转账功能安全。掌握这些技巧,助你构建更安全的Web应用。
21 5
|
12天前
|
SQL 开发框架 安全
Web开发中常见的安全缺陷及解决办法
Web开发中常见的安全缺陷及解决办法
|
1月前
|
缓存 前端开发 Java
打造未来兼容的Web应用:Apache Wicket引领响应式设计的热潮
【9月更文挑战第4天】在软件开发领域,构建响应式Web应用至关重要。Apache Wicket作为一个强大的Java框架,支持响应式设计,确保应用在不同设备上均有出色体验。本文通过示例代码介绍使用Wicket的最佳实践,涵盖页面与组件模型、CSS媒体查询及自定义标记处理器的应用。同时,文章强调了优化加载时间、增强交互性和提升可访问性的重要性,帮助开发者打造高性能且美观的Web应用。
33 3

推荐镜像

更多