Linuxで悪意のあるIPアドレスを一括ブロックして攻撃を防ぐ方法を詳しく解説

巴扎黑
リリース: 2017-08-21 15:22:46
オリジナル
2843 人が閲覧しました

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

解決策: ipset + iblocklist2ipset

インストール:

公式ウェブサイト: http://ipset.netfilter.org/install.html

最も簡単な方法は 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 ツール パッケージを作成し、libtool-devel を yum インストールするだけです

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 コレクションに自動的に追加する方法を見てみましょう。無料のブラックリストを取得するには、iblocklist.com から始めましょう

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

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

次のコマンドを使用しますiblocklist2ipset をインストールするには、

$ pip install iblocklist2ipset
ログイン後にコピー

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

$ python-pip install iblocklist2ipset
ログイン後にコピー

次に、iblocklist.com にアクセスして、任意の P2P リスト (「レベル 1」リストなど) の 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!