웹사이트 검색

Linux 시스템에 대한 Ping ICMP 요청을 차단하는 방법


일부 시스템 관리자는 거친 네트워크에서 Linux 상자를 외부 세계에 숨기거나 일종의 IP 플러딩 및 서비스 거부 공격을 방지하기 위해 서버에 대한 ICMP 메시지를 차단하는 경우가 많습니다.

Linux 시스템에서 ping 명령을 차단하는 가장 간단한 방법은 아래 예와 같이 iptables 규칙을 추가하는 것입니다. Iptables는 Linux 커널 netfilter의 일부이며 일반적으로 대부분의 Linux 환경에 기본적으로 설치됩니다.

iptables -A INPUT --proto icmp -j DROP
iptables -L -n -v  [List Iptables Rules]

Linux 시스템에서 ICMP 메시지를 차단하는 또 다른 일반적인 방법은 모든 ping 패킷을 삭제하는 아래 커널 변수를 추가하는 것입니다.

echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_all

위 규칙을 영구적으로 적용하려면 /etc/sysctl.conf 파일에 다음 줄을 추가한 후 sysctl 명령을 사용하여 규칙을 적용하세요.

echo “net.ipv4.icmp_echo_ignore_all = 1” >> /etc/sysctl.conf 
sysctl -p

UFW 애플리케이션 방화벽과 함께 제공되는 Debian 기반 Linux 배포판에서는 그림과 같이 /etc/ufw/before.rules 파일에 다음 규칙을 추가하여 ICMP 메시지를 차단할 수 있습니다. 아래 발췌에서.

-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

아래 명령을 실행하여 UFW 방화벽을 다시 시작하여 규칙을 적용합니다.

ufw disable && ufw enable

Firewalld 인터페이스를 사용하여 iptables 규칙을 관리하는 CentOS 또는 Red Hat Enterprise Linux 배포판에서 아래 규칙을 핑 메시지를 삭제합니다.

firewall-cmd --zone=public --remove-icmp-block={echo-request,echo-reply,timestamp-reply,timestamp-request} --permanent	
firewall-cmd --reload

위에서 설명한 모든 경우에 방화벽 규칙이 성공적으로 적용되었는지 테스트하려면 원격 시스템에서 Linux 시스템 IP 주소를 ping해 보세요. ICMP 메시지가 Linux 상자에 차단된 경우 원격 시스템에서 "요청 시간 초과" 또는 "대상 호스트에 연결할 수 없음" 메시지를 받아야 합니다.