まえがき
皆さん久しぶり、やふりーだ。(いつも久しぶりなのは内緒。)今回は、サーバ移転の備忘録を兼ねてUbuntu Server 18.04 でWebサーバを建てる前段階までの方法を紹介する。あくまで、「僕だったらこうするかな。」という設定例だが、インフラについて勉強したいという誰かの参考になれば幸いである。特にubuntu severeは海外の人気の割に、まだまだ国内の情報が少ないので、そういう意味でも記事にする価値が大きいと思った。(情報が少ない一因として、実際に近い設定を晒すとクラッキングの手がかりになりかねないからだが、僕のような弱小ブログを攻撃する物好きも居ないだろう。)
注意
この記事は上級者向けであり、説明も簡素なものとなっている。システムやソフトウェアの説明や設定目的までは記載していないので、内容を理解しながら必要に応じて設定して欲しい。あと、当然ながら生じた結果等には筆者は責任等を持たない。不安がある場合は、書籍などより信頼できる文献に従うことを強く推奨する。
管理ユーザの設定
- デフォルトのログインユーザはロック
- 代わりに管理用ユーザを作成
- 公開鍵認証のみ許可。
- 参考
CentOSで自宅サーバー構築
https://centossrv.com/
CentOSでサーバー公開するためのセキュリティ設定メモ
https://qiita.com/narumi_/items/179048afb48f64f45c6e
ホスト名の変更
# nano /etc/hosts
- i-101*********** –> ya-fury
TimeZone変更
# timedatectl set-timezone Asia/Tokyo
- 参考
Linux/Ubuntuのホスト名/hostnameを永続的に変更するには
https://blog.goo.ne.jp/takuminews/e/b9345cc13e2db950624cb512ffc257b4 - ここまでの設定が一通り終わったらリブート。
firewall (UFW)
- 入るの禁止
# ufw default deny incoming
- 出るのは自由
# ufw default allow outgoing
- sshは制限付きで許可
# ufw limit 22/tcp
- ログの場所
/var/log/ufw.log - 参考
How To Set Up a Firewall with UFW on Ubuntu 18.04
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-18-04
パッケージインストール前作業
- /etc/apt/sources.list
- リポジトリサーバをhttp://jp.archive.ubuntu.com/ubuntu/に変えた。
- 終わり次第、次項のパッケージを(概ね記述順に)インストールした。
zsh
- macと揃えるために入れた。bashだけで全く問題ない。
RCS
- サーバの設定ファイルに、高機能なバージョン管理は不要なので、gitではなくシンプルなRCSを使う。
- 参考 rcs使い方メモ https://qiita.com/fumi-san/items/72d3cf6ed61e63608f39
RCSの基本的な使い方 https://qiita.com/yukijiK/items/ec4de216af366cea1b44
postfix
送信専用の設定をする
# nano /etc/postfix/main.cf
* メールドメイン設定
myhostname = mail.ya-fury.com
* ローカルしか受けないように
inet_interfaces = localhost
* 表示名ではmailを省略
masquerade_domains = ya-fury.com
* root宛のメールを 普段遣いのメールアドレス へ飛ばすよう設定
/etc/aliases
AIDE
- 除外するフォルダを末尾にいくつか追加
# nano /etc/aide/aide.conf
* データベースを自動更新(名前のnew を消す)設定を追加
# nano /etc/cron.daily/aide
* 参考
ubuntuにAIDEをインストール
https://qiita.com/tukiyo3/items/158538a7cb227d0e640e
AIDE : ホスト型IDS
https://www.server-world.info/query?os=Ubuntu_18.04&p=aide
AIDE構築: インストールからcron設定まで
AIDE構築: インストールからcron設定まで
ファイル改ざん検知ツール AIDE
https://qiita.com/bezeklik/items/d144d77a3e54cd35c06b
logwatch
- 設定が分かれると混乱するので、雛形をコピーして使う。
# cp /usr/share/logwatch/default.conf/logwatch.conf /etc/lgwatch/conf/
* 通知レベルをMediam に変更した。sendmailはpostfixにしたらエラーが出たのでデフォルトのまま。
# nano /etc/logwatch/conf/logwatch.conf
予めフォルダを用意しておく必要があった。
# mkdir /var/cache/logwatch
chkrootkit
- ほぼインストールしたままの状態で使ってるが、カーネルモジュール( /lib/modules/4.15.0-115-generic/vdso/.build-id /lib/modules/4.15.0-112-generic/vdso/.build-id ) をrootkitと誤検知するので、それを除外した。
- 参考
Ubuntu 18.04 chkrootkit https://www.theurbanpenguin.com/ubuntu-18-04-chkrootkit/
あとがき
- 実際にサーバを構築するとなると、ここから更にBINDやApacheなど、役割に応じたソフトウェアをインストールすることになるだろう。しかし、ベースとなる部分は同じなので、セキュリティや運用方針に合わせて、サーバをカスタマイズして欲しい。
- なにか疑問点あれば、お気軽にコメントどうぞ。僕(あるいは親切なエンジニア)が答えてくれる…かもしれない。