Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

SQL Server remote login

Îåêßíçóå áðü ôï ìÝëïò Thiseas. Τελευταία δημοσίευση από το μέλος Thiseas στις 29-05-2012, 21:21. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  28-05-2012, 14:32 70409

    SQL Server remote login

    Αγαπητοί καλησπέρα,
    Θα ήθελα να κάνω μια μικρή ερώτηση:
    Έχω ένα SQL Server (mixed mode auth) στημένο σε κάποιον server στην εταιρία μου.
    Έχω επίσης ενεργοποιημένη την υπηρεσία... to Allow Remote Connections.

    Αυτό που θα ήθελα να ρωτήσω είναι, αν γίνεται (μέσα από security policy ή με την χρήση Logon trigger ή οτιδήποτε άλλο) να μην επιτρέπω την σύνδεση κάποιου συγκεκριμένου χρήστη (έστω του userX) στην βάση δεδομένων, αν ο userX έρχεται "απ' έξω", δηλαδή αν προσπαθεί να κάνει σύνδεση έξω από την εταιρία μου (κάνοντας χρήση της υπηρεσίας Remote Connection) να τον μπλοκάρω με κάποιο τρόπο.

    Η αμέσως επόμενη ερώτηση είναι, αν o UserX μπορεί να είναι ο ίδιος ο sa ; (αν και το βλέπω χλωμό να κόψω δικαιώματα του sa - αλλά λέω μήπως το έχει δοκιμάσει κανείς)


    Thanks for your time gentlemen!


    Edited:
    Διάβασα οτι αυτό μπορεί να γίνει με την χρήση του IPSec (δεν το έχω ψάξει ακόμα σε βάθος ειδικά για την πόρτα 1433), αλλά έλεγα μήπως κάποιος φίλος έχει ιδίαν πείρα με κάποιο άλλο τρόπο.


    Nothing to declare...
  •  28-05-2012, 20:37 70413 σε απάντηση της 70409

    Απ: SQL Server remote login

    Δεν είμαι σίγουρος ότι έχεις περιγράψει σωστά το set-up του προβλήματος:

    • Έχω καταλάβει σωστά, ότι θέλεις ένα τρόπο να εμποδίσεις τους χρήστες που κάνουν VPN στην εταιρεία, ώστε να μην μπορούν να κάνουν direct connect στον SQL Server;

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  28-05-2012, 20:50 70414 σε απάντηση της 70409

    Απ: SQL Server remote login

    Εγώ κατάλαβα οτι ο SQL "βλέπει" κανονικά έξω από την 1433 και συνδέονται οι χρήστες, απλά θέλει να αποτρέψει έναν συγκεκριμένο χρήστη από το να συνδέεται ΜΟΝΟ όμως όταν η σύνδεση προέρχεται απ'έξω. Καλά κατάλαβα;
    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  28-05-2012, 21:50 70417 σε απάντηση της 70409

    Απ: SQL Server remote login

    Κάνοντας λίγο googling, διαπίστωσα ότι οι βασικές προτάσεις είναι δύο (δηλαδή, αυτό που οι περισσότροι προτείνουν): 1) μέσω firewall και 2) με logon trigger. Το άρθρο "αφετηρία" που παραπέμπουν όλοι είναι το "Restrict IP Address to prevent invalid login attack to SQL Server". Επίσης, βρήκα ένα step by step guide για Windows Server 2003. Για τα Windows 7 και Windows Server 2008 μπορείς να ρίξεις μια ματιά εδώ. Ελπίζω αυτές οι πηγές να σου φανούν χρήσιμες...

    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  29-05-2012, 20:11 70453 σε απάντηση της 70409

    Απ: SQL Server remote login

    @ Σωτήρη, καλά κατάλαβες.
    Αυτό είναι το πρόβλημα μου.

    @Γιώργο:
    Όχι δεν είναι VPN.

    Σκέψου οτι στο εσωτερικό δίκτυο όλες οι συνδέσεις είναι από 192.168.*.*
    Εδώ θέλω να μπαίνουν όλοι.

    Αλλά όσοι έρχονται απ' έξω (από το δίκτυο εκτός εταιρίας - βλέπε internet) με public IPs να μην τους επιτρέπω να μπαίνουν εκτός κι αν χρησιμοποιήσουν μόνο ένα συγκεκριμένο username/password (π.χ.  remoteuserX/remotepassX) και όχι (ας πούμε) τον sa.

    @ Markos.
    Έχεις καταλάβει το πρόβλημα μου.
    thnx φίλε μου, αυτά που προτείνεις είναι αυτά που έχω ψάξει κι εγώ, απλά έλεγα μήπως κάποιος το έχει δοκιμάσει/υλοποιήσει.
    Ευχαριστώ (και πάλι) για τον χρόνο σας! Smile

    ----
    To ξαναλέω το πρόβλημα μου με ένα παράδειγμα:
    Έχω εναν SQL Server στην εσωτερική  IP:192.168.1.100 που βγαίνει στον "έξω κόσμο" σαν 195.25.20.150
    Δύο user names έχουν δημιουργηθεί στην βάση δεδομένων:
    sa/sa και
    remote/r3m0te$

    Στην βάση μου συνδέονται δύο ειδών χρήστες:

    [1] Ένας χρήστης μέσα από το εσωτερικό δίκτυο της εταιρίας. Έστω ο 192.168.1.25
    Αυτός μπορεί να μπει στην βάση χρησιμοποιώντας είτε τον sa είτε τον remote.

    [2] Ένας χρήστης  από το internet. Έστω ο 205.222.10.12
    Αυτός θέλω να μπορεί να μπει στην βάση χρησιμοποιώντας μόνο τον χρήστη remote και όταν προσπαθήσει να μπει σαν sa, θέλω να "τρώει πόρτα".

    Νομίζω οτι πλέον είναι αρκετά ξεκάθαρο...Smile









    Nothing to declare...
  •  29-05-2012, 20:29 70454 σε απάντηση της 70453

    Απ: SQL Server remote login

    Από logon trigger μπορείς να βρεις τον user νομίζω και να τον "κόψεις". Ομως εσύ θέλεις συνδυασμό user και ip. 
    Ισως θα μπορούσες να φτιάξεις ένα logon trigger που να βρίσκει το user και να εκμεταλλευτείς παράλληλα αυτό: http://www.codeproject.com/Tips/323721/How-to-get-Client-IP-Address-in-SQL-Server

    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  29-05-2012, 20:51 70455 σε απάντηση της 70453

    Απ: SQL Server remote login

    Συμφωνώ με τον Σωτήρη, χρειάζεσαι logon triggers. Χωρίς να σε πάρω στο λαιμό μου, ίσως θα ήταν καλύτερα να χρησιμοποιήσεις το EVENTDATA function που επιστρέφει και το login name. Ένα video που περιγράφει πάνω - κάτω αυτό που προσπαθείς να κάνεις είναι αυτό. Η ίδια διαδικασία περιγράφεται συνοπτικά και σ' αυτό το άρθρο.

    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  29-05-2012, 21:21 70458 σε απάντηση της 70409

    Απ: SQL Server remote login

    Αγαπητοί το κατάφερα μόλις με την χρήση logon trigger σε συδιασμό με την εύρεση της IP (αυτό που λέει ο Σωτήρης παραπάνω - εξού και το σημείωσα ως την σωστή απάντηση).

    Παραθέτω τον κώδικα (λίγο πρόχειρος προς το παρόν - αλλά την δουλειά του την κάνει... Smile) σε περίπτωση που κάποιος φίλος έχει αντίστοιχο πρόβλημα και αφού και δεν υπάρχει και πολύ "βιβλιογραφία" στο internet:

    USE master
    GO
    create TRIGGER trgRemoteRestrict ON ALL SERVER WITH EXECUTE AS 'sa' FOR LOGON
    AS
    BEGIN
    	DECLARE @IP_Address varchar(255);
    	SELECT @IP_Address = client_net_address FROM sys.dm_exec_connections WHERE Session_id = @@SPID;
    
    	IF (ORIGINAL_LOGIN() = 'sa' AND not ( @IP_Address like ('192.%') or @IP_Address = '<local machine>' ) )
    		ROLLBACK;
    
    END;

    Ευχαριστώ όλους σας για την βοήθεια! Cool

    Nothing to declare...
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems