アパッチ -そのクロスプラットフォームのセキュリティのためにApacheのは、優れた戦術と無限の忍耐との意味合いからアメリカインディアンの先住民族の言語、およびは広く認識され、高速で信頼性の高い、シンプルなAPIの拡張を持っています。現在、Webサービスソフトウェア市場、世界で最も使用されるWebサーバソフトウェア、オープンソース、クロスプラットフォーム(Unix上で動作し、Linuxでは、内窓)の高稼働率を持っています。
IPベースのバーチャルホストまたはドメイン名のサポートは
、さまざまな方法をサポートするHTTP認証
プロキシサーバモジュールの統合
セキュリティソケットレイヤー(SSL)は
、リアルタイムおよびカスタマイズされたサービスステータスログで見ることができ
、複数のモジュールをサポートするために、
個人ユーザーのホーム・機能
Apacheサービスプログラムは、デフォルトが上ではない持っている個々のユーザーのホーム・ページ〜、それはああ、確かに非常に実用的である、システム内のすべてのユーザーの個人的なウェブサイトを作成する機能
ステップ1:個々のユーザーのホーム・ページ機能をオンにします。
[ルート@のlinuxprobe〜]#のvimの /etc/httpd/conf.d/userdir.conf
ラインを表現する#17とUserDirの無効ラインは、もはや機能し、コメントアウトされていません。
除去の#のUserDirの、public_htmlとライン23の前にある看板には、銀行が有効になっていると述べました。
注:UserDirのパラメータは、(すなわち、ユーザのホームディレクトリにデータディレクトリを作成する必要があるサイトの名前を示すpublic_htmlのを)
Apacheのサービスプログラムを再起動します。
[ルート@のlinuxprobe〜]#systemctl再起動httpdの
ステップ2:個人的なウェブサイトのユーザーデータを作成します。
通常のメンバーlinuxprobeのホームディレクトリに切り替えます。
[ルート@ linuxprobeホーム]#SU - linuxprobe
最終ログイン:金5月22日午後1時17分37秒CST 2015上:0
サイトのデータディレクトリのpublic_htmlを作成します。
[linuxprobe @ linuxprobe〜] $のは、mkdir public_htmlの
ファイルのホーム書かれた内容:
[linuxprobe @ linuxprobe〜] $エコー> public_htmlの/ index.htmlを "これはlinuxprobeのウェブサイトです"
755件のディレクトリサイトへのアクセスを与えること:
[linuxprobe @ linuxprobe〜] $ chmodの-Rf 755 ./
私たちは、ブラウザを開き、アドレス「にアクセスhttp://127.0.0.1/~ ユーザ名を」、他には何も本当に確かにエラーページ、SELinuxのサービスのいたずらではありません。
ステップ3:SELinuxのポリシーを許可に設定します。
エラーは、ユーザーの自宅のデータディレクトリのウェブサイトSELinuxのセキュリティコンテキストが設定されていないためではなく、SELinuxのデフォルトのApacheサービスがこの機能個々のユーザーのホーム・ページを許可していませんので。
getsebool コマンドクエリにフォーマットのすべてのルールのSELinuxのブール値を:「getsebool -a」。
SELinuxポリシーのブール:オフのみ0/1どちらの場合も、0またはが無効になっている、または許可に。
setsebool ブール値コマンドは、形式にSElinuxポリシーにルールを変更するために使用されます。「setsebool [オプション]ブール値= [0 | 1]」。
パラメータ |
効果 |
-P |
恒久 |
見ると、ホームディレクトリに関連するすべてのSELinuxポリシーを検索します。
[ルート@ linuxprobe〜]#getsebool -a | grepのホーム
ftp_home_dir - >オフ
git_cgi_enable_homedirs - >オフ
git_system_enable_homedirs - >オフ
httpd_enable_homedirs - >オフ
mock_enable_homedirs - >オフ
mpd_enable_homedirs - >オフ
openvpn_enable_homedirs - >上
samba_create_home_dirs - >オフ
samba_enable_home_dirs - >オフ
sftpd_enable_homedirs - >オフ
sftpd_write_ssh_home - >オフ
spamd_enable_home_dirs - >上
ssh_chroot_rw_homedirs - >オフ
tftp_home_dir - >オフ
use_ecryptfs_home_dirs - >オフ
use_fusefs_home_dirs - >オフ
use_nfs_home_dirs - >オフ
use_samba_home_dirs - >オフ
xdm_write_home - >オフ
サイトができるように、個々のユーザーポリシー設定が備わっています:
[ルート@ linuxprobe〜]#setsebool = -P httpd_enable_homedirsに
Linuxprobeは、ユーザーの個人用Webサイトにアクセスするには、ブラウザをリフレッシュし、彼女は成功しました:
ステップ4:パスワードのセキュリティ認証を追加します。
時々私は、あなたが使用することができ、誰もが自分自身の個人的なウェブサイトにアクセスするために注意を払うことを期待することはできませんパスワード認証がApacheのパスワードを、それによってセキュリティが向上します。
パスワードデータベース(第一世代のための-cパラメータ)を生成するためにhtpasswdコマンドを使用します。
[ルート@のlinuxprobe〜]#htpasswdの-cの/ etc / httpdの/ passwdのlinuxprobe
新しいパスワード:
新しいパスワード再入力:
ユーザーlinuxprobeのパスワードを追加します
(特定のパラメータは、以下を参照)コンフィギュレーションファイルのオープンパスワード認証を編集します。
[ルート@のlinuxprobe〜]#のVimの/etc/httpd/conf.d/userdir.conf
間違ったパスワードを入力した場合、直接禁止:
不正な
このサーバーは、要求されたドキュメントにアクセスすることを許可されていることを確認できませんでした。あなたは間違った資格情報(たとえば、不正なパスワード)を入力するか、ブラウザが必要な資格情報を提供する方法を理解しませんか。
ここにあるユーザー名であるlinuxprobe〜ああ混同しないように、ウェブサイトを作成するには、いないユーザーのパスワードをシステムパスワードが、パスワードのhtpasswdコマンド
バーチャルウェブホスティング機能
Apacheのバーチャルホスト(仮想ホスト)が でき、サーバベースの技術のIP、ホスト名やポート番号、より多くのサービスを提供するために、Webサイトを作ります。
手順仮想ホスト機能は非常にシンプルですが、あなたが確実に理解し、一度テスト環境をセットアップし、原理を理解することはより困難であろう。
IPアドレスに基づいて、1。
複数のIPアドレスを持つ単一のサーバ、ユーザーが別のIPアドレスにアクセスしたときに別のWebページを表示します。このような状況が一般的です。
ステップ1:カードの複数のIPアドレス(192.168.10.10/20/30)を追加するnmtuiコマンドを使用します。
使用してネットワークカードのデバイスを再起動した後のping正しいを確認するためにコマンドを(これは非常に重要であり、次のステップを良いテストしてください!)。
ステップ2:それぞれ、Webサイトのデータディレクトリを作成します。
3つのサイトは、データディレクトリ/ home / wwwrootディレクトリに作成されました。
[ルート@のlinuxprobe〜]#1は、mkdir -p /ホーム/ wwwrootに/ 10
[ルート@のlinuxprobe〜]#1は、mkdir -p /ホーム/ wwwrootに/ 20
[ルート@のlinuxprobe〜]#1は、mkdir -p /ホーム/ wwwrootに/ 30
ホーム・ファイルは、データディレクトリに3つのサイト、サイトのIPアドレスの内容を書き込まれます。
[ルート@ linuxprobe〜]#エコー "IP:192.168.10.10"> /home/wwwroot/10/index.html
[ルート@ linuxprobe〜]#エコー "IP:192.168.10.20"> /home/wwwroot/20/index.html
[ルート@ linuxprobe〜]#エコー "IP:192.168.10.30"> /home/wwwroot/30/index.html
ステップ3:IPアドレスベースの仮想ホストを設定ファイルに記述されています。
<VirtualHostの192.168.10.10>
のDocumentRoot /ホーム/ wwwrootに/ 10
ServerNameのwww.linuxprobe.com
<ディレクトリ/ home / wwwrootに/ 10>
AllowOverrideのなし
すべて許可された要求
</ディレクトリ> </ VirtualHost>の
<VirtualHostの192.168.10.20>
のDocumentRoot /ホーム/ wwwrootに/ 20
ServerNameのbbs.linuxprobe.com
<ディレクトリ/ home / wwwrootに/ 20>
AllowOverrideのなし
すべて許可された要求
</ディレクトリ> </ VirtualHost>の
<VirtualHostの192.168.10.30>
のDocumentRoot /ホーム/ wwwrootに/ 30
ServerNameのtech.linuxprobe.com
<ディレクトリ/ home / wwwrootに/ 30>
AllowOverrideのなし
すべて許可された要求
</ディレクトリ> </ VirtualHost>の
ステップ4:データディレクトリのウェブサイトSELinuxのセキュリティコンテキストを変更します。
データディレクトリとウェブサイトのファイルを変更する必要がSELinuxのセキュリティコンテキストです。
[ルート@ linuxprobe〜]#semanage fcontext -a -tのhttpd_sys_content_t /ホーム/ wwwrootに
[ルート@ linuxprobe〜]#semanage fcontext -a -tのhttpd_sys_content_t /ホーム/ wwwrootに/ 10
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10/*
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20/*
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30/*
立即恢复SELinux安全上下文:
[root@linuxprobe ~]# restorecon -Rv /home/wwwroot
第5步:分别访问192.168.10.10/20/30验证结果:
基于主机名
当服务器无法为每个网站都分配到独立IP地址时,可以试试让Apache服务程序自动识别来源主机名或域名然后跳转到指定的网站。
第1步:配置网卡IP地址与hosts文件。
hosts文件作用是定义IP地址与主机名的映射关系,即强制将某个主机名地址解析到指定的IP地址。
[root@linuxprobe ~]# vim /etc/hosts
//每行只能写一条,格式为IP地址+空格+主机名(域名)。
192.168.10.10 www.linuxprobe.com
192.168.10.10 bbs.linuxprobe.com
192.168.10.10 tech.linuxprobe.com
第2步:分别创建网站数据目录:
[root@linuxprobe ~]# mkdir -p /home/wwwroot/www
[root@linuxprobe ~]# mkdir -p /home/wwwroot/bbs
[root@linuxprobe ~]# mkdir -p /home/wwwroot/tech
分别在网站目录中写入不同的首页文件:
[root@linuxprobe ~]# echo "WWW.linuxprobe.com" > /home/wwwroot/www/index.html
[root@linuxprobe ~]# echo "BBS.linuxprobe.com" > /home/wwwroot/bbs/index.html
[root@linuxprobe ~]# echo "TECH.linuxprobe.com" > /home/wwwroot/tech/index.html
第3步:在配置文件中描述基于主机名称的虚拟主机。
编辑主配置文件(/etc/httpd/conf/httpd.conf),在主配置文件的末尾按下面格式定义虚拟主机信息:
<VirtualHost 192.168.10.10>
DocumentRoot "/home/wwwroot/www"
ServerName "www.linuxprobe.com"
<Directory "/home/wwwroot/www">
AllowOverride None
Require all granted
</directory>
</VirtualHost>
<VirtualHost 192.168.10.10>
DocumentRoot "/home/wwwroot/bbs"
ServerName "bbs.linuxprobe.com"
<Directory "/home/wwwroot/bbs">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.10.10>
DocumentRoot "/home/wwwroot/tech"
ServerName "tech.linuxprobe.com"
<Directory "/home/wwwroot/tech">
AllowOverride None
Require all granted
</directory>
</VirtualHost>
读者们可以直接复制上面的参数到主配置文件(/etc/httpd/conf/httpd.conf)的末尾然后重启apache网站服务程序。
因为在红帽RHCSA、RHCE或RHCA考试后都要重启您的实验机再执行判分脚本。
所以请读者在日常工作中也要记得将需要的服务加入到开机启动项中:”systemctl enable httpd“。
第4步:修改网站数据目录的SELinux安全上下文:
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www/*
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs/*
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech/*
让新的SELinux安全上下文立即生效:
[root@linuxprobe ~]# restorecon -Rv /home/wwwroot/
第5步:分别访问网站验证结果
基于端口号
我们可以让服务器开启多个服务端口后,然后让用户能够通过访问服务器的指定端口来找到想要的网站。
第1步:配置服务器的IP地址:
第2步:分别创建网站数据目录。
分别创建端口为6111,6222的网站数据目录:
[root@linuxprobe ~]# mkdir -p /home/wwwroot/6111
[root@linuxprobe ~]# mkdir -p /home/wwwroot/6222
分别在网站数据目录中写入不同内容的主页文件:
[root@linuxprobe ~]# echo "port:6111" > /home/wwwroot/6111/index.html
[root@linuxprobe ~]# echo "port:6222" > /home/wwwroot/6222/index.html
第3步:在配置文件中描述基于端口号的虚拟主机。
编辑主配置文件(/etc/httpd/conf/httpd.conf),找到约在42行的Listen 80,并在下面追加:
Listen 6111
Listen 6222
然后在主配置文件的末尾按下面格式定义虚拟主机信息:
<VirtualHost 192.168.10.10:6111>
DocumentRoot “/home/wwwroot/6111”
ServerName www.linuxprobe.com
<Directory “/home/wwwroot/6111”>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.10.10:6222>
DocumentRoot “/home/wwwroot/6222”
ServerName bbs.linuxprobe.com
<Directory “/home/wwwroot/6222”>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
读者们可以直接复制上面的参数到主配置文件(/etc/httpd/conf/httpd.conf)的末尾然后重启apache网站服务程序。
因为在红帽RHCSA、RHCE或RHCA考试后都要重启您的实验机再执行判分脚本。
所以请读者在日常工作中也要记得将需要的服务加入到开机启动项中:”systemctl enable httpd“。
什么!竟然报错了:
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
这是因为SELinux服务检测到6111与6222端口原本并不属于Apache服务端口,但现在却被以Apache的名义监听了.第4步:修改网站数据目录的SELinux安全上下文并允许端口监听。
修改网站数据目录的安全上下文:
[root@linuxprobe ~]# semanage fcontext -a -t httpd_user_content_t /home/wwwroot
[root@linuxprobe ~]# semanage fcontext -a -t httpd_user_content_t /home/wwwroot/6111
[root@linuxprobe ~]# semanage fcontext -a -t httpd_user_content_t /home/wwwroot/6111/*
[root@linuxprobe ~]# semanage fcontext -a -t httpd_user_content_t /home/wwwroot/6222
[root@linuxprobe ~]# semanage fcontext -a -t httpd_user_content_t /home/wwwroot/6222/*
让新的SElinux安全上下文立即生效:
[root@linuxprobe ~]# restorecon -Rv /home/wwwroot/
使用semanage命令搜索在SELinux系统中有关http服务的端口号:
[root@linuxprobe ~]# semanage port -l| grep http
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
默认包括80,81,443,488,8008,8009,8443,9000却没有咱们定义的端口号,那么添加进去就可以了:
[root@linuxprobe ~]# semanage port -a -t http_port_t -p tcp 6111
[root@linuxprobe ~]# semanage port -a -t http_port_t -p tcp 6222
再来看下SELinux的端口规则(已经添加成功了):
[root@linuxprobe ~]# semanage port -l| grep http
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 6222, 6111, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
再次尝试启动Apache网站服务程序就没有问题了:
[root@linuxprobe ~]# systemctl restart httpd
第5步:分别访问网站验证结果: