AlmaLinux9にNextcloudをインストールする

提供:dococo.jp
2025年1月8日 (水) 05:42時点におけるWebmaster (トーク | 投稿記録)による版 (→‎vsftpdの設定)

をインストール

まずは、OSをインストールしましょう。今回はAlmaLinux9をベースにしてインストール&設定を行います。Linuxは大きな意味では同じ動作をするOSですが、様々なディストリビューションが存在し設定ファイルも微妙に異なってきます。また同じディストリビューションでもバージョンによっては設定が変ってきますので使用したいディストリビューションやバージョンの整合性を適宜チェックする必要があります。

ブートディスク(USB)の作成

「Linuxをパソコンへインストールする」と言っても、それほど難しいことはありません。Windowsインストールとほぼ同じです。

簡単に説明するとAlmaLinux9のディストリビューションが置いてあるサイトhttps://almalinux.org/ja/へ行って、AlmaLinux OS 9.5 DVD ISO形式をダウンロードします。フルサイズだと10Gbyte近くあるので、DVDには直接焼けません。

従ってUSBメモリーを使ったUSBブート(USBメモリにiso形式のデータを書き込んでイメージディスクにする)方法を採用します。https://rufus.ie/ja/というサイトからRufusというソフトウエアを使用することで起動可能なUSBを作成することが出来ます。

BOOTシーケンス

BOOTシーケンスとはBIOSで起動先をどのよう設定するか決めます。UEFIブートとLegacyブートがありますがAlmaLinuxの場合、どちらでもインストール可能です。また、電源ONからF2/F12キーでBIOS設定画面からブート順番を決めるのか、直接ブート順位を決めるのか(パソコンによって違うと思いますが)設定することが出来ます。

F2キーによるBOOT画面 F12キーによるBOOT画面

AlmaLinuxのインストール

USBからのブートが上手くいくと、言語のインストール画面が表示されます。ここでは「日本語」を選択して続行を押下します。

次にインストールに関する詳細設定を行います

①インストール先の設定

USB起動ディスクと認識しているディスクが表示されますので、Linuxをインストールする選択します

②ソフトウエアの選択

インストールする(しない)ソフトウエアの選択を行います。デフォルトでは【サーバー(GUI使用)】が選択されていますが、主にSSH接続で操作を行うので、【サーバー】を選択します。【サーバー(GUI使用)】でも問題ありません、またGUIからCUIへ変更する方法については別途説明します。

③ネットワークととホスト名

ここでは、ホスト名の設定と(ローカルネットワーク内の)固定IPアドレスを設定します。ホスト名は画面左下部にホスト名を入れる場所があるので好きな名前を入れます(あとで変更できます)。ネットワークの設定は接続されているNIC 【Network Interface Card】が複数あれば複数出てきます。写真ではeno1というカードが1枚ですのでIPv4設定でメゾットは「固定IP」を選択して、自宅のローカルネットワーク内の固定IPアドレスを設定します。接続環境により設定値か異なりますので注意してください。

ホスト名設定場所(何でも良いです)
ネットワークの設定

④rootパスワードの設定

rootパスワードを設定します。Linuxではrootパスワードを忘れるとログインでいなくなりますので注意してください。また、セキュリティ上は良くありませんが[1]、自宅のローカルサーバ運用と言うことで「パスワードによるroot SSHログインを許可」にチェックを入れます。

また必要に応じてユーザを追加します。

詳細設定終了後、Linuxをインストール。USBメモリを抜いて再起動後に以下の様な画面が出ればLinuxのインストールが終了です。

Amalinuxの初期設定

ここまでで、一応Amalinuxがインストールされましたが初期設定を行います。

まず、外部のパソコンからPoderosaを使用してSSHログインが出来る事を確認します。TeraTermではSSHにログイン出来ないとかありますが、ここは無難にPoderosaを使うことをお勧めします。それでもログイン出来ない場合OpenSSHが起動しているか、パスワードによるroot SSHログインを許可しているのか、接続先IPアドレスが正しいのか...を確認してください。AlmaLinuxでは最小構成インストールでも、OpenSSHがインストールされ、自動起動設定になっているため、パスワード認証方式でのログインは可能となっているため問題無くログイン出来るはずです。

SELinux(Security-Enhanced Linux)の無効化

SELinux (Security-Enhanced Linux) は、システムにアクセスできるユーザーを管理者がよりきめ細かく制御するための、Linux® システム向けセキュリティ・アーキテクチャ。設定をミスったり、内容を正確に理解していないと各種サービスにアクセスできなくなるので、自宅内サーバーであればあまり厳密なアクセス制限は必要ないので無効化します。サーバーを外部や社内で不特定多数に公開にはセキュリティ上必要な機能です。

現在の動作確認

[root@dell ~]# getenforce
Enforcing
[root@dell ~]#

Enforcingと出ている場合は、SELinuxが有効な状態なので無効化します。 無効化方法は以下のファイルを編集します

vi /etc/selinux/config

以下のSELINUX=Enforcing→disabledへ変更します

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
# See also:
# https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/using_selinux/changing-selinux-states-and-modes_using-selinux#changing-selinux-modes-at-boot-time_changing-selinux-states-and-modes
#
# NOTE: Up to RHEL 8 release included, SELINUX=disabled would also
# fully disable SELinux during boot. If you need a system with SELinux
# fully disabled instead of SELinux running with no policy loaded, you
# need to pass selinux=0 to the kernel command line. You can use grubby
# to persistently set the bootloader to boot with selinux=0:
#
#    grubby --update-kernel ALL --args selinux=0
#
# To revert back to SELinux enabled:
#
#    grubby --update-kernel ALL --remove-args selinux
#
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

以下のコマンドでシステムを再起動して、反映します

[root@dell ~]# systemctl reboot

全パッケージupgrade

以下のコマンド、現在設定されているパッケージ類のアップグレードを行います。アップグレード後は再起動を行います

[root@dell ~]# dnf -y upgrade

OSの再起動が必要かどうか

以下のコマンドでOSの再起動が必要かどうか判断できますので、モジュールのアップグレードやインストール後にチェックすれば不要な再起動は防げると思います。(不特定多数が接続されているサーバにおいて再起動の時間がセンシティブになる場合、自宅サーバーはあまり関係無いので変更の都度システムを再起動すれば、不具合防止に良いと思います)

[root@dell ~]# dnf needs-restarting -r

vsftpdのインストール

vsftpd(Very Secure FTP Daemon)とは、LinuxなどのUNIX系OSでよく利用されるFTPサーバの一つ。FFFTP等を使えばLinux<=>Windows間でファイルの受け渡しが可能。入れておくと何かと便利。システムを再起動しなくても起動出来ました。

vsftpdインストール

[root@dell ~]# dnf -y install vsftpd

このままだと、インストールされただけですのでvsftpdを起動させます

[root@dell ~]# systemctl start vsftpd

このままでは、システムを再起動する度にvsftpdが停止してしまうので、システムの起動時にサービス(vsftpd)が起動するようにします。

[root@dell ~]# systemctl enable vsftpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service  /usr/lib/systemd/system/vsftpd.service.

vsftpdの設定

vsftpd.confを編集します。

まずvsftpd.confをvsftpd.conf.orgとしてバックアップを取っておきます。

[root@dell ~]# cp -pi /etc/vsftpd/vsftpd.conf{,.org}

以下のファイルを編集します

[root@dell ~]# vi /etc/vsftpd/vsftpd.conf

●114行目 変更 ( IPv4を有効にする )

listen=YES

●123行目 変更 ( IPv6 は、無視させる )

listen_ipv6=NO

rootでのログイン権限の許可

セキュリティのため、通常ではrootによる直接ftpでのログインは出来なくなっていますが、以下の2つのファイルからrootを削除することでrootによるftpログインが可能です。

[root@dell ~]# vi /etc/vsftpd/ftpusers
[root@dell ~]# vi /etc/vsftpd/user_list

Firewallの開放

FirewallにFTPのポート開放許可を出す必要がありますので以下のコマンドを実行します

[root@dell ~]# firewall-cmd --add-service=ftp --zone=public --permanent
success
[root@dell ~]# firewall-cmd --reload
success

firewallの開放関係

firewallはここに許可の書き込みが行われる

[root@dell ~]# vi /etc/firewalld/zones/public.xml

Firewallに登録してあるサービスを以下のコマンドで確認し、FTPが入っていればOKです

以下の状態では、「cockpit」「dhcpv6-client」「ftp」「ssh」が開放されている

[root@dell ~]# firewall-cmd --list-services --zone=public --permanent
cockpit dhcpv6-client ftp ssh

Apacheをインストール

Webサーバーの代名詞と言われるApacheをインストールします。サービス名はApacheではなくhttpdという名前です。

[root@dell ~]# dnf -y install httpd

  1. rootパスワードが漏洩するとサーバにある全ての情報が抜かれる恐れがあるので、サーバーを外部や社内で不特定多数に公開しているサーバーではrootによる直接操作は極力避ける考えで運用されます。 ただし、自宅サーバの場合は家族程度にしか公開しないのでrootによる直接操作を許可するようにしています。