学習記録#35 250717

701ページから

731ページ

コマンドラインでメールを送信したり受信メールを確認するには、mailコマンドを使う

mail (-s メールの題名) (宛先メールアドレスまたはユーザー名)
引数なしで実行すると、メールボックス内のメールが確認できる

/etc/aliasesで、メールアドレスの別名を設定できる
例)
root宛に届いたメールを、adminさんとlinuxuserでも受け取れるようにする
/etc/aliases
root: admin, linuxuser

この設定はnewaliasesコマンドで有効にする
newaliasesコマンドは、/etc/aliasesの設定を元にMTAが実際に参照するエイリアスデータベースファイルの/etc/aliases.dbを更新する

.forwardファイルを使うことでメールを転送することもできる
各ユーザーのホームディレクトリに.forwardファイルを用意し、その中に転送先のメアドを記述する。
一時的に転送したい場合などに便利で、ユーザーが各自で設定できるため管理者が設定する必要もない

演習問題を解く

タイムゾーンを設定する方法にはシンボリックリンクもある
lnでタイムゾーンファイル(/usr/share/zoneinfo/Asia/Tokyoとか)のシンボリックリンクを/etc/localtimeに作るとか

所有者がrootユーザーであるプログラムにSUID(Set User ID)を設定すると、一般ユーザーが実行した時もroot権限で動作するようになる

この設定が有効だと、一般ユーザーにはroot権限で実行されたくないコマンドが実行されてしまう場合がある。
SUIDが設定されているファイルを把握しておき定期的にファイルの変更がないかチェックする、そもそもSUIDを設定するファイルを最小限に留めるなどが必要

SUIDが設定されているコマンドはfindコマンドで検索できる
$ find / -perm -u+s -ls
-u+sの代わりに-g+sを指定するとSGIDが設定されたファイル、-o+tを指定すると、スティッキービットが設定されているファイルを検索できる

スティッキービットってなんだっけ?
特殊なパーミッションの1つでディレクトリに適用される
スティッキービットが設定された全てのディレクトリは、ファイルの作成や書き込みができるようになる。
ただし、作成したファイルの削除権限があるのは所有者のみ

chage(読み方的にはシーエイチエイジだと思う)コマンドで、ユーザーのパスワードの有効期限を設定できる。
有効期限が過ぎるとパスワード変更をユーザーに促すことができる

chageで設定した内容は、シャドウパスワードを利用していたら/etc/shadowファイルに格納される

例)
chage オプション ユーザー名
// m: minimum パスワードの最低有効期間(これより前にパスワード変更することはできない)
// M: maxmum パスワードの最大有効期間
// W: warndays パスワードの有効期限切れの警告が何日前から出るか
// I: inactive パスワードの有効期限後にアカウントがロックされるまでの日数
// E: expiredate アカウントを無効にする期間
$ chage -m 3 -M 20 -W 7 -I 0 -E 2025-07-17 linuxuser

whoコマンドで、ユーザーのログイン状況やログイン履歴を確認できる

これで確認して、不正ログインとかを調べられる

wコマンドを使うと、ログイン中のユーザーに加えてシステム情報も表示される
whoやwは、/var/run/utmpファイルを参照している

lastコマンドを使うと、最近ログインしたユーザーの一覧を表示する
このコマンドは、/var/log/wtmpファイルを参照している

(復習)
netstatコマンドやssコマンド、lsofコマンドを使うと、現在開いているポートを確認できる

攻撃者がネットワーク経由で開いているポートを確認する行為を、ポートスキャンという
一般的には攻撃の予備調査として行われるが、リモートホストで開いているポートを確認するために利用できる

nmapコマンドでポートスキャンを行える

fuserコマンドでポートを開いているプロセスを特定することもできる

例)
nmap 対象ホスト
$ nmap centos7.example.com
例)
$ fuser -n tcp 25