AlmaLinux で ssh の IP アドレス制限

AlmaLinux 8.4 は、CentOS 8 の互換 OS だ。
そのため、CentOS 8 と同じで、TCP Wrapper が廃止され、今までのように /etc/hosts.allow や /etc/hosts.deny で IP アドレスによるアクセス制限がかけられなくなった。ファイアウォール(firewalld)で制限をかけることになる。

CentOS 8 を触ったことがなかったもんで(最近設定したのも、サポートのことを考えて CentOS 7 だったからなあ)、/etc/hosts.allow を編集しようと思ったらなかったので驚いた。

まず、自宅 PC や既存サーバなど、恒常的に存在している機器はパーマネントルール(設定ファイルに書き込まれ、再起動時にも有効となるルール)を投入。

# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="202.XXX.XXX.12" port protocol="tcp" port="22" accept"
# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="176.XXX.XXX.65" port protocol="tcp" port="22" accept"

で、元々の設定は「誰でも大歓迎」になっているので、その設定を削除。

# firewall-cmd --remove-service=ssh --zone=public --permanent

これで、設定ファイル(/etc/firewalld/zones/public.xml)に書き込まれる。
まだ、この時点では設定ファイルが編集されただけなので、設定ファイルを読み込み直して設定を反映させる。

# firewall-cmd --reload

これで、202.XXX.XXX.12、176.XXX.XXX.65 の IP アドレスからのみ ssh 接続が可能となる。

次に、一時的に接続を許すランタイムルールで職場の PC からの接続を許す。(引数 permanent を付けてないだけ)

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="114.XXX.XXX.72" port protocol="tcp" port="22" accept"

設定ファイルには書き込まれないので、reload は不要。即設定が反映する。

必要なくなったら、

# firewall-cmd --zone=public --remove-rich-rule="rule family="ipv4" source address="114.XXX.XXX.72" port protocol="tcp" port="22" accept"

で削除。

旧サーバ(CentOS)では Web 経由で /etc/hosts.allow を編集する仕組みを作って、外出先から一時的に ssh 接続を許すようにしてたんだけど使えなくなっちゃったな。
新しい仕組み作らないと・・・

トラックバック(0)

このブログ記事を参照しているブログ一覧: AlmaLinux で ssh の IP アドレス制限

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/6051

コメントする

このブログ記事について

このページは、shinodaが2021年9月 9日 10:55に書いたブログ記事です。

ひとつ前のブログ記事は「初めての AlmaLinux」です。

次のブログ記事は「なんと、アジの聖地・伊崎港でボウズ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら