RHEL9には最初からsshサーバが入っていて有効になっていますが、インターネットで公開できる設定になっている以下確認します。
[root@ace ~]# grep PermitRootLogin /etc/ssh/sshd_config
#PermitRootLogin prohibit-password
# the setting of "PermitRootLogin without-password".
[root@ace ~]# grep UseDNS /etc/ssh/sshd_config
#UseDNS no
[root@ace ~]#
[root@ace ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: ena>
Active: active (running) since Sun 2024-02-04 14:04:20 JST; 3min 10s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 1827 (sshd)
Tasks: 1 (limit: 23114)
Memory: 3.3M
CPU: 59ms
CGroup: /system.slice/sshd.service
mq1827 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
2月 04 14:04:20 ace.zeke.ne.jp sshd[1827]: Server listening on 0.0.0.0 port 22.
2月 04 14:04:20 ace.zeke.ne.jp sshd[1827]: Server listening on :: port 22.
2月 04 14:04:20 ace.zeke.ne.jp systemd[1]: Started OpenSSH server daemon.
[root@ace ~]#
sshサーバの設定ファイルは/etc/ssh/sshd_configです。その中のPermitRootLoginパラメータは今まではyesになっていましたが、RHEL9からはprohibit-passwordに変更されたようですね。パスワード認証はできないようなっていましたので、良しとします。
[root@ace ~]# cat /var/log/secure
Feb 4 14:18:30 ace sshd[1878]: Received disconnect from 192.168.1.88 port 1076:11: authentication cancelled [preauth]
Feb 4 14:18:30 ace sshd[1878]: Disconnected from authenticating user root 192.168.1.88 port 1076 [preauth]
Feb 4 14:18:42 ace sshd[1884]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.88 user=root
Feb 4 14:18:45 ace sshd[1884]: Failed password for root from 192.168.1.88 port 1078 ssh2
[root@ace ~]#
Feb 4 14:18:30 ace sshd[1878]: Received disconnect from 192.168.1.88 port 1076:11: authentication cancelled [preauth]
Feb 4 14:18:30 ace sshd[1878]: Disconnected from authenticating user root 192.168.1.88 port 1076 [preauth]
Feb 4 14:18:42 ace sshd[1884]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.88 user=root
Feb 4 14:18:45 ace sshd[1884]: Failed password for root from 192.168.1.88 port 1078 ssh2
[root@ace ~]#
rootでログインできなくなっていることを確認!
また、IPアドレスからホスト名への逆引きをしないようにUseDNS noとしていましたが、これもRHEL9ではデフォルトになっていました。悪意あるユーザのホスト名はまともじゃないことが多いので、逆引きするだけ時間の無駄ですよね。
suコマンドを制限する
rootで直接sshでログインできなくなりました。ついでに、suコマンドを制限してrootになれるユーザを限定してしまいましょう。
[root@ace ~]# grep "pam_wheel.so use_uid" /etc/pam.d/su
#auth required pam_wheel.so use_uid
[root@ace ~]# vi /etc/pam.d/su
[root@ace ~]# grep "pam_wheel.so use_uid" /etc/pam.d/su
auth required pam_wheel.so use_uid
[root@ace ~]#
[root@ace ~]#
[root@ace ~]# grep ^wheel /etc/group
wheel:x:10:zeke
[root@ace ~]#
/etc/pam.d/suを編集して「#auth required pam_wheel.so use_uid」のコメントを外します。
すると、wheelグループに入っているユーザしかsuコマンドが使えなくなります。
ユーザーzekeはインストール時に管理者として作成するにチェックを入れておいたので、wheelグループに入っていました。
一般ユーザをwheelグループに入れるコマンドはusermod -G wheel ユーザ名 になります。
[zeke@ace ~]$ su -
パスワード:
最終ログイン: 2024/02/04 (日) 14:57:29 JST 日時 pts/1
[root@ace ~]#
rootになれることを確認!
Firewallの設定変更
[root@ace ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services:
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@ace ~]# firewall-cmd --permanent --add-service=ssh
success
[root@ace ~]# firewall-cmd --reload
success
[root@ace ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@ace ~]#
ファイヤーウォールにsshサービスが疎通できるように穴を開けときます。
お勧めのKindle本です!
コメント