Ubuntu 18.04 server

esxi 6.7 で、ubuntu 18.04 server のセットアップ後にやったことをメモしてみる(誰かの役に立てば幸い的な)

☆セキュリティ的に賛否両論だがrootパス設定
これはSCPからの接続でroot所有のファイルを触る場合とかを想定してです。
sudo su -
でrootになる。
passwd
でルートパスワードを設定しなおす。

☆SSH設定
apt install -y openssh-server
vi で /etc/ssh/sshd_config を開き、一時的に(鍵設定するまでの間)パスワードでのrootログインを可能にする。
vi /etc/ssh/sshd_config
iキーを押し以下のように編集。
PermitRootLogin yes
PasswordAuthentication yes
ESCキーを押したあとに :wq で保存終了。
systemctl restart ssh
以後はPuttyからrootでの作業とする。
ssh-keygen -t rsa
cd /
mkdir .ssh
cat /root/.ssh/id_rsa.pub >> .ssh/authorized_keys
chmod 600 /.ssh/authorized_keys
再度 /etc/ssh/sshd_config を開き以下のように編集後保存する。
#AuthorizedKeysFile %h/.ssh/authorized_keys
AuthorizedKeysFile /.ssh/authorized_keys
systemctl restart ssh
/root/.ssh の中の id_rsa からクライアントPC側で puttygen を使い .ppkファイル を作成する。
無事rootからの秘密鍵でのputtyのログインが成功したらパスワードログイン拒否に戻すため、
/etc/ssh/sshd_config を開き以下のように編集する。
PermitRootLogin prohibit-password
または
PermitRootLogin without-password
PermitEmptyPasswords no
PasswordAuthentication no
保存したらsshdを再起動する。
systemctl restart ssh

☆Japaneseパッケージの追加
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
wget https://www.ubuntulinux.jp/sources.list.d/bionic.list -O /etc/apt/sources.list.d/ubuntu-ja.list

apt update

☆時刻同期の設定
timedatectl set-timezone Asia/Tokyo
timedatectl set-local-rtc true
systemctl restart systemd-timesyncd

☆Windowsの共有フォルダをマウント
apt install cifs-utils
mkdir -p /mnt/windows
mount -t cifs -o username=******,password=****** //******/****** /mnt/windows
******に書くのは、Windowsのユーザー名,パスワード //IPまたはホスト名/共有名 の順

☆smbのインストール
apt install samba
/etc/samba/smb.conf を編集する。
samba用ユーザーの作成(複数人で使うサーバーじゃなければLINUXユーザーと同期は必要ない)
pdbedit -a ユーザー名
パスワードを入力する。
sambaの再起動
systemctl restart smbd
systemctl restart nmbd

☆ファイアーウォール設定
ufw allow 80/tcp
ufw allow sshで設定したポート番号/tcp

ポートを範囲指定したい場合は下記のように書く
ufw allow 2300:2400/tcp
有効化する
ufw enable
状態の確認
ufw status
ルールの削除
ufw delete allow

☆個人的に必要なモジュールのインストール
dpkg --add-architecture i386
apt update
apt install libc6 libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 lib32ncurses5 libgtk2.0-0:i386
apt install libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386
apt install libstdc++5 libstdc++5:i386 lib32stdc++6 lib32gcc1 lib32ncurses5 zlib1g lib32z1
apt install python apt-show-versions libapt-pkg-perl libauthen-pam-perl libio-pty-perl libnet-ssleay-perl unzip libsvn-java

ローカルの別PCから視覚的に設定なんやら見たい(またはSSに撮りたい)時のために
☆Webminのインストール
curl -L -O http://www.webmin.com/download/deb/webmin-current.deb
dpkg -i webmin-current.deb
インストールが完了したら /etc/webmin/miniserv.conf を編集して少なくてもポートは変更しておくべき
systemctl restart webmin

☆MySQLのインストール
apt install mysql-server
mysql_secure_installation
パスワードバリデーションのプラグインを使用するか聞かれるので y か n を押す。
y を押した場合にパスワードバリデーションのレベルを聞かれるので0~2を押す。
mysqlのrootパスを作成するための入力が2回出るので入力する
パスワードの堅牢性の得点が出るので良ければ y を押す。
MySQLがデフォルトで設定するテスト用の匿名ユーザを削除するか聞かれるので良ければ y を押す。
リモートからのrootログインを禁止するか聞かれるので y か n を押す。
testユーザーの設定を削除してよいか聞かれるので y を押す。
ここまで答えた設定で良ければ最後に y を押す。

☆パスワードポリシーの変更
パスワードバリデーションの設定をすると、
パスワードポリシーが勝手に変更され、設定したはずの root パスワードも使えなくなっているので設定する
注)これをしておかないと phpmyadmin のインストール時に phpmyadmin の管理ユーザーや phpmyadmin のデータベースが作成されず後で困ります。
sudo mysql
set global validate_password_policy=LOW;
以下の yourpassword の部分を設定したいrootパスワードに変えて入力する。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';
FLUSH PRIVILEGES;
exit

☆Web環境やMCのインストール
apt install apache2
/etc/apache2/sites-available の中の000-default.confを開き、公開したい設定へ変更する
a2dissite 000-default.conf
a2ensite 000-default.conf
等のコマンドで変えた設定を反映させる
apt install php php-gd php-cgi php-imap php-pear php-xmlrpc php-xsl php-curl libapache2-mod-php php-mysql
apt install mc imagemagick

☆Web環境の設定
/etc/php/php7.2/apache2/php.ini を開き以下の箇所を変更する
expose_php = Off
date.timezone = Asia/Tokyo

☆PhpMyAdminのインストール
Ubuntu標準リポジトリのPHPMyAdminはPHP7.2と互換性が無く、count()等でエラーが出るので最新版をインストール。
add-apt-repository ppa:phpmyadmin/ppa
apt update
apt install phpmyadmin
phpmyadminを表示するWebサーバーの選択が出るのでapache2を指定する
その次の質問はYesを押す
Mysqlのrootパスを2回聞かれるので入力する
systemctl restart apache2

☆その他アプリを導入した場合に
systemctlでの自動起動アプリをチェック
systemctl list-unit-files --type=service

サービスの状態表示は(mysqlの場合)
systemctl status mysql

自動起動の無効化(mysqlの場合)
systemctl disable mysql

自動起動の有効化(mysqlの場合)
systemctl enable mysql

サービスの起動、停止、再起動(mysqlの場合)
systemctl start mysql
systemctl stop mysql
systemctl restart mysql

コメント