>운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux에서 공격을 방지하기 위해 악성 IP 주소를 일괄 차단하는 방법에 대한 사례 연구

Linux에서 공격을 방지하기 위해 악성 IP 주소를 일괄 차단하는 방법에 대한 사례 연구

黄舟
黄舟원래의
2017-06-07 10:28:432308검색

많은 경우 Linux에서는 IP 주소를 차단해야 할 수도 있습니다. 예를 들어 최종 사용자는 스파이웨어나 IP 추적으로부터 보호를 원할 수 있습니다. 시스템 관리자라면 스팸 IP 주소가 회사 메일 서버에 액세스하지 못하도록 차단할 수 있습니다. 또는 어떤 이유로든 특정 국가에서 귀하의 웹 서비스에 액세스하는 것을 금지하고 싶습니다. 그러나 대부분의 경우 IP 주소 차단 목록은 수만 개의 IP로 빠르게 늘어날 수 있습니다. 이 문제를 어떻게 처리합니까?

솔루션: ipset + iblocklist2ipset

Installation:

가장 쉬운 방법은 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을 컴파일하고 설치하세요(리눅스 커널 소스 코드(버전 >= 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 커널은 서로 다른 버전의 소스 코드 패키지를 사용합니다

참고: 리눅스 커널 소스 코드 (버전 >= 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를 웹사이트의 아무 디렉터리에나 넣으세요. 예: 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으로 문의하세요.