私たち

私たち

私はWebホスティング会社のシステム管理者インターンであり、これを行う方法を理解しようとしていますので、最善を尽くして説明します。

/etc/blockedipsと/etc/donotblockがあります。

毎時間実行されるcronで設定できるスクリプトを作成したいと思います。 2つのファイルをスキャンして比較し、a)警告を送信する(ウォッチドッグを使用する)b)ブロックされたIP内のIPを自動的に削除します。ブロックしてはいけないIPを常に追加する他の技術者が多いため、/donotblockでブロックしてはいけない項目と一致します。

私がスクリプトに初めて遭遇したので、私が経験している問題は、IPアドレスに対して簡単なgrepコマンドを簡単に実行できることです(たとえば、76.76.76.76は2つのファイル間で簡単に一致します)。方法 次の手順を実行します。

当社のIPブロックが99.10.10.0/24だとしましょう。私はすべてのアドレスを/donotblockに入れたくないので、スクリプトが99.10.10.*のすべてのIPと一致したいだけで、これを行う方法については空白で描画します。

誰もが正しい方向に私を指すことができますか?編集:サンプル

したがって、ファイルは次のようになります。

/etc/ブロックしない

私たち

26.225.128.0/18 43.150.128.0/20 44.50.142.0/24 73.16.32.0/20

他の人

184.123.20.10 184.123.20.11

それから

/etc/blocked_ips

76.45.23.1

/blocked_ipsにいくつかのスキルが追加されたとしましょう。

73.16.32.10、サブネット全体を構成するためにスクリプトで「73.16.32.*」を検索するようにしたいと思います。

シニアエンジニアと話をしながら、彼はスクリプトがdonotblockのものと一致するBlocked_ips内のIPを自動的に削除することを好みます。

ありがとう

ベストアンサー1

Pythonnetaddrパッケージを使用すると、IP範囲を繰り返すことができます。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from netaddr import *

ipset = IPSet(['99.10.10.0/24'])

for ip in ipset:
     print ip

出力:

99.10.10.0
99.10.10.1
99.10.10.2
...
99.10.10.253
99.10.10.254
99.10.10.255

おすすめ記事