さくらVPS上でLAMP環境を構築した際の覚書です。
すでに、VPS上でUbuntu Server 18.04がインストールされた直後、という条件で設定をしていきます。
ゴール
- さくらVPSを利用
- OS: Ubuntu Server 18.04 LTS (カスタムOSを選択)がインストール済み
- Apache2、PHP、MariaDBをインストールする
今回は、Ubuntu Server 18.04 LTS をインストールした直後、SSHの設定や、ファイアウォールの設定をします。
インストール直後の設定
Vimインストール
- vimのインストール
$ sudo apt install vim
- 標準エディタの変更
$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 15 manual mode
Press <enter> to keep the current choice[* ], or type selection number: 3
update_alternatives
では、3 のvim basic
を選ぶ。
vimのcolorschemeをインストール
ここは自分自身の趣味的な部分ですが、vimのcolorshcemeにmolokaiを導入します。
- Gitをインストール
$ sudo apt install git
- colorscheme、molokaiをGitHubからクローン
$ git clone https://github.com/tomasr/molokai
- 必要なディレクトリを作成し、colorschemeファイルを移動
$ mkdir -p ~/.vim/colors
$ mv molokai/colors/molokai.vim ~/.vim/colors/
.vimrcを編集して、vimをカスタマイズ
$ vi ~/.vimrc
syntax on
colorscheme molokai
set t_Co=256
set bg=dark
" バックアップファイルを作らない
set nobackup
" スワップファイルを作らない
set noswapfile
" デフォルトの文字コード
set encoding=utf-8
" ファイルエンコーディング
set fileencoding=utf-8
" 自動判別に使用する文字コード
set fileencodings=iso-2202-jp,euc-jp,utf-8,ucs-2,cp932,sjis
" オートインデント
set autoindent
" 行番号表示
"set number
" 現在の行を強調表示
set cursorline
" インクリメンタルサーチ
set incsearch
" 最終行まで検索したら先頭行へ
set wrapscan
" 検索時に大文字小文字を無視
set ignorecase
" 対応するカッコのハイライト表示
set showmatch
" モードを表示する
set showmode
" 入力中のコマンドを表示
set showcmd
" バッファが編集中でも他のファイルを開けるようにする
set hidden
" 編集中のファイルが変更されたら自動で読み直す
set autoread
" 編集中のファイル名を表示
set title
" ルーラーを表示
set ruler
" tab文字を半角スペースにする
set expandtab
" タブのスペース数
set tabstop=4
" 行頭でのタブの表示幅
set shiftwidth=4
ホスト名の設定
- ホスト名を変更する
$ sudo vi /etc/hosts
127.0.0.1 localhost
xxx.yyy.zzz.aaa myhostname.example.com myhostname
- ホスト名の確認
$ sudo vi /etc/hostname
- ここで再起動
必要に応じて、ゾーン設定でこのサーバに関する情報を登録します。
ssh経由でログインできるようにする
ローカルマシンでのキーを作成
ローカルマシンが、UbuntuなどのLinux機であれば、話は簡単。ssh-keygen
コマンドを使う。
$ ssh-keygen -t ed25519 -C "someuser@hostname"
- 保存場所を効かれるので、そのまま[Enter]キーを叩く
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/someuser/.ssh/id_ed25519):
- どのファイルにキーを保存するか指定します。ここでは、
/home/someuser/.ssh/id_ed25519
にします。もし、ディレクトリがなかった場合は、自動的に作成されます。
Created directory '/home/someuser/.ssh'.
Enter passphrase (empty for no passphrase):
- 秘密キーに設定するパスワードを入力。パスワードなしにすることも出来ますが、パスワードを設定するほうが安全なのはいうまでもありません。
Enter same passphrase again:
- パスワードの確認入力
Your identification has been saved in /home/someuser/.ssh/id_ed25519
Your public key has been saved in /home/someuser/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:0fxHhBDCTNih+8Y51LmcbvtiuB0kMj8ZsyqJSeJw8Pc someuser@hostname
The key's randomart image is:
+--[ED25519 256]--+
| *+.oo .. |
| ..++ .. |
| . . o . |
|. . o o . |
| o + S + . . |
|o + . B X o . |
|o+ + o @.= |
| .o o Eo.=+. |
| .. .+++. |
+----[SHA256]-----+
~/.ssh
に、公開キーであるid_ed25519.pub
、秘密キーであるid_ed25519
が作成されます。
Windows でのキー作成
Windows10 (ビルド1809以降) であれば、Windows にも *nix 環境と同じく |
公開キーをVPS側に送る
現在、SSHのポート(22番)は開いたままだともうので、単純にscp
コマンドでもいいと思います。
scp ~/.ssh/id_ed25519.pub someuser@xxx.yyy.zzz.aaa:
あとはVPSにログインして、
cat id_ed25519.pub >> ~/.ssh/authorized_keys
で、OKです。
Windowsの場合は、TeraTermでリモートでログインして、id_rsa.pub
ファイルをWindow上にドラッグアンドドロップする、という方法があります。その他にも、例えば:
- WinSCPでファイルを転送。
- さくらVPSコントロールパネルの、「シリアルコンソール」からログオンして、コピペする。
- TeraTerm上で、直接コピペ。
sshd_configの設定
設定内容は以下の通り。
- 公開キー認証でのみログイン
root
はsshでのログイン不可- ポート番号は、標準の22番から変更
# ポートを22番から別の番号にする
Port 60022
# rootでのログインを拒否
PermitRootLogin no
# 公開キーによる認証を許可する
PubkeyAuthentication yes
# パスワード認証を拒否
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePam no
X11Forwarding no
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
/etc/services
を編集して、sshのポート変更を反映しておきます。
# この文をコメントアウト
#ssh 22/tcp # SSH Remote Login Protocol
:
# 末尾に追加
ssh 60022/tcp
最後に、sshdを再起動します。
$ sudo systemctl restart ssh.service
設定を間違えたときのために、現在開いているsshコネクションはそのままにしておいたほうが無難かもしれません。 |
ファイアウォール (UFW) を有効にする
さくらインターネットのさくらVPS(V5)上で、インストールOSをUbuntu24.04とした場合、コントロールパネル上でファイアウォールの設定も可能です。 この記事のように UFW を用いて作業する場合はコントロールパネル上から、パケットフィルター設定を無効にして、自身で設定する事ができるようにする必要があります。 |
Ubuntuには、ufw
というiptables
をラッピングしたファイアウォール管理コマンドがあるので、それを使ってファイアウォールを設定します。
原則:
- すべてのポートに対しての受信は不可(deny)に
- 必要なポートのみ開く
ということにします。
- ufwの状態を確認
⇒ 初期状態では起動していないはずです。
$ sudo ufw Status
Status: inactive
- 受信をすべて拒否する
$ sudo ufw default deny
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)
- sshポート(例: 60022/tcp) での受信を許可する。
$ sudo ufw allow 60022
Rules updated
- ufwを有効にする
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
- 状態も確認する
$ sudo ufw status
Status: active
To Action From
-- ------ ----
60022 ALLOW Anywhere
60022 ALLOW Anywhere (v6)
- ローカル端末から接続
ローカル環境の端末からssh
コマンドで接続できるか確認。
$ ssh localuser@xxx.yyy.zzz.aaa -i ~/.ssh/id_rsa -p 60022
または、
$ ssh localuser@newserver.example.jp -i ~/.ssh/id_rsa -p 60022
参考資料
- さくらVPS: SSH接続の設定変更方法 (内容はあくまでもCentOS版です)
0件のコメント