勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

OpenLiteSpeedにvsftpdを導入しFTPクライアントソフトから接続する方法

  OpenLiteSpeed サーバー

先日Almalinux8系に1-Click InstallでOpenLiteSpeed / MySQL / PHP8.2をインストールした環境にvsftpd(Very Secure FTP Daemon)をインストールしFTPクライアントソフトからファイルのアップロード・ダウンロードを行いたい。以下に対応方法をメモ。

 

環境について

VPSに関して

今回はKAGOYA CLOUD VPSのCPU1コア / メモリ1GBプランで作業した。SSH接続は公式案内の通り以下でログインできる。

  • 接続ポート -> 22
  • ユーザ名 -> root
  • パスワード or 秘密鍵 -> インスタンス作成時に選択したもの

AlmaLinuxについて

バージョン8.9になる。

 

(必要に応じて)スワップ領域の作成

必須では無いが必要に応じてスワップ領域を作成する。尚、当方の環境でスワップ領域を作成せずにvsftpdをインストールしようとすると「Out of memory allocating xxxxx bytes!」のエラーが発生しインストールできなかった(タイミングの問題かも?)。以下の通りスワップ領域を作成する。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#swap設定
dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /swapfile
#設定ファイルを開く
vi /etc/fstab
#再起動時にswap領域が認識されるよう以下を追記
/swapfile swap swap defaults 0 0
#再起動
reboot
#認識されているか確認
top
#swap設定 dd if=/dev/zero of=/swapfile bs=1M count=1024 mkswap /swapfile #設定ファイルを開く vi /etc/fstab #再起動時にswap領域が認識されるよう以下を追記 /swapfile swap swap defaults 0 0 #再起動 reboot #認識されているか確認 top
#swap設定
dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /swapfile
 
#設定ファイルを開く
vi /etc/fstab
 
#再起動時にswap領域が認識されるよう以下を追記
/swapfile               swap                   swap    defaults        0 0
 
#再起動
reboot
 
#認識されているか確認
top

 

(必要に応じて)selinuxの停止

WebARENA IndigoのVPSだとデフォルトでselinuxが有効になっていた。今回使用したKAGOYA CLOUD VPSだと無効になっている。そのため必要に応じて以下でselinuxを停止させる。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#selinuxの状態を確認
getenforce
#以下が表示されていると有効状態
Enforcing
#設定ファイルを書き換え
vi /etc/selinux/config
#変更前
SELINUX=enforcing
#変更後
SELINUX=disabled
#再起動
reboot
#selinuxの状態を確認 getenforce #以下が表示されていると有効状態 Enforcing #設定ファイルを書き換え vi /etc/selinux/config #変更前 SELINUX=enforcing #変更後 SELINUX=disabled #再起動 reboot
#selinuxの状態を確認
getenforce

#以下が表示されていると有効状態
Enforcing

#設定ファイルを書き換え
vi /etc/selinux/config

#変更前
SELINUX=enforcing

#変更後
SELINUX=disabled

#再起動
reboot

 

vsftpdインストール及び設定

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#FTPサーバのインストール
yum -y install vsftpd
#設定ファイルを開く
vi /etc/vsftpd/vsftpd.conf
#FTPサーバのインストール yum -y install vsftpd #設定ファイルを開く vi /etc/vsftpd/vsftpd.conf
#FTPサーバのインストール
yum -y install vsftpd

#設定ファイルを開く
vi /etc/vsftpd/vsftpd.conf

設定ファイルの変更内容は以下の通り。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#以下を追記もしくはコメントアウトを外す
chroot_local_user=YES
chroot_list_enable=YES
allow_writeable_chroot=YES
#コメントアウトを外す
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=YES
#以下を追記し:wqで上書き保存
local_root=public_html
use_localtime=YES
local_root=/var/www/html
force_dot_files=YES
#以下を追記もしくはコメントアウトを外す chroot_local_user=YES chroot_list_enable=YES allow_writeable_chroot=YES #コメントアウトを外す chroot_list_file=/etc/vsftpd/chroot_list ls_recurse_enable=YES #以下を追記し:wqで上書き保存 local_root=public_html use_localtime=YES local_root=/var/www/html force_dot_files=YES
#以下を追記もしくはコメントアウトを外す
chroot_local_user=YES
chroot_list_enable=YES
allow_writeable_chroot=YES

#コメントアウトを外す
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=YES 

#以下を追記し:wqで上書き保存
local_root=public_html
use_localtime=YES
local_root=/var/www/html
force_dot_files=YES

上書き保存後は以下の通り進める。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#ユーザー作成(ユーザー名は適宜変更)
useradd lsws_user
#パスワードを設定(ユーザー名は適宜変更)
passwd lsws_user
#ユーザーのグループを変更
usermod -g nobody lsws_user
#パーミッション設定
chmod 775 /usr/local/lsws
#上層へのcdを許可するユーザーを設定する
vi /etc/vsftpd/chroot_list
#ファイルが開くのでユーザー名を追記して:wqで上書き保存(ユーザー名は適宜変更)
lsws_user
#FTPサーバの起動
systemctl start vsftpd
#ステータス確認
systemctl status vsftpd
#自動起動設定
systemctl enable vsftpd
#自動起動確認
systemctl list-unit-files -t service | grep vsftpd
#(必要に応じて)ポート開放とファイアウォール再起動
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
#ユーザー作成(ユーザー名は適宜変更) useradd lsws_user #パスワードを設定(ユーザー名は適宜変更) passwd lsws_user #ユーザーのグループを変更 usermod -g nobody lsws_user #パーミッション設定 chmod 775 /usr/local/lsws #上層へのcdを許可するユーザーを設定する vi /etc/vsftpd/chroot_list #ファイルが開くのでユーザー名を追記して:wqで上書き保存(ユーザー名は適宜変更) lsws_user #FTPサーバの起動 systemctl start vsftpd #ステータス確認 systemctl status vsftpd #自動起動設定 systemctl enable vsftpd #自動起動確認 systemctl list-unit-files -t service | grep vsftpd #(必要に応じて)ポート開放とファイアウォール再起動 firewall-cmd --add-service=ftp --permanent firewall-cmd --reload
#ユーザー作成(ユーザー名は適宜変更)
useradd lsws_user

#パスワードを設定(ユーザー名は適宜変更)
passwd lsws_user
 
#ユーザーのグループを変更
usermod -g nobody lsws_user

#パーミッション設定
chmod 775 /usr/local/lsws

#上層へのcdを許可するユーザーを設定する
vi /etc/vsftpd/chroot_list 

#ファイルが開くのでユーザー名を追記して:wqで上書き保存(ユーザー名は適宜変更)
lsws_user

#FTPサーバの起動
systemctl start vsftpd

#ステータス確認
systemctl status vsftpd

#自動起動設定
systemctl enable vsftpd

#自動起動確認
systemctl list-unit-files -t service | grep vsftpd

#(必要に応じて)ポート開放とファイアウォール再起動
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload

この時点でFFFTP等のクライアントソフトで接続できる筈。尚、正常に接続できない場合は以下の点を確認すること。

  1. selinuxが停止しているか
  2. ポートが解放されているか

 

所感

OpenLiteSpeed / MySQL / PHPがインストールされHTTPS接続もでき、FTPでのファイル操作ができる状態まで環境構築できれば実運用でも使っていけそう。

 - OpenLiteSpeed サーバー

  関連記事

OpenLiteSpeedにてhtaccessファイルでリライト、リダイレクトする方法

OpenLiteSpeedでリライト、リダイレクト設定を行いたい。調べたところ管 ...

OpenLiteSpeedにSSL証明書(Let's Encrypt)を導入しHTTPS接続する方法

昨日Almalinux8系に1-Click InstallでOpenLiteSp ...

AlmaLinux8系に1-Click InstallでOpenLiteSpeedをインストールする方法

以前AlmaLinux8にOpenLiteSpeedをインストールする記事を書い ...

AlmaLinuxにOpenLiteSpeedをインストールしHello Worldページ表示までを行う方法

AlmaLinux8系にOpenLiteSpeedをインストールしてみたい。まず ...

ApacheとOpenLiteSpeedのPHP実行速度比較とPageSpeed Insights比較

OpenLiteSpeedはApacheよりも処理速度が速いとは聞くものの実際に ...

S