bashの設定に関する備忘録

先日,ハニーポットに関する書籍を読んでいたところ,ハニーポット運用に適したbashの設定に関する記述がありました.

ここ2年ほどLinuxに触れてきましたが,そういえばbashの設定をいじったことがないなーと思い,これを機にbashの設定を見直してみることにしました.とはいっても一朝一夕で自分に適した環境を設定することは難しいと感じたため,設定の変更を行うたびに,徐々に追記していこうと思います.

bashの設定ファイルについて

調べたところ,bashの設定ファイルは以下のような順序で読み込まれているようです.

ログイン起動:CUIモードやsshでログインした場合
対話起動:GUIからターミナルを開いた場合や,bashをコマンドで直接実行した場合

https://qiita.com/tatesuke/items/88629e9550b813109964より

/etc/内の設定ファイルが全ユーザ共通の設定ファイル,~/内の設定ファイルが各ユーザ個別の設定ファイルとなっています.また.bash_profileはログイン時に一度だけ読み込まれ,.bashrcはbashを起動するたびに読み込まれるファイルです.

どのような記述をどの設定ファイルに記述するべきなのかといったことに関しては様々な意見が見受けられ,正直未だに正解がわかっていないません.なので次の記述を参考に,以下のルールで設定を行っていきます.
本当に正しい.bashrcと.bash_profileの使ひ分け

.bash_profile

  • 環境変数を設定する(exportする変数)

.bashrc

  • 環境変数でない変数を設定する(exportしない変数)
  • エイリアスを定義する
  • シェル関数を定義する
  • コマンドライン補完の設定をする

bashの設定内容

.bash_profileの設定内容

プライマリプロンプトの設定

PS1="[\[\033[36m\]\u@\h \[\033[00m\]\W]\\$ "

historyの設定

## historyに実行日時を付与
HISTTIMEFORMAT='%F %T '
## 保持するコマンド数を10,000にする
HISTSIZE=10000
## 保持するコマンドからls,historyを除外
HISTIGNORE=ls:history

環境変数に設定

export PS1 HISTTIMEFORMAT HISTSIZE HISTIGNORE PATH

.bashrcに設定内容

aliasの設定

## 色付け,隠しファイルの表示,ファイルとディレクトリの区別,単位を適切に設定など
alias ls='ls -aF --color=auto'
alias ll='ls -lh --color=auto'
alias df='df -h'

## 削除や上書きの際に確認を求める
alias mv='mv -i'
alias rm='rm -i'
alias cp='cp -i'

## ユーザを切り替えるときに環境変数も切り替える
alias su='su -'

おわりに

これでbashの設定は以上になります.
historyに実行日時を追加し,10,000行保持することで過去にどのようなことを行ったのか遡りやすくなります.またファイルやディレクトリに色付けをすることで,対象がファイルなのかディレクトリなのか実行形式なのかひと目で分かるため,不用意に実行形式ファイルを実行してマルウェアに感染するといったことを減らすことができます.

これらの設定をgithubを用いて管理しておけば,利用するサーバが変わってもログ分析を行う環境を簡単に統一することができるため非常に便利です.

参考文献

サイバー攻撃の足跡を分析する ハニーポット観察記録