많은 경우 Linux에서는 IP 주소를 차단해야 할 수도 있습니다. 예를 들어 최종 사용자는 스파이웨어나 IP 추적으로부터 보호를 원할 수 있습니다. 시스템 관리자라면 스팸 IP 주소가 회사 메일 서버에 액세스하지 못하도록 차단할 수 있습니다. 또는 어떤 이유로든 특정 국가에서 귀하의 웹 서비스에 액세스하는 것을 금지하고 싶습니다. 그러나 대부분의 경우 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 Run ./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
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!