SSH σε ένα Mac από το internet

Γεία χαρά σε όλους.
Θα ήθελα να μοιραστώ μαζί σας την εμπειρία μου, στήν προσπάθεια μου να σετάρω το Mac μου σάν home server και να το κάνω προσβάσημο από εξωτερικό δίκτυο.
Έκανα λοιπόν το κατάληλο port forwarding ανοίγοντας μια πόρτα ας πούμε 123456, συμφωνα με το manual του κατασκευαστή.
Στη συνέχεια μπήκα στο file ssh.config και άλλλαξα το port στην κατάληλη γραμμή.
Ενώ όλα δείχνανε σωστά όταν τσεκάριζα τα settings μου με το “canyouseeme.org” μόνο το port 22 ήταν ανοικτό.
Έκλεινα το port που είχα ανοίξει, έκλεινε και το 22, άνοιγα καινούργιο πάλι μόνο το 22 άνοιγε.
Ύστερα από πολύ googling και πολλές ώρες video στο youtube και για να μήν σας ζαλίζω, ανακάλειψα ένα άρθρο που έλεγε ότι αν δουλεύεις με Mac το file ssh.config δεν παίζει κανένα ρόλο.
Η apple έχει άλλο file για να κάνεις configuration το ssh σου ( ωωω!!! τι έκπληξης).
Το file αυτό λέγεται ssh.plist και είναι γραμμένο σε html.
Παραθέτω ένα μικρό μέρος του αρχείου με το κομμάτι που πρέπει να αλλάξουμε.
Sockets

Listeners

SockServiceName
ssh
Bonjour

ssh
sftp-ssh

Με bold είναι το κομμάτι του κώδικα που πρέπει να αλλάξουμε, και να γινεί έτσι:
SockServiceName
123456
Bonjour

123456
sftp-ssh

Αλλά τα προβλήματα μου δεν σταμάτησαν εκεί. Όταν μιλάμε για apple η βλακεία δεν έχει όριο. Τα αρχεία του root είναι κλειδωμένα ακόμα και για τον root user. Ωωωωω yes.
Τέλος πάντων, χρησιμοποιούν ένα πρωτόκολλο που ονομάζεται “Προστασία Ακεραιότητας Συστήματος” “System Integrity Protection” (SIP) ή “rootless”.
Αν θέλετε να ελέγξετε ότι ένα αρχείο προστατεύεται από το SIP, μπορείτε να χρησιμοποιήσετε την εντολή

ls -lO

κεφαλαίο Ο, όχι μηδέν.

Πώς να απενεργοποιήσετε το SIP

  1. Επανεκκίνηστε το Mac σας σε λειτουργία ανάκτησης, ξεκινώντας με επανεκκίνηση και κρατώντας πατημένο το πλήκτρο “Command + R”.
  2. Ανοίξτε ένα τερματικό
  3. Στο τερματικού γράψτε

csrutil disable

και πατήστε “Enter”.
4. Κάντε επανεκκίνηση του Mac.

Ενεργοποίηση του ssh daemon

Μόλις τα κάνατε όλα αυτά και ρυθμίσετε τις παραμέτρους του αρχείου ssh.plist κάντε τα εξής:

  1. Μεταβείτε στις προτιμήσεις συστήματος
  2. Ανοίξτε την κοινή χρήση
  3. Κάντε κλικ στο λουκέτο για να ξεκλειδώσετε (χρησιμοποιώντας το passwd)
  4. Ελέγξτε την Απομακρυσμένη σύνδεση (αυτό θα ξεκινήσει το διακομιστή ssh στο παρασκήνιο)
  5. Κλείστε το λουκέτο

Αν και η αλλαγή θύρας είναι ένα καλό μέτρο ασφάλειας, καλό θα ήταν να πάρετε και κάποια additional μέτρα ασφάλειας όπως να φτιάξετε κλειδιά για να συνδέεσται στον server σας, εδώ απλά να πώ οτι πρέπει να περιορίσετε την πρόσβαση στο server σας χρησιμοποιώντας το “Μόνο αυτούς τους χρήστες” αντί του “Όλοι οι χρήστες” στο κατάλληλο παράθυρο.

Τέλος, μπορείτε να συνδεθέιτε με ssh Mac server σας.

ssh -p123456 macname @ yourdomainname

Φτιάξτε τα alias σας αν θέλετε στο ~/bashrc αρχείο σας για να μήν γράφετε συνέχεια αυτό το μακρηνάρι και μήν ξεχάσετε να ξαναενεργοποιήσετε το SIP (ναι, ok)

csrutil enable

και enter.

3 Likes

Θα μπορουσες να κανεις ενα port forward απο την TCP Port 22 εσωτερικη (με την IP του Mac σου) στην TCP Port 123456 εξωτερικη. Για τα περισσοτερα routers αυτη ειναι μια επιτρεπτη κινηση και καθολα δυνατη.

Και για οποιον χρειαζεται να συνδεθει στον SSH Server σου μονο την εξωτερικη TCP Port 123456 θα εβλεπε. Αν υπηρχε και TCP Port 22 εξωτερικη ανοιχτη τοτε ισως υπηρχε καποια αλλη συσκευη που να εχει port forward την TCP Port 22 προς τα εξω.

Οσο για τα τερτιπια που χρησιμοποιει η Apple για να ασφαλισει το συστημα της… θυμηζουν λιγο το DEP (Data Execution Protection) των Windows.

2 Likes

Ναι ε; και πότε θα μιλίσεις για αυτό;

Είναι αυτό που λένε οι αγγλοσάξονες Thinking outside the box. Εδώ κυριολεκτικά :takeout_box:

Εννοεις για τα port forwards;

1 Like

Ναι σωστά
Πές και σε εμάς πώς γίνεται αυτό.

1 Like

Ohh please tell us, please please …
Να’χει να κάνει με τα iptables ίσως;

2 Likes

Σε διανομες που ασχολουνται με το σπορ αυτο ναι. Αν γραψω κατι πανω σε αυτο θελει λιγο ερευνα για να μην πω αλλα αντι αλλων και ερθει κανενας γνωστης με CCNA (Cisco Certified Network Admin) και μου ριχνει ντοματες :slight_smile: Οποτε παρακαλω αναμεινατε στο ακουστικο σας :slight_smile:

Φιλε μου, απο τήν αρχή δήλωσα οτι δεν έχω καμία θεωρητηκή γνώση υπολογιστών, μαθένω μόνος μου μέσω forum tutos και videos στο utube. ¨Ό,τι γράφω σε οδηγούς τα έχω δοκιμάσει και έχουν δουλέψει τουλάχιστον σε μένα, οπότε δεν δέινω δεκάρα τι θα πούν αυτοί με τα διπλώματα. Αν νομίζεις οτι μπορείς να βοηθήσείς κάνε έναν οδήγο και άστους να λένε. Παρακαλώ @Talos (ok now? )

Και τέλος πάντων αυτό το χάλι, να την πούμε στον άλλον ή να κοροιδέψουμε τις γνώσεις του μόνο σε ελληνόφωνα forums. Ναί ρε δέν ξέρουμε για αυτό ρωτάμε άντε εσείς που ξέρετε @obars6 για πές μας.

Στο ίντερνετ, το ύφος μας συχνά παρεξηγείται. Αυτό σε έναν βαθμό είναι αναπόφευκτο, αλλά ας προσπαθήσουμε να είμαστε λίγο πιο προσεκτικοί και με θετική διάθεση.

3 Likes

Φίλε @cptcharis καλώς ήρθες και από εμένα στο φόρουμ. Αυτό που θέλουμε να καταφέρουμε εδώ είναι ακριβώς αυτό. Να μοιραζόμαστε τις γνώσεις μας και τις ανακαλύψεις μας χωρίς το φόβο, ότι θα μας κριτικάρει κανείς.

Στον οδηγό σου, είδα πράγματα που δεν είχα ξαναδεί και έμαθα κάποια πράγματα για τα Mac που δεν ήξερα.

Τώρα δεν είδα κανένα εδώ μέσα να κοροϊδεύει ή να κατακρίνει. Όπως θα παρατήρησες ίσως, είμαι εκτεθειμένος καθημερινά σε κριτική για τους οδηγούς που γράφω. Γιατί οι γνώσεις μου είναι ατελής. Οπότε θα έχω και πολλά λάθη.

Ο χρήστης Α δημοσιεύει μια λύση, ο χρήστης Β βρίσκει το λάθος ή μια καλύτερη λύση και ο χρήστης Γ διαβάζει και τις δύο, Ποιός είναι ο κερδισμένος σε αυτή την ιστορία; Ποιος είναι ο κερδισμένος και ποιος ο χαμένος από αυτή την ιστορία;

Μα φυσικά ο πρώτος χρήστης, Γιατί και μοιράστηκε την γνώση του και πήρε την χαρά του μοιράσματος και διόρθωσε κάτι που γνώριζε και έμαθε και κάτι καινούργιο. Δεν υπάρχει κάποιος χαμένος και δεν είναι παίγνιο μηδενικού αθροίσματος. Αλλά αν θέλουμε ντε και καλά να βρούμε τον χαμένο, αυτός είναι ο χρήστης Β, γιατί δεν έμαθε τίποτα καινούργιο.

Ας έχουμε αυτό υπόψιν μας, και ας μην είμαστε ερειστικοί και επιθετικοί χωρίς λόγο. Ας μην απαιτούμε πράγματα, αλλά πάντα μπορούμε να τα ζητήσουμε ευγενικά. Και ας έχουμε υπόψιν μας, πως η επικοινωνία στο διαδίκτυο μεταξύ αγνώστων, είναι δύσκολη και ποιο εύκολα παρεξηγήσιμη.

4 Likes

Αν κορόιδεψα κάτι ήταν το “παρακαλώ/please” του Talos όχι εσένα.
Ξέρω ότι μπορεί να γίνει με το iptables αλλά δεν έχω ασχοληθεί, κι εγώ θα ήθελα να μάθω.

Παραξηγιαρη

2 Likes