/
opt
/
dedrads
/
/opt/dedrads
mkdir
upload
Name
Size
Mode
Actions
account_review/
-
0555
rm
check_software_mods/
-
0555
rm
cms_tools/
-
0555
rm
etc/
-
0555
rm
extras/
-
0555
rm
mailparse/
-
0555
rm
mysql/
-
0555
rm
nlp_scripts/
-
0555
rm
oldrads/
-
0555
rm
perl/
-
0555
rm
provision/
-
0555
rm
python/
-
0555
rm
suspended/
-
0555
rm
__pycache__/
-
0555
rm
account-review
799
0555
edit
dl
rm
allfw
6259
0555
edit
dl
rm
alp.py
16553
0555
edit
dl
rm
autossl_sync
6267
0555
edit
dl
rm
check_apache
9205
0555
edit
dl
rm
check_bandwidth
4546
0555
edit
dl
rm
check_boxtrapper
1684
0555
edit
dl
rm
check_cpu
12212
0555
edit
dl
rm
check_crons
1827
0555
edit
dl
rm
check_dcpumon
1973
0555
edit
dl
rm
check_dns
1827
0555
edit
dl
rm
check_domlogs
61
0555
edit
dl
rm
check_exim
3731
0555
edit
dl
rm
check_hacks
22604
0555
edit
dl
rm
check_imap
5249
0555
edit
dl
rm
check_io
6635
0555
edit
dl
rm
check_max_children
16341
0555
edit
dl
rm
check_mem
1660
0555
edit
dl
rm
check_misc
1510
0555
edit
dl
rm
check_pacct
5201
0555
edit
dl
rm
check_php
4344
0555
edit
dl
rm
check_pop3
2295
0555
edit
dl
rm
check_prov.py
4714
0555
edit
dl
rm
check_server
696
0555
edit
dl
rm
check_size
490
0555
edit
dl
rm
check_software
9849
0555
edit
dl
rm
check_spamd
2426
0555
edit
dl
rm
check_traffic
1933
0555
edit
dl
rm
check_user
1887
0555
edit
dl
rm
clean_exim.py
6390
0555
edit
dl
rm
clusterfix
5343
0555
edit
dl
rm
cmspass.py
3970
0555
edit
dl
rm
cms_check.py
9825
0555
edit
dl
rm
cms_counter.py
36734
0555
edit
dl
rm
cms_creds
713
0555
edit
dl
rm
cms_dumpdb
4485
0555
edit
dl
rm
cms_pw
1416
0555
edit
dl
rm
cpanel-api
7040
0555
edit
dl
rm
cpanel_postgres_manager.py
29004
0555
edit
dl
rm
cpmerge
4631
0555
edit
dl
rm
cpumon
2195
0555
edit
dl
rm
dcpumon.pl
1239
0555
edit
dl
rm
dedcheck
18127
0555
edit
dl
rm
dns-sync
14386
0555
edit
dl
rm
docroot.py
4425
0555
edit
dl
rm
du-tree
7450
0555
edit
dl
rm
envinfo.py
6633
0555
edit
dl
rm
exclude_rbl.py
5249
0555
edit
dl
rm
extract-vhost
2691
0555
edit
dl
rm
filescan
3566
0555
edit
dl
rm
find_warez
1460
0555
edit
dl
rm
first_setup.py
19120
0555
edit
dl
rm
fixwpcron.py
4822
0555
edit
dl
rm
fix_dns_cluster
353
0555
edit
dl
rm
goaccess
1217720
0555
edit
dl
rm
hostsfilemods
4467
0555
edit
dl
rm
imap_io
2323
0555
edit
dl
rm
innodb_converter.py
9343
0555
edit
dl
rm
killall911
530
0555
edit
dl
rm
killdns
941
0555
edit
dl
rm
lastcommcache.sh
1374
0555
edit
dl
rm
legal_lock_down.sh
7450
0555
edit
dl
rm
lil-cpanel
52002
0555
edit
dl
rm
listacct
4575
0555
edit
dl
rm
mailscan
4544
0555
edit
dl
rm
mail_sources.py
7407
0555
edit
dl
rm
megaclisas-status
38664
0555
edit
dl
rm
migrate2central.sh
14418
0555
edit
dl
rm
modify-account
40631
0555
edit
dl
rm
modsec_disable.py
11461
0555
edit
dl
rm
monarxctl
8912
0555
edit
dl
rm
msp.pl
27714
0555
edit
dl
rm
mysql_dstat
474
0555
edit
dl
rm
mysql_selector.py
73102
0555
edit
dl
rm
nlp
4582
0555
edit
dl
rm
procscrape
1863
0555
edit
dl
rm
quarantine
11083
0555
edit
dl
rm
radsfunctions.sh
863
0555
edit
dl
rm
recent-cp
16148
0555
edit
dl
rm
remote_dump
18347
0555
edit
dl
rm
reset_cpanel
3205
0555
edit
dl
rm
server-load
2192
0555
edit
dl
rm
show-conns
20105
0555
edit
dl
rm
show-conns-adv.py
54667
0555
edit
dl
rm
sparta.py
382498
0555
edit
dl
rm
sqltop
27129
0555
edit
dl
rm
telcheck
2411
0555
edit
dl
rm
temprootreset
186
0555
edit
dl
rm
unsuspend_user
1307
0555
edit
dl
rm
unsusprunner.sh
1840
0555
edit
dl
rm
updatednsadmin
526
0555
edit
dl
rm
update_spf
14972
0555
edit
dl
rm
upgrade-check
9216
0555
edit
dl
rm
vhost_data.py
6221
0555
edit
dl
rm
wp-xray.sh
85816
0555
edit
dl
rm
Edit:
/opt/dedrads/check_prov.py
(4714B)
#!/usr/lib/rads/venv/bin/python3 # Check some things to make sure the vps provisioning went well # 6/19/2017 Nathan <nathans@inmotionhosting.com> import sys import os import socket import dns.resolver # pylint: disable=no-name-in-module from netifaces import interfaces, ifaddresses, AF_INET import rads LOG_FILE = '/root/prov_log' def ip4_addresses(): """List ipv4 addresses setup on this system""" ip_list = [] for interface in interfaces(): if AF_INET in ifaddresses(interface): for link in ifaddresses(interface)[AF_INET]: ip_list.append(link['addr']) return ip_list def get_mainip(): """This should only be run on brand new vps. so there will be 2 IP's. The main IP and a local address""" main_ip = None with open('/etc/wwwacct.conf', encoding='utf-8') as f: for line in f.readlines(): if not line.strip(): continue if line.split()[0] == 'ADDR': main_ip = line.split()[1] return main_ip def check_dns(): """Check that forward and reverse DNS is setup properly""" sys.tracebacklimit = 0 vps_hostname = socket.getfqdn() vps_ips = ip4_addresses() # Forward DNS try: hostname_ip = socket.gethostbyname(vps_hostname) print(vps_hostname + " resolves to " + hostname_ip) except Exception as e: print("A record for hostname not found") print(e) return False # Get the main IP of the server main_ip = None for ip in vps_ips: if ip == hostname_ip: main_ip = ip else: pass if main_ip == hostname_ip: print(main_ip + " resolves to " + vps_hostname) return True print("Reverse DNS either doesn't match or is not present") return False def check_mailip(): """Ripped this straight from google. it does the trick""" my_ip = get_mainip() # Spamhaus zen bls = [ "zen.spamhaus.org", "spam.abuse.ch", "cbl.abuseat.org", "virbl.dnsbl.bit.nl", "dnsbl.inps.de", "ix.dnsbl.manitu.net", "dnsbl.sorbs.net", "bl.spamcop.net", "xbl.spamhaus.org", "pbl.spamhaus.org", "db.wpbl.info", ] listings = [] for bl in bls: try: my_resolver = dns.resolver.Resolver() query = '.'.join(reversed(str(my_ip).split("."))) + "." + bl answers = my_resolver.resolve(query, "A") answer_txt = my_resolver.resolve(query, "TXT") listings.append( 'IP: %s IS listed in %s (%s: %s)' % (my_ip, bl, answers[0], answer_txt[0]) ) except dns.resolver.NXDOMAIN: # print 'IP: %s is NOT listed in %s' %(myIP, bl) pass if len(listings) > 0: return False return True def check_user_setup(): """Check if the reseller user was setup during provisioning""" user_list = [] for _, _, files in os.walk("/var/cpanel/users"): for file in files: user_list.append(file) try: user_list.remove('system') except Exception: pass if len(user_list) < 1: print("Reseller user not setup properly") return False print(user_list[0] + " setup as reseller user") return True def create_task(subject: str, body: str): try: rads.make_ticket(dest='sadmin@imhadmin.net', subject=subject, body=body) except rads.TicketError as exc: print(f"Failed to create ticket - {exc}", file=sys.stderr) else: print("T2S notified") DNS_SETUP_ERROR = ( "One or more of the DNS setup checks failed. Please check that both " "forward and reverse DNS is setup properly for this VPS container" ) MAIL_IP_ERROR = ( "The container was setup with a blacklisted or otherwise bad mail IP. " "Please review the mail ip of the server and rotate/delist as needed" ) USER_SETUP_ERROR = ( "The reseller user was not found on this server after provisioning. Please " "check why, and setup user if needed" ) def main(): subject = socket.getfqdn() + " provisioning check failure" if not check_dns(): print("DNS checks failed") create_task(subject, DNS_SETUP_ERROR) else: print("DNS checks passed") if not check_mailip(): print("Mail IP checks failed") create_task(subject, MAIL_IP_ERROR) else: print("Mail IP checks passed") if not check_user_setup(): print('User setup checks failed') create_task(subject, USER_SETUP_ERROR) else: print('User setup checks passsed') if __name__ == "__main__": main()
Save
cmd:
run