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

[经验分享] Linux -- Web服务器配置之用户认证;Perl语言解释器的安装

[复制链接]

尚未签到

发表于 2018-8-30 11:57:16 | 显示全部楼层 |阅读模式
  一、用户认证
  用户认证在网络安全中是非常重要的技术之一,它是保护网络系统资源的第一道防线。用户认证控制着所有登录并检查访问用户的合法性,其目标是仅让合法用户以合法的权限访问网络系统的资源。当用户第一次访问了启用用户认证目录下的任何文件,浏览器会显示一个对话框,要求输入正确的登录用户名和口令进行用户身份的确认。若是合法用户,则显示所访问的文件内容。此后访问该目录的每个文件时,浏览器会自动送出用户名和密码,不用再输入了,直到关闭浏览器为止。用户认证功能起到了一个屏障的作用,限制非授权用户非法访问一些私有的内容。下面通过一个实际的例子说明在Apache中启用用户认证功能的方法。
  假设有一个名为mysecret的虚拟目录,其对应的物理路径是/usr/local/mysecret,现需要对其启用用户认证功能,只允许用户名为linden和tom的用户访问。
  1.建立口令文件
  要实现用户认证功能,首先要建立保存用户名和口令的文件。Apache自带的htpasswd命令提供了建立和更新存储用户名、密码的文本文件的功能。需要注意的是,这个文件必须放在不能被网络访问的位置,以避免被下载。本例将口令文件放在/etc/httpd/目录下,文件名为mysecretpwd。使用以下命令建立口令文件。
htpasswd -c /etc/httpd/mysecretpwd linden  命令执行结果如图7-9所示,htpasswd命令会提示为linden用户输入口令。
DSC0000.jpg

  -c选项表示无论口令文件是否已经存在,都会重新写入文件并删去原有内容。所以在添加第2个用户到口令文件时,就不需要使用-c选项了。
htpasswd /etc/httpd/mysecretpwd tom  2.建立虚拟目录并配置用户认证
  在Apache的主配置文件httpd.conf中加入以下语句建立虚拟目录并配置用户认证。
Alias /mysecret "/usr/local/mysecret"  

  
AuthType Basic
  
AuthName "This is a private directory. Please Login:"
  
AuthUserFile /etc/httpd/mysecretpwd
  
Require user linden tom
  

  (1)设置认证类型
  AuthType Basic
  AuthType选项定义了对用户实施认证的类型,最常用的是由mod_auth提供的Basic。
  (2)设置认证领域内容
AuthName "This is a private directory. Please Login:"  AuthName选项定义了Web浏览器显示输入用户/密码对话框时的领域内容。
  (3)设置口令文件的路径
AuthUserFile /etc/httpd/mysecretpwd  AuthUserFile选项定义了口令文件的路径,即使用htpasswd建立的口令文件。
  (4)设置允许访问的用户
Require user linden tom  Require user选项定义了允许哪些用户访问,各用户之间用空格分开。
  3.测试用户认证
  测试用户认证的具体步骤如下。
  在服务器中使用命令"/etc/init.d/httpd restart"重启Web服务。
  在客户端的Web浏览器中访问这个虚拟目录,这时Web浏览器会弹出输入用户名和口令的对话框,如图7-10所示。
DSC0001.jpg

  输入正确的用户名和口令,就能访问该目录了,如图7-11所示。
DSC0002.jpg

  如果用户名和口令不正确,则出现"401 Authorization Required"的错误信息,如图7-12所示。
DSC0003.jpg

  测试用户认证时最好在虚拟目录中建立一个名为index.html的文件,否则输入正确的用户名和口令后,由于虚拟目录既没有设置默认文档,也没有设置允许目录浏览,所以会出现"403 Forbidden"的错误信息。
  二、CGI运行环境的配置
  CGI是通用网关接口Common Gateway Interface的缩写,用于连接网页和Web服务器应用程序的接口。众所周知,HTML语言的功能是比较贫乏的,难以完成诸如访问数据库等一类的操作,而实际的情况则是经常需要先对数据库进行操作(比如文件检索系统),然后把访问的结果动态地显示在网页上。诸如此类的需求只用HTML是无法做到的,所以CGI便应运而生。CGI是在Web服务器运行的一个可执行程序,由网页的一个超链接激活进行调用,并对该程序的返回结果进行处理,显示在客户端的Web浏览器上。用CGI程序可以实现处理网页的表单处理、数据库查询、发送电子邮件等工作。CGI使网页变得不再是静态的,而是交互式的。Web服务器的CGI程序需要有用户调用才会执行,下面是Web浏览器、Web服务器和CGI程序之间的一个工作流程。
  (1)用户通过Web浏览器访问CGI程序。
  (2)Web服务器接收用户请求并交给CGI程序处理。
  (3)CGI程序执行基于输入数据的操作,包括查询数据库、计算数值或调用系统中其他程序。
  (4)CGI程序产生某种Web服务器能理解的输出结果。
  (5)Web服务器接收来自CGI程序的输出并且把它传回Web浏览器。
  Perl语言解释器的安装
  CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量,如Perl、C、C++、Java。其中,Perl易编译调试、移植性颇强,可以说在众多的CGI编程语言中是最好的、最容易上手的语言。Perl几乎成了CGI的标准或代言词。每当人们提到CGI的时候,必然会想到Perl。Perl是Practical Extraction and Reporting Language实用摘录与报告语言的缩写,它自1987年初次登台亮相以来,它的用户数一直急剧膨胀。Perl不是由某个公司大力推广而得到发展的,正如Java那样,Perl全凭自身的优势来发展。从最初被当作一种在跨平台环境中书写可移植工具的高级语言开始,Perl就已经被广泛地认为是一种工业级的强大工具。Perl特别适合系统管理和Web编程。Perl实际上已经被所有Linux(包括UNIX)捆绑在一起作为标准部件发布了,如今的Perl语言已经被移植到除了Linux之外的多种操作平台上。
  默认情况下,Red Hat Enterprise Linux安装程序会将Perl语言解释器安装在系统上,读者可使用下面的命令检查系统是否已经安装了Perl解释器或查看已经安装了何种版本。
rpm -q perl  命令执行结果如图7-17所示,这表示Perl解释器已安装,它的版本为5.8.8-10。
DSC0004.jpg

  如果系统还没有安装Perl解释器,应将Red Hat Enterprise Linux 5第1张安装盘放入光驱,加载光驱后在光盘的Server目录下找到Perl解释器的RPM安装包文件perl-5.8.8-10.i386.rpm,使用下面命令安装Perl解释器。
  rpm -ivh /mnt/Server/ perl-5.8.8-10.i386.rpm
  httpd.conf文件的配置
  1.设置存放CGI文件的目录权限
  设置存放CGI文件的目录权限可以告诉Apache允许CGI程序在哪些目录下运行。例如主目录需要执行的CGI文件,应在主目录权限设置的Options指令中添加一个"ExecCGI"选项,如图7-18所示。
DSC0005.jpg

  2.标明CGI程序的文件类型
  找到"#AddHandler cgi-script .cgi"语句,删除前面的"#"即可,该语句告诉Apache扩展名为".cgi"的文件是CGI程序。如果同时想运行扩展名为.pl的文件可以在语句后面添加"pl",如图7-19所示。
DSC0006.jpg

  测试CGI运行环境
  测试CGI运行环境的步骤如下。
  在CGI文件存放的目录(如/var/www/html/)中建立一个名为test.cgi的文件,该文件的内容如下。
#!/usr/bin/perl  
print "Content-type: text/html\n\n";
  
print "Hello World!\n";
  执行命令"chmod +x /var/www/html/test.cgi",为test.cgi文件添加运行权限。
  在客户端的浏览器访问"http://Linux服务器的IP地址/test.cgi",如果出现如图7-20所示的"Hello World!",则代表CGI运行环境配置成功。
DSC0007.jpg

  参考:http://book.51cto.com/art/200811/96897.htm
  http://book.51cto.com/art/200811/96918.htm



运维网声明 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-558916-1-1.html 上篇帖子: Ubuntu安装perl模块步骤 下篇帖子: perl的魅力
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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