もうちょっとスマートに?

sasl@不正アタックでご紹介したfail2banですが、
なぜかうまく働くときと、すり抜けてくるものがあります。
最初からそうすれと言われそうですが、実は
firewall-cmdで特定ipアドレスから特定サービスへの
アクセスを禁止することも出来ます。

先日ご紹介した通り、セグメントごとの禁止では

firewall-cmd –zone=drop –permanent –add-source=123.456.789.0/24
firewall-cmd –reload

のごとくfirewall-cmdを利用していました。
しかしこれでは全てのサービスにアクセスできなくなります。

ではなぜ特定ポートを指定したコマンドを使わなかったのか。
ちょっとした勘違いが2つありました。

1つ目

ログを見ると不正アクセスがあるのはpostfix/smtpd
となっており、プロトコルがsmtpに見えたため、
ポート25へのアクセスと思い込んでしまい、
効果がなかったこと。

2つ目

これは25ではなく587、つまりsubmissionポートへの
アクセスであることが判明しました。
この場合リッチルールを使い

firewall-cmd –add-rich-rule=”rule family=ipv4 source address=IPアドレス service name=サービス名 許可・不許可”

のごとく書けば良いことは知っていましたが、
submissionはserviceに登録されていないと
怒られてしまいます。

確かどこかに.xmlを置いておけば登録される
くらいの知識しかなく、しかもチラ見して頭に
あったのは面倒くさかったという記憶でしたので、
全てのアクセスを拒否する暴挙に出ていたわけです。
しかたなく今回、面倒くさくてもやってみようと、
重たい腰を上げてみると・・・なんと簡単でした。w

サービス登録

/etc/firewalld/services/の下に以下の内容の
submission.xmlを置いておきます。

#vim /etc/firewalld/services/submission.xml



submission
(例 587などコメントを書く)

設定を反映させます。

firewall-cmd –reload

確認します

firewall-cmd –get-services

 submissionが追加されている
 
 
これで上記のコマンドが使えます。

firewall-cmd –add-rich-rule=”rule family=ipv4 source address=111.222.333.444 service name=submission drop” 
firewall-cmd –reload 
 
問題は・・・
全面アクセス拒否で登録してあるIPアドレスを
いったん解除し、新たにsubmissionへのアクセス拒否に
登録し直すのは結構大変です。。。(泣

HOME

おすすめ