쉘스크립트를 이용한 메일 IP 평판 확인하기 (block list 등록 여부)
# 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 |
'리눅스 > Mail' 카테고리의 다른 글
Sendmail 403 4.7.0 TLS handshake failed 해결 방법 (0) | 2023.01.05 |
---|---|
Sendmail dns=5.6.0, stat=Data format error 해결 방법 (0) | 2023.01.05 |
메일 포워딩 하면서 수신자 이메일 변경하기 (sendmail + incrontab + shell script) (0) | 2021.03.25 |
command line 명령어로 메일 보내기 (php) (0) | 2020.02.20 |
command line 명령어로 메일 보내기 (mail) - 한글 제목 불가 (0) | 2020.02.20 |