쉘스크립트를 이용한 메일 IP 평판 확인하기 (block list 등록 여부)

리눅스/Mail|2021. 12. 21. 08:53
반응형

# vi blcheck

#!/bin/sh

# 조회할 사이트 목록
BLISTS="
    cbl.abuseat.org
    dnsbl.sorbs.net
    bl.spamcop.net
    zen.spamhaus.org
"

# 에러 처리 (인자값 누락)
ERROR() {
  echo $0 ERROR: $1 >&2
  exit 2
}
[ $# -ne 1 ] && ERROR 'Please specify a single IP address'

# 역방향으로 IP 정렬
reverse=$(echo $1 |
sed -ne "s~^\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)$~\4.\3.\2.\1~p")
if [ "x${reverse}" = "x" ] ; then
      ERROR  "IMHO '$1' doesn't look like a valid IP address"
      exit 1
fi

# 역방향 DNS 조회 수행
REVERSE_DNS=$(dig +short -x $1)
echo IP $1 NAME ${REVERSE_DNS:----}

# 반복 처리
for BL in ${BLISTS} ; do
    # 시간 출력
    printf $(env TZ=Asia/Seoul date "+%Y-%m-%d_%H:%M:%S")
    # 반전된 IP 와 블랙 리스트 출력
    printf "%-50s" " ${reverse}.${BL}."
    # dig 를 이용하여 블랙 리스트에서 IP 조회
    LISTED="$(dig +short -t a ${reverse}.${BL}.)"
    echo ${LISTED:----}
done

[출처] https://www.saotn.org/bash-check-ip-address-blacklist-status/

* 출처에서 더 많은 정보를 표시하고 있습니다. 소스가 필요하신 분은 꼭 한번 방문해 보시기 바랍니다.

 

# chmod 700 blcheck

# blcheck 10.20.30.40    // 체크하고자 하는 IP 를 인자값으로 넣는다.

 

(결과 : 블록되지 않은 상태)

IP 10.20.30.40 NAME ---
2021-12-20_23:49:57 [your_api_key].40.30.20.10.dnsbl.httpbl.org.     ---
2021-12-20_23:49:58 40.30.20.10.cbl.abuseat.org.                     ---
2021-12-20_23:49:58 40.30.20.10.dnsbl.sorbs.net.                     ---
2021-12-20_23:49:59 40.30.20.10.bl.spamcop.net.                      ---
2021-12-20_23:49:59 40.30.20.10.zen.spamhaus.org.                    ---
2021-12-20_23:49:59 40.30.20.10.combined.njabl.org.                  ---

 

(결과 : 블록 된 상태)

IP 10.20.30.40 NAME ---
2021-12-20_23:49:57 [your_api_key].40.30.20.10.dnsbl.httpbl.org.     ---
2021-12-20_23:49:58 40.30.20.10.cbl.abuseat.org.                    127.0.0.2
2021-12-20_23:49:58 40.30.20.10.dnsbl.sorbs.net.                     ---
2021-12-20_23:49:59 40.30.20.10.bl.spamcop.net.                      ---
2021-12-20_23:49:59 40.30.20.10.zen.spamhaus.org.                    127.0.0.4
2021-12-20_23:49:59 40.30.20.10.combined.njabl.org.                  ---

 

Cisco 에서 제공하는 메일 평판 정보와 비교를 해보면 (talosintelligence.com)

127.0.0.2 같은 결과가 출력되는 것이 블랙 리스트로 등록된 경우 입니다.

 

저는 위와 같이 [출처] 의 스크립트를 약간 수정하여 사용했는데

키발급 및 체크가 약간 소요되는 두 개의 라인을 체크 대상에서 제외하였으며

dnsbl.httpbl.org

combined.njabl.org

 

한국 표준 시간 사용을 위해 아래 내용으로 수정하였습니다.

env TZ=Asia/Seoul

 

필요하신 분은 [출처] 에 추가된 내용과 같이 별도 스크립트를 만들어서 반복 조회를 할 수 있습니다.

for address in `cat iplist.txt`;
   do ./blcheck $address;
   sleep 2;
   done

 

반응형

댓글()