まぁ、つまらないものですが

専門学生の気ままな技術ブログ、正しいかもわからんけど日々のログを残してゆきます。Twitter → https://twitter.com/godan09

学校のサーバーで公開サーバーを立てるときに気をつけること

さて、いつもどおりの遅刻の私です。
この記事は「横浜医療情報専門学校アドベントカレンダー2017 12/8」の予定だった記事です。

adventar.org

今学校サーバーは私が管理してるんですが、引き継ぎとか、今後誰かかが開発する時に気をつけてほしいところを纏めておこうと思います。
ただ初学者の若輩ものなので不備等はあるかもしれません。見つけましたらお教えください…

サーバー初期設定

サーバーを初期設定する際にすることを纏めておきます。

rootアカウント

Linux上でrootアカウントは「システム管理の最高権限」を示します。ユーザー情報や、ログ、/etc以下の設定ファイルも自由に変更することができます。
そのため、常にrootで操作をすることは危険を伴います。また、不正にアクセスされた際の被害も大きくなります。
なので作業アカウントを作成して、そちらで普段は操作しましょう。

ユーザー作成

adduserコマンドでユーザーを追加してパスワードを設定しますます。

$ adduser [user name]
$ passwd [user name]

ユーザーにsudo権限があるwheelグループに追加します。

$ gpasswd -a [user name] wheel

出来たらアカウントを変更しておきましょう。

$ su [user name]

SSH

入ってる前提で進めます

公開鍵を生成して、パスワードログインを無効にする

パスワード認証は破られる可能性もあるので公開鍵認証にしましょう。 まずは鍵を生成しましょう

$ ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/matsushitashousatoru/.ssh/id_rsa): ./bolgTest   <- ファイル名を指定
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ./bolgTest.
Your public key has been saved in ./bolgTest.pub.
The key fingerprint is:
SHA256:FBbmyWaxLg9KZOtD8jSwX5wE5cD7WzWRmDMEwb5g9XU godan@matsushitashousatorunoMacBook-Pro.local
The key's randomart image is:
+---[RSA 2048]----+
|   .oo++B+ .     |
|    .+o===+ E    |
|  . o+o.O+ o     |
|   =++.*. o      |
|  o.*o*.S. .     |
|   O +o+.        |
|    *  o.        |
|     ..          |
|                 |
+----[SHA256]-----+

鍵をauthorized_keysにリネームして権限を書き換えておきましょう。

$ mv bolgTest.pub authorized_keys
$ chmod 600 authorized_keys

秘密鍵はcatなどして中身をローカルに保存しておきましょう

認証を公開鍵にする

sshの設定を変更しましょうファイルは/etc/ssh/sshd_configです。 ファイル内に以下のコメントアウトがあると思いますので、#を消して有効化しましょう。内容でしたら追加してください。

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys
PasswordAuthentication no

可能ならrootログインも禁止にしておきましょう

ポート周り

sshなどのデフォルトポートは変更しておきましょう。 古典的な手法ですが有効です。
またftpなど暗号化されないものは使用せず閉じておきましょう。 ポートスキャンをして変なところか空いてないか確認すると良いです。

ログ周り

Apacheアクセスログや、システムログは一定期間保存できるようにしておきましょう。また余分にファイルを溜め込まないためにも余裕がある時に設定を見直すといいです。

モニタリング

Mackerelの学校アカウントがあるのでそちらで死活監視など行いましょう。

Apache設定

デフォルトコンテンツ

Apacheなどには最初からページが入ってるときがありますが、OS情報やバージョン情報などが乗っているため特有の脆弱性を突かれてしまうかのせいもあります。消しておきましょう。
PHPだとPHP Infoやヘッダー情報を消しておきましょう

# /etc/php.ini

# headerに情報をださない
expose_php = Off

ディレクトリリスニング

ディレクトリリスニングはサーバーのディレクトリをブラウザ上で見えるようにする機能です。ただし、サーバーの中身を不用意に晒すのは個人情報の流出などの問題が有りますのでしっかり無効にしておきましょう。
方法としてhttpd.confか.htaccessで制御出来ます。

#/etc/httpd/conf/httpd.conf
#修正前
Options Indexes FollowSymLinks

修正後
Options FollowSymLinks

https対応

最近は暗号化されたHTTPSのほうがデフォルトになっています。またiosアプリなどもhttpsを義務化し始めています。またLineBotなどもHTTPS通信必須ですので対応しましょう。
Let's Encryptをつかえば費用かからず導入出来ます。

さいごに

またどっかで XSSとかSQLインジェクションについて書いておきます…
医療情報を扱う以上セキュリティは切っても切り離せない問題ですが、本校だと実際にサーバー運用する機が少なくココらへんの実際の設定をすることも無いと思います。ただせっかくYMIC PGに所属しているならサーバーでこのようなことを遊ぶ片手間に学んでも良いんじゃないかなぁと思います。ぜひサーバー使い倒してください。
ほんとセキュリティ大事。

もし不備やこうしたらいいよなど情報が有りましたら教えていただけると幸いです。

参考情報

ConohaにVPSを設置して、SSHログイン、ポート番号変更、rootログイン禁止までを30分で!
攻撃を受ける前に! Apache インストール後に必要な8つの変更点

横浜医療情報専門学校AdventCalendar2017 - 学外活動のススメ

さて今年もAdventCalendarの季節が始まりましたね。
つまるとこ12月、今年もあと一ヶ月を切ったわけです。今年も早いものだなーと思うと同時に学生という特権階級の終わりを感じたりしています。(まぁ学校言ってないわけだからあんまり実感無いけど)

さて、いつも通りの挨拶で恐縮ですが、本稿は「横浜医療情報専門学校Advent Calendar 2017」の1日目と相成っております。

adventar.org

「AdventCalendarってなんぞや」という方は下の記事を見ていただけると幸いです。

godan09.hatenablog.com

前置きが長くなりましたけど学外の活動に関してゆるくまとめておこうかと思います。

続きを読む

LINE Developer Day2017レポート

今年も2017をやるということで案内が来てたので申し込んで行ってきました。
まぁ午後途中で帰ったんですけどね。 その備忘録がてらのメモです。

LINE Developer Dayとは

linedevday.linecorp.com

「LINE DEVELOPER DAY」は、コミュニケーションアプリ「LINE」をはじめ、LINEの様々なサービスにおける技術領域でのチャレンジや、社内の開発体制などをご紹介する、エンジニア向け技術カンファレンスです。クラウドAIプラットフォーム「Clova」に関連した技術についても発表させていただきます。

最近企業単独カンファレンス(正しい表現がわからない)が増えてきましたが、その中のLINE版ということで、アプリからその裏側、そして今後のLINEを聞けるイベントになっています。

続きを読む

YMICハンズオン事前準備資料(TeraTerm, Atom, DockerToolbox インストール方法)

アイドルマスター 輝きの向こう側へを見ながらFGO配布☆4鯖をどうしようか悩んでるマスターの五段です。 誤字脱字等ある箇所は映画の泣き所見てるところだと思うので心の目でカバーしてください。

はじめに

本記事は横浜医療情報専門学校の生徒向けに作成した事前準備資料です。本資料は以下の内容です。

  • TeraTermSSHクライアント)のインストール
  • Atom(エディッタ)のインストール
  • Docker ToolBoxのインストール
  • git クライアントのインストール

なおこの内容は更新を適用したWindows10 64bit版で2017/09/24に作成した資料です。

続きを読む

Dockerでテキストマイニング用にMecab+Cabocha+Flaskの環境用DockerFileを作った

AdventCalendar以降まともに書いてなかったので生存報告も兼ねて書きます。
最近インターン先でDockerやったりとかPythonやったりなどしてますが、その中で日本語のテキストマイニングをおこなってました。その際テキストマイニングと簡易APIを用いれるDockerコンテナとしてタイトル通りのイメージを作成したので忘備録がてらにここに書いておきます。

続きを読む

MacでAndroidエミュレーターが動かなかったときにやったこと

「MacBookProでAndroid開発頑張るぞい」って行った矢先エミュレーターが動かなくて出鼻をくじかれた

続きを読む

横浜医療情報専門学校 AdventCalendar2016総括または、2016年の自分と来年の自分の話について

occulticNine最終話を観終わってからこの記事を書き始めました。あの作品は良かった。個人的には今期2位です(一位はステラのまほう
長くなるかつポエムな駄文ですがお目通ししていただけると幸いです。

この記事は言わずもがなとは思いますが「横浜医療情報専門学校AdventCalendar2016」最終日の話と相成っております。 www.adventar.org

部長は24日に書いてくれてるはずですが25日午前0時現在まだないのを見ると最後の記事は部長の記事になりそうですね。「やーいやーい遅刻してんのー」(盛大なブーメラン)

続きを読む