サーバの構築

サーバの構築手順

vsftpdを利用したFTPサーバの構築方法

必要なパッケージのインストール

ターミナル
sudo apt install vsftpd

設定ファイルの編集

ターミナル
sudo nano /etc/vsftpd/vsftpd.conf

エディタ
anonymous_enable=YES            # アノニマス(匿名)ユーザを許可する。
local_enable=YES                # ローカルユーザアカウントによるログインを許可する。
write_enable=YES                # ファイルに変更を加える FTP コマンドの使用を、許可するかどうかを指定する。
local_umask=022                 # (システム規定値)∩ (~(umask値))をする。
                                # 今回はシステム規定値 : 777, umask値 : 022なので、755を適用する。
dirmessage_enable=YES           # ディレクトリメッセージを表示する。
xferlog_enable=YES              # ログの取得を行う。
connect_from_port_20=YES        # ftp_data_portで指定するポートを使用する。
xferlog_std_format=YES          # 取得するログの形式を指定する。(今回はデフォルト)
listen=YES                      # IPv4有効化。
listen_ipv6=NO                  # IPv6無効化。
pam_service_name=vsftpd         # サービス名指定する。
tcp_wrappers=NO                 # denyファイル(/etc/hosts.allow, /etc/hosts.deny)を利用しない。
userlist_enable=NO              # userlist_fileを使用しない。
pasv_enable=YES                 # パッシブモードの接続を許可する。
                                # ※パッシブモード : データ転送用・制御用の線の両方をクライアント側から接続する方式
pasv_address=192.168.10.97      # FTPサーバのIPアドレスを指定する。
pasv_min_port=60001
pasv_max_port=60010             # データ転送用ポートを指定する。
force_dot_files=YES             # 「.」から始まるファイルを含めた一覧を返す。
use_localtime=YES               # ファイル (ディレクトリ) のタイムスタンプ表示をローカルタイムで行う。
user_config_dir=/etc/vsftpd/user_conf       # アクセスするユーザの設定ファイルの場所を指定する。
chroot_local_user=NO            # ユーザはログインディレクトリの外側にアクセスできなくなる。
chroot_list_enable=YES          # 指定ファイルに記載されたユーザをchroot_local_userの設定に基づいて制御する。
chroot_list_file=/etc/vsftpd/chroot_list    # chroot_list_enableがYESの場合に参照するファイルを指定する。
allow_writeable_chroot=YES      # 書き込み許可をする。

設定の変更

ターミナル
mkdir -p /home/admin/ftp                # (必要に応じて親ディレクトリを作成し)FTPで使うフォルダを作成する。
chown admin /home/admin/ftp
chmod 777 /home/admin/ftp               # 権限を変更する。(読み書き出来るようにする。)
sudo nano /etc/vsftpd/chroot_list       # アクセスするユーザのリストを作成する。(今回はadminでログインするので、「admin」と書き込み保存する。)
mkdir /etc/vsftpd/user_conf
sudo nano /etc/vsftpd/user_conf/admin   # 「local_root=/home/admin/ftp」と書き込み保存する。
                                        # アクセスするユーザのルートディレクトリ(/home/admin/ftp)を設定する。
systemctl start vsftpd                  # FTPサーバを起動する。

SMBを利用したネットワークストレージの構築

必要なパッケージのインストール

ターミナル
sudo apt install samba smbclient cifs-utils mdadm wsdd

共有フォルダ作成

ターミナル
mkdir [path]/share 
sudo chmod 777 [path]/share

ユーザ登録

ターミナル
sudo useradd -M [NAS用ユーザ名]
sudo smbpasswd -a [NAS用ユーザ名]

設定ファイルの編集

ターミナル
sudo nano /etc/samba/smb.conf

エディタ
#======================= Global Settings =======================
[global]
    workgroup               = WORKGROUP
    unix charset            = UTF-8
    dos charset             = CP932
    interfaces              = 127.0.0.0/8 192.168.10.0/24   # 自環境に合わせる
    log file                = /var/log/samba/log.%m
    max log size            = 1000K
    logging                 = file
    panic action            = /usr/share/samba/panic-action %d
    server role             = standalone server
    obey pam restrictions   = yes
    unix password sync      = yes
    passwd program          = /usr/bin/passwd %u
    passwd chat             = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    pam password change     = yes
    map to guest            = bad user
    usershare allow guests  = yes

#======================= Share Definitions =======================

;[homes]
;   comment         = Home Directories
;   browseable      = no
;   read only       = no
;   create mask     = 0770
;   directory mask  = 0770
;   valid users     = %S

;[netlogon]
;   comment         = Network Logon Service
;   path            = /home/samba/netlogon
;   guest ok        = yes
;   read only       = yes

;[profiles]
;   comment         = Users profiles
;   path            = /home/samba/profiles
;   guest ok        = no
;   browseable      = no
;   create mask     = 0600
;   directory mask  = 0700

[printers]
    comment         = All Printers
    browseable      = no
    path            = /var/tmp
    printable       = yes
    guest ok        = no
    read only       = yes
    create mask     = 0700

[print$]
    comment         = Printer Drivers
    path            = /var/lib/samba/printers
    browseable      = yes
    read only       = yes
    guest ok        = no

[share]
    comment         = 共有フォルダ
    path            = [path]/share 
    writable        = yes
    valid users     = [NAS用ユーザ名]
    create mode     = 0770
    directory mode  = 0770

設定の確認

ターミナル
testparm

設定の適用

ターミナル
sudo systemctl restart smbd
sudo systemctl restart nmbd
sudo systemctl restart wsdd

自動起動設定

ターミナル
sudo systemctl enable smbd
sudo systemctl enable nmbd
sudo systemctl enable wsdd