집 >운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux에서 공격을 방지하기 위해 악성 IP 주소를 일괄 차단하는 방법에 대한 사례 연구
많은 경우 Linux에서는 IP 주소를 차단해야 할 수도 있습니다. 예를 들어 최종 사용자는 스파이웨어나 IP 추적으로부터 보호를 원할 수 있습니다. 시스템 관리자라면 스팸 IP 주소가 회사 메일 서버에 액세스하지 못하도록 차단할 수 있습니다. 또는 어떤 이유로든 특정 국가에서 귀하의 웹 서비스에 액세스하는 것을 금지하고 싶습니다. 그러나 대부분의 경우 IP 주소 차단 목록은 수만 개의 IP로 빠르게 늘어날 수 있습니다. 이 문제를 어떻게 처리합니까?
가장 쉬운 방법은 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 도구를 설치하세요. 패키지를 설치하고 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 커널은 서로 다른 버전의 소스 코드 패키지를 사용합니다
참고: 리눅스 커널 소스 코드 (버전 >= 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 세트에 자동으로 추가하는 방법을 살펴보겠습니다. 무료 블랙리스트
다음으로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!