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

パソ子をぺちぺちと

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

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

centos6 apache

五月末の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サーバの立ち上げ及び公開の仕方の纏めとさせていただきますー(´ω`)

ではまた(=゚ω゚)ノ

NTPを導入しちゃうぞ☆の巻

centos6 Linux ntp

今回から、ついにミドルウェアを導入していきます。

ミドルウェア...詳しいことはグーグル先生にお伺いするとして(;´・ω・)

www.weblio.jp

まぁ、アプリの土台のようなものですはい

いや、社長からちゃんと教わってるし身振り手振りでは説明出来るんですが文章だと難しくてぇー(谷;)

記念すべき第一回目はNTP(Network Time Protocol)です。

時刻を高精度で同期するためのプロトコルになります。 ちなみにマシン内の内部時計をRTC(Real Time Clock)といいます。

プロトコル...?うわあああああ(・∀・)

はい、ググりました。

e-words.jp

...では、本題に行きましょうかね(;・∀・)

使うのは毎度おなじみ、CentOS6.7 64bitです。

準備

今回nslookupコマンドを使うのですが、このままでは使用できないのでインストールします。

[root@pasoko ~]# yum install bind-utils

インストール

  • NTPのインストール
[root@pasoko ~]# yum install ntp

OSを起動したときに、NTPも一緒に起動するようにします。

[root@pasoko ~]# chkconfig ntpd on

はい、これだけ

簡単でしょ(*‘∀‘)

あとは設定していきますよー

使用方法

NICT(情報通信研究機構)に時刻を問い合わせて同期させます。

まずはNICTIPアドレスを取得

[root@pasoko ~]# nslookup ntp.nict.jp | grep Address | sed -e "1d" | awk '{print "server" $2}' | sort

server133.243.238.163
server133.243.238.164
server133.243.238.243
server133.243.238.244
  • 接続先設定

さっき取得したIPを追加していきます。

[root@pasoko ~]# vi /etc/ntp.conf

+server133.243.238.163
+server133.243.238.164
+server133.243.238.243
+server133.243.238.244
  • ログ追加
[root@pasoko ~]# vi /etc/ntp.conf
                                                                                   
+logfile /var/log/ntpd.log
+logconfig = all

これはバージョンにもよると思うんですが、NTPのmonlist機能の脆弱性を悪用したDDos攻撃があるみたいです。

ntpd の monlist 機能を使った DDoS 攻撃に関する注意喚起

これを防ぐために以下を追加です。

[root@pasoko ~]# vi /etc/ntp.conf

+disable monitor

長かった設定もとりあえずはここまで

お次は実際にやってみるぞっと(´ω`)

試験

  • 起動
[root@pasoko ~]# /etc/rc.d/init.d/ntpd start

OS起動時にNTPも自動で起動してくれるように設定します。

[root@pasoko ~]# chkconfig ntpd on
  • 疎通確認
[root@pasoko ~]$ /usr/sbin/ntpq -p |grep "\*ntp-[a-z|1-9]*.nict.go" |wc -l  
1

1であれば疎通出来ていて、0であれば出来ていないということです。

ッシャァ!!疎通出来てるゥー('ω')

  • 詳細情報
[root@pasoko ~]$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+ntp-b3.nict.go. .NICT.           1 u   73  128  377    9.586   -1.777   0.359
*ntp-a2.nict.go. .NICT.           1 u   83  128  377    7.947   -1.484   0.649
+ntp-a3.nict.go. .NICT.           1 u   78  128  377    9.255   -2.437   1.220
-ntp-b2.nict.go. .NICT.           1 u   88  128  377   10.498   -1.315   0.899
[taihei@pasoko ~]$ 

こんな風に先頭に+や*がついてたらおっけーです。

ではでは、今回はここまで

次回はwebサーバを入れまーす(≧▽≦)イェーイ

...それと、この間ご指摘いただいたことも調べないとね

せっかくの機会ですので、勉強します('◇')ゞ

CentOSをぺちぺちと(ユーザ作成編)

vagrant Linux centos6

今回はroot権限を持ったユーザを作っていきます(=゚ω゚)ノ

root権限を持つと何でも出来てしまうので、パスワードでしっかり管理されたユーザにのみroot権限が与えられるようにします。

今回使うのは、CentOS6.7 64bitです。 以降もこちらを使っていきます。

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

[taihei@pasoko ~]$ uname -a
Linux pasoko 2.6.32-573.22.1.el6.x86_64 #1 SMP Wed Mar 23 03:35:39 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

概要

おおまかな手順としましては、

  1. 権限を与えたいユーザを作る

  2. wheelグループに所属するユーザにしかsudo権限を得られないようにする

  3. sudoのログを保存するように設定

  4. ログローテーション設定

ユーザ追加

まずは、権限を与えるtaiheiユーザの追加し、そのパスワード設定します。

[root@pasoko ~]# adduser taihei
[root@pasoko ~]# passwd taihei
ユーザー taihei のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: 全ての認証トークンが正しく更新できました

これで、ユーザ自体は作成出来ました。

wheelグループでsudo制限

# taiheiユーザをwheelグループへ
[root@pasoko ~]# usermod -aG wheel taihei

# 設定ファイルを弄りますが念のためバックアップを、ね。(;´・ω・)
[root@pasoko ~]# cp /etc/pam.d/su /etc/pam.d/su.org

# 必要な個所をアンコメントしていきます。
[root@pasoko ~]# vi +6 /etc/pam.d/su
-#auth           required        pam_wheel.so use_uid
+ auth           required        pam_wheel.so use_uid

[root@pasoko ~]# visudo
## Allows people in group wheel to run all commands
-# %wheel        ALL=(ALL)       ALL
+  %wheel        ALL=(ALL)       ALL

これで、taiheiユーザにroot権限が与えられました。

次は、sudoで何をしたかのログを保存するように設定していきます('ω')ノ

sudoログ保存

[root@pasoko ~]# echo "" >> /etc/rsyslog.conf
[root@pasoko ~]# echo "# syslog facility" >> /etc/rsyslog.conf
[root@pasoko ~]# echo "Defaults syslog=local3" >> /etc/rsyslog.conf

# 今度は、設定ファイルに追加していきます。
[root@pasoko ~]# vi +62 /etc/rsyslog.conf

    :
    :
# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log
+# sudo log
+local3.*                                               /var/log/sudo
    :
    :


[root@pasoko ~]# touch /var/log/sudo
[root@pasoko ~]# chmod 600 /var/log/sudo

# 再起動して設定を反映させます。
[root@pasoko ~]# service rsyslog restart
システムロガーを停止中:                                    [  OK  ]
システムロガーを起動中:                                    [  OK  ]

ログローテーション設定

# 先程と同じく、追加を
[root@pasoko ~]# vi +6 /etc/logrotate.d/syslog

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
+/var/log/sudo
    :
    :

これで設定はおっけーです。

本当に大丈夫か試してみます。

Poderosaから、こうして入るっと...

f:id:taichanosm:20160515013208p:plain

ほいで、ここから

[taihei@pasoko ~]$ sudo su -

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for taihei:
[root@pasoko ~]#

やったーできたー('ω')

...と喜べたのも束の間、 vagrantユーザからは

[taihei@pasoko ~]$ su - vagrant                                                              
パスワード:
[vagrant@pasoko ~]$ sudo su -                                                                
[root@pasoko ~]#

あれーっ!?

vagrantユーザってパスもvagrantだよなぁ

簡単にsudoになれちゃうじゃん...(´・ω・`)

また課題が増えました。調べなきゃか...

とりあえず、今回はここまで

ちょっとへらへらした成分が前回と比べて少な目だったかな...?

ま、いいじゃないですか(笑)

ありがとうございました(^^)/バイバーイ

急に出ちゃったやる気(てへぺろ

雑記 セキュリティ

NHKでこんな番組を見てしまい、やる気がふっと沸いてきちゃいました(笑)

www.nhk.or.jp

実は、攻殻機動隊デジモンからこの分野に興味を持ちました。

良く言えば少年の心を忘れない、悪く言えばまだまだ中二病に罹患なうなワタクシ

僕も将来はこんなことに携われる職業に就きたいなぁ...

いや、就いてみせますとも( ・`д・´)

...普段からやる気出せ?

まぁ、そうなんですけどもねテヘッ('◇')ゞ

あぁっ

TOEICや院試の勉強しないと...(;´・ω・)

サークルのホムペを作り直してみた件

html css js 雑記

ご無沙汰しております。

今まで何やってたかと言いますと、僕が所属している和太鼓サークルのホームページを作り直しておりました。

それがこちら

TUS_樹

といっても大学でサークルのアカウントを取得して、指定されたフォルダにHTML,CSS,JSの各ファイルを置くだけです。

DBは使えず、よってruby on railswordpressも無理でした。

せっかくインターンで環境構築のやり方教わったのに実践出来ず...無念(´・ω・`)

経緯と言いますと、最近はTwitterFacebookで広報っぽいことやってたんですが、演奏会に来て下さるお客さんから、今後の演奏予定を教えてほしいなどといったご要望があったので改めて作り直してみることにした次第。

SNSだとその性質上、TLはすぐ流れてしまいますし、アカウント作ってないと閲覧も難しいですしね。

で、4月中にはリリースしようってんで、4月最終2週は寝て起きてパソ子開いて寝て...の毎日でした。

アカウント取得に時間がかかったので、実際には5/2リリースとなりましたが、完成させられてよかった( *´艸`)

まぁ、僕がやったことといったら、後輩くんが考えてくれたデザインに合わせてHTML組んだだけなんですけどね(´◉◞౪◟◉)

コンセプトは誰にでも編集しやすく

iframeで従来のTwitterFacebookを埋め込んだり、演奏予定にはGoogleカレンダーなど出来るだけ連携出来るものは連携させてみました。

多少はHTMLやCSSの知識が必要なときもあるので、そこは後継の後輩ちゃんに教えないとといった感じですが、簡単に出来るようにはしたつもりです。

あとは、後輩たちだけでも更新作業が出来るように標準化する作業が残ってます。

頑張ります。

コードの書き方に関してはまだまだ勉強しなきゃいけないですね。リリース直前にbrタグはやめるべきなこと知ったしまだ直してねぇし('Д')

あ、後輩ちゃんに全部投げるか

勉強したいって言ってたし教材代わりにでもね('ω')ハハッ

ということで、フロント系のことやるのはとても楽しいんですが、集中しすぎて本当に寝食忘れて作業をし、そのうち精神病んで人使いが荒くなるので仕事には出来ないなと思った次第です。

ごめんね、後輩たち(*‘∀‘)

ご報告

雑記

あ、いやそんな大事じゃないです。

もちろん生まれてこの方、彼女もいません。安心してください。

あ~...彼女が出来たら調子乗ってここでも報告しちゃうかもだな(´・ω・`)

ただでさえ報告しなきゃいけない人多いし

で、今回の報告というのはですね

まずはインターン先の社長から許可が下りたこと!!

そもそも僕が勝手にやり始めたものなのでセキュリティ関連とかでね、色々怒られやしないかなぁなんて思ってたんですが

月曜日の飲み会で言ってみたら見事社長の許可がおりましたー

むしろやれって

これからは社名やリリースしたプロジェクト名をバンバン出しちゃって良いそうです。

Hoooooo!!!! ✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌

あ、でもどう言っていいのやら分からないや(´・ω・`)ドウシヨ

...えっと、僕、サイバーウェーブってとこでお世話になってます。

エージェントじゃないです。ウェーブです。

Ruby on Railで色んなプロジェクトに携わっています。

僕はその為の環境を構築、あとは自社環境のインフラ整備をやらせてもらってます。

今もインターン生募集中みたいなんで、興味あったら是非ともうちへどうぞー('ω')ノ

最初っから表画面をバンバンやる人もいますが、ここでゼロから学ぶ人もいます。

自分はそのクチ

そして次、

研究室のサーバ管理任されましたー

いえーい(≧▽≦)

土曜日に歓迎会があったんですが、そのときの自己紹介でインターンCentOSサーバ立てていじってますって言ったら、教授からCentOS7でwebサーバ立ち上げるとのことで教えてくれと言われました。

正直、CentOSは6系をひたすらいじっているので7系はあまり慣れてないのですが、勉強になるんでやらせてもらうことにしました。

いずれこっちにも纏めようかなと

将来行きたい分野である、暗号系の研究室に入れてただけでも嬉しいのに、サーバいじらせてもらえるなんてね。

こっちのサーバでは思いっきり遊びつくそうと思いますっ('◇')ゞ

あ、言っちゃだめか

じ、じゃあこれは聞かなかったことに(;´・ω・)

ではまた(^_-)-☆

遂にCentOSをいじっちゃうぞぉの巻

centos6 Linux

やっとゼミが終わりました。

前の人がフルボッコだったからかな、僕には質問が一切飛んで来ませんでした。

命拾いしましたが、これは良いんだか悪いんだか(;´・ω・)

ということで、気分転換にせんとくんをいじります。

前回は立ち上げただけなので今回はその初期設定を行ってまいります。

おおまかには以下の通り

レッツゴー٩( 'ω' )و

CentOS

まず、今回いじるCentOSのバージョン等をご紹介

この記事の後に打ったので今はpasokoとか気にしないで下さい。

[vagrant@pasoko ~]$ cat /etc/issue

CentOS release 6.7 (Final)

Kernel \r on an \m

[vagrant@pasoko ~]$ uname -a

Linux pasoko 2.6.32-573.22.1.el6.x86_64 #1 SMP Wed Mar 23 03:35:39 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

yumのアップデート

yumというのは、パッケージをインストールしたりするシステムです。

パッケージ...とか詳しいことは後々

で、このyumとやらを最新の状態にします。

root権限でないといけないのでsudo su -でrootアカウントに入ってから作業します。

まぁ、単にコマンドの前にsudoを付けるだけでも大丈夫╭( ・ㅂ・)و̑ グッ

[vagrant@localhost ~]$ sudo su -
  
[root@localhost ~]# yum upgrade

本当に更新するか聞かれるので勿論yesで(yと入力すればおk)

以降、yumコマンドを用いるときはこれを省略させて頂きます。

また、yum -y ~とオプションを付ければ聞かれることなく進みます。

ホスト名の設定

ホスト名...イケメンのお兄さん達じゃなくて、このCentOSサーバの名前ですね。

ブログタイトルの通り、僕は自分のPCのことパソ子って呼んでるんで、このパソ子ちゃんって名前にしていきます(=゚ω゚)ノ

[root@localhost ~]# vi /etc/hosts
  
127.0.0.1   pasoko.jp  localhostdomain localhost
  • ネットワーク設定
[root@localhost ~]# vi /etc/sysconfig/network
  
HOSTNAME=pasoko

ネットワークを再起動して設定を適用していきます。

今後も色々なミドルウェアを導入していくんですが、ほとんどの場合で設定ファイルを変更した後は再起動で設定の適用を行っていきます。

[root@vagrant-centos65 ~]# /etc/rc.d/init.d/network restart
  • ホスト名の設定
[root@localhost ~]# hostname pasoko

そして再ログインすると、あら不思議

[vagrant@pasoko ~]$

@の後ろの名前がパソ子ちゃんに変わりましたー(((o(*゚▽゚*)o)))

日本語化

読んで字のごとく、日本語表記にしてきます。

英語ダメな僕にはねぇ...あぁ...TOEIC受けたくねぇ...(´・ω・`)

[root@pasoko ~]# vi /etc/sysconfig/i18n
  
LANG="ja_JP.UTF-8"

一旦ログインし直して出来たか確認してみます。

[vagrant@pasoko ~]$ echo $LANG
  
ja_JP.UTF-8

わーい日本語になったー(*‘∀‘)

タイムゾーンの設定

あ、今って何年何月何日何時何分だろう?('Д')ってときに便利なのがdateコマンド

で、打ってみると

[vagrant@pasoko ~]$ date
  
2016年  4月 21日 木曜日 08:25:25 UTC

あれ、、、何か違くない?(。´・ω・)

よく見るとこれUTCっすね。

協定世界時じゃないですかーヤダー

日本人なんだし日本時間使いたいよー_(⌒ノシ 'ω')ノシ

ということでこれを変えます。

[root@pasoko ~]# cp /usr/share/zoneinfo/Japan /etc/localtime
  
cp: overwrite `/etc/localtime'?

確認...

[vagrant@pasoko ~]$ date
  
2016年  4月 21日 木曜日 17:26:49 JST

っしゃー日本時間になったぞー (´っ・ω・)っ

ということで今回は以上となります。

次回はsudo権限を持ったユーザを作っていくよー

ありがとうございましたー( ´Д`)ノ~バイバーイ