CyberCr33p Δημοσ. 19 Σεπτεμβρίου Δημοσ. 19 Σεπτεμβρίου (επεξεργασμένο) 4 hours ago, geomagas said: Πως θα του παρέχω dns αν οι nameservers του δείχνουν στον registrar; Διότι, εκεί θα πρέπει να προσθέσει το authentication record, αλλιώς δεν έχει νόημα. Χάνω κάτι; Υπάρχουν δύο σενάρια: 1) Ο πελάτης χρησιμοποιεί εξωτερικούς nameservers. Σε αυτή την περίπτωση, τον ενημερώνεις ότι πρέπει να προσθέσει το TXT record μόνος του. 2) Ο πελάτης χρησιμοποιεί τους δικούς σου nameservers. Σε αυτή την περίπτωση, κατά την προσθήκη του domain στην υπηρεσία σου, το σύστημά σου θα προσθέτει αυτόματα το TXT record. Και στις δύο περιπτώσεις, μέσω ενός cron job, θα ελέγχεις κάθε δύο ώρες για την ύπαρξη του TXT record. Μόλις επιβεβαιωθεί, η υπηρεσία θα ενεργοποιείται πλήρως. Επιπλέον, για το πρώτο σενάριο, μπορείς να προσφέρεις μια εναλλακτική λύση για όσους φιλοξενούν τα emails τους σε τρίτες υπηρεσίες. Αντί για το TXT record, κατά την προσθήκη του domain (π.χ. example.com) στο σύστημά σου, μπορεί να εμφανίζεται ένα drop-down με επιλογές email όπως [email protected], [email protected], [email protected], [email protected]. Ο πελάτης θα επιλέγει ένα από αυτά και το σύστημά σου του στέλνει ένα μήνυμα με έναν σύνδεσμο επαλήθευσης. Όταν πατήσει τον σύνδεσμο, η ενεργοποίηση της υπηρεσίας ολοκληρώνεται. Επιπροσθέτως, αν παρέχεις και φιλοξενία email, θα πρέπει να έχεις ένα cron job που ελέγχει κάθε μερικές ώρες αν το MX record συνεχίζει να "δείχνει" στη δική σου IP. Αν ναι, το domain χαρακτηρίζεται ως "local". Αν δείχνει σε άλλη IP, χαρακτηρίζεται ως "remote". Αυτό είναι απαραίτητο γιατί, αν ο πελάτης αλλάξει web host ή αν λήξει το domain και το πάρει κάποιος άλλος, τότε αν κάποιος άλλος που έχει mailbox στον ίδιο server στείλει μήνυμα προς το [email protected] (που πλέον βρίσκεται σε άλλον server), ο mail server σου θα προσπαθήσει να το παραδώσει τοπικά αντί να το στείλει στον σωστό server. Για παράδειγμα σε Plesk υπάρχει η δυνατότητα να επιλέξεις χειροκίνητα εάν ένα domain είναι "local" ή "remote", αλλά κατά τη γνώμη μου αυτό για λόγους ασφαλείας θα έπρεπε να γίνεται αυτόματα. Αφήνω και ένα shell script που έχω φτιάξει για να αυτοματοποιεί αυτό τον έλεγχο και με κάποιες ψιλοαλλαγές θα δουλεύει και σε Linux: #!/usr/local/bin/bash getIP() { i=$(($1 - 1)) IFS=$'\n' array=($(/sbin/ifconfig | grep inet | grep broadcast | awk '{split($0,a," "); print a[2]}')) echo ${array[$i]} } ip1=$(getIP 1) ip2=$(getIP 2) HOSTNAME=$(hostname -s) EMAIL="root" declare -A change_candidates check_mx() { local domain=$1 local ns1=$(dig ${domain} ns +short | sed 's/\.[^.]*$//' | head -n 1) local ns1ip=$(dig ${ns1} a +short | head -n 1) if [ -z "${ns1}" ] || [ -z "${ns1ip}" ]; then echo "skip" return fi local mxrecordip=($(dig @${ns1} +short ${domain} mx | sort -n | awk '{print $2}' | dig +short -f -)) local inarrayip1=$(echo ${mxrecordip[@]} | grep -o "${ip1}" | wc -w) local inarrayip2=$(echo ${mxrecordip[@]} | grep -o "${ip2}" | wc -w) if [ $inarrayip1 -ne 0 ] || [ $inarrayip2 -ne 0 ]; then echo "local" else echo "remote" fi } for domain in $(cat /root/cretapanel/data/*.domainlist); do status=$(check_mx ${domain}) if [ "${status}" == "skip" ]; then continue fi if [ "${status}" == "local" ] && [ $(grep -c "^${domain} OK" /usr/local/etc/postfix/domains) -eq 0 ]; then change_candidates[$domain]="local" elif [ "${status}" == "remote" ] && [ $(grep -c "^${domain} OK" /usr/local/etc/postfix/domains) -eq 1 ]; then change_candidates[$domain]="remote" fi done for domain in "${!change_candidates[@]}"; do status=$(check_mx ${domain}) if [ "${status}" == "${change_candidates[$domain]}" ]; then if [ "${status}" == "local" ]; then echo "${domain}: Local MX" echo "${domain} OK" >> /usr/local/etc/postfix/domains postmap /usr/local/etc/postfix/domains printf "[${HOSTNAME}] Local MX: ${domain}" | mail -s "[${HOSTNAME}] Local MX: ${domain}" "$EMAIL" elif [ "${status}" == "remote" ]; then echo "${domain}: Remote MX" sed -i "" -e "/^${domain} OK/d" /usr/local/etc/postfix/domains postmap /usr/local/etc/postfix/domains printf "[${HOSTNAME}] Remote MX: ${domain}" | mail -s "[${HOSTNAME}] Remote MX: ${domain}" "$EMAIL" fi fi done Και κάτι τελευταίο. Θα πρέπει να έχεις και μια λίστα με κοινά domains, που να μην επιτρέπεται να προστεθούν εξ αρχής στο σύστημά σου, για παράδειγμα: outlook.com ebox.gr gawab.com address.com aim.com altavista.net aol.com cretaforce.gr cs.com cyta.gr earthlink.net email.com excite.com fastmail.fm forthnet.gr freemail.gr gmail.com gmx.com google.com google.gr hol.gr hotmail.com hotmail.gr inbox.com juno.com mail.com mail.gr mailbox.gr mycosmos.gr netone.gr netscape.com netscape.net ote.gr otenet.gr tellas.gr vip.gr vivodi.gr vodafone.gr wind.gr windowslive.com yahoo.com yahoo.gr paypal.com Επεξ/σία 19 Σεπτεμβρίου από CyberCr33p 1
geomagas Δημοσ. 19 Σεπτεμβρίου Μέλος Δημοσ. 19 Σεπτεμβρίου 3 ώρες πριν, CyberCr33p είπε 1) Ο πελάτης χρησιμοποιεί εξωτερικούς nameservers. Σε αυτή την περίπτωση, τον ενημερώνεις ότι πρέπει να προσθέσει το TXT record μόνος του. Ναι, αυτό είναι το σενάριο που συζητάμε σε όλο σχεδόν το thread, και νομίζω ότι τελικά είναι το μόνο που μπορεί να δουλέψει σε κάθε περίπτωση, παρόλη τη μανούβρα που χρειάζεται να κάνει ο χρήστης... 3 ώρες πριν, CyberCr33p είπε 2) Ο πελάτης χρησιμοποιεί τους δικούς σου nameservers. Σε αυτή την περίπτωση, κατά την προσθήκη του domain στην υπηρεσία σου, το σύστημά σου θα προσθέτει αυτόματα το TXT record. Δεν θα δουλέψει αυτό. Αφού οι nameservers είναι δικό μου resource (υπό τον έλεγχό μου) είναι σαν να αυτο-πιστοποιώ την κατοχή του domain από τον χρήστη (που δεν έχω το authority να το κάνω) και μετά να βάζω τον δικό μου cron να ελέγχει αν το δικό μου σύστημα κατάφερε να προσθέσει το txt στους δικούς μου nameservers για λογαριασμό του δικού μου χρήστη... Δεν βγάζει και πολύ νόημα, έτσι δεν είναι; Το challenge θα πρέπει να είναι: "Πήγαινε και βάλε ένα token που θα σου δώσω εγώ, σε ένα μέρος εκτός του δικού μου συστήματος, και αν μπορέσω να το διαβάσω, μου έχεις αποδείξει ότι το domain είναι υπό τον έλεγχό σου". Το οποίο υλοποιείται μόνο με το πρώτο σου σενάριο. Κάτι ανάλογο νομίζω προσπαθεί να κάνει και η εναλλακτική που προτείνεις: 3 ώρες πριν, CyberCr33p είπε Επιπλέον, για το πρώτο σενάριο, μπορείς να προσφέρεις μια εναλλακτική λύση για όσους φιλοξενούν τα emails τους σε τρίτες υπηρεσίες. Αντί για το TXT record, κατά την προσθήκη του domain (π.χ. example.com) στο σύστημά σου, μπορεί να εμφανίζεται ένα drop-down με επιλογές email όπως [email protected], [email protected], [email protected], [email protected]. Ο πελάτης θα επιλέγει ένα από αυτά και το σύστημά σου του στέλνει ένα μήνυμα με έναν σύνδεσμο επαλήθευσης. Όταν πατήσει τον σύνδεσμο, η ενεργοποίηση της υπηρεσίας ολοκληρώνεται. Εξ αρχής, είναι λύση υποδεέστερη του (1), διότι αφορά μόνο ένα υποσύνολο των χρηστών (βλ το highlight μου). Αλλά κυρίως διότι, και πάλι, δεν αποδεικνύει την κατοχή του domain, αλλά την πρόσβαση σε ένα mailbox. Για να σε προλάβω, καταλαβαίνω γιατί dropdown με τα συγκεκριμένα emails, και όχι text field που θα μπορεί να βάλει πχ [email protected]. Αλλά και πάλι, αν έχω πρόσβαση στο [email protected], αυτό δεν αποδεικνύει ότι μου ανήκει το domain, μόνο το mailbox. 3 ώρες πριν, CyberCr33p είπε Επιπροσθέτως, αν παρέχεις και φιλοξενία email [...] Τα υπόλοιπα λέω να τα πάρω εργασία για το σπίτι... 😆 Spoiler 3 ώρες πριν, CyberCr33p είπε Θα πρέπει να έχεις και μια λίστα με κοινά domains, που να μην επιτρέπεται να προστεθούν εξ αρχής στο σύστημά σου Μου αρέσει που συμπεριέλαβες την cretaforce αλλά όχι πχ την Coca Cola... 😅 Επίσης, αν η google δηλαδή θέλει να μετακομίσει σε μένα, τι να κάνω, να τα διώξω τα παιδιά; Δεν πάει όμορφα... Νομίζω;;; 😝
Λύση CyberCr33p Δημοσ. 19 Σεπτεμβρίου Λύση Δημοσ. 19 Σεπτεμβρίου (επεξεργασμένο) 22 minutes ago, geomagas said: Δεν θα δουλέψει αυτό. Αφού οι nameservers είναι δικό μου resource (υπό τον έλεγχό μου) είναι σαν να αυτο-πιστοποιώ την κατοχή του domain από τον χρήστη (που δεν έχω το authority να το κάνω) και μετά να βάζω τον δικό μου cron να ελέγχει αν το δικό μου σύστημα κατάφερε να προσθέσει το txt στους δικούς μου nameservers για λογαριασμό του δικού μου χρήστη... Δεν βγάζει και πολύ νόημα, έτσι δεν είναι; Πες ότι έχω καταχωρήσει το example.com και μου ζητάς για nameservers να περάσω τους δικούς σου, δηλαδή τους ns1.geomagas.gr και ns2.geomagas.gr Σε αυτή τη περίπτωση μόνο και μόνο ότι βάζω τους δικούς σου δεν σημαίνει ότι θέλω να χρησιμοποιήσω την υπηρεσία σου; Εάν δεν έχω πρόσβαση στο διαχειριστικό του καταχωρητή για να βάλω στο domain τους δικούς σου nameservers τότε μετά από 48 ώρες μπορείς να αφαιρείς το domain από το σύστημα, έτσι και αλλιώς δεν θα έχει "ενεργοποιηθεί" πλήρως το hosting (μόνο τα DNS resolution θα έχεις ενεργό σε αυτό το σημείο) οπότε δεν πρόκειται να έχει ανεβάσει δεδομένα που θα διαγράφονταν. Περίπου το ίδιο γίνεται και με το CloudFlare που σου λέει βάλε τους τάδε nameservers και μετά μπορείς να χρησιμοποιήσεις την υπηρεσία του. H μόνη του διαφορά είναι ότι εάν κάποιος χρήστης του CloudFlare έχει περάσει nameservers παλαιότερα και πάει νέος χρήστης να περάσει το ίδιο domain του εμφανίζει να περάσει διαφορετικούς nameservers, οπότε λογικά από εκεί καταλαβαίνουν ότι ο νέος χρήστης εφόσον πέρασε τους νέους nameservers που του ζήτησαν είναι και αυτός που έχει την πρόσβαση στο domain "τελευταίος". Επεξ/σία 19 Σεπτεμβρίου από CyberCr33p 1
geomagas Δημοσ. 19 Σεπτεμβρίου Μέλος Δημοσ. 19 Σεπτεμβρίου 3 λεπτά πριν, CyberCr33p είπε Σε αυτή τη περίπτωση μόνο και μόνο ότι βάζω τους δικούς σου δεν σημαίνει ότι θέλω να χρησιμοποιήσω την υπηρεσία σου; Ναι αλλά εσύ τους έβαλες (ο Α) ή ο πραγματικός ιδιοκτήτης (ο Β); Εκεί είναι ο κόμπος... 4 λεπτά πριν, CyberCr33p είπε Το ίδιο ακριβώς γίνεται και με το CloudFlare που σου λέει βάλε τους τάδε nameservers και μετά μπορείς να χρησιμοποιήσεις την υπηρεσία του. Καλή ιδέα. Θέλω να το δοκιμάσω κάποια στιγμή, να δω πως λύνουν αυτοί ανάλογες διενέξεις... Thanks!
geomagas Δημοσ. 19 Σεπτεμβρίου Μέλος Δημοσ. 19 Σεπτεμβρίου 1 ώρα πριν, CyberCr33p είπε του εμφανίζει να περάσει διαφορετικούς nameservers, οπότε λογικά από εκεί καταλαβαίνουν ότι ο νέος χρήστης εφόσον πέρασε τους νέους nameservers που του ζήτησαν είναι και αυτός που έχει την πρόσβαση στο domain "τελευταίος". Πολύ, ΠΟΛΥ καλό κόλπο!!! Βέβαια, αυτό προϋποθέτει να έχεις καμιά 20αριά nameservers στον έλεγχό σου, ή έστω λίγους με πολλά aliases... αλλά για να είμαι ειλικρινής, τεχνικά είναι το καλύτερο που έχω ακούσει ως τώρα! Το καλύτερο με αυτή τη λύση είναι ότι δεν χρειάζεται ο χρήστης να κάνει όλη τη μεταφορά των ns στον registrant και πάλι πίσω, απλά να προσθέσει έναν δικό σου ns που του έχεις υποδείξει. Τέλειο!
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα