Webアプリケーションスタックのセキュリティの向上(LAMP仮想化、ステップ5/6)

ネットワークファイルシステム(NFS)の静的ファイルを操作するためのLighttpd Webサーバーの構成


仮想マシンでのLAMP Webスタックのセットアップに関する一連の記事の5番目のレッスンは、静的ファイルの提供に専念します。

lighttpd Webサーバーは、HTTPまたはHTTPSプロトコルを介して静的コンテンツへのアクセスを提供します。 この例では、Lighttpd Webサーバーをインストールして使用し DocumentRootをvm05にバインドします / var / www / staticに マウントされた/ exports / staticをマウントし ます 。 以下のすべてのコマンドは、IPアドレス192.168.1.10の vm01でのみ入力する必要があります。

NFSクライアントを構成する


yumマネージャーを使用して、NFSクライアントパッケージをインストールします。
# yum groupinstall "Network file system client" 

または少し簡単に:
 # yum install nfs-utils nfs4-acl-tools 

NFSv4クライアントサービスを有効にします。
 # chkconfig rpcbind on # chkconfig rpcidmapd on # chkconfig nfslock on 


/etc/idmapd.conf nfsクライアント設定


NFSクライアント構成ファイルを編集します
 # vi /etc/idmapd.conf 

NFSサーバーのドメイン名に従ってパラメーターが設定されていることを確認します。
 Domain = cyberciti.biz [Mapping] Nobody-User = nobody Nobody-Group = nobody 

ファイルを保存して閉じます。 NFSクライアントのすべてのサービスを開始しましょう。
 # /sbin/service rpcbind start # /sbin/service rpcidmapd start # /sbin/service nfslock start 


ユーザーアカウントを作成する


Lighttpd Webサーバーは、Apacheユーザーの下からのみ起動します。 Linuxユーザーアカウント追加するには、次のコマンドを入力します。
 # /usr/sbin/groupadd -g 48 apache # /usr/sbin/useradd -s /sbin/nologin -g 48 -u 48 -M -d /var/www apache # /usr/bin/passwd -l apache 


ファイルシステムのマウント


次のコマンドを入力してください。
 # showmout -e vm05 

出力例:
 Export list for v.txvip1: /exports/html     192.168.1.10,192.168.1.11 /exports/static   192.168.1.10,192.168.1.11 

nfsファイルシステムの/ exports / staticフォルダーを/ var / www / staticにマウントします
 # mkdir /var/www/static # /bin/mount -t nfs4 -orsize=32768,wsize=32768,intr,hard,proto=tcp,sync vm05:/exports/static /var/www/static/ 

ファイル/ etc / fstabを編集します。
 # vi /etc/fstab 


/ etc / fstabを介したファイルシステムのマウント


/ etc / fstabを編集:
 # vi /etc/fstab 

次の行を追加します。
 vm05:/exports/static /var/www/static nfs4 orsize=32768,wsize=32768,intr,hard,proto=tcp,sync 

ファイルを保存して閉じます。 netfsサービスが有効になっていることを確認します。
 # chkconfig netfs on 

最後に、Apacheユーザーにファイルが表示されることを確認します
 # su - apache $ ls /var/www/static/ $ exit # 

セキュリティポリシーにより、rootユーザーまたは他のユーザーには/ var / www / staticが表示されないことに注意してください。 これは、DocumentRootにアクセスできる唯一のlighttpdユーザーです。

Lighttpd Webサーバーをインストールする


EPELリポジトリ接続し 、Lighttpd Webサーバーをインストールします
 # yum install lighttpd 

コンソール出力の例:
 Loaded plugins: rhnplugin Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package lighttpd.x86_64 0:1.4.28-3.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ========================================================================== Package          Arch           Version               Repository    Size ========================================================================== Installing: lighttpd         x86_64         1.4.28-3.el6          epel         328 k Transaction Summary ========================================================================== Install       1 Package(s) Total download size: 328 k Installed size: 878 k Is this ok [y/N]: y Downloading Packages: lighttpd-1.4.28-3.el6.x86_64.rpm                   | 328 kB     00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction  Installing : lighttpd-1.4.28-3.el6.x86_64                           1/1 Installed:  lighttpd.x86_64 0:1.4.28-3.el6 Complete! 


Lighttpd Webサーバーのセットアップ


以下のコマンドを入力して、 / etc / lighttpd / lighttpd.confを編集します。
 # mv /etc/lighttpd/lighttpd.{conf,default.bak}<br /> # vi /etc/lighttpd/lighttpd.conf 

次の設定を入力します。
 ##    http://static.cyberciti.biz server.modules              = (                               "mod_expire",                               "mod_access",                               "mod_accesslog",                               "mod_setenv",                               "mod_extforward" ) server.errorlog            = "/var/log/lighttpd/error.log" accesslog.filename         = "/var/log/lighttpd/access.log" index-file.names            = ( "index.html", "index.htm", "default.htm" ) server.tag                 = "lighttpd" server.network-backend = "linux-sendfile" ##     lan- ## server.port = "80" server.bind = "192.168.1.10" server.document-root = "/var/www/static" server.pid-file = "/var/run/lighttpd.pid" server.username = "apache" server.groupname = "apache" ##     30     ## $HTTP["url"] =~ "^/" {   expire.url = ( "" => "access 30 days" ) } ###   ip-  ### ### 192.168.1.{1,2} == nginx resverse proxy server ## extforward.headers = ("X-Forwarded-For") extforward.forwarder = (      "192.168.1.1" => "trust",      "192.168.1.2" => "trust" ) ## ## mimetype mapping ## include "conf.d/mime.conf" 

ファイルを保存して閉じます

Webサーバーにアクセスするためのiptablesの構成


/ etc / sysconfig / Iptablesファイルを編集して、次のパラメーターを追加します(INPUTチェーンの最終LOGおよびDROP設定の前に設定されていることを確認してください)。
 ##       ## -A INPUT -m state --state NEW -p tcp -s 192.168.1.0/24 --dport 80 -j ACCEPT 

保存して閉じます。 iptablesを再起動します。
 # /sbin/service iptables restart # /sbin/iptables -L -v -n 


Lighttpdを有効にする

次のコマンドでLighttpd Webサーバーを起動します
 # chkconfig lighttpd on # service lighttpd start 

ブラウザーを切断してサーバーに侵入します。
 http://192.168.1.10/ 


Source: https://habr.com/ru/post/J148490/


All Articles