FTP サーバー(ProFTPD)を構築する
FTPS と SFTP の違いは?
今回使用する「ProFTPD」は FTPS を使用します。FTPS と良く似たプロトコルに SFTP があります。それらの違いを確認しておきます。
1. ProFTPD をインストールする
ProFTPD パッケージは Ubuntu 標準の universe レポジトリで提供されている為、もし universe レポジトリが追加されていない場合は追加します。その後、ProFTPD をインストールします。
$ sudo add-apt-repository universe
$ sudo apt -y install proftpd-basic
インストール完了後に ProFTPD の状態を確認しておきます。"active (running)" になっていれば OK です。
$ sudo systemctl status proftpd
2. ProFTPD の設定ファイルを調整する
/etc/proftpd ディレクトリ直下にある tls.conf ファイルに以下の設定を追記します。念のため、変更を加える前にバックアップを取っておきます。
$ sudo cp /etc/proftpd/tls.conf /etc/proftpd/tls.conf.bak
<IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSRSACertificateFile /etc/ssl/certs/proftpd.cts TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key FactsAdvertise off </IfModule>
3. SSL/TLS 用の証明書と秘密鍵を作成する
FTPS は SSL/TLS を利用して通信するため、証明書と秘密鍵を作成する必要があります。作成場所は 2. で追加した設定に合わせます。
TLSRSACertificateFile /etc/ssl/certs/proftpd.cts TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
下のコマンドで証明書と秘密鍵を作成します。
$ sudo openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
作成した秘密鍵のアクセス権を変更します。所有者のみ読み書き可能な設定(600)にしておきます。
$ sudo chmod 600 /etc/ssl/private/proftpd.key
4. ProFTPD の設定ファイルを有効にする
/etc/proftpd ディレクトリ直下にある proftpd.conf ファイルを調整して、2. で調整した tls.conf ファイルを有効にします。変更を加える前にバックアップを取っておきます。
sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.bak
proftpd.conf ファイルを以下のように変更します。
# Include /etc/proftpd/tls.conf ↓ Include /etc/proftpd/tls.conf
# PassivePorts 49152 65534 ↓ PassivePorts 49152 65534
変更完了後に、変更内容を反映させるためにサービスを再起動しておきます。
$ sudo systemctl restart proftpd
一般ユーザーが sudo コマンドを使用できる設定に変更する
root ユーザーでログインする
/etc/sudoer ファイルに sudo コマンドを許可するユーザーを追記します。以下のコマンドでファイルの編集画面に切り替わります。
$ visudo
# User privilage specification root ALL=(ALL) ALL kali ALL=(ALL) ALL ★追加
変更後は変更内容を更新するために reboot しておきます。
$ reboot
一般ユーザーに切り替えて sudo コマンドを試用する
$ sudo su -
そうすると、下のように root 権限に切り替えることができました。
#
Go 言語の開発/実行環境を整える(macOS 版)
環境
- macOS Mojave
- Visual Studio Code v1.33.1(既に導入済みとします)
1. macOS 用のパッケージマネージャー homebrew をインストールする
homebrew の公式サイトを確認すると、下のコマンドを実行してインストールする、って記載があります。macOS のターミナルを起動して実行します。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
引用元:The missing package manager for macOS (or Linux) — Homebrew
2. Go をインストールする
$ brew install go
3. Visual Studio Code に Go 関連のツールをインストールする
Visual Studio Code を起動して、Shift + Command + X を押して、拡張パッケージをインストールする画面に移動します。下の拡張パッケージをインストールしておきます。
次に、Shift + Command + P を押して、コマンド入力欄を表示して、「Go: Install/Update Tools」と入力します。そうすると、Go 関連のツールが表示されるので、全てにチェックを付けて「OK」をクリックします。
Installing 17 tools at /Users/ユーザー名/go/bin gocode gopkgs go-outline go-symbols ... Installing github.com/mdempsky/gocode SUCCESSED Installing github.com/uudashr/gopkgs/cmd/gopkgs SUCCESSED ...
試しにコードを書いてみる
下のコードを書いて、デバッグ実行してみます。すると、デバッグコンソールに "Hello World!" と出力されました。
package main import "fmt" func main() { fmt.Println("Hello World!") }
API server linstening at: 127.0.0.1:5926 Hello World!
DB サーバー(MySQL)の構築 ー DB/テーブルの権限設定 ー
環境
- Parallels Desktop 14 for Mac
- macOS Mojave
- Ubuntu Server 18.04.2
既に以下の内容が完了しているものとします。
- MySQL のインストール
ユーザーを作成する
root 権限で MySQL 管理プロンプトにアクセスします。
$ sudo mysql
下のコマンドでユーザーを新規に作成します。「Query OK」と表示されれば OK です。
mysql> create user {ユーザー名} identified by "{パスワード}";
ユーザーに権限を設定する
デフォルトでは何の権限も与えられていないので権限を与えていきます。DB やテーブルに細かく設定できます。「Query OK」と表示されれば OK です。
mysql> grant {権限 (create, select update, delete, drop, alter, insert, all) } on {DB 名}.{テーブル名} to {ユーザー名};
作成したユーザーで MySQL にアクセスする
下のコマンドを実行します。パスワードを聞かれるので、ユーザーを作成する際に決めたパスワードを入力します。
$ mysql -u {ユーザー名} -p
(補足:"-p" オプションを付けるとパスワードを聞かれるようになります。付けないと聞かれないので管理プロンプトにアクセスできません。)
DB サーバー(MySQL)の構築 ー CRUD 処理 ー
環境
- Parallels Desktop 14 for Mac
- mac OS Mojave
- Ubuntu Server 18.04.2 LTS
既に以下の内容が完了しているものとします。
- MySQL のインストール
- 適当な DB とテーブルの作成
データの挿入("C" reate)
mysql> insert into {テーブル名} ({カラム名1}, {カラム名2}, {カラム名3}) values ({値1}, {値2}, {値3});
データの表示("R" ead)
【全件】全てのデータを表示する
mysql> select * from {テーブル名};
【カラム指定】指定したカラムのデータのみを表示する
mysql> select {カラム名1}, {カラム名2} from {テーブル名};
【条件指定】条件に一致するデータのみを表示する
mysql> select * from {テーブル名} where {カラム名1} = {値1};
【並び替え】データを降順(descending order)に表示する
mysql> select * from {テーブル名} order by {カラム名1} desc;
(補足:デフォルトは昇順(ascending order)となります。"order by {カラム名1} asc" とすることも可能です。 )
データの更新("U" pdate)
mysql> update {テーブル名} set {カラム名1} = {値1} where {カラム名2} = {値2};
データの削除("D" elete)
mysql> delete from {テーブル名} where {カラム名1} = {値1};
(注:"where {カラム1} = {値1}" を書き忘れるとテーブル内の全てのデータが削除されます。)
DB サーバー(MySQL)の構築 ー DB とテーブルの作成 ー
環境
- Parallels Desktop 14 for Mac
- macOS Mojave
- Ubuntu Server 18.04.2 LTS
既に以下の設定が完了しているものとします。
- MySQL のインストール
DB を作成する
MySQL 管理プロンプトにアクセスします。
$ sudo mysql
MySQL 管理プロンプトで下のコマンドを実行すると DB を作成することができます。「Query OK」と表示されれば OK です。
mysql> create database {作成する DB 名};
(補足:mysqladmin コマンドで "$ sudo mysqladmin create {DB 名}" としても作成できます。)
DB 内にテーブルを作成する
テーブルを作成する DB を指定します。「Database changed」と表示されれば OK です。
mysql> use {作成した DB 名};
(補足:MySQL 管理プロンプトにアクセスする際に "$ sudo mysql {DB 名}" とする方法もあります。)
下のコマンドで DB 内にテーブルを作成します。カラム名、カラムの型も同時に設定します。「Query OK」と表示されれば OK です。
mysql> create table {テーブル名} (number serial primary key, name char(255), kana char(255), age int);
下のコマンドで作成したテーブルの詳細を確認しておきます。表形式でカラム名、カラムの型などを確認できます。
mysql> describe {テーブル名};
【補足】DB を削除する
下のコマンドで DB を削除することができます。「Query OK」と表示されれば OK です。
mysql> drop database {DB 名};
【補足】テーブルを削除する
下のコマンドでテーブルを削除することができます。「Query OK」と表示されれば OK です。
mysql> drop テーブル {テーブル名};
DB サーバー(MySQL)の構築 ー 導入・起動 ー
環境
- Parallels Desktop 14 for Mac
- macOS Mojave
- Ubuntu Server 18.04.2 LTS
1. MySQL をインストールする
MySQL には、サーバーの「mysql-server」とクライアントの「mysql-client」がそれぞれあります。両方をインストールします。
$ sudo apt -y install mysql-server mysql-client