UNIX – LINUX: Kernels, Distributions & Security Μάντζιος Παναγιώτης
Total Page:16
File Type:pdf, Size:1020Kb
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΥΠΟΛΟΓΙΣΤΙΚΗ ΒΙΟΙΑΤΡΙΚΗ» UNIX – LINUX: Kernels, distributions & security Μάντζιος Παναγιώτης ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Υπεύθυνος Λάμψας Πέτρος Λαμία, 2016 Institutional Repository - Library & Information Centre - University of Thessaly 07/10/2021 00:35:02 EEST - 170.106.39.241 Μάντζιος Παναγιώτης ‘‘Unix – Linux: Kernels, Distributions & Security’’ 3 Institutional Repository - Library & Information Centre - University of Thessaly 07/10/2021 00:35:02 EEST - 170.106.39.241 Μάντζιος Παναγιώτης ‘‘Unix – Linux: Kernels, Distributions & Security’’ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΔΙΑΤΜΗΜΑΤΙΚΟ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΥΠΟΛΟΓΙΣΤΙΚΗ ΒΙΟΙΑΤΡΙΚΗ ΚΑΤΕΥΘΥΝΣΗ: «ΠΛΗΡΟΦΟΡΙΚΗ ΜΕ ΕΦΑΡΜΟΓΕΣ ΣΤΗΝ ΑΣΦΑΛΕΙΑ, ΔΙΑΧΕΙΡΙΣΗ ΜΕΓΑΛΟΥ ΟΓΚΟΥ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΟΣΟΜΟΙΩΣΗ» UNIX – LINUX: Kernels, distributions & security Μάντζιος Παναγιώτης ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Επιβλέπων Λάμψας Πέτρος Λαμία, 2016 4 Institutional Repository - Library & Information Centre - University of Thessaly 07/10/2021 00:35:02 EEST - 170.106.39.241 Μάντζιος Παναγιώτης ‘‘Unix – Linux: Kernels, Distributions & Security’’ «Υπεύθυνη ∆ήλωση µη λογοκλοπής και ανάληψης προσωπικής ευθύνης» Με πλήρη επίγνωση των συνεπειών του νόµου περί πνευµατικών δικαιωµάτων, και γνωρίζοντας τις συνέπειες της λογοκλοπής, δηλώνω υπεύθυνα και ενυπογράφως ότι η παρούσα εργασία µε τίτλο «UNIX – LINUX: Kernels, distributions & security» αποτελεί προϊόν αυστηρά προσωπικής εργασίας και όλες οι πηγές από τις οποίες χρησιµοποίησα δεδοµένα, ιδέες, φράσεις, προτάσεις ή λέξεις, είτε επακριβώς (όπως υπάρχουν στο πρωτότυπο ή µεταφρασµένες) είτε µε παράφραση, έχουν δηλωθεί κατάλληλα και ευδιάκριτα στο κείµενο µε την κατάλληλη παραποµπή και η σχετική αναφορά περιλαµβάνεται στο τµήµα των βιβλιογραφικών αναφορών µε πλήρη περιγραφή. Αναλαµβάνω πλήρως, ατοµικά και προσωπικά, όλες τις νοµικές και διοικητικές συνέπειες που δύναται να προκύψουν στην περίπτωση κατά την οποία αποδειχθεί, διαχρονικά, ότι η εργασία αυτή ή τµήµα της δεν µου ανήκει διότι είναι προϊόν λογοκλοπής. Ο ∆ΗΛΩΝ Μάντζιος Παναγιώτης Ηµεροµηνία 18/07/2016 Υπογραφή 5 Institutional Repository - Library & Information Centre - University of Thessaly 07/10/2021 00:35:02 EEST - 170.106.39.241 Μάντζιος Παναγιώτης ‘‘Unix – Linux: Kernels, Distributions & Security’’ UNIX – LINUX: Kernels, distributions & security Μάντζιος Παναγιώτης Τριμελής Επιτροπή: Λάμψας Πέτρος (επιβλέπων) Λουκόπουλος Θανάσης Αντωνής Κωνσταντίνος 6 Institutional Repository - Library & Information Centre - University of Thessaly 07/10/2021 00:35:02 EEST - 170.106.39.241 Μάντζιος Παναγιώτης ‘‘Unix – Linux: Kernels, Distributions & Security’’ “UNIX is simple. It just takes a genius to understand its simplicity.” Dennis Ritchie “The Linux philosophy is 'Laugh in the face of danger'. Oops. Wrong One. 'Do it yourself'. Yes, that's it.” Linus Torvalds Copyright © Μάντζιος Παναγιώτης 2016 Με επιφύλαξη παντός δικαιώµατος. All rights reserved. 7 Institutional Repository - Library & Information Centre - University of Thessaly 07/10/2021 00:35:02 EEST - 170.106.39.241 Μάντζιος Παναγιώτης ‘‘Unix – Linux: Kernels, Distributions & Security’’ Περίληψη Τα λειτουργικά συστήµατα του Linux και Unix χρησιµοποιούνται ευρέως από ένα µεγάλο αριθµό χρηστών, επιχειρήσεων αλλά και Server ανά τον κόσµο. Όµως πώς προέκυψαν τα συστήµατα αυτά έτσι όπως τα γνωρίζουµε σήµερα; Τελικά τι είναι ένα λειτουργικό σύστηµα; Είναι ο πυρήνας; Είναι τα προγράµµατα που έχουµε εγκαταστήσει; Είναι οι διάφορες συνιστώσες και διεργασίες; Είναι το γραφικό περιβάλλον ή µήπως η γραµµή εντολών; Θα λέγαµε ότι είναι όλα τα παραπάνω και πολύ περισσότερα. Είναι κάθε στοιχείο που είναι εγκατεστηµένο και αλληλεπιδρά µε τον πυρήνα. Είναι κάθε στοιχείο που µπορούµε να δούµε αλλά και κάθε στοιχείο το οποίο εκτελείται στο προσκήνιο. Είναι εκείνο που είναι υπεύθυνο για όλες τις εργασίες που του ανατίθενται και συνδυάζει πόρους, υλικό, εφαρµογές µε σκοπό την ευκολία της διεξαγωγής διαφόρων εργασιών. Μία από τις πιο σηµαντικές και καθοριστικές στιγµές στην ιστορία για την υλοποίηση των λειτουργικών συστηµάτων είναι εκείνη της δηµιουργίας της γλώσσας C. Αναπτύχθηκε στα εργαστήρια της Bell labs και αργότερα πάνω σε αυτή βασίστηκε το λειτουργικό σύστηµα Unix. Από εκεί και έπειτα έχουµε µία αλµατώδη ανάπτυξη των λειτουργικών συστηµάτων, τα οποία ουσιαστικά αποτελούνται από πολλές επιµέρους συνιστώσες έτσι ώστε να βοηθούν τον χρήστη στις εργασίες που θέλει να υλοποιήσει. Φτάσαµε όµως στο σηµείο όπου υπάρχουν τόσες πολλές εφαρµογές, τόσες πολλές διεργασίες, τόσοι πολλοί παράγοντες που επηρεάζουν την ασφάλεια των λειτουργικών συστηµάτων. Μπορούµε πράγµατι να είµαστε ασφαλείς κάτω από την οµπρέλα του λειτουργικού µας συστήµατος; Και αν όχι ποιες ενέργειες πρέπει να κάνουµε έτσι ώστε να έχουµε το επίπεδο ασφαλείας που χρειαζόµαστε; Υπάρχουν εργαλεία που µας παρέχουν προστασία; Ποιες εκδόσεις Linux και Unix είναι περισσότερο ασφαλείς και ποιες µπορούµε να παραµετροποιήσουµε; Μπορούµε να ελέγξουµε τον πυρήνα του Unix και του Linux έτσι ώστε να µας προστατεύει από ανεπιθύµητους εισβολείς; Σε όλα αυτά τα καίρια ερωτήµατα και σε πολύ περισσότερα, καλείται να απαντήσει η παρούσα διπλωµατική εργασία µέσα από µία διεξοδική έρευνα και αναζήτηση πληροφοριών. Αναλυτικότερα στην παρούσα διπλωµατική εργασία γίνονται αναφορές στα διάφορα στοιχεία και λειτουργίες των συστηµάτων καθώς και στην υποδοµή των πυρήνων που χρησιµοποιούν. Αναφερόµαστε στα στοιχεία που απαρτίζουν τα λειτουργικά συστήµατα και δίνονται λεπτοµέρειες σχετικά µε τις διάφορες διανοµές που υπάρχουν, ενώ παρουσιάζουµε διάφορες γνωστές ευπάθειες, όπως και τεχνικές αντιµετώπισης των διαφόρων κενών ασφαλείας. Συγκεκριµένα στο πρώτο κεφάλαιο παρατίθενται λεπτοµέρειες σχετικά µε την εξελικτική πορεία των λειτουργικών συστηµάτων, την γλώσσα προγραµµατισµού C η οποία αποτέλεσε και αποτελεί τον ακρογωνιαίο λίθο υλοποίησης των λειτουργικών συστηµάτων καθώς και την δοµή αυτών. Στο δεύτερο κεφάλαιο εµβαθύνουµε στο σύστηµα του Unix και των λειτουργιών του πυρήνα αλλά και στις διάφορες διανοµές που υπήρξαν και υπάρχουν. Ακόµη γίνεται σύγκριση των δύο λειτουργικών συστηµάτων (Linux – Unix) και παρουσιάζονται οι βασικές τους διαφορές. 8 Institutional Repository - Library & Information Centre - University of Thessaly 07/10/2021 00:35:02 EEST - 170.106.39.241 Μάντζιος Παναγιώτης ‘‘Unix – Linux: Kernels, Distributions & Security’’ Στο τρίτο κεφάλαιο ως επίκεντρο είναι το Linux, οι λόγοι δηµιουργίας του και οι διάφορες διανοµές. Επίσης γίνεται ανάλυση των διαφόρων ευπαθειών και των µέτρων προστασίας. Στο τέταρτο και τελευταίο κεφάλαιο εγκαθιστούµε την δηµοφιλή διανοµή slackware linux µε σκοπό την παραµετροποίησή της, έτσι ώστε να µας παρέχει ένα συγκεκριµένο επίπεδο ασφάλειας. Πραγµατοποιούµε ελέγχους µε συγκεκριµένα εργαλεία ανίχνευσης εισβολέων, εν προκειµένω να ανακαλύψουµε τυχόν κενά ασφαλείας, ανεπαρκείς ρυθµίσεις προστασίας του συστήµατος και τυχόν εισβολείς που έχουν καταφέρει να εισχωρήσουν στο σύστηµά µας. Με βάση τα αποτελέσµατα των εργαλείων ανίχνευσης γίνονται ενέργειες για την διασφάλιση της προστασίας του συστήµατος από ανεπιθύµητους εισβολείς. Τέλος γίνεται σύντοµη αναφορά στην νέα διανοµή Linux tales που παρουσιάζει ιδιαίτερο ενδιαφέρον σε θέµατα ασφαλείας και ανωνυµίας. 9 Institutional Repository - Library & Information Centre - University of Thessaly 07/10/2021 00:35:02 EEST - 170.106.39.241 Μάντζιος Παναγιώτης ‘‘Unix – Linux: Kernels, Distributions & Security’’ Abstract The operating systems of Linux and Unix are widely used by a large number of users, enterprises and Servers all over the world. Many questions are raised such as how these systems are emerged as we know them today? Eventually, what is an operating system? Is it the core? Are the programmes that have been installed? Are the various components and processes? Is the GUI or the command line? We would say that it is all these things and much more. It is each component installed that interacts with the kernel. Every element that we see and every element running in the foreground. It is the element which is responsible for all tasks assigned and it is combining resources, hardware, applications in order to carry out various tasks. One of the most important and defining moments in history for the implementation of operating systems is the creation of programming language C. This language is developed in Bell’s labs and later on it was the basis for Unix operating system. From later on there is a rapid development of operating systems, which essentially consists of many individual components so as to assist the user in the work he wants to implement. We have already reached the point where there are so many applications, so many processes, so many factors that affect the security of operating systems. Can we indeed be safe under the umbrella of our operating system? And if not what actions should we do so that we have the level of security we need? There are tools that provide us protection? What versions of Linux and Unix are more secure and which can we customize? Can we control the core of Unix and Linux so that it protects us from intruders? In all these critical questions and many more, this thesis is required to answer through an extensive research for further information. Specifically, in this thesis there are references to various components and functions of the systems and infrastructure of cores used. We make references to elements that make up the operating systems, and provide details on various distributions available, while