设为首页 收藏本站
查看: 1144|回复: 0

[经验分享] linux下关于apache站点安全以及https

[复制链接]

尚未签到

发表于 2018-11-23 14:07:55 | 显示全部楼层 |阅读模式
apache web 站点安全

  想必大家都知到在windows server 2003上可以建web服务器,而且可以实现身份验证、来源控制以及加密访问。
  

DSC0000.jpg

DSC0001.jpg

DSC0002.jpg

  其实在linux下也可以实现,下面我会给大家详细解释并操作 :使用虚拟机建立web服务器
  

  首先安装httpd文件
DSC0003.jpg

DSC0004.jpg

  案例1:身份认证
  原理:
  在很多网站对用户的访问权限进行了严格的限制,用户在访问某些资源时需要给出“用户名/口令”来确认自己的身份。目前,使用最多的身份认证方法是将用户名、口令存放在一个数据库中,当用户要访问某些受限制的资源时,要在某一个页面中输入用户名和口令,程序将用户输入的用户名和口令与数据库存放的“用户名/口令"相比较,如果输入正确,则正常使用资源,否则,资源访问被拒绝。但是,这种身份认证方式有两个很大的问题,一方面只要用户有一次身份认证成功,就可以记录下受限资源的链接地址,在下一次访问时只需输入该地址,而无需通过身份认证过程就可访问受限资源;另一方面用户可以在受限制的资源的超级链接处点右键,选择“属性",就可以查看到受限制资源的链接地址,直接访问该地址,使身份认证不能达到预期的效果。
  Apache实现身份认证的基本原理是:当系统管理员启动身份认证功能后,可以在要限制的目录中添加一个默认名“.htaccess"的文件。当用户访问该路径下的资源时,系统就会弹出一个对话框,要求用户输入“用户名/口令"。也就是说,它的身份认证功能不是人为由程序控制,而是由系统直接控制的。这样就避免了用户记录需要认证的资源的超级链接,不会下次直接访问资源。
  

  首先,配置httpd.conf
  [root@server1 httpd]# vim /etc/httpd/conf/httpd.conf
  在(327行)修改如下所示:
  allowoverride all (可以实现身份验证)
  来到站点的主目录下(站点主目录在/var/www/html目录下)
  [root@server1 Server]# cd /var/www/html/
  [root@server1 html]# echo "welcome" >index.html(建个网页)
  再创建说明文件 .htaccess
DSC0005.jpg

  

  进入/var/www/目录下创建.htpasswd并添加账户:
DSC0006.jpg

DSC0007.jpg

  

  查看
DSC0008.jpg

  启动apache服务,并验证:
  [root@server1 www]# service httpd start
  打开浏览器
DSC0009.jpg

DSC00010.jpg

  

  案例2:来源控制
  只需要在/etc/httpd/conf/httpd.conf(332,333行)加以修改:
DSC00011.jpg

  

  案列3:加密访问 https (http+ssl)
  HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
  它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全套接层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是像HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。
  也就是说它的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
  HTTPS和HTTP的区别
  一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
  二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
  三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
  数字摘要
  这个非常简单,我们在下载文件的时候经常会看到有的下载站点也提供下载文件的“数字摘要“,供下载者验证下载后的文件是否完整,或者说是否和服务器上的文件”一模一样“。其实,数字摘要就是采用单项Hash函数将需要加密的明文“摘要”成一串固定长度(128位)的密文,这一串密文又称为数字指纹,它有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,儿同样的明文其摘要必定一致。 因此,“数字摘要“叫”数字指纹“可能会更贴切一些。“数字摘要“是https能确保数据完整性和防篡改的根本原因。
  拓扑图
DSC00012.jpg

  一、实现CA
  第一步编辑openssl.cnf文件
  [root@server1 ~]#vim /etc/pki/tls/openssl.cnf
DSC00013.jpg

  

  

  修改(88,90行)如图:
DSC00014.jpg

修改(134,147行)默认值如图:

DSC00015.jpg

  创建需要的目录和文件
  [root@server1 CA]# mkdir certs newcerts cr1
  [root@server1 CA]# touch index.txt serial
  [root@server1 CA]# echo "01" >serial(初始值为01)
  第二步:先建私钥文件
  [root@server1 CA]#openssl genrsa 1024 >private/cakey.pem
  [root@server1 CA]# chmod 600 private/cakey.pem(修改权限)
  生成证书:
  [root@server1 CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem(给自己颁发证书)
DSC00016.jpg 在本目录查询

DSC00017.jpg

  二、搭建web服务器
  第一步:结合ssl安装mod_ssl模块:
DSC00018.jpg

  第二步:申请证书
  创建并进入certs目录:
  [root@server1 ~]# mkdir -pv /etc/httpd/certs
  在目录下建httpd.key放私钥文件:
  [root@server1 certs]# openssl genrsa 1024 >httpd.key
[root@server1 certs]# chmod600 httpd.key
  

  建httpd.req放请求文件:
DSC00019.jpg

  建httpd.cert放证书文件:
DSC00020.jpg

  现在查看数据库文件(本来为空的,发现现在已添加)
  [root@server1 certs]# cd /etc/pki/CA/
  [root@server1 CA]# cat index.txt
  V140824012802Z01unknown/C=CN/ST=BEIJING/O=abc/OU=tec/CN=www.abc.com
  三、捆绑
  编辑/etc/httpd/conf.d/ssl.conf文件(112、119行)如图:
DSC00021.jpg

  不使用明文访问的话需要编辑 vim /etc/httpd/conf/httpd.conf
  在(134行)将80端口禁掉
DSC00022.jpg

  配置完成;接着需要在浏览器上修改
  访问服务器,会出现以下情况:
DSC00023.jpg

DSC00024.jpg

  我们需要安装证书
DSC00025.jpg DSC00026.jpg

  

  接着就可以访问了
DSC00027.jpg

DSC00028.jpg





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-638756-1-1.html 上篇帖子: linux 下 apache php 下篇帖子: apache的站点安全
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表