MENU

Dify導入の第一歩!Ubuntuで学ぶLinuxサーバーの基本操作と初期セキュリティ設定

当ページのリンクには広告が含まれています。

Difyをセルフホストで動かすにはLinuxサーバーが必須です。しかし、WindowsやMacのようなグラフィカルな操作(GUI)とは異なり、Linuxサーバーの操作は基本的にコマンド入力(CUI)で行います。

この記事では、Dify導入の第一歩として、なぜLinuxコマンドを覚える必要があるのか、そしてConoHa VPSなどのUbuntuサーバーを立てた直後に絶対に実施すべき初期セキュリティ設定と、基本的なコマンド操作について解説します。

目次

1. Linuxとは? (CUIの壁)

Linuxは、WindowsやmacOSと同じ「OS(オペレーティングシステム)」の一種です。1991年にリーナス・トーバルズ氏によって開発されたオープンソースのOSで、誰でも無料で使用・改変・再配布が可能です。

その安定性と柔軟性から、Webサーバー、スーパーコンピュータ、スマートフォンのAndroidなど、世界中のあらゆる場所で使われています。DifyのようなWebアプリケーションを動かすサーバーとしても、Linuxは最も一般的な選択肢です。

WindowsやmacOSと最も異なる点は、操作方法です。多くの場合、マウスで操作するGUI(グラフィカル・ユーザ・インタフェース)ではなく、キーボードでコマンドを打ち込んで操作する**CUI(キャラクタ・ユーザ・インタフェース)**が基本となります。

そのため、Difyの導入や運用・メンテナンスを行うには、このCUI操作、すなわちLinuxコマンドを覚えて使いこなす必要があるのです。

2. サーバー構築直後に必須のSSHセキュリティ設定

VPSでサーバーを立てた直後の状態は、非常に危険です。特にSSH(サーバーにリモート接続するための仕組み)は、デフォルト設定のまま(ポート番号22、rootログイン許可)だと、世界中から「ブルートフォースアタック(総当たり攻撃)」の標的になります。

システムが乗っ取られるのを防ぐため、最低限、以下の2つの設定を必ず行ってください。

  • ポート番号の変更: 攻撃者が狙う「22番」から、別の番号に変更する。
  • rootユーザログインの禁止: 最も権限の強いrootユーザで直接ログインできないようにする。

※注意: Ubuntuのバージョンによって設定方法が異なります。ConoHa VPSの最新OSテンプレートではUbuntu 24.04が使われることが多いため、両方の手順を解説します。

Ubuntu Server 22.04 の場合

22.04では、従来通り /etc/ssh/sshd_config という設定ファイルを直接編集します。

1. 設定ファイルのバックアップ 万が一に備え、設定ファイルをコピーしておきます。

sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_`date +%Y%m%d-%H%M%S`

2. 設定ファイルの編集 vi または nano などのエディタでファイルを開きます。

sudo vi /etc/ssh/sshd_config

3. ポート番号の変更 ファイル内の #Port 22 と書かれている行を探し、# を削除してポート番号を 10022 などに変更します。(例:10022番。他のサービスと重複しない番号を選んでください)

- #Port 22
+ Port 10022

4. rootログインの禁止 #PermitRootLogin prohibit-password または PermitRootLogin yes と書かれている行を探し、以下のように変更します。

- #PermitRootLogin prohibit-password
+ PermitRootLogin no

5. 設定の反映 ファイルを保存して閉じ(vi の場合は :wq)、SSHサービスを再起動します。

sudo systemctl restart sshd

Ubuntu Server 24.04 の場合

24.04 (正確には22.10以降) では、SSHの起動方法が変更され、ポート番号の変更は別の設定ファイルで行う必要があります。

1. ポート番号の変更 以下のコマンドを実行し、設定ファイル(override.conf)を編集します。

sudo systemctl edit ssh.socket

エディタ(通常 nano)が開きます。以下の内容を追記してください。ListenStream= で一度設定をクリアし、新しいポート(例:10022)を指定します。

[Socket]
ListenStream=
ListenStream=10022

▼ nanoエディタの操作方法

  1. 上記内容を貼り付け(または入力)します。
  2. Ctrl + x キーを押して終了を試みます。
  3. Save modified buffer? (変更を保存しますか?) と聞かれたら Y キーを押します。
  4. File Name to Write: (ファイル名) が表示されたら、そのまま Enter キーを押します。

2. rootログインの禁止 rootログインの禁止は、新しく設定ファイルを作成して管理するのが推奨されます。

sudo vi /etc/ssh/sshd_config.d/10-PermitRootLogin.conf

開いたファイルに、以下の1行だけを記述して保存します。

PermitRootLogin no

3. 設定の反映 ssh.socketssh の両方を再起動します。

sudo systemctl restart ssh.socket
sudo systemctl restart ssh

4. 設定の確認(24.04の場合) sshd -T コマンドで、permitrootlogin no と表示されれば成功です。

$ sudo sshd -T | grep -i PermitRootLogin
permitrootlogin no

3. ファイアウォール (ufw) の設定

SSHのポート番号を変更したら、必ずファイアウォール(ufw)で「新しいポート(10022)」を許可し、「古いポート(22)」を閉じます。この順番を間違えると、サーバーに接続できなくなるので細心の注意を払ってください。

1. ファイアウォールの有効化

sudo ufw enable

Firewall is active and enabled on system startup と表示されればOKです。

2. 新しいSSHポートの通信を許可 (例:10022番ポート)

sudo ufw allow 10022/tcp

Rule added と表示されればOKです。

3. ルールの確認

numbered オプションで、ルールに番号を付けて表示します。

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] OpenSSH                    ALLOW IN    Anywhere
[ 2] 10022/tcp                  ALLOW IN    Anywhere
[ 3] OpenSSH (v6)               ALLOW IN    Anywhere (v6)
[ 4] 10022/tcp (v6)             ALLOW IN    Anywhere (v6)

OpenSSH がデフォルトの22番ポートです。

4. 古いSSHポート(22番)のルールを削除

上記で確認した番号(この例では 13)を指定して削除します。

sudo ufw delete 1

Proceed with operation (y|n)? と聞かれたら y を入力します。

sudo ufw delete 2

(※ルール番号は ufw delete 1 を実行後にずれるので、ufw status numbered で再度確認してから 3 だったルールを削除します)

5. 設定の再読み込み

sudo ufw reload

4. 【ConoHa VPS 3.0 の場合】セキュリティグループの設定

重要: ConoHa VPSのバージョン3.0では、サーバー側の ufw に加えて、ConoHaのコントロールパネル側でも「セキュリティグループ」の設定が必要です。

  1. ConoHaコントロールパネルにログインし、「セキュリティ」メニューから「セキュリティグループ」を作成します。
  2. 作成したグループに「ルールを追加」します。
  3. 「SSH」タイプ(または「カスタム」)を選び、許可するポートに新しいポート番号(例:10022) を指定します。


  4. 「サーバ」メニューに戻り、対象サーバーの「ネットワーク情報」から、作成したセキュリティグループを適用します。
    「+」アイコンをクリックします。 作成した「セキュリティグループ」を選択し、「保存」ボタンをクリックして「セキュリティグループ」を追加します。 追加した「セキュリティグループ」が表示されていることを確認してください。

5. システムの更新と再起動

セキュリティ設定が一段落したら、パッケージを最新の状態にし、サーバーを再起動して全ての設定を反映させます。

# パッケージリストを更新
sudo apt update
# パッケージをアップグレード
sudo apt upgrade
# サーバーを再起動
sudo reboot

再起動後、**新しいポート番号(10022)**で、**一般ユーザー(root以外)**でSSH接続できることを確認してください。また、rootユーザーや古い22番ポートで接続できないことも確認しましょう。

6. (推奨) 公開鍵認証への変更

さらにセキュリティを高めるため、パスワード認証を禁止し、「公開鍵認証」に変更することを強く推奨します。これは「鍵(秘密鍵ファイル)」を持っているPCからしか接続できなくする方法です。

ただし、秘密鍵を紛失するとサーバーに接続できなくなるデメリットもあります。(ConoHaの場合は、コントロールパネルの「コンソール」機能から復旧可能です)

7. 基本的なLinux操作 (コマンドとショートカット)

CUIの操作に慣れるための、便利なショートカットと必須コマンドです。

便利なキー操作(ショートカット)

コマンド意味
Ctrl + C実行中のコマンドを強制終了する (最もよく使います)
Ctrl + A行頭に移動する
Ctrl + E行末に移動する
Ctrl + Dカーソル位置の1文字を削除する (またはログアウト)
Ctrl + Kカーソル位置から行末までを削除する
Ctrl + Uカーソル位置から行頭までを削除する
Ctrl + Rコマンド履歴を検索する(インクリメンタル検索)
キー (または Ctrl + P)1つ前のコマンド履歴に移動する
キー (または Ctrl + N)次のコマンド履歴に移動する
Ctrl + L画面を消去する
Ctrl + S画面表示をロックする (固まったように見える)
Ctrl + Q画面表示のロックを解除する

絶対覚えておきたい基本コマンド

コマンド意味
pwdカレントディレクトリを表示 (今どこにいるか)
lsディレクトリ内のファイルを表示 (-l -aオプションも多用)
cd [ディレクトリ名]カレントディレクトリを変更 (移動)
mkdir [ディレクトリ名]ディレクトリを作成する
touch [ファイル名]空のファイルを作成する (タイムスタンプ更新)
rm [ファイル名]ファイルを削除する (-rでディレクトリごと削除)
cat [ファイル名]ファイルの内容を表示する (短いファイル用)
less [ファイル名]ファイルの内容をスクロール表示する (長いファイル用)
cp [コピー元] [コピー先]ファイルをコピーする
mv [移動元] [移動先]ファイルを移動する (または名前変更)
chmod [権限] [ファイル名]ファイルのパーミッション(権限)を変更する (例: chmod 755 ...)
ps現在動作しているプロセスを表示 (auxオプションを多用)
kill [プロセスID]プロセスを終了させる
tail -f [ファイル名]ファイルへの追記を監視する (ログ監視で多用)

検索

コマンド意味その他
find <検索開始ディレクトリ> <検索条件> <アクション>ファイルを探す

ファイルパーミッション

コマンド意味その他
chmod <8進数の数値> <ファイル名>数値モードによるパーミッションの変更(例)chmod 755 test.txt
数値モードでのパーミッションの数値

足した値を「オーナー」「グループ」「その他のユーザー」の順に3つ並べて指定します。この3桁の数字がパーミッションを指定するための値です。例えば、「rwxr-xr-x」というパーミッションは、数値に変換すると「755」になります。

意味数値
読み取り(r)4
書き込み(w)2
実行(x)1

プロセス、ジョブ系

コマンド意味その他
ps現在動作しているプロセスを表示
ps xf現在のユーザーが実行中の全てのプロセスを表示
ps axシステムで動作している全てのプロセスを表示
kill <プロセスID>プロセスを終了させる※プロセスIDとはpsコマンド等で表示されるPIDの値

文字列

コマンド意味その他
wc ファイル名指定したファイルの行数、単語数、バイト数を表示する
コマンド意味その他
tail ファイル名指定したファイルの末尾10行を表示する
tail -n ◯ ファイル名-nオプションで◯部分に数字を入れることでファイルの末尾◯行を表示する
tail -f ファイル名ファイルへの追記を監視するログの収集やデータ収集で利用される

8. コマンドリファレンス (頻出コマンド一覧)

さらに多くのコマンドを、目的別に紹介します。

ディレクトリ操作

Linuxコマンド意味
lsディレクトリ情報を一覧表示する
pwd現在のディレクトリを表示する

ディレクトリ移動・ファイル操作

Linuxコマンド意味
cdディレクトリを移動する
mkdirフォルダを作成する
touchファイルを作成する / タイムスタンプを変更する
cpファイルをコピーする
mvファイルを移動する / ファイル名を変更する
rmファイルを削除する (-rでディレクトリも)
catテキストファイルの内容を表示する
chmodファイルやフォルダのアクセス権限を変更する
chownファイル、ディレクトリの所有者を変更する
tarファイルの圧縮、展開する

ユーザ管理

Linuxコマンド意味
useradd / adduserユーザを新規作成する
deluserユーザを削除する
groupaddグループを新規作成する
groupdelグループを削除する

システム管理操作

Linuxコマンド意味
freeメモリの空き容量、使用容量を表示する
lastログイン履歴を一覧表示する
fingerユーザ情報を表示する

ネットワーク関連操作

Linuxコマンド意味
routeルーティングの表示や設定をする
ftpファイルをFTPで転送する
sshsshでログインする

まとめ

Difyの導入・運用をスムーズに行うためには、CUIでのサーバー操作は避けて通れません。

特に、サーバーを立てた直後のSSHセキュリティ設定ファイアウォール設定は、スポーツカーのシートベルトと同じくらい重要です。まずはこの初期設定を確実に完了させ、基本的なコマンド操作に少しずつ慣れていきましょう。

【推奨】業務システム化に有効なアイテム

生成AIを学ぶ

システム化のパートナー(ミラーマスター合同会社)

VPSサーバの選定

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次