読者です 読者をやめる 読者になる 読者になる

パソ子をぺちぺちと

インフラ周りを勉強中の大学生の備忘録です。この子は従兄の猫ちゃん(♂)です。可愛いです。僕も柴犬飼いたいです。でも両親が許してくれません。

WEBサーバ立ち上げちゃうぞっ☆の巻

五月末のTOIECはただの塗り絵大会と成り果てました。

院試大丈夫なのか...

そして梅雨入りとなりましたね。

f:id:taichanosm:20160615174302j:plain

雨男ゆえ、雨には慣れっこですが、低気圧のせいでお膝が悲鳴を上げております('Д')

さて、今回はWEBサーバの構築です。

Apacheというサーバを用いてやっていきます。

ではでは早速

の、前に(;´・ω・)

6系の最新版、CentOS 6.8が5/25にリリースされたみたいですね。

yumのアップデートかけたら予想以上に時間かかったのでグーグル兄さんで調べてみたら...といったところです。はい。

そのため、バージョンがこのようになりました。

[taihei@pasoko ~]$ cat /etc/issue                                                            
CentOS release 6.8 (Final)
Kernel \r on an \m

[taihei@pasoko ~]$ uname -a                                                                  
Linux pasoko 2.6.32-573.26.1.el6.x86_64 #1 SMP Wed May 4 00:57:44 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

ほいじゃ、気を取り直して٩( 'ω' )وレッツゴー

インストール

sudo su -
yum install httpd

はい、インストールはこれだけです。

正直簡単です。

ここから各種設定を行っていきます。

基本設定

  • 下記ファイル編集
#vi /etc/httpd/conf/httpd.conf

-#ServerName www.example.com:80
+ServerName pasoko.jp:80

#ErrorDocument 404 /missing.html
+ErrorDocument 404 "404 File Not Found"

-#NameVirtualHost *:80
+NameVirtualHost *:80

<Directory "/var/www/html">
-    Options Indexes FollowSymLinks
+    Options -Indexes FollowSymLinks
</Directory>

サーバステータスを有効化

  • 下記ファイル編集
#vi /etc/httpd/conf/httpd.conf

-#<Location /server-status>
-#    SetHandler server-status
-#    Order deny,allow
-#    Deny from all
-#    Allow from .example.com
-#</Location>
+<Location /server-status>
+    SetHandler server-status
+    Order deny,allow
+    Deny from all
+    Allow from 127.0.0.1
+</Location>

ここまでやれば一通りは設定は終了です('ω')ノ

ここからは、いらないものを消していきます。

攻撃者に付け入るスキを与えちゃいますからねー

来客時と同じです。

ゴミは捨てて、余計な物は見えないように押し入れへ...

あ、うちだけか(´・ω・`)

不要フォルダ削除

  • 下記ファイル編集
#vi /etc/httpd/conf/httpd.conf

-ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
+#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
-<Directory "/var/www/cgi-bin">
- :
-</Directory>
+#<Directory "/var/www/cgi-bin">
+# ......
+#</Directory>

-Alias /icons/ "/var/www/icons/"
-<Directory "/var/www/icons">
- :
-</Directory>
+#Alias /icons/ "/var/www/icons/"
+#<Directory "/var/www/icons">
+# :
+#</Directory>

-Alias /error/ "/var/www/error/"
+#Alias /error/ "/var/www/error/"

不要設定

#vi /etc/httpd/conf/httpd.conf

AddIconByEncoding
AddIconByType
AddIcon
DefaultIcon
  • 不要ファイル/フォルダ削除
rm -f /etc/httpd/conf.d/README
rm -fr /var/www/cgi-bin
rm -fr /var/www/error
rm -fr /var/www/icons

セキュリティ設定

  • 下記ファイル編集
# 設定
sed -i "s@ServerTokens OS@ServerTokens ProductOnly@" /etc/httpd/conf/httpd.conf
sed -i "s@ServerSignature On@ServerSignature Off@" /etc/httpd/conf/httpd.conf
echo "TraceEnable Off" >> /etc/httpd/conf/httpd.conf

# 確認
cat /etc/httpd/conf/httpd.conf|grep -e ServerTokens -e ServerSignature -e TraceEnable

ServerTokens ProductOnly
ServerSignature Off
TraceEnable Off
  • 下記ファイル編集
# vi /etc/httpd/conf.d/welcome.conf
-    ErrorDocument 403 /error/noindex.html
+    ErrorDocument 403 "403 Forbidden"

というわけで、これでやることは完了です。

が、せっかくサーバを立てたので何かhtmlファイルを設置してみましょー

配信フォルダ作成

  • フォルダ作成

基本的には/var/www下のものが参照されますので、そこにフォルダを作成しindex.htmlを配置します。

mkdir /var/www/pasoko
chown taihei:taihei /var/www/pasoko

echo "test." > /var/www/pasoko/index.html
  • 配信設定例

次に、このファイルに関しての設定です。

apache自体の設定ファイルは/etc/httpd/conf/httpd.confですが、/etc/httpd/conf.d/下に設置することで個々に設定できます。

#vi /etc/httpd/conf.d/pasoko.conf

<VirtualHost *:80>
  ServerName pasoko.jp
  DocumentRoot /var/www/pasoko
</VirtualHost>

とりあえず今回はこれくらいで十分かと思います。

ファイアウォールの停止

CentOS 6では、iptablesip6tablesというファイアウォールがあるんですが、今のままではアクセスが遮断されてしまうので一旦止めます。

まぁ、これを本番サーバでやったら確実に⊂ミ⊃^ω^ )⊃ アウアウ!! ですのでお気を付けを

これの設定は後々...

/etc/rc.d/init.d/iptables stop                                              
/etc/rc.d/init.d/ip6tables stop

あとは起動するだけ(*‘∀‘)

WEBサーバ起動

  • 設定ファイルが文法的に異常はないかチェック
apachectl configtest                                    
                 
Syntax OK
  • WEBサーバ起動
  /etc/rc.d/init.d/httpd start
  chkconfig httpd on

また、設定ファイルをいじった後は必ず再起動してくださいねー

さて、これでCentOS側の作業は終わりです。

次はPC側の操作になります。

hosts偽装してホスト名とIPアドレスと関連付けます。

※あくまで、こちらはwindowsでのやり方です。

  1. メモ帳を管理者権限で開く

  2. 開くよりC:\Windows\System32\drivers\etc\hostsを開く

    hostsファイルは形式をすべてのファイルにしないと表れてくれません

  3. 下のようにIPアドレスとホスト名を関連付けて偽装

f:id:taichanosm:20160615170914p:plain

こうすればブラウザに直接打ち込むことで先程のindex.htmlが表示されるというわけです。

f:id:taichanosm:20160615172226p:plain

testってやっただけだからくっそつまらない画面だなこれ(;´・ω・)

あ、シークレットモードなのはなんとなくです。普通の状態でも大丈夫ですよ。

以上でWEBサーバの立ち上げ及び公開の仕方の纏めとさせていただきますー(´ω`)

ではまた(=゚ω゚)ノ