Advertisement
Guest User

Untitled

a guest
Apr 25th, 2019
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.94 KB | None | 0 0
  1. exchange () {
  2. echo "==============================="
  3. echo "    Exchange checking Tool"
  4. echo "==============================="
  5. echo ""
  6.  
  7. if [ "$1" == "" ]
  8.     then
  9.         echo "Renseignez le nom de domaine à analyser (exemple : ./general.sh domaine.fr)"
  10.         exit 0
  11. fi
  12.  
  13. echo "checking NS records for $1:"
  14. echo "-------------------------------------------------"
  15. ns="$(dig ns $1 +short)"
  16. rm="==> PASS"
  17. if [ "$mx" == "" ]
  18.     then
  19.         echo "no NS records found for $1"
  20.         echo "==> ERROR"
  21.         rm="==> ERROR"
  22. else
  23.         echo "$ns"
  24.  
  25. fi
  26.  
  27. echo "checking MX records for $1:"
  28. echo "-------------------------------------------------"
  29. mx="$(dig MX $1 +short)"
  30. if [ "$mx" == "" ]
  31.     then
  32.         echo "no MX records found for $1"
  33.         echo "==> ERROR"
  34.         rm="==> ERROR"
  35.     else
  36.         echo "$mx"
  37.  
  38.         r="$(dig MX $1 +short | grep mx1.mail.ovh.net)"
  39.         if [ "" == "$r" ]
  40.             then mx1=0
  41.             else mx1=1
  42.         fi
  43.  
  44.         r="$(dig MX $1 +short | grep mx2.mail.ovh.net)"
  45.         if [ "" == "$r" ]
  46.             then mx2=0
  47.             else mx2=1
  48.         fi
  49.  
  50.         r="$(dig MX $1 +short | grep mx3.mail.ovh.net)"
  51.         if [ "" == "$r" ]
  52.             then mx3=0
  53.             else mx3=1
  54.         fi
  55.  
  56.         if [ $mx1 -eq 1 -a $mx2 -eq 1 -a $mx3 -eq 1 ]
  57.             then echo "==> PASS"
  58.             else
  59.                 echo "==> WARNING"
  60.                 rm="==> WARNING"
  61.         fi
  62. fi
  63.  
  64. echo ""
  65. echo "checking SPF records for $1:"
  66. echo "-------------------------------------------------"
  67. txt="$(dig TXT $1 +short | sed ':a;N;$!ba;s/\n/\n\t /g')"
  68. spf="$(dig SPF $1 +short | sed ':a;N;$!ba;s/\n/\n\t /g')"
  69.  
  70. if [ "$txt" != "" ]
  71.     then {
  72.         if [ "$spf" != "" ]
  73.             then
  74.                 echo "SPF :    $spf"
  75.                 echo "TXT :    $txt"
  76.                 r="==> WARNING"
  77.  
  78.             else
  79.                 echo "TXT :    $txt"
  80.                 r="==> PASS"
  81.         fi }
  82.     else {
  83.         if [ "$spf" != "" ]
  84.             then
  85.                 echo "SPF :    $spf"
  86.                 r="==> PASS"
  87.             else
  88.                 echo "No SPF record could be found"
  89.                 r="==> ERROR"
  90.         fi }
  91. fi
  92.  
  93. echo ""
  94. if [ "$r" == "==> ERROR" ]
  95.     then
  96.         echo "$r"
  97.     else {
  98.         e="$(dig SPF $1 +short | grep 'v=spf1 include:mx.ovh.com')"
  99.         t="$(dig TXT $1 +short | grep 'v=spf1 include:mx.ovh.com')"
  100.         if [ "$e" == "" -a "$t" == "" ]
  101.             then
  102.                 echo "SPF does not fit the OVH requirements"
  103.                 echo "==> ERROR"
  104.                 r="==> ERROR"
  105.             else {
  106.                 if [ "$r" == "==> WARNING" ]
  107.                     then echo "There are two entries 'SPF' and 'TXT'"
  108.                 fi
  109.                 echo "$r"
  110.             }
  111.         fi
  112.     }
  113. fi
  114. rspf="$r"
  115.  
  116. echo ""
  117. echo "checking Wildcard Domain for $1:"
  118. echo "-------------------------------------------------"
  119. w="$(dig A fjsurhfbvhiughegkelhrgr-wildcard.$1 +short)"
  120.  
  121. if [ "$w" == "" ]
  122.     then
  123.         echo "==> PASS"
  124.         rw="==> PASS"
  125.     else
  126.         echo "It seems that a wildcard domain is used"
  127.         echo "==> ERROR"
  128.         rw="==> ERROR"
  129.  
  130. fi
  131.  
  132. echo ""
  133. echo "checking Autodiscover A-entry for $1:"
  134. echo "-------------------------------------------------"
  135. a="$(dig A autodiscover.$1 +short)"
  136.  
  137. if [ "$a" != "" ]
  138.     then
  139.         echo "$a"
  140.         echo ""
  141. fi
  142.  
  143. if [ "$a" == "" ]
  144.     then
  145.         echo "==> PASS"
  146.         ra="==> PASS"
  147.     else
  148.         echo "It seems that an Autodiscover A-entry for domain $1 exists"
  149.         echo "==> WARNING"
  150.         ra="==> WARNING"
  151. fi
  152.  
  153. echo ""
  154. echo "checking Autodiscover SRV-entry for $1:"
  155. echo "-------------------------------------------------"
  156. srv="$(dig SRV _autodiscover._tcp.$1 +short)"
  157.  
  158. echo "$srv"
  159. if [ "$srv" != "" ]
  160.     then {
  161.         r="==> PASS"
  162.         srv_p="$(dig SRV _autodiscover._tcp.$1 +short| grep '443 ')"
  163.         if [ "$srv_p" == "" ]
  164.             then
  165.                 echo "Port for SRV-entry is not correct"
  166.                 r="==> ERROR"
  167.         fi
  168.  
  169.         srv_z="$(dig SRV _autodiscover._tcp.$1 +short| grep 'ex[2,3]\{0,1\}\.mail\.ovh\.net')"
  170.         if [ "$srv_z" == "" ]
  171.             then
  172.                 echo "Target for SRV-entry is not correct"
  173.                 r="==> ERROR"
  174.         fi
  175.         echo "$r"
  176.         rsrv="$r"
  177.     }
  178.     else
  179.         echo "No Autodiscover SRV-entry for domain $1 could be found"
  180.         echo "==> WARNING"
  181.         rsrv="==> WARNING"
  182. fi
  183.  
  184. rall="==> PASS"
  185. if [ "$rm" == "==> WARNING" -o "$rspf" == "==> WARNING" -o "$rw" == "==> WARNING" -o "$ra" == "==> WARNING" -o "$rsrv" == "==> WARNING" ]
  186.     then
  187.         rall="==> WARNING"
  188. fi
  189.  
  190. if [ "$rm" == "==> ERROR" -o "$rspf" == "==> ERROR" -o "$rw" == "==> ERROR" -o "$ra" == "==> ERROR" -o "$rsrv" == "==> ERROR" ]
  191.     then
  192.         rall="==> ERROR"
  193. fi
  194.  
  195. echo ""
  196. echo "==============================="
  197. echo "Global result $rall"
  198. }
  199.  
  200. exchange $1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement