root ユーザーにパスワードを設定することで、従来の [su] コマンドによる遷移が可能となります。sudo passwd root
vsftpdをインストールします。
vsftpdは、「Very Secure FTP Daemon」の略で、GPLライセンスのUNIXシステム用FTPサーバーで、安全で非常に高速なものとなっています。さらに安定しています。
sudo apt install vsftpd
sudo vi /etc/vsftpd.conf
# 31行目:コメント解除 (書き込み許可)
write_enable=YES
# 99,100行目:コメント解除 (アスキーモード転送許可)
ascii_upload_enable=YES
ascii_download_enable=YES
# 122行目:コメント解除 (chroot 有効)
chroot_local_user=YES
# 123行目:コメント解除 (chroot リスト有効)
chroot_list_enable=YES
# 125行目:コメント解除 (chrootリスト指定)
chroot_list_file=/etc/vsftpd.chroot_list
# 131行目:コメント解除 (ディレクトリごと一括での転送有効)
ls_recurse_enable=YES
# 最終行へ追記:chroot のルートディレクトリ指定
# 指定しない場合はユーザーのホームディレクトリがルートディレクトリとなる
# public_html を指定した場合で、且つ当該ディレクトリがないとログインできないので注意
local_root=public_html
# seccomp filter をオフ (ログインできない場合)
seccomp_sandbox=NO
# PASVデータコネクションで使用する最小/最大ポート(FWでポートを開ける必要あり)
pasv_min_port=60001
pasv_max_port=60001
sudo vi /etc/vsftpd.chroot_list
# 上の階層へ移動を許可するユーザーを行毎に列挙
xxxxxx
sudo systemctl restart vsftpd
OpenSSH : パスワード認証をインストール
SSH サーバーを構成し、リモート端末からサーバーに接続して操作できるようにします。なお、SSH は 22/TCP を使用します。Ubuntu の OpenSSH サーバーはデフォルトでパスワード認証方式でのログインは可能となっています。 さらに root ユーザーのみに関しては [PermitRootLogin prohibit-password] と設定されており、パスワード認証は禁止となっています。 よって、デフォルトのままでも最低限必要な設定はしてある状態ですが、root ユーザーの SSH ログインを一切禁止するのであれば、以下のように設定を変更しておけばよいでしょう。
sudo apt install openssh-server
sudo vi /etc/ssh/sshd_config
# 34行目:no に変更すると root ログイン一切禁止
PermitRootLogin no
sudo systemctl restart ssh
Samba : フルアクセスの共有フォルダー作成
Samba によるファイルサーバーの構築です。
例として、ローカルネットワーク内の誰もが読み書き可能、且つ、ユーザー認証を必要としないフルアクセスの共有フォルダーを設定します。
Samba の設定です。
sudo apt install samba
sudo mkdir /home/share
sudo chmod 777 /home/share
sudo vi /etc/samba/smb.conf
[global]
# 25行目:追記 (文字コードを設定)
unix charset = UTF-8
dos charset = CP932
# 30行目:確認 (Windows に合わせる)
workgroup = WORKGROUP
# 40行目:コメント解除してアクセス許可するネットワークを追記
interfaces = 127.0.0.0/8 10.0.0.0/24
# 101行目:確認 (認証不要とする)
map to guest = bad user
.....
.....
# 最終行に追記
# 任意の共有名を設定
[Share]
# 共有フォルダーを指定
path = /home/share
# 書き込みを許可する
writable = yes
# ゲストユーザー (nobody) を許可する
guest ok = yes
# 全てゲストユーザーとして扱う
guest only = yes
# ファイル作成時のパーミッションを [777] とする
force create mode = 777
# フォルダー作成時のパーミッションを [777] とする
force directory mode = 777
sudo systemctl restart smbd
xrdp の導入
$ sudo apt install xserver-xorg-core xorgxrdp xrdp
xrdp の設定
cat <<EOF > ~/.xsessionrc
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
EOF
sudo sed -e 's/^new_cursors=true/new_cursors=false/g' -i /etc/xrdp/xrdp.ini
cat <<EOF | \
sudo tee /etc/polkit-1/localauthority/50-local.d/xrdp-color-manager.pkla
[Netowrkmanager]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device
ResultAny=no
ResultInactive=no
ResultActive=yes
EOF
sudo systemctl restart xrdp
sudo systemctl restart polkit
Ubuntuのファイヤーウォール設定 ufw(Uncomplicated FireWall)
インストールする
sudo apt install ufw
sudo apt install gufw
sshで接続している場合は、まずsshで使用しているポートを許可してからufwを有効化します
sudo ufw allow [sshで使用しているポート]/tcp
Rules updated
Rules updated (v6)
もしsshをポート22で使用していたら
sudo ufw allow 'SSH'
Rule added
Rule added (v6)
ufwを有効化する
sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
ufwを無効化する
sudo ufw disable
Firewall stopped and disabled on system startup
現在の状態を確認する
sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
sudo ufw status
Status: active
To Action From
-- ------ ----
SSH ALLOW Anywhere
SSH (v6) ALLOW Anywhere (v6)
使い方
ルールを追加する
sudo ufw allow [使用するポート]/プロトコル
予め定義したものは定義名を指定すると簡単に設定できる
定義名を取得するには
sudo ufw app list
Available applications:
AIM
Bonjour
CIFS
DNS
Deluge
IMAP
IMAPS
IPP
KTorrent
Kerberos Admin
Kerberos Full
Kerberos KDC
Kerberos Password
LDAP
LDAPS
LPD
MSN
MSN SSL
Mail submission
NFS
OpenSSH
POP3
POP3S
PeopleNearby
SMTP
SSH
Socks
Telnet
Transmission
Transparent Proxy
VNC
WWW
WWW Cache
WWW Full
WWW Secure
XMPP
Yahoo
qBittorrent
svnserve
定義を使ってルールを追加するには
sudo ufw allow Bonjour
sudo ufw allow 'WWW Full'
自分で定義を作成するには
/etc/ufw/applications.dにある定義ファイルを参考に追加する
cat /etc/ufw/applications.d/ufw-webserver
[WWW]
title=Web Server
description=Web server
ports=80/tcp
title=Web Server (HTTPS)
description=Web Server (HTTPS)
ports=443/tcp [WWW Full]
title=Web Server (HTTP,HTTPS)
description=Web Server (HTTP,HTTPS)
ports=80,443/tcp [WWW Cache]
title=Web Server (8080)
description=Web Server (8080)
ports=8080/tcp
ルールにコメントを追加するには
sudo ufw allow 1313/tcp comment "hugo server"
sudo ufw status
Status: active
To Action From
-- ------ ----
Bonjour ALLOW Anywhere
1313/tcp ALLOW Anywhere # hugo server
SSH ALLOW Anywhere
WWW Full ALLOW Anywhere
Bonjour (v6) ALLOW Anywhere (v6)
1313/tcp (v6) ALLOW Anywhere (v6) # hugo server
SSH (v6) ALLOW Anywhere (v6)
WWW Full (v6) ALLOW Anywhere (v6)
ルールを削除する
sudo ufw delete allow [使用するポート]/プロトコル