多くの場合、Linux では IP アドレスをブロックする必要がある場合があります。たとえば、エンド ユーザーは、スパイウェアや IP 追跡から保護したい場合があります。システム管理者は、スパム IP アドレスによる企業メール サーバーへのアクセスを禁止したい場合があります。または、何らかの理由で特定の国による Web サービスへのアクセスを禁止したい場合があります。ただし、多くの場合、IP アドレス ブロック リストはすぐに数万の IP に達する可能性があります。これにどう対処すればよいでしょうか?
解決策: ipset + iblocklist2ipset
公式ウェブサイト: http://ipset.netfilter.org/install.html
最も簡単な方法は yum をインストールすることですが、この方法のバージョンは比較的低いです一部の使用モジュールパラメータなどが不足しているため、推奨されません。
yum install ipset -y
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 インストールするだけです
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 コレクションに自動的に追加する方法を見てみましょう。無料のブラックリストを取得するには、iblocklist.com から始めましょう
次に、iblocklist2ipset というオープンソースの Python ツールを使用して、ブラックリストを IP セットに変換します
まず、pip をインストールする必要があります
次のコマンドを使用しますiblocklist2ipset をインストールするには、
$ pip install iblocklist2ipsetFedora などの一部のディストリビューションでは、次のコマンドを実行する必要がある場合があります:
$ 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 サイトの他の関連記事を参照してください。