ufwの設定を書くときは慎重に

awsから学科のvmにサービスを引っ越す作業でやらかしたので備忘録として残します。

備忘録なんでやったことも色々書いていきますー

サーバーの環境

ubuntu 20.04

サーバー移行作業

まずやったこととしてmysqlのインストールから初期設定まで、以前書いたgolangapiでDBを使用するのでその設定ですね
初手安定のaptアップデート

sudo apt update

次に、mysql-serverパッケージをインストールします。

sudo apt install mysql-server

はいってるか確認

root@ubuntu:~$ mysql --version
mysql  Ver 8.0.22-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))

なんか普通はmysqlのセキュリティスクリプトなんかを設定するらしいけど今回はなしで、、、
mysqlのrootユーザーでログイン

sudo mysql

そこからgormで使うDBuserとDBを作っていく(tableは自動で作成されるためスキップ)
てかgithubにREADEMEを書いてたのでそれをコピペ参考に書いていきます。

まずmysqlのユーザーを作成してください。ユーザー名、パスワードは任意です。 以下のコマンドで作成可能です。

CREATE USER 'user_name'@'host_name' IDENTIFIED BY 'password'

その後作成したユーザーに対してallの権限を付与してください。

grant all on *.* to 'user_name'@'host_name'

最後にmysqlのDBを作成して下さい。

create database "DB_NAME";

以上でMySQLの設定は終了です!

golangのインストール及びデーモン化

gitでプログラム自体は移行できたのにgolangのインストールを忘れてましたね、ごめんねgopherくん
公式のパッケージからインストール

wget https://dl.google.com/go/go1.15.3.linux-amd64.tar.gz

展開して配置する

sudo tar -C /usr/local -xzf go1.15.3.linux-amd64.tar.gz

goコマンドのパスを通す。.profileに書きましょう

export PATH=$PATH:/usr/local/go/bin

バージョンの確認

root@ubuntu:~$ go version
go version go1.15.3 linux/amd64
デーモン化(Supervisor使用)

次にgoのコードの実行ファイルでgo buildします。するとバイナリファイルができるはず

go build ファイル名

Supervisorのインストール

sudo apt-get install supervisor

/etc/supervisor/conf.dのなかに*.confファイルを作り設定を書く。

[program:go-auth]
command=実行ファイルの絶対パス
autostart=true
autorestart=true
startsecs=5
user=root
directory=実行ファイルまでの絶対パス
redirect_stderr=true
stopasgroup=true
stdout_logfile=/var/log/supervisor/supervisord.log

最初はsupervisorは起動してないので

root@ubuntu:~$ sudo service supervisor status
supervisord is  not running.

以下のコマンドで起動

sudo service supervisor start

起動した後にちゃんとサービスが動いてるか確認

root@ubuntu:~$ sudo supervisorctl
プロジェクト名                          RUNNING   pid 55078, uptime 6:57:43

本題

まじでここまで長かった、設定の備忘録でこんなに長くなるんか
タイトルにもある通りufwで設定をする時には慎重になろうという話でっす。

まず何をしたかというとsshのポート変更をしようとしていました。
sshの設定ファイルは以下の通り

/etc/ssh/sshd_config

おそらく#Port 22と書いてる場所があるのでその下に変更したいポートを書いてあげましょう。

ここからが大事!!!

設定ファイルを書き換えたあとはちゃんと読み込んであげよう!じゃないと変更後のポートが読み込まれない

systemctl reload sshd.service

この後にufwで新しいポートを開けて22番ポートを閉じよう!
できればターミナルで接続したままのタブを残した状態で新しいタブを開いてそこでssh接続テストをしようね。

解決方法

僕の場合はvirsh consoleを使ってアクセスし解決できました。(先輩ありがとうございます)
これやると他のアクセス方法ないかぎり詰むらしいので気をつけて、、、

ではまた