Hirotacas Log

現在、合同会社フィヨルド様にてリモートインターンをやっています。

Linux(Debian)

VirtualBoxDebian を インストールする。

Macのバージョン macOS Sierra 10.12.4 VirtualBox バージョン 5.1.18 r114002 (Qt5.6.2)
debian-8.7.1-amd64-netinst

  1. VirtualBoxDebianの仮想環境を構築する。

    • 名前: Debian
    • モリーのサイズ: 1024MB
    • 仮想ハードディスク容量: 8GB
    • ハードディスクのファイルタイプ: VDI (他の仮想ソフトで使用しない場合)
    • 物理ハードディスクにあるストレージのサイズ: 可変サイズ
  2. Debianをインストールする。

    • 言語の選択: 日本語
    • 場所の選択: 日本
    • 場所の選択: 日本
    • キーボードの選択: 各キーボードレイアウトに合わせる。今回は日本語
    • ホスト名: debian
    • ドメイン名: 各自のドメイン名に設定する。今回は local
    • rootのパスワード: 各自パスワードを設定する。
    • rootのパスワード: 各自パスワードを設定する。
    • ユーザーとパスワードのセットアップ: 各自設定する。
    • 新しいユーザーの本名: hirotaka
    • アカウントのユーザー名は hiro
    • ここでセットアップしたユーザーはrootとは別の管理者権限のない作業ユーザー。
    • ディスクのパーティショニング: 今回はディスク全体を使う。
    • システムを止めずにディスクの追加、論理ボリュームの拡張、暗号化を行う場合はLVM,暗号化LVMを選択する。
    • ティショニングするドライブを選択する。
    • パーティショニングの構成: 今回は全てのファイルを1つのパーティションにする。
    • homeなどを分離する場合は要件にあったものを選択。
    • Debianアーカイブミラー: 日本(現在住んでいる国 or 最も近い場所)
    • 国内のDebianアーカイブミラー: 今回は ftp.jp.debian.org
    • HTTPプロキシの情報: 今回は必要ないので空白
    • 利用したパッケージの統計値を開発者に匿名で提出するか選びます。
  3. ソフトウェアのインストール

パッケージ管理システム(apt)の基本操作

  1. ===追加===

    ‘’‘新しいソフトウェアのインストール’‘'(root権限が必要)

    # apt-get install ''パッケージ名''

    ‘’‘ソースパッケージのダウンロード’‘’

    # apt-get source ''パッケージ名''

    ‘’‘ソースパッケージをコンパイルする為に必要なパッケージのインストール’‘'(root権限が必要)

    # apt-get build-dep ''パッケージ名''

  2. === 更新 ===

    ‘’‘リポジトリの更新’‘'(root権限が必要)

    # apt-get update

    ‘’‘インストール済みのソフトウェアの更新’‘'(root権限が必要)

    # apt-get upgrade

    ‘’‘ディストリビューションのアップグレード’‘'(root権限が必要)

    # apt-get dist-upgrade

  3. === 検索・情報表示 ===

    ‘’‘パッケージの検索’‘’

    # apt-cache search ''検索キーワード''

    ‘’‘特定パッケージの情報表示’‘’

    # apt-cache show ''パッケージ名''

  4. === 削除 ===

    ‘’‘特定パッケージの削除’‘'(root権限が必要)

    # apt-get remove ''パッケージ名''

    ‘’‘特定パッケージの設定ファイルを含めた削除’‘'(root権限が必要)

    # apt-get purge ''パッケージ名''

    ‘’‘不要なパッケージの自動削除(依存されていないライブラリ等)’‘'(root権限が必要)

    # apt-get autoremove

Webアプリケーションを動かすのに必要なパッケージをインストールして設定する。

   1. sudo ワンショットでユーザーがスーパーユーザーの特権レベルを利用出来る。
   2. SSH  暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。
   3. SSL インターネット上で通信を暗号化する。第三者によるデータの盗聴や改ざんなどを防ぐ。
   4. MySQL 人気があるデータベース。
  1. === sudo ===

    rootユーザーでログイン

    # apt-get install sudo

    • sudoを使えるユーザーを登録する

    # adduser "ユーザー名" sudo

    rootユーザーをログアウト後、特権のない別のユーザーでログイン

    $ sudo apt-get install vim

  2. === SSH ===

    $ sudo apt-get install ssh

    環境設定 > ネットワーク > ホストオンリーネットワーク で 固定したいIPのゲートウェイを追加。

    f:id:developer-hiro-east9-hey-world:20170411030115p:plain

    f:id:developer-hiro-east9-hey-world:20170411030237p:plain

    f:id:developer-hiro-east9-hey-world:20170411030432p:plain

    とりあえず今回はdefaultの192.168.56.1を設定。

    次にVM(インストールしたDebian)にホストオンリーネットワークを設定。

    f:id:developer-hiro-east9-hey-world:20170411031015p:plain

    f:id:developer-hiro-east9-hey-world:20170411031052p:plain

    • Debianのネットワーク設定

    /etc/network/interfacesにホストオンリーネットワークのゲートウェイと静的IPアドレスを追加

    $ sudo vim /etc/network/interfaces

    auto eth1
    iface eth1 inet static
    address 192.168.56.101
    netmask 255.255.255.0
    gateway 192.168.56.1

    MacのterminalからDebianのアカウントにログイン

    $ ssh debianのusername@192.168.56.101(設定した静的IPアドレス) #Macのterminal

    f:id:developer-hiro-east9-hey-world:20170411053619p:plain

    • rootでのSSHログインを禁止。

    $ sudo vim /etc/ssh/sshd_config

    PermitRootLogin without-password (パスワードではログイン禁止)になっているので
    PermitRootLogin no に編集する。(SSHでのログインも禁止)

    # /etc/init.d/sshd restartSSHの設定を反映します。

    Macからrootでログインすると「Permission denied, please try again.」というアラートが表示され、rootでのSSHログインができなければOKです。

    f:id:developer-hiro-east9-hey-world:20170413191213p:plain

    • パスワードでのログインを禁止、Port番号を変えてMac(クライアント)からSSHでログインできるようにする。

    Debian(サーバー)に ~/.ssh フォルダをパーミッション付きで作成

    $ pwd # Debianの現在のパス

    /home/user

    $ sudo mkdir -m 700 .ssh

    Mac(クライアント)にSSH Keyを作成する。

    $ ssh-keygen -t rsa -f debian_rsa # Mac(クライアント)

     ~/.ssh/ 以下に公開鍵 秘密鍵が作成される。

    debian_rsa #秘密鍵 debian_rsa.pub #公開鍵

    Debian(サーバー)にMacで先ほど作ったdebian_rsa.pub(公開鍵)をscpを使って送ります。

    Mac(クライアント)terminalから

    $ pwd #Macの現在のパス

    /Users/“ユーザ名”/.ssh

    $ scp ./id_rsa.pub username@192.168.56.101(設定した静的IPアドレス):/home/"サーバー側のユーザ名"/.ssh/authorized_keys

    実際にDebianに送れたか確認。

    $ ls -la ~/.ssh # authorized_keysがあればOK

    authorized_keys ファイルのパーミッションは 0600 に変更

    $ sudo chmod 600 authorized_keys

    AuthorizedKeyを有効にしてパスワード認証を禁止する。

    $ sudo vim /etc/ssh/sshd_config

    #PasswordAuthentication yes
    PasswordAuthentication no (パスワード認証の設定をコメントアウトして禁止する。)

    SSHの設定を反映します。

    sudo /etc/init.d/ssh restart

    パスワード認証ログインを禁止したのでPermission denied (publickey).になる。

    f:id:developer-hiro-east9-hey-world:20170414075347p:plain

    デフォルトのPort 22を変更、AuthorizedKeyを有効にしてSSH認証ログインのみにする。

    $ sudo vim /etc/ssh/sshd_config

    #AuthorizedKeysFile %h/.ssh/authorized_keys
    AuthorizedKeysFile %h/.ssh/authorized_keys (コメントアウトする。)

    Port 22
    Port 2288 (defaultポートを変更する。2288は適当)

    SSHの設定を反映します。

    sudo /etc/init.d/ssh restart

    ポートを変更したのでdefaultポート(22)ではログインできない。

    f:id:developer-hiro-east9-hey-world:20170414074034p:plain

    Mac(クライアント)から初回のみ-iオプションで秘密鍵を指定する。

    $ ssh -i ~/.ssh/debian_rsa username@192.168.56.101(設定した静的IPアドレス) -p 2288

    macOS SierraではSSHキーを覚えてくれないのでちょっとした設定が必要 ~/.ssh/config を作る。

    vim ~/.ssh/config

             # Debianサーバー   
             Host debian   
                HostName 192.168.56.101   
                User hiro   
                IdentityFile ~/.ssh/debian_rsa   
                Port 2288   
                TCPKeepAlive yes   
                IdentitiesOnly yes 
    

    $ ssh debian でログインできる。

    f:id:developer-hiro-east9-hey-world:20170414083600p:plain

  3. === SSL ===

$ sudo apt-get install openssl

インターネットなどのコンピュータネットワークにおいてセキュリティを要求される通信を行うためのプロトコルである。主な機能として、通信相手の認証、通信内容の暗号化、改竄の検出を提供する。

itpro.nikkeibp.co.jp

使い方など詳しいことは次の記事でNginxと一緒にまとめます。

  1. === MySQL ===

MySQL :: Download MySQL APT Repository

f:id:developer-hiro-east9-hey-world:20170421095214p:plain

f:id:developer-hiro-east9-hey-world:20170421095248p:plain

$ mkdir ~/src srcフォルダを作成

$ cd ~/src 今作ったsrcフォルダに移動

$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.4-1_all.deb wgetで先ほどコピーしてきたURLからdebパッケージをダウンロードする。

$ sudo dpkg -i mysql-apt-config_0.8.4-1_all.deb ダウンロードしたdebパッケージをdpkgでインストールする.。

f:id:developer-hiro-east9-hey-world:20170421100429p:plain

f:id:developer-hiro-east9-hey-world:20170421100446p:plain

f:id:developer-hiro-east9-hey-world:20170421100506p:plain

$ sudo apt-get update リポジトリをアップデート

$ sudo apt-get install mysql-server 最新のMysqlをインストール

MySQLのrootパスワードを設定します。

f:id:developer-hiro-east9-hey-world:20170421101642p:plain

  • MySQLサーバの起動、再起動と停止

$ sudo /etc/init.d/mysql start 開始

$ sudo /etc/init.d/mysql stop 終了

$ sudo /etc/init.d/mysql restart 再起動

$ sudo /etc/init.d/mysql stop 終了

  • MySQLの設定、確認

$ mysqladmin -u root password 'new-password' 管理者パスワードの変更

$ netstat -atn MySQLサーバは3306番ポートを利用します。netstatコマンドを実行して、 3306番ポートが開かれているか確認できます。

$ mysqladmin -u root -p ping MySQLサーバの動作は、mysqladminコマンドを使っても確認することが できます。

  • MySQLクライアントの操作

$ mysql -u root -p MySQLサーバに接続してコマンドラインで操作をする

  • データベースへの接続、操作

$ mysql -u root -p MySQLサーバに接続してコマンドラインで操作をする

mysql> SHOW DATABASES; データベースの確認。

mysql> USE '接続するデータベース'; データベースに接続する。

mysql> SELECT DATABASE(); 現在接続しているデータベースの確認。

  • データベースの作成

mysql> CREATE DATABASE ’作成するデータベース’;

  • データベースの削除

mysql> DROP DATABASE ’削除するデータベース’;

  • データベースユーザーの作成

mysql> CREATE USER 'ユーザ名'@'ホスト' IDENTIFIED BY 'パスワード’;

  • 作成したユーザーに権限を設定する。

mysql> GRANT ALL ON 権限を許可するデータベース.* TO 'ユーザ名'@ 'ホスト' IDENTIFIED BY 'パスワード';

  • データベースユーザーパスワードの変更

mysql> SET PASSWORD FOR ユーザ名@ホスト=pass word('新しいパスワード');

  • データベースユーザーの削除

mysql> DROP USER ユーザ名@ホスト 

  • テーブルの作成

mysql> CREATE TABLE テーブル名 (列1, 列2, 列3,.....); 

世界最大の怖い話サイト

kowabana.jp

まず、莫大な量の怖い話、怖い漫画があります。

kowabana.jp

また、他にもオーパーツやUFO,宇宙人などの話もあります。

これがまた面白くて仕事の合間に読んだりもしています。

iPhone アプリもあるよ。