>  기사  >  운영 및 유지보수  >  공격을 방지하기 위해 Linux에서 악성 IP 주소를 일괄 차단하는 방법에 대한 자세한 설명

공격을 방지하기 위해 Linux에서 악성 IP 주소를 일괄 차단하는 방법에 대한 자세한 설명

巴扎黑
巴扎黑원래의
2017-08-21 15:22:462853검색

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

2. ipset 컴파일 및 설치(리눅스 커널 소스 코드(버전 >= 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 목록(예: "level1" 목록)의 URL을 가져옵니다.

다운로드하고 압축을 푼 다음 pythontab.txt라는 txt 파일로 저장하세요. iblocklist2ipset은 목록을 가져오는 URL만 지원하므로 pythontab.txt를 웹사이트의 아무 디렉터리에나 넣으세요. 예: ipset 디렉토리

$ 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.