ホームページ >運用・保守 >Linuxの運用と保守 >Linux での攻撃を防ぐために悪意のある IP アドレスをバッチでブロックする方法に関するケーススタディ

Linux での攻撃を防ぐために悪意のある IP アドレスをバッチでブロックする方法に関するケーススタディ

黄舟
黄舟オリジナル
2017-06-07 10:28:432279ブラウズ

多くの場合、Linux で IP アドレスをブロックする必要がある場合があります。たとえば、エンド ユーザーは、スパイウェアや IP 追跡から保護したい場合があります。システム管理者は、スパム IP アドレスによる企業メール サーバーへのアクセスを禁止したい場合があります。または、何らかの理由で特定の国による Web サービスへのアクセスを禁止したい場合があります。ただし、多くの場合、IP アドレス ブロック リストはすぐに数万の IP に達する可能性があります。これにどう対処すればよいでしょうか?

解決策: ipset + iblocklist2ipset

インストール:

最も簡単な方法はyumをインストールすることですが、この方法のバージョンは比較的低く、使用されるモジュールパラメータなどがいくつか欠落しています。なので、あまりお勧めしません。

yum install ipset -y

コンパイルしてインストールします:

1. 依存環境:

yum install libmnl libmnl-devel kernel-devel libtool-devel -y

(新しいバージョンのインストール方法: git pull git://git.netfilter.org/libmnl.git) ./autogen.sh を実行します)

(注: libmnl のみをインストールすると、次のエラーが表示されます:

checking for libmnl... configure: error: Package requirements (libmnl >= 1) were not met:
No package 'libmnl' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables libmnl_CFLAGS
and libmnl_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
)

コンパイル時に、/lib/modules/2.6.32-431.el6 というプロンプトが表示される場合があります。 x86_64/source

調査の結果、ソフト リンク /lib/modules/2.6.32-431.el6.x86_64/build -->/usr/src/kernels/2.6.32-431.el6 であることが判明しました。 x86_64 は存在しません

解決策: ソフト接続を再確立します

ln -sb /usr/src/kernels/2.6.32-573.3.1.el6.x86_64 /lib/modules/2.6.32-431.el6.x86_64/build

./autogen.sh を実行すると、エラー メッセージが表示されます:

/usr/share/libtool/

が見つかりません解決策: libtool-devel をインストールしますツール パッケージを作成し、yum install libtool-devel

2 を実行します。ipset をコンパイルしてインストールします (Linux カーネル ソース コード (バージョン >= 2.6.32))

wget -P /usr/local/src http://ipset.netfilter.org/ipset-6.26.tar.bz2
cd /usr/local/src && tar xjf ipset-6.26.tar.bz2 && cd ipset-6.26
./autogen.sh
./configure
make
make modules
make install 
make modules_install

注: Linux カーネルが異なれば、使用するソース コード パッケージのバージョンも異なります

注: Linux カーネル ソース コード (バージョン >= 2.6.16 または >= 2.4.36)

コンパイルとインストール:

wget -P /usr/local/src http://ipset.netfilter.org/ipset-4.5.tar.bz2
cd /usr/local/src && tar xf ipset-4.5.tar.bz2 && cd ipset-4.5
make KERNEL_DIR=http://img.xue163.com/lib/modules/$(shell uname -r)/build     #$(shell uname -r)使用shell命令获取
make KERNEL_DIR=http://img.xue163.com/lib/modules/$(shell uname -r)/build install

よく使用されるコマンド:

ipset list 查看ip集列表信息
ipset create pythontab hash:ip maxelem 1000000  创建一个IP集pythontab,指定类型为hash:ip,设置ip集最多存储IP数为1000000
ipset add pythontab X.X.X.X  增加一个ip地址到IP集pythontab中去
ipset add pythontab X.X.X.X/24  增加一个网段到IP集pythontab中去
ipset dell pythontab X.X.X.X   删除IP集中指定的IP地址
ipset list 查看当前所有list
ipset save pythontab -f pythontab.txt  将IP集pythontab中的信息保存到当前文件目录下面的文件pythontab.txt中
ipset destroy pythontab   删除指定的IP集pythontab  
ipset restore -f pythontab.txt  将保存的pythontab.txt文件中的IP集信息重新导入到ipset中
其他命令参考 ipset --help
iptable命令参考:
iptables -I INPUT -m set --match-set pythontab src -p tcp --destination-port 80 -j DROP #拒绝ipset IP集pythontab中的地址访问服务器的80端口
service iptables save
service iptables restart

自動 IP アドレスの無効化

これで、次の機能が確認できるはずです。 IP コレクション: IP ブラックリストの維持は面倒で時間がかかります。実際には、これを行うことができる無料または有料のサービスがたくさんあります。さらに、IP ブラックリストを IP セットに自動的に追加する方法を見てみましょう。無料のブラックリスト

次に、iblocklist2ipset というオープンソースの Python ツールを使用して、ブラックリストを IP セットに変換します

まず、pip をインストールする必要があります

次のコマンドを使用してインストールします。 iblocklist2ipset

$ pip install iblocklist2ipset

。Fedora などの一部のディストリビューションでは、次のコマンドを実行する必要がある場合があります:

$ python-pip install iblocklist2ipset

次に、iblocklist.com にアクセスして、P2P リスト (「level1」リストなど) の URL を取得します。

それをダウンロードして解凍し、たとえば pythontab.txt という名前の txt ファイルとして保存します。iblocklist2ipset はリストを取得するための URL のみをサポートしているため、pythontab.txt を Web サイトの任意のディレクトリに置きます。例: ipset directory

$ iblocklist2ipset generate --ipset pythontab "http://www.pythontab.com/ipset/pythontab.txt" > pythontab.txt

上記のコマンドを実行すると、pythontab.txt という名前のファイルが取得されます。その内容を表示すると、次のような内容が表示されます:

create pythontab hash:net family inet hashsize 131072 maxelem 237302
add pythontab 1.2.4.0/24
add pythontab 1.2.8.0/24
add pythontab 1.9.75.8/32
add pythontab 1.9.96.105/32
add pythontab 1.9.102.251/32
add pythontab 1.9.189.65/32

次の ipset コマンドを使用してこのファイルをロードできます:

$ ipset restore -f pythontab.txt

これで、自動的に作成された IP セットを表示できます:

$ ipset list pythontab

これにより、手動管理の必要がなくなります。トラブル。

centos で yum を使用してインストールされたバージョンは最新バージョンではないことに注意してください。-f パラメーターとブラックリスト ファイルのインポートがサポートされていない可能性があるため、最新バージョンをインストールするにはソース コード パッケージを使用することをお勧めします。

以上がLinux での攻撃を防ぐために悪意のある IP アドレスをバッチでブロックする方法に関するケーススタディの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。