もうちょっとスマートに?
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
設定を反映させます。
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へのアクセス拒否に
登録し直すのは結構大変です。。。(泣
最近のコメント