目次
コンパイルしてインストールします:
1. 依存環境:
2 を実行します。ipset をコンパイルしてインストールします (Linux カーネル ソース コード (バージョン >= 2.6.32))
自動 IP アドレスの無効化
ホームページ 運用・保守 Linuxの運用と保守 Linux での攻撃を防ぐために悪意のある IP アドレスをバッチでブロックする方法に関するケーススタディ

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

Jun 07, 2017 am 10:28 AM

多くの場合、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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CentosとUbuntuの違い CentosとUbuntuの違い Apr 14, 2025 pm 09:09 PM

Centosとubuntuの重要な違いは次のとおりです。起源(CentosはRed Hat、for Enterprises、UbuntuはDebianに由来します。個人用のDebianに由来します)、パッケージ管理(CentosはYumを使用し、安定性に焦点を当てます。チュートリアルとドキュメント)、使用(Centosはサーバーに偏っています。Ubuntuはサーバーやデスクトップに適しています)、その他の違いにはインストールのシンプルさが含まれます(Centos is Thin)

Centosをインストールする方法 Centosをインストールする方法 Apr 14, 2025 pm 09:03 PM

Centosのインストール手順:ISO画像をダウンロードし、起動可能なメディアを燃やします。起動してインストールソースを選択します。言語とキーボードのレイアウトを選択します。ネットワークを構成します。ハードディスクをパーティション化します。システムクロックを設定します。ルートユーザーを作成します。ソフトウェアパッケージを選択します。インストールを開始します。インストールが完了した後、ハードディスクから再起動して起動します。

Centosはメンテナンスを停止します2024 Centosはメンテナンスを停止します2024 Apr 14, 2025 pm 08:39 PM

Centosは、上流の分布であるRhel 8が閉鎖されたため、2024年に閉鎖されます。このシャットダウンはCentos 8システムに影響を与え、更新を継続し続けることができません。ユーザーは移行を計画する必要があり、提案されたオプションには、Centos Stream、Almalinux、およびRocky Linuxが含まれ、システムを安全で安定させます。

Centosのgitlabのバックアップ方法は何ですか Centosのgitlabのバックアップ方法は何ですか Apr 14, 2025 pm 05:33 PM

Centosシステムの下でのGitlabのバックアップと回復ポリシーデータセキュリティと回復可能性を確保するために、Gitlab on Centosはさまざまなバックアップ方法を提供します。この記事では、いくつかの一般的なバックアップ方法、構成パラメーター、リカバリプロセスを詳細に紹介し、完全なGitLabバックアップと回復戦略を確立するのに役立ちます。 1.手動バックアップGitlab-RakeGitlabを使用:バックアップ:コマンドを作成して、マニュアルバックアップを実行します。このコマンドは、gitlabリポジトリ、データベース、ユーザー、ユーザーグループ、キー、アクセスなどのキー情報をバックアップします。デフォルトのバックアップファイルは、/var/opt/gitlab/backupsディレクトリに保存されます。 /etc /gitlabを変更できます

Dockerの原則の詳細な説明 Dockerの原則の詳細な説明 Apr 14, 2025 pm 11:57 PM

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

Dockerデスクトップの使用方法 Dockerデスクトップの使用方法 Apr 15, 2025 am 11:45 AM

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

セントスにハードディスクをマウントする方法 セントスにハードディスクをマウントする方法 Apr 14, 2025 pm 08:15 PM

CentOSハードディスクマウントは、次の手順に分割されます。ハードディスクデバイス名(/dev/sdx)を決定します。マウントポイントを作成します( /mnt /newdiskを使用することをお勧めします);マウントコマンド(Mount /dev /sdx1 /mnt /newdisk)を実行します。 /etc /fstabファイルを編集して、永続的なマウント構成を追加します。 Umountコマンドを使用して、デバイスをアンインストールして、プロセスがデバイスを使用しないことを確認します。

Centosがメンテナンスを停止した後の対処方法 Centosがメンテナンスを停止した後の対処方法 Apr 14, 2025 pm 08:48 PM

CentOSが停止した後、ユーザーは次の手段を採用して対処できます。Almalinux、Rocky Linux、Centosストリームなどの互換性のある分布を選択します。商業分布に移行する:Red Hat Enterprise Linux、Oracle Linuxなど。 Centos 9ストリームへのアップグレード:ローリングディストリビューション、最新のテクノロジーを提供します。 Ubuntu、Debianなど、他のLinuxディストリビューションを選択します。コンテナ、仮想マシン、クラウドプラットフォームなどの他のオプションを評価します。

See all articles