使用した CentOS-7-x86_64-Minimal-1511.iso イメージは、CentOS-7-x86_64-DVD-1511.iso イメージの Minimal インストールより、更にスリム化されているようで、いろいろと追加インストールする必要がある
OSインストール後にしたこと
●作業用のユーザ追加
# useradd hogehoge
# passwd hogehoge
ユーザー hogehoge のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
●root および hogehoge 宛てのメールをサーバ管理者のメールアドレスに転送
/etc/aliases を編集する
# cp /etc/aliases /etc/aliases.yyyymmdd
# vi /etc/aliases
hogehoge: root ← 追加
# trap decode to catch security attacks
#decode: root ← コメントアウト
# Person who should get root’s mail
#root: marc
root: hoge@example.com ← 転送先のメールアドレスを追加
エイリアスファイルの再構築
# newaliases
●suコマンドを実行できるユーザを制限
/etc/pam.d/su を編集し pam_wheel.so モジュールを使用するように変更する
# cp /etc/pam.d/su /etc/pam.d/su.org
# vi /etc/pam.d/su
#auth required pam_wheel.so use_uid
auth required pam_wheel.so use_uid ← コメントを外す
ユーザをwheelグループに追加
/etc/group を編集する
# cp /etc/group /etc/group.yyyymmdd
# vi /etc/group
wheel:x:10:
wheel:x:10:hogehoge ← ユーザ hogehoge を追加
●SSHD の設定(主にセキュリティ)
ポートの変更(port=10222)
使用するプロトコルを ssh version 2 に制限
認証までの猶予時間を30秒に変更
root ログインを禁止
試行回数を3回に変更
パスワードなしログインを禁止
バナー非表示
※ 閉域環境なので認証系は甘めな設定
※/etc/ssh/sshd_config を編集する前に、SELinux と Firewalld の設定をしておく
※変更したポートでのアクセスを確認するまで、作業中のセッションは断たない
1.sshd の Listen Port を変更するため、SELinux に変更を加える
1-1.semanage コマンドが見当たらないのでインストールをする
# yum -y install policycoreutils-python
1-2. インストールを確認する
# yum list installed | grep semanage
libsemanage.x86_64 2.1.10-18.el7 @anaconda
libsemanage-python.x86_64 2.1.10-18.el7 @base
1-3. SELinux の SSH の設定にポートを追加する
# semanage port -a -t ssh_port_t -p tcp 10222
1-4. ポートの追加を確認する
# semanage port -l | grep ssh
ssh_port_t tcp 10222, 22 ← 10222が追加された
2.Firewalld で 10222 ポートへのアクセスを許可する
2-1.firewalld も入っていないので firewalld をインストールする
# yum -y install firewalld
2-2. インストールを確認する
# yum list installed | grep firewall
firewalld.noarch 0.3.9-14.el7 @base
2-3. firewalld の状態を確認して、起動していなければ firewalld を起動する
# firewall-cmd –state
not running ← 起動していない
# systemctl start firewalld ← 起動コマンド
# firewall-cmd –state
running ← 起動した
2-4. firewalld の定義ファイル(xml)を作成する
ssh 用定義ファイルをベースに ssh-10222 用の定義ファイルを作る
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-10222.xml
# vi /etc/firewalld/services/ssh-10222.xml
基にした ssh の定義ファイル
<?xml version=”1.0″ encoding=”utf-8″?> <service> <short>SSH</short> <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description> <port protocol=”tcp” port=”22″/> </service> |
追加する定義ファイル(緑が変更箇所)
<?xml version=”1.0″ encoding=”utf-8″?> <service> <short>SSH-10222</short> <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description> <port protocol=”tcp” port=”10222“/> </service> |
2-5. firewalld へ定義ファイルを適用する
# firewall-cmd –add-service=ssh-10222 –permanent ← –permanent を付けると恒久的
success
2-6. firewalld を再起動し、適用を確認する
# firewall-cmd –reload ← 再起動コマンド
success
# firewall-cmd –list-all ← 確認コマンド
public (default)
interfaces:
sources:
services: dhcpv6-client ssh ssh-10222 ← ssh-10222 が追加された
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
3.SSHD の設定
3-1./etc/ssh/sshd_config を編集する
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
# vi /etc/ssh/sshd_config
#Port 22 Port 10222 ← Listen Port を追加する #Protocol 2 Protocol 2 ← コメントを外す #LoginGraceTime 2m LoginGraceTime 30 ← 猶予時間を変更 #PermitRootLogin yes PermitRootLogin no ← root ログイン禁止 #MaxAuthTries 6 MaxAuthTries 3 ← 試行回数変更 #Banner none |
3-2.サービスの再起動
# systemctl restart sshd.service
3-3.接続確認
port=22 でログインできないことを確認する
port=10222 でログインできることを確認する
root でログインできないことを確認する
※その他の確認はまた後で
●NTP設定
Chrony のインストール
# yum -y install chrony
インストールを確認する
# yum list installed | grep chrony
chrony.x86_64 2.1.1-4.el7.centos @updates
Chrony の設定
/etc/chrony.conf を編集する
# cp /etc/chrony.conf /etc/chrony.conf.org
# vi /etc/chrony.conf
#server 0.centos.pool.ntp.org iburst ← コメントアウト #server 1.centos.pool.ntp.org iburst ← コメントアウト #server 2.centos.pool.ntp.org iburst ← コメントアウト #server 3.centos.pool.ntp.org iburst ← コメントアウト server ntp.jst.mfeed.ad.jp iburst ← NTPサーバ追加 server ntp.nict.jp iburst ← NTPサーバ追加 #allow 192.168/16 ← NTPサーバにする場合は、1つ以上のネットワークを allow にする。とりあえず今回は NTP クライアントなのでコメントアウトのまま |
サービスの自動起動設定と確認Chronyd の起動
# systemctl start chronyd.service
# systemctl enable chronyd.service
# systemctl list-unit-files -t service | grep chronyd
chronyd.service enabled ← enabled になっていること
動作確認
# chronyc sources
210 Number of sources = 2 MS Name/IP address Stratum Poll Reach LastRx Last sample ================================================== ^- ntp2.jst.mfeed.ad.jp 2 6 377 57 -629us[-1285us] +/- 69ms ^* ntp-a3.nict.go.jp 1 6 377 55 -436us[-1096us] +/- 4382us |
M:問い合わせ先
“^”:サーバ
“=”:ピア
“#”:ローカルのハードウェアクロック
S:現在の状態
“*”:同期対象として採用中
“+”:同期対象候補
“-“:同期対象から外れているもの