多くの場合、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 iblocklist2ipset
$ python-pip install iblocklist2ipset
$ iblocklist2ipset generate --ipset pythontab "http://www.pythontab.com/ipset/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 restore -f pythontab.txt
$ ipset list pythontab
centos で yum を使用してインストールされたバージョンは最新バージョンではないことに注意してください。-f パラメーターとブラックリスト ファイルのインポートがサポートされていない可能性があるため、最新バージョンをインストールするにはソース コード パッケージを使用することをお勧めします。
以上がLinuxで悪意のあるIPアドレスを一括ブロックして攻撃を防ぐ方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。