ufwの設定を書くときは慎重に
awsから学科のvmにサービスを引っ越す作業でやらかしたので備忘録として残します。
備忘録なんでやったことも色々書いていきますー
サーバーの環境
ubuntu 20.04
サーバー移行作業
まずやったこととしてmysqlのインストールから初期設定まで、以前書いたgolangのapiで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を使ってアクセスし解決できました。(先輩ありがとうございます)
これやると他のアクセス方法ないかぎり詰むらしいので気をつけて、、、
ではまた