rhel6之七:服务配置之ntp、apache

chengdu

贡献于2013-07-08

字数:17777 关键词: RedHat

一、NTP(网络时间协议) 计算机的系统时间是由计算机内的石英晶体振荡电路以固定的振荡频率产生的,由于晶振在制作过程中会有少许误差,导致所产生的系统时间与全球时间(UTC)存在偏差,时间一长,偏差就会越来越大,严重时会给网络应用带来灾难性的后果,因此就需要对网络中的计算机的系统时间进行校正(也称时间同步)。 Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机系统与NTP服务器或时钟源(如石英钟,GPS等等)进行同步化的一种协议,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒) 通常情况下,时间同步是按以下步骤进行的: (1):NTP客户端向NTP服务器发出一个时间请求包(UDP包),其中包含了该包离开客户端时的时间戳。 (2):当服务器接收到该包时。填入包到达时的时间戳、包离开时的时间戳等信息,然后立即把包返回给客户端 (3):客户端在接收到响应包时再填入包返回时的时间戳,然后利用这些时间参数计算出两个关参数,即包往返的延迟、客户端与服务器之间的时钟偏移 (4):客户端使用时钟偏移来调整本地时钟,以使其时间与服务器时间一致 1、网络时间服务器的安装与配置 (1)检查是否安装NTP服务器软件包:#rpm -q ntp 默认是安装的,若未安装则通过RPM命令或YUM进行安装 (2)编辑配置文件/etc/ntp.conf NTP服务的主要配置文件是/etc/ntp.conf。其中已经有了一些默认设置。如下图所示: restrict default kod nomodify notrap nopeer noquery 限制其他计算机查询、修改本机上的NTP服务,其中default表示所有IP restrict -6 default kod nomodify notrap nopeer noquery 应用于IPV6地址的主机 restrict 127.0.0.1 开放本机内部接口,用于反馈;以便于在本地对NTP服务进行监控及配置 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap 开放这个网段,不能修改;即允许192.168.1.0/24网段的NTP客户端都可以用本机的NTP服务器进行网络校时,但不允许它们修改本机的NTP服务配置 server 0.rhel.pool.ntp.org server 1.rhel.pool.ntp.org server 2.rhel.pool.ntp.org 这些是网络中真正服务器,这里的server参数用来指定上层的NTP服务器,默认指定internet上的时间服务器池中的时间服务器作为上层NTP服务器 配置使用网络时间,主要是通过修改配置文件/etc/ntp.conf来实现的 ntp服务器默认监听UTP 123端口 开放防火墙123端口 # iptables -I INPUT -p udp --dport 123 -j ACCEPT  例如:在某个局域网中,架设一台本地的NTP服务器(IP:192.168.0.1),并让它与外部时间服务器同步,那么它的时间就成为了整个内部网络的标准时间。本地的NTP服务器不对internet提供公开的NTP服务,仅对内部子网192.168.0.0/24提供NTP服务,并且内部网络的网络校时不需要认证机制。要实现上述功能,需要对/etc/ntp.conf文件做下面的修改。  首先确定自己的时区: date命令可以查看当前系统时间,中国的时区为CST。使用tzselect命令进行配置(时区选择,交换式配置方式 或者选择Shanghai然后建立一个软连接,如下所示: ln -sf /usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime #localtime为系统时区 修改权限设置的语句格式为: 1、restrict IP地址或域名 [mask 子网掩码][选项] 该语名用来设置其他计算机对本机NTP服务的访问权限,其中,IP地址或域名参数可以是default,表示所有计算机 常用选项: ignore:表示禁止所有的NTP请求包进入 nomodify:表示禁止其他计算机更改本机NTP服务的设置,但可以通过本NTP服务器进行网络校时 notrust:表示禁止所有未通过认证的NTP包进入 noquery:表示禁止其他计算机查询本机NTP服务的状态 notrap: 不提供trap远程登录 nopeer: 提供时间服务,但不做为对等体 kod: 向不安全的访问者发送Kiss-Of-Death报文 如果没有设置任何选项,就表示该计算机(或网段)没有任何限制。 若想对内部子网192.168.0.0/24提供NTP服务,则可以在ntp.conf文件中添加如下配置: restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap 2、配置选项 server 作用:指定上层NTP服务器,以及一些连接选项 server [host] [key n] [version n] [prefex] [mode n] [minpoll n] [maxpoll n] [iburst] 如: server 0.rhel.poll.ntp.org server 1.rhel.poll.ntp.org 启动ntp服务:service ntpd start 开机启动服务:chkconfig ntpd on 3、配置时间同步客户机: 方法1:从“系统”à“管理”à菜单中,打开“日期和时间”管理工具 方法2:手工执行 ntpdate 来同步 或者利用crontab来执行 crontab -e 0 21 * * * /usr/sbin/ntpdate 192.168.0.1 ; /sbin/hwclock -w 每天晚上9点进行同步 其中hwclock –w或hwclock systohc 命令修正系统硬件时间,这样系统重启后,才能显示出正确的时间 附: 在ntp客户端运行ntpdate serverIP,出现no server suitable for synchronization found的错误。 在ntp客户端用ntpdate -d serverIP查看,发现有“Server dropped: strata too high”的错误,并且显示“stratum 16”。而正常情况下stratum这个值得范围是“0~15”。 这是因为NTP server还没有和其自身或者它的server同步上。 以下的定义是让NTP Server和其自身保持同步,如果在/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端。 server 127.127.1.0 fudge 127.127.1.0 stratum 10 在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitable for synchronization found的错误。 那么如何知道何时ntp server完成了和自身同步的过程呢? 在ntp server上使用命令: # watch ntpq -p 出现画面: 注意LOCAL的这个就是与自身同步的ntp server。 注意reach这个值,在启动ntp server服务后,这个值就从0开始不断增加,当增加到17的时候,从0到17是5次的变更,每一次是poll的值的秒数,是64秒*5=320秒的时间。 在ntp client上使用命令:查看时间同步状态 几个ntp命令: #/usr/sbin/ntpdate -u 192.168.0.1 校对时间 #/usr/sbin/ntpdate -q 192.168.0.1 查询不更新 #hwclock --systohc 将机器硬件时钟同步为系统时钟 二、WEB服务 常用的配置参数 · ServerRoot:服务目录 · ServerAdmin:管理员邮箱 · User:运行服务的用户身份 · Group:运行服务的组身份 · ServerName:网站服务器的域名 · DocumentRoot:网页文档的根目录 · Listen:监听的IP地址、端口号 · PidFile:保存httpd进程PID号的文件 · DirectoryIndex:默认的索引页文件 · ErrorLog:错误日志文件的位置 · CustomLog:访问日志文件的位置 · LogLevel:记录日志的级别,默认为warn · Timeout:网络连接超时,默认为300秒 · KeepAlive:是否保持连接,可选On或Off · MaxKeepAliveRequests:每次连接最多请求文件数 · KeepAliveTimeout:保持连接状态时的超时时间 · Include:需要包含进来的其他配置文件 · 区域设置 · …… · 1、使用SSL加固Apache SSL概述: 使用具有SSL功能的Web服务器,可以提高网站的安全性能。SSL协议工作在Linux TCP/IP协议和HTTP协议之间。 SSL使用加密方法来保护Web服务器和浏览器之间的信息流。SSL不仅用于加密在互联网上传递的数据流,而且还提供双方身份验证。这样就可以安全地在线购物而不必担心别人窃取信用卡的信息。这种特性使得SSL适用于那些交换重要信息的地方,像电子商务和基于Web的邮件。 ① 用户使用浏览器,访问Web服务器站点,发出SSL握手信号; ② Web服务器发出回应,并出示服务器证书(公钥),显示系统Web服务器站点身份; ③ 浏览器验证服务器证书,并生成一个随机的会话密钥,密钥长度达到128位; ④ 浏览器用Web服务器的公钥加密该会话密钥; ⑤ 浏览器将会话密钥的加密结果发送Web服务器; ⑥ Web服务器用自己的私钥解密得出真正的会话密钥; ⑦ 现在浏览器和Web服务器都拥有同样的会话密钥,双方可以放心使用这个会话密钥来加密通信内容; ⑧ 安全通信通道建立成功。 实现SSL安全通信(即基于Apache的https(证书,密钥)的实现): 方式1:由证书服务器(CA)为WEB服务器签发证书 <1>:根CA配置: 要确保openssl的软件包已安装,如下图所示: (1)编辑/etc/pki/tls/openssl.cnf 文件首先备份成openssl.cnf.raw [CA_default] default_days = 3650 à   证书有效期为十年 (第73行)最好设置时间要长一些,否则过期后所有的都要重新设置 [req] default_bits = 1024  改为 2048 à  密钥的长度 (第106行) [usr_cert] basicConstraints=CA: FALSE  改为 CA:TRUE à 可以签发下级证书 (第172行) [v3_req] basicConstraints = CA : FALSE 改为 CA:TRUE (第223行) 编辑后改名openssl.cnf.rootca 制作根CA的配置文件 #cp /etc/pki/tls/openssl.cnf  /etc/pki/tls/openssl.cnf.rootca 使其能够签发下级证书。 (2)进入/etc/pki/tls/misc 目录。 在该目录中有一个CA脚本文件可以用它来制作根CA。 编辑CA文件找到DAY=“-days ” 和CADAY=“-days  ” (第63行和第64行) 配置为  DAYS=“—days  3650”#10years          CADAYS=“—days  3650”#10years 创建根CA机构 这里关系到两个目录,/etc/pki/tls/misc是工作目录,/etc/pki/CA是存放所有CA相关文件的目录。完成此步骤后,会在/etc/pki/CA目录下生成一系列文件,其中最重要的是 /etc/pki/CA/private/cakey.pem   CA的私钥文件 /etc/pki/CA/cacert.pem  CA的证书文件 注意:如果脚本检测到/etc/pki/CA下面有文件存在,那么script会安静的退出,不会创建任何东西。把/etc/pki/CA下的文件全部删除,script就可以正常工作了 #rm -rf /etc/pki/CA/ #cd /etc/pki/tls/misc/ 如图所示: 执行脚本文件CA创建根CA机构(为根CA申请证书) #./CA –newca 需要特别注意的是创建证书时,输入Common Name的时候如果输入FQDN,客户端就指定FQDN连,如果输入IP,客户端就指定IP连。如果指定的FQDN,就全部用FQDN,否则全部用IP地址 创建过程如下: CA certificate filename (or enter to create) Making CA certificate ... Generating a 1024 bit RSA private key ..................................++++++ .....++++++ writing new private key to '../../CA/private/cakey.pem' Enter PEM pass phrase: ――输入rootca的私钥密码 Verifying - Enter PEM pass phrase: ――确认密码 ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [GB]: ――国家区域号(如US、CN等) State or Province Name (full name) [Berkshire]: ――国家或省市名 Locality Name (eg, city) [Newbury]: ――城市名 Organization Name (eg, company) [My Company Ltd]: ――单位名 Organizational Unit Name (eg, section) []: ――部门名 Common Name (eg, your name or your server's hostname) []: ――证书的名称一般书写根CA服务器的完全合格名如svr.example.com Email Address []: ―― 联系邮箱 Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: ――申请书的密码,直接跳过 An optional company name []: ――代办公司的名称,直接跳过 Using configuration from /etc/pki/tls/openssl.cnf Enter pass phrase for ../../CA/private/cakey.pem: Check that the request matches the signature Signature ok Certificate Details:         Serial Number:       c4:87:8a:c3:fd:11:b2:61         Validity       Not Before: Jul 23 06:43:39 2010 GMT       Not After : Jul 22 06:43:39 2013 GMT         Subject:       countryName         = GB       stateOrProvinceName       = Berkshire       organizationName    = My Company Ltd       commonName          = svr.example.com         X509v3 extensions:       X509v3 Subject Key Identifier:           4B:11:F1:EE:53:DC:74:2A:66:F4:C5:E4:5A:15:61:8B:7A:4D:1F:2D       X509v3 Authority Key Identifier:           keyid:4B:11:F1:EE:53:DC:74:2A:66:F4:C5:E4:5A:15:61:8B:7A:4D:1F:2D           DirName:/C=GB/ST=Berkshire/O=My Company Ltd/CN=ldapm.dh.cn           serial:C4:87:8A:C3:FD:11:B2:61       X509v3 Basic Constraints:           CA:TRUE Certificate is to be certified until Jul 22 06:43:39 2013 GMT (1095 days) Write out database with 1 new entries Data Base Updated 创建成功后转入/etc/pki/CA/private/目录,有cakey.pem密钥。(权限设为400) /etc/pki/CA/下有根CA的证书cacert.pem。 #cd /etc/pki/CA #openssl x509 –noout –text –in cacert.pem 必须要显示  X509V3 Basic Constraints:               CA:TRUE à 表示可以签发下级证书。 <2>签发WEB服务器证书: WEB服务器证书也由根CA签发,不过该证书在扩展结构上应该是一张 终端用户证书,所以必须修改/etc/pki/tls/openssl.cnf文件适应变化 服务器签发证书文件配置 [CA_default] default_days=3650 [req] default_bits=1024 [usr_cert] basicConstraints=CA:FALSE [v3_req] basicContraints=CA:FALSE #cd  /etc/pki/tls/misc/ #./CA  -newreq (与创建根CA证书过程类似) Generating a 1024 bit RSA private key ...............++++++ .++++++ writing new private key to 'newkey.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [GB]: State or Province Name (full name) [Berkshire]: Locality Name (eg, city) [Newbury]: Organization Name (eg, company) [My Company Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:――证书的名称一般书写WEB服务器的完全合格名如svr.example.com,很重要后面会用到 Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Request is in newreq.pem, private key is in newkey.pem 对证书进行签证: #./CA  -sign (对证书签证) Using configuration from /etc/pki/tls/openssl.cnf Enter pass phrase for ../../CA/private/cakey.pem:――输入密码 (Rootca 的 Private key 密码) Check that the request matches the signature Signature ok Certificate Details:         Serial Number:       c4:87:8a:c3:fd:11:b2:62         Validity       Not Before: Jul 23 06:52:31 2010 GMT       Not After : Jul 23 06:52:31 2011 GMT         Subject:       countryName         = GB       stateOrProvinceName       = Berkshire       localityName        = Newbury       organizationName    = My Company Ltd       commonName          = svr.example.com         X509v3 extensions:       X509v3 Basic Constraints:           CA:FALSE       Netscape Comment:           OpenSSL Generated Certificate       X509v3 Subject Key Identifier:           BE:21:BD:4C:39:C1:B4:26:B4:EB:ED:B6:42:36:97:1F:97:49:15:49       X509v3 Authority Key Identifier:           keyid:4B:11:F1:EE:53:DC:74:2A:66:F4:C5:E4:5A:15:61:8B:7A:4D:1F:2D Certificate is to be certified until Jul 23 06:52:31 2011 GMT (365 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated Signed certificate is in newcert.pem 这样WEB服务器证书就制作完毕了,不过一定要确定是一张终端证书 验证WEB服务器端证书: #openssl x509 –noout –text –in newcert.pem             X509V3  Basic  Constraints:              CA:FALSE à  表明是一张终端证书。 #cd /etc/pki/tls/misc #openssl verify –CAfile /etc/pki/CA/cacert.pem  newcert.pem 成功会显示newcert.pem:OK à 表明新证书newcert.pem是由根证书cacert.pem授权。 运行完上面两个步骤后,会发现当前目录下创建了3个文件: newreq.pem  创建证书请求文件,没什么用了 newcert.pem CA签发的证书 newkey.pem 证书对应的私钥,(权限设为400) <3>:事先将YUM配置好(光盘源YUM即可) 1):确认Web-server 软件组或httpd的相关包已安装,可以通YUM安装 如:yum –y groupinstall Web-server 2):安装mod_ssl包,让apache支持SSL 如:yum –y mod_ssl 编辑配置文件:/etc/http/conf .d/ssl.conf修改证书和密钥文件的路径为我们创建的证书和密钥的所在位置。#vi /etc/httpd/conf.d/ssl.conf  重新启动httpd服务: # service httpd restart 停止 httpd:                                               [确定] 启动 httpd:Apache/2.2.15 mod_ssl/2.2.15 (Pass Phrase Dialog) Some of your private key files are encrypted for security reasons. In order to read them you have to provide the pass phrases. Server rhce.cn:443 (RSA) Enter pass phrase:                  //输入我们创建WEB服务器的证书和密钥时的密码。 OK: Pass Phrase Dialog successful. <4>:测试:(https基于443端口,注意防火墙要开通此端口) 在window主机上以https://svr2.benet.com格式访问WEB服务器 在linux主机上用firefox浏览器访问:https://svr2.benet.com如下示: 编辑->首选项->高级->加密->查看证书->导入,将根CA证书(cacert.pem)导入,如下图: 并在出现的对话框中勾选“此证书可以标识web站点”,如图所示: 完成以上操作后,客户端就可以正常访问WEB页面了 附:以上操作的缺点是每次启动apache时,都需要输入这个passphrase(即密钥的保护密码)。这是极端不方便的,因为这造成每次启动apache都需要手工干预的步骤。尤其是当系统重启或者其他机制重启apache,那时没有人能手工输入passphrase。因此,这里将从私钥中删除这个passphrase来避免上述的问题。 首先,复制私钥作为备份: 下一步: 这样就生成不包含passphrase加密的私钥。生成的不加密的私钥,应该设置为只有root有读权限,否则是不安全的。 修改/etc/httpd/conf.d/ssl.conf文件并重启httpd服务,这时就不需要输入passphrase了。 方式2:WEB服务器自已给自已颁发证书和私钥 事先将YUM配置好(光盘源YUM即可) 1):确认Web-server 软件组或httpd的相关包已安装,可以通YUM安装 如:yum –y groupinstall Web-server 2):安装mod_ssl包,让apache支持SSL 如:yum –y mod_ssl 3):要确保openssl的软件包已安装,由openssl实现证书服务功能;如下图所示: 4):创建证书和密钥文件: #cd /etc/pki/tls/certs         #make  httpd.crt  //证书文件的名字可以随便写,扩展名不要变。最后会生成两个文件,一个证书文件.crt结尾,一个密钥.key结尾 过程如下: # make httpd.crt umask 77 ; \         /usr/bin/openssl genrsa -des3 2048 > links.key Generating RSA private key, 2048 bit long modulus ...........................++++++ .........................++++++ e is 65537 (0x10001) Enter pass phrase:   //密码。 Verifying - Enter pass phrase:    //确认密码和上面相同。 umask 77 ; \         /usr/bin/openssl req -utf8 -new -key links.key -x509 -days 365 -out lis.crt -set_serial 0 Enter pass phrase for httpd.key:  //httpd.key 文件密码 You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:beijing Locality Name (eg, city) []:beijing Organization Name (eg, company) [My Company Ltd]:benet.com Organizational Unit Name (eg, section) []:benet.com Common Name (eg, your name or your server's hostname) []:svr2.benet.com//真实域名 Email Address []:root@benet.com 创建成功后就会在/etc/pki/tls/certs目录中创建好httpd.crt证书和httpd.key私钥 5):编辑配置文件:/etc/http/conf .d/ssl.conf   修改证书和密钥文件的路径为我们创建的证书和密钥的所在位置。 # vi /etc/httpd/conf.d/ssl.conf  重新启动httpd服务: [root@rhce certs]# service httpd restart 停止 httpd:                                               [确定] 启动 httpd:Apache/2.2.15 mod_ssl/2.2.15 (Pass Phrase Dialog) Some of your private key files are encrypted for security reasons. In order to read them you have to provide the pass phrases. Server rhce.cn:443 (RSA) Enter pass phrase:                  //输入我们创建证书和密钥时的密码。 OK: Pass Phrase Dialog successful. 6):测试。(https基于443端口,注意防火墙要开通此端口) 在window主机上以https://svr2.benet.com格式访问WEB服务器 在linux主机上用firefox浏览器访问:https://svr2.benet.com如下图所示: 单击上图的“添加例外”按钮 单击“确认安全例外”按钮后就可正常访问页面了 用cat查看apache服务器证书文件的信息: #cat /etc/pki/tls/certs/httpd.crt 使用openssl命令查看apache证书信息: #openssl x509 -in httpd.crt -text 其他查看证书信息的相关命令,如图所示: 方式3:类似于方式2 1):确认crypto-utils和mod_ssl包已安装,可以通YUM安装 如:yum –y crypto-utils mod_ssl 2):执行genkey命令创建服务器证书: #genkey - -days 365 svr2.benet.com 其中- -days用来指定证书的有效时间;svr2.benet.com是web服务器的FQDN名 过程如下: 单击上图中的“next”按钮,就会进入”choose key size”界面 选择密钥长度并单击”next”按钮,进入生成随机字符串界面,之后进入生成CSR界面,选择“no”就会进下”protecting your private key”界面 直接单击上图中”next”按钮进入下图:就会进入填写证书相关信息的界面 运行完毕后就会成功创建服务器的证书和私钥(公钥保存在/etc/pki/tls/certs/目录中,公钥文件名为:svr2.benet.com.crt;私钥保存在/etc/pki/tls/private目录中,文件名为:svr2.benet.com.key) 可以执行#openssl x509 -text 首选项->高级->加密->查看证书->导入,将WEB服务器的证书(svr2.benet.com.crt)导入,如下图: 并在出现的对话框中勾选“此证书可以标识web站点”,如图所示: 这时客户端访问就正常了。 2、虚拟主机:即在一台物理主机上同时运行着多个WEB站点. 1):基于域名的虚拟主机:为每个虚拟主机使用不同的域名,但其对应的IP地址和TCP端口号是相同的,这是使用最为普遍的虚拟WEB主机类型。 实例:实现两个基于域名的WEB主机: 第一个WEB站点 第二个WEB站点 FQDN www.benet.com www.accp.com IP 192.168.0.2 192.168.0.2 TCP PORT 80 80 网站根目录 /var/www/benet.com/html /var/www/accp.com/html 主页 index.html index.html 基于虚拟主机的配置方法如下: 分别准备两个虚拟站点的网页文件: #cd /var/www #mkdir –p benet.com/html accp.com/html #echo “www.benet.com” > benet.com/html/index.html #echo “www.accp.com” > accp.com/html/index.html 修改httpd.conf文件,添加虚拟主机配置 #vi /etc/httpd/conf/httpd.conf 配置如下: 重启httpd服务 当客户端访问WEB服务器时,访问请求匹配www.benet.com或benet.com则由WEB1虚拟主机响应,匹配www.accp.com或accp.com则由WEB2虚拟主机响应 注1:若网站根目录不是在/var/www目录时,如:/svr/www要注意selinux的设置 要执行semanage须安装下列包:policycoreutils-python, policycoreutils semanage fcontext -l | grep '/var/www' 获知默认 /var/www 目录的 SELinux 上下文: /var/www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0 给这个目录下的文件增加 httpd_sys_content_t 标签,分两步实现: 首先为 /srv/www 这个目录下的文件添加默认标签类型: semanage fcontext -a -t httpd_sys_content_t '/srv/www(/.*)?' 然后用新的标签类型标注已有文件: restorecon -Rv /srv/www 之后 Apache 就可以使用该目录下的文件构建网站了 注2:若将网站文档根目录权限设置为750,则用户访问会被拒绝,如图所示: #chmod –R 750 /var/www/benet.com /var/www/accp.com 解决方法:将网站文档根目录属组设置为 apache组: #chgrp -R apache /var/www/benet.com /var/www/accp.com 或设置目录的ACL #setfacl  -Rm  g:apache:rx   /var/www/benet.com # setfacl  -Rm  g:apache:rx   /var/www/accp.com 2):基于IP的虚拟主机:为每个虚拟主机使用不同的域名,不同IP。 实例:实现两个基于IP的WEB主机: 第一个WEB站点 第二个WEB站点 FQDN www.benet.com www.accp.com IP 192.168.0.2 192.168.0.22 TCP PORT 80 80 网站根目录 /var/www/benet.com/html /var/www/accp.com/html 主页 index.html index.html 首先要给网卡接口(eth0)设置2个IP,方法如下: #cd /etc/sysconfig/network-scripts/ #cp ifcfg-eth0 ifcfg-eth0:0 然后修改ifcfg-eth0:0,修改结果如下: 最后重启network服务:#service network restart 修改httpd.conf文件,添加虚拟主机配置 #vi /etc/httpd/conf/httpd.conf 配置如下: 重启httpd服务 客户端测试访问 3):基于TCP PORT的虚拟主机:为每个虚拟主机使用不同的端口号。 实例:实现两个基于IP的WEB主机: 第一个WEB站点 第二个WEB站点 FQDN www.benet.com www.accp.com IP 192.168.0.2 192.168.0.2 TCP PORT 801 802 网站根目录 /var/www/benet.com/html /var/www/accp.com/html 主页 index.html index.html 修改httpd.conf文件,添加要监听的端口号 添加虚拟主机的配置: 默认情况下 Apache 只侦听 80 和 443 两个端口,若是直接指定其侦听 888 端口的话,会在 service httpd restart 的时候报错 解决方法: 3、CGI运行环境的配置: Web浏览器、Web服务器和CGI程序之间的一个工作流程。 (1)用户通过Web浏览器访问CGI程序。 (2)Web服务器接收用户请求并交给CGI程序处理。 (3)CGI程序执行基于输入数据的操作,包括查询数据库、计算数值或调用系统中其他程序。 (4)CGI程序产生某种Web服务器能理解的输出结果。 (5)Web服务器接收来自CGI程序的输出并且把它传回Web浏览器。 Perl语言解释器的安装 默认情况下,RHEL6安装程序会将Perl语言解释器安装在系统上,可使用下面的命令检查系统是否已经安装了Perl解释器或查看已经安装了何种版本 具体配置如下: 在WEB站点的默认网页文档根目录之外创建用来存放CGI脚本的目录 #mkdir –p /www1/cgi-bin 修改httpd.conf文件支持CGI 1):添加/www1/cgi-bin目录的别名 2):设置apache支持CGI 3):在/www1/cgi-bin目录创建一个CGI程序,如下图所示:test.cgi 4):为test.cgi添加x权限#chmod +x /www1/cgi-bin/test.cgi 5):用chcon命令修改/www1目录的安全上下文,如下图 用chcon命令修改/www1/cgi-bin目录和其下的test.cgi文件的安全上下文,如下图 #chcon -Rt httpd_sys_script_exec_t /www1/cgi-bin 6):测试http://WEB的IP或FQDN/cgi/test.cgi 4、基于用户的身份验证: 首先创建认证用户账号及口令的文件 修改httpd.conf文件 重启httpd服务,使修改生效 测试访问 5):实现LDAP用户认证,即apache+ldap 准备工作:搭建好LDAP服务器和WEB服务器 首先将LDAP的证书拷贝到WEB服务器的/etc/httpd目录下 确保mod_authz_ldap*.rpm包已安装 本案例是以基于域名的虚拟主机为例设置LDAP身份认证,所以先在httpd.conf文件中配置好虚拟主机,如下图所示: 修改/etc/httpd/conf.d/authz_ldap.conf文件,修改后的配置如下: 在web服务器的/etc/hosts文件中添加ldap服务器的名称和IP的映射记录 重启httpd服务,测试 附: 配置SSL虚拟主机 使用ssl虚拟主机,要求在同一个ip地址和端口下,只能运行一个ssl主机。这是由ssl的工作机制决定的,而不是apache本身的限制。试图在同一个ip和端口下运行多个ssl主机,浏览器会显示警告信息,因为浏览器会收到错误的证书 修改/etc/httpd/conf.d/ssl.conf文件,修改证书和密钥文件的路径为我们创建的证书和密钥的所在位置。如图所示:与实现SSL安全通信一样 创建SSL虚拟主机:修改操作不是在/etc/httpd/conf/httpd.conf主配置文件中实现而是修改/etc/httpd/conf.d/ssl.conf文件。 在/etc/httpd/conf.d/ssl.conf文件中配置虚拟主机,配置如下图所示:

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享文档获得金币 ]
1 人已下载

下载文档

相关文档