ipTime 공유기 무단 접속 IP 차단하기

iptime공유기에 국가별 차단 기능이 생겼다고 해서.. 라는 글을 보고 공유기를 업데이트 해 보니, 진짜로 IP 차단 기능이 생긴 것을 확인하였습니다.

그런데 UI가 조막만해서 IP를 일일이 관리하고 차단하기가 너무 어려웠어요. 오호라? UI를 잘 보니 규칙을 파일로 백업하는 기능이 있었지 뭡니까? 이것으로 .cfg라는 파일을 생성하는 것을 확인하였습니다.

Type=firewall # Do not modify
Version=1.0.0 # Do not modify
lang=utf-8 # Do not modify

[차단 #1]
enable = 1
schedule = 0000000 0000 0000
flag = 0
{
	direction = outin
	src_type = ip
	dest_ip_address = {start}-{end}
	protocol = none
	policy = drop
}
[차단 #2]
enable = 1
schedule = 0000000 0000 0000
flag = 0
{
	direction = outin
	src_type = ip
	dest_ip_address = {start}-{end}
	protocol = none
	policy = drop
}

위는 그 cfg 파일의 샘플입니다. 대략 24시간 외부에서 내부로 접속하는 특정 IP 대역을 차단하도록 설정한 예입니다. {start}와 {end}에 각각 IPv4 형태로 문자열을 넣어주면 됩니다.

처음에는 한국 인터넷 정보 센터 (KRNIC)에 가서 모든 국가별 IP 할당 대역을 파악한 후, 특정 국가의 IP를 전부 차단시킬 생각습니다. 그러나 공유기의 성능 한계가 있어 200개까지 등록되지 않는다는 제약이 있어 이렇게는 할 수 없더군요. 예를 들어, 중국의 모든 IP 대역 등록건만 해도 8000여개에 달하니까요.

그래서 이렇게 많은 양의 IP 대역에 대해 애쓰기보다는, 관리자 로그 파일을 보고 내 공유기에 천착하는 IP만 차단하기로 했습니다. IP 타임 관리자 로그를 보면 다음처럼 나옵니다.

2022/03/11 09:02:22	DHCP 서버가 IP 할당함: 192.168.10.32 (MAC : XX-XX-XX-XX-XX-XX)
2022/03/11 08:20:19	잘못된 VPN 계정 또는 암호로 접속을 시도 하였습니다(qq, XXX.XXX.XXX.XXX)

2번째줄입니다. 어디선지는 모르지만 VPN 계정이나 관리자 로그인을 노리고 집요하게 뭔가 하는 것입니다. qq라는 id로 로그인 실패를 했고, 뒤에 원격 IP가 나옵니다.

IP 조회를 해 보면, 진짜 아무 연고도 없는 곳입니다. 이제 로그 특정 부분을 따다 IP 부분만 수집합니다.

우선 아래 그림처럼 공유기 관리자 로그를 복사해 파일로 만듭니다.

지금은 깨끗이 비어 있지만, 놓아두면 로그가 많이 쌓입니다.

파일의 로그에서 IP만 추출해 설정 파일로 만들어 주는 파이썬 스크립트를 제작했습니다. 로그 파일의 이름이 log.txt라면 이것을,

python iptime_block_from_log.py < log.txt > rule.cfgCode language: CSS (css)

처럼 입력합니다. 그러면 rule.cfg 파일이 만들어 집니다. 그럼 이 cfg 파일을 공유기에 올려 두면 됩니다.

1번을 눌러 파일을 선택, 2를 눌러 공유기로 전송

저는 이렇게 적용 후, 확실히 해당 지역에서 무단 접속이 사라진 것으로 보입니다. 효과가 나름 있는 거 같네요. 다만 공유기의 로그도 무한히 있는 것도 아닙니다. 최대 400개가 한계이니 더 다양한 IP를 차단할 수 있으려면 좀 더 로그나 IP를 쌓아두고 관리하면서 차단할 수 있어야 하겠네요. 일단 이번에는 여기까지 만들어 보고 더 나은 버전은 차후에 고민해 보겠습니다.

덧, 이후 계속 “잘못된 VPN 계정 또는 암호로 접속을 시도 하였습니다” 메시지와 차단한 IP가 기록되네요. 이 방법으로는 접속 자체를 막지 못하는 것 같습니다.

댓글 남기기