웹 사이트(워드프레스) 등을 운영하다 보면 여러 가지 보안적인 문제에 직면하게 됩니다.
그냥 넘기면 힘들게 만든 웹사이트가 해킹 공격에 노출되어 경제적 손실, 정보 유출 등 엄청난 타격을 입게 됩니다.
그중 하나인 악성 해킹 시도 IP를 차단하는 방법을 리눅스 명령어인 iptables를 통해 알아보고자 합니다.
포스팅 목차
iptables란?
리눅스 커널의 네트워크 패킷 처리 기능을 제어하는 도구입니다. 이를 통해 사용자는 네트워크 트래픽을 필터링하고 관리
- 패킷 필터링 :
- 소스/대상 IP 주소, 포트 번호, 프로토콜 등을 기준으로 패킷을 허용 또는 차단할 수 있습니다.
- 이를 통해 웹사이트에 대한 악의적인 접근을 차단할 수 있습니다.
- 네트워크 주소 변환(NAT) :
- 내부 IP 주소를 외부 IP 주소로 변환하여 보안을 강화할 수 있습니다.
- 이를 통해 내부 네트워크를 외부로부터 숨길 수 있습니다.
- 로깅 및 모니터링 :
- 차단된 패킷에 대한 로깅 기능을 제공하여 공격 패턴을 분석할 수 있습니다.
- 이를 통해 웹사이트의 보안 상태를 지속적으로 모니터링할 수 있습니다.
- 체인 및 규칙 관리 :
- 사용자 정의 체인을 생성하고 규칙을 관리할 수 있습니다.
- 이를 통해 복잡한 방화벽 정책을 효과적으로 구현할 수 있습니다.
iptables 명령어 간단하게 알아보기.
- 규칙 추가하기:
- iptables -A [체인] -s [소스 IP] -j [타겟]
- 예시) iptables -A INPUT -s 192.168.1.100 -j DROP
- 규칙 삭제하기:
- iptables -D [체인] [규칙 번호]
- 예시) iptables -D INPUT 1
- 체인 관리하기:
- iptables -N [새 체인 이름]
- iptables -P [체인 이름] [정책] (ACCEPT, DROP, REJECT)
- 예시) iptables -N BLOCKED_IPS iptables -P BLOCKED_IPS DROP
- 포트 차단하기:
- iptables -A [체인] -p tcp –dport [포트번호] -j [타겟]
- 예시) iptables -A INPUT -p tcp –dport 80 -j DROP
- 로깅 설정하기:
- iptables -A [체인] -j LOG –log-prefix “[로그 메시지]”
- 예시) iptables -A INPUT -s 192.168.1.100 -j LOG –log-prefix “Blocked IP: “
이렇게 간단한 명령어 + 옵션을 통해서 쉽게 보안 강화를 할 수 있습니다.
이제 직접 제 웹사이트인 endoflinux.com에 적용을 시켜보겠습니다.
웹사이트 IP차단
위의 글을 토대로 수집한 로그의 IP를 차단하겠습니다.
아래 로그를 보면 IP(79.110.49.194)를 아래 링크의 주소에서 검색을 통해 사용자들이 신고한 내역이 있는지 파악을 합니다.
https://www.abuseipdb.com/check/79.110.49.194
이렇게 리포트 건수가 많은 IP등은 대부분 포트스캔, 무차별 대입 공격 등을 진행했을 수 있습니다.
- 특정 IP 차단 규칙 추가하기
- iptables -A INPUT -s [차단할 IP 주소] -j DROP
- iptables 규칙 저장하기
- iptables-save > /etc/iptables/rules.v4
- 저장된 규칙을 자동으로 로드하도록 설정하기
- vi /etc/network/interfaces
- 아래 내용을 추가
pre-up iptables-restore < /etc/iptables/rules.v4
- 서버 재부팅 후 확인하기
- 서버를 재부팅하면 /etc/iptables/rules.v4 파일의 내용이 자동으로 로드되어 적용됩니다.
- iptables -L 명령어로 규칙이 제대로 적용되었는지 확인할 수 있습니다.
# iptables -A INPUT -s 79.110.49.194 -j DROP
# iptables-save > /etc/iptables/rules.v4
이렇게 설정을 하게 되면 서버 리부팅 후 룰리 적용이 안될수도 있습니다.
추가 적으로 vi /etc/network/interfaces 경로에 아래와 같이 추가해주도록 합니다.
pre-up iptables-restore < /etc/iptables/rules.v4
이렇게 간단하게 IP 수집부터 차단까지 간단하게 알아봤습니다.