Can someone review this commit, please ?
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
\section{Αποφάσεις που πάρθηκαν κατά την ανάπτυξη} \label{developmentDecisions}
|
||||
|
||||
Κατά την ανάπτυξη του συστήματος, προκειμένου να επιτευχθούν οι στόχοι που
|
||||
θέσαμε στην ενότητα \ref{overcomingDockerDisadvantages} και συγκεκριμένα για
|
||||
θέσαμε στην Ενότητα \ref{overcomingDockerDisadvantages} και συγκεκριμένα για
|
||||
την επικοινωνία με διάφορους παρόχους νέφους, επιλέχθηκε να γίνει χρήση της
|
||||
βιβλιοθήκης libcloud \footfullcite{libcloud}. Μια από τις δύο επιλογές
|
||||
βιβλιοθηκών της Apache \footfullcite{apache} για την επικοινωνία με παρόχους
|
||||
@@ -37,14 +37,14 @@ libcloud αποτελεί μια προσπάθεια δημιουργίας ε
|
||||
παρούσα διπλωματική εργασία, χρειάζεται να γίνει χρήση των λειτουργιών
|
||||
\textquote{Compute} της βιβλιοθήκης. Στην αρχική σελίδα της, αναφέρεται
|
||||
υποστήριξη για πάνω από 50 παρόχους. Κατά την σελίδα τεκμηρίωσης
|
||||
\footfullcite{libcloudProviders} για τις λειτουργίες \textquote{Compute},
|
||||
αναφέρονται 48 πάροχοι σε έναν πίνακα ο οποίος αναγράφει την υποστήριξη ή
|
||||
απουσία αυτής, διάφορων συναρτήσεων εικονικών μηχανών. Στις συναρτήσεις αυτές
|
||||
περιλαμβάνονται η δημιουργία εικονικών μηχανών, η εκκίνηση, η παύση, η διαγραφή
|
||||
τους και εν γένει όσες λειτουργίες είναι απαραίτητες για την ολοκληρωμένη
|
||||
λειτουργία του εργαλείου. Από αυτούς τους 48 παρόχους, οι 25 υποστηρίζουν και
|
||||
τις 9 συναρτήσεις. Ωστόσο, από αυτούς τους 25 έπρεπε να αφαιρεθούν οι 20 για
|
||||
λόγους όπως η μη ύπαρξη τεκμηρίωσης χρήσης από την libcloud, η μη συνέχιση της
|
||||
\cite{libcloudProviders} για τις λειτουργίες \textquote{Compute}, αναφέρονται
|
||||
48 πάροχοι σε έναν πίνακα ο οποίος αναγράφει την υποστήριξη ή απουσία αυτής,
|
||||
διάφορων συναρτήσεων εικονικών μηχανών. Στις συναρτήσεις αυτές περιλαμβάνονται
|
||||
η δημιουργία εικονικών μηχανών, η εκκίνηση, η παύση, η διαγραφή τους και εν
|
||||
γένει όσες λειτουργίες είναι απαραίτητες για την ολοκληρωμένη λειτουργία του
|
||||
εργαλείου. Από αυτούς τους 48 παρόχους, οι 25 υποστηρίζουν και τις 9
|
||||
συναρτήσεις. Ωστόσο, από αυτούς τους 25 έπρεπε να αφαιρεθούν οι 20 για λόγους
|
||||
όπως η μη ύπαρξη τεκμηρίωσης χρήσης από την libcloud, η μη συνέχιση της
|
||||
λειτουργίας τους, η έλλειψη πληροφοριών τιμής ή δοκιμαστικής περιόδου για τις
|
||||
υπηρεσίες τους και η αδυναμία δημιουργίας λογαριασμού στην επίσημη σελίδα τους.
|
||||
Επομένως, υπάρχουν εν τέλει 5 πάροχοι νέφους που δύναται να χρησιμοποιηθούν
|
||||
@@ -90,7 +90,7 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
\multicolumn{1}{|c|}{} & CentOS \footfullcite{centos} & 7, 8, 9 & 8.4, 8.5 & Όλες \\ \cline{2-5}
|
||||
\multicolumn{1}{|c|}{} & Fedora \footfullcite{fedora} & 37 & 36, 37 & Όλες \\ \cline{2-5}
|
||||
\multicolumn{1}{|c|}{} & Red Hat Enterprise Linux \footfullcite{redhat} & 7.9, 8.6, 9 & 8.6, 9.1 & Όλες \\ \cline{2-5}
|
||||
\multicolumn{1}{|c|}{} & openSUSE Leap \footfullcite{opensuse} & 15.3, 15.4 & 15.3 15.4 & Όλες \\ \hline
|
||||
\multicolumn{1}{|c|}{} & openSUSE Leap \footfullcite{opensuse} & 15.3, 15.4 & 15.3, 15.4 & Όλες \\ \hline
|
||||
\end{tabular}}
|
||||
\label{table:supportedDistributions}
|
||||
\renewcommand{\arraystretch}{1}
|
||||
@@ -197,8 +197,8 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
την λειτουργία σύνδεσης μέσω SSH}
|
||||
|
||||
\item \textbf{Το εργαλείο πρέπει να υποστηρίζει την αρχικοποίηση μονάχα
|
||||
ενός παρόχου δίχως την συμπλήρωση κενών πεδίων για τους υπόλοιπους από
|
||||
τον χρήστη}
|
||||
ενός παρόχου δίχως την συμπλήρωση κενών πεδίων για τους υπόλοιπους
|
||||
από τον χρήστη}
|
||||
|
||||
\end{itemize}
|
||||
|
||||
@@ -210,33 +210,32 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
που έχει χρησιμοποιήσει προγράμματα γραμμής εντολών στο παρελθόν}
|
||||
|
||||
\item \textbf{Το εργαλείο πρέπει να δημιουργεί ξεχωριστό αρχείο για τις
|
||||
ρυθμίσεις του στον ίδιο φάκελο που βρίσκεται και το εκτελέσιμο αρχείο του}
|
||||
ρυθμίσεις του στον ίδιο φάκελο που βρίσκεται και το εκτελέσιμο αρχείο
|
||||
του}
|
||||
|
||||
\item \textbf{Το εργαλείο πρέπει να κρατάει αρχείο των διευθύνσεων
|
||||
IP των εικονικών μηχανών που δημιουργεί ώστε να μπορούν να
|
||||
διαμορφωθούν περαιτέρω εάν ο χρήστης επιθυμεί να
|
||||
χρησιμοποιήσει άλλα προγράμματα όπως το Ansible}
|
||||
\item \textbf{Το εργαλείο πρέπει να κρατάει αρχείο των διευθύνσεων IP των
|
||||
εικονικών μηχανών που δημιουργεί ώστε να μπορούν να διαμορφωθούν
|
||||
περαιτέρω εάν ο χρήστης επιθυμεί να χρησιμοποιήσει άλλα προγράμματα
|
||||
όπως το Ansible}
|
||||
|
||||
\item \textbf{Το εργαλείο πρέπει να διαθέτει ένα μοτίβο εντολών που να
|
||||
μπορεί ο χρήστης να καταλαβαίνει και να διαμορφώνει ανάλογα με τις
|
||||
ανάγκες του}
|
||||
ανάγκες του}
|
||||
|
||||
\item \textbf{Το εργαλείο πρέπει να δημιουργεί κλειδιά SSH σε
|
||||
περίπτωση που δεν υπάρχουν, στον ίδιο φάκελο με το εκτελέσιμο
|
||||
αρχείο του}
|
||||
\item \textbf{Το εργαλείο πρέπει να δημιουργεί κλειδιά SSH σε περίπτωση που
|
||||
δεν υπάρχουν, στον ίδιο φάκελο με το εκτελέσιμο αρχείο του}
|
||||
|
||||
\item \textbf{Το δεύτερο εκτελέσιμο αρχείο του εργαλείου πρέπει να
|
||||
εγκαθιστά και να σκληραίνει και το Docker πέρα από το
|
||||
λειτουργικό σύστημα}
|
||||
εγκαθιστά και να σκληραίνει και το Docker πέρα από το λειτουργικό
|
||||
σύστημα}
|
||||
|
||||
\item \textbf{Το δεύτερο εκτελέσιμο αρχείο του εργαλείου πρέπει να
|
||||
δημιουργεί στην εικονική μηχανή δύο επιπλέον εκτελέσιμα
|
||||
αρχεία για περιοδική ενημέρωση των πακέτων και κλείσιμο
|
||||
αχρησιμοποίητων θυρών}
|
||||
δημιουργεί στην εικονική μηχανή δύο επιπλέον εκτελέσιμα αρχεία για
|
||||
περιοδική ενημέρωση των πακέτων και κλείσιμο αχρησιμοποίητων θυρών}
|
||||
|
||||
\item \textbf{Το δεύτερο εκτελέσιμο αρχείο του εργαλείου πρέπει να
|
||||
εγκαθιστά προγράμματα για την περαιτέρω σκλήρυνση του Docker και την
|
||||
διευκόλυνση του χρήστη κατά την εγκατάσταση δοχείων}
|
||||
διευκόλυνση του χρήστη κατά την εγκατάσταση δοχείων}
|
||||
|
||||
\end{itemize}
|
||||
|
||||
@@ -248,11 +247,11 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
\section{Διαγραμματική Μοντελοποίηση} \label{designModels}
|
||||
|
||||
Οι παραπάνω απαιτήσεις και ο τρόπος λειτουργίας του εργαλείου, μεταφράζονται
|
||||
καλύτερα στον χρήστη μέσω ενός σχεδιαγράμματος περίπτωσης χρήσης. Το σχήμα
|
||||
καλύτερα στον χρήστη μέσω ενός σχεδιαγράμματος περίπτωσης χρήσης. Το Σχήμα
|
||||
\ref{fig:useCaseDiagram} δημιουργήθηκε με την βοήθεια του εργαλείου
|
||||
\textquote{yuml} \footfullcite{yuml}. Επιπλέον, με το εργαλείο
|
||||
\textquote{mermaid} \footfullcite{mermaid}, δημιουργήθηκε ένα διάγραμμα ροής
|
||||
για το SecDep που απεικονίζεται στο σχήμα \ref{fig:flowchartDiagram}. Το
|
||||
για το SecDep που απεικονίζεται στο Σχήμα \ref{fig:flowchartDiagram}. Το
|
||||
διάγραμμα ροής, απεικονίζει την ροή των εντολών που μπορεί να επιλεγούν από τον
|
||||
χρήστη κατά την εκτέλεση του προγράμματος.
|
||||
|
||||
@@ -290,7 +289,7 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
να ζητήσει πληροφορίες για διαθέσιμους πόρους όπως οι εικονικές του μηχανές ή
|
||||
τα συστατικά που έχει στην διάθεσή του για την δημιουργία τους όπως οι
|
||||
διανομές, τα μεγέθη και οι τοποθεσίες τους. Αυτή η αλληλεπίδραση μεταξύ του
|
||||
χρήστη και του παρόχου νέφους, απεικονίζεται στο σχήμα
|
||||
χρήστη και του παρόχου νέφους, απεικονίζεται στο Σχήμα
|
||||
\ref{fig:sequenceDiagram}, το οποίο δημιουργήθηκε με το εργαλείο
|
||||
\textquote{mermaid}.
|
||||
|
||||
@@ -311,7 +310,7 @@ Mε το \textquote{code2flow} \footfullcite{code2flow} δημιουργήθηκ
|
||||
διάγραμμα που απεικονίζει τις κλήσεις συναρτήσεων που γίνονται κατά την
|
||||
εκτέλεση του αρχείου secdep.py. Παράλληλα, το ίδιο αποτέλεσμα επιτεύχθηκε για
|
||||
το αρχείο harden με την βοήθεια του \textquote{callGraph}
|
||||
\footfullcite{callGraph}. Τα παραπάνω απεικονίζονται στα σχήματα
|
||||
\footfullcite{callGraph}. Τα παραπάνω απεικονίζονται στα Σχήματα
|
||||
\ref{fig:secdepFunctionCallDiagram} και \ref{fig:hardenFunctionCallDiagram}
|
||||
αντίστοιχα.
|
||||
|
||||
@@ -372,7 +371,7 @@ pydeps -T png --cluster --include-missing --max-bacon=1 --noshow --reverse --ran
|
||||
\section{Αρχιτεκτονική Εργαλείου} \label{architecture}
|
||||
|
||||
Οι διαθέσιμες συναρτήσεις και μεταβλητές του secdep.py, απεικονίζονται στα
|
||||
σχήματα \ref{fig:secdepFunctions} και \ref{fig:secdepVariables} αντίστοιχα. Η
|
||||
Σχήματα \ref{fig:secdepFunctions} και \ref{fig:secdepVariables} αντίστοιχα. Η
|
||||
δημιουργία τους πραγματοποιήθηκε με το εργαλείο \textquote{doxygen}
|
||||
\footfullcite{doxygen}.
|
||||
|
||||
@@ -425,8 +424,8 @@ Docker. Το harden, εκτελείται μόνο στις εικονικές
|
||||
\item \textbf{image}
|
||||
|
||||
\item \textbf{confirm}: Για επιβεβαίωση της δημιουργίας της
|
||||
εικονικής μηχανής χωρίς να χρειαστεί χειροκίνητη επιβεβαίωση από
|
||||
τον χρήστη.
|
||||
εικονικής μηχανής χωρίς να χρειαστεί χειροκίνητη επιβεβαίωση
|
||||
από τον χρήστη.
|
||||
|
||||
\item \textbf{deploy}: Για την εκτέλεση του harden.
|
||||
|
||||
@@ -435,7 +434,8 @@ Docker. Το harden, εκτελείται μόνο στις εικονικές
|
||||
\item \textbf{node\_action}:
|
||||
|
||||
Η συνάρτηση \textquote{node\_action}, είναι αυτή που εκτελεί τις
|
||||
ενέργειες πάνω στις εικονικές μηχανές. Στις ενέργειες αυτές περιλαμβάνονται:
|
||||
ενέργειες πάνω στις εικονικές μηχανές. Στις ενέργειες αυτές
|
||||
περιλαμβάνονται:
|
||||
|
||||
\begin{itemize}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user