bug fix
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
\chapter{Ανάπτυξη Συστήματος} \label{projectDevelopment}
|
||||
|
||||
\noindent Στην παρούσα ενότητα θα αναλυθούν οι τεχνολογίες που χρησιμοποιήθηκαν
|
||||
για την υλοποίηση του συστήματος, οι αποφάσεις που πάρθηκαν κατά την ανάπτυξη
|
||||
για την υλοποίηση του συστήματος, οι αποφάσεις που πάρθηκαν κατά την ανάπτυξή
|
||||
του και οι σχεδιαστικές επιλογές που έγιναν. Επίσης, θα πραγματοποιηθεί
|
||||
απεικόνιση των συσχετίσεων μεταξύ των συστατικών του συστήματος και θα αναλυθεί
|
||||
περαιτέρω η λειτουργία τους.
|
||||
@@ -23,18 +23,18 @@
|
||||
εργαλείου και των παρόχων νέφους, οφείλεται στο γεγονός ότι οι πάροχοι νέφους
|
||||
δεν διαθέτουν ένα κοινό API για την διαχείριση των υποδομών τους. Απεναντίας, ο
|
||||
καθένας από αυτούς διαθέτει το δικό του API, το οποίο χρησιμοποιείται έμμεσα
|
||||
μέσω του πίνακα ελέγχου του παρόχου που βρίσκεται στην ιστοσελίδα του, ενός
|
||||
δικού του εργαλείου γραμμής εντολών, ή άμεσα μέσω της βιβλιοθήκης που παρέχει ο
|
||||
ίδιος. Η libcloud αποτελεί μια προσπάθεια δημιουργίας ενός ενιαίου API, το
|
||||
οποίο χρησιμοποιώντας τις ίδιες συναρτήσεις, επιχειρεί να προσκομίσει ίδια
|
||||
μέσω του πίνακα ελέγχου του, που βρίσκεται στην ιστοσελίδα του, ενός δικού του
|
||||
εργαλείου γραμμής εντολών, ή άμεσα μέσω της βιβλιοθήκης που παρέχει ο ίδιος. Η
|
||||
libcloud αποτελεί μια προσπάθεια δημιουργίας ενός ενιαίου API, το οποίο
|
||||
χρησιμοποιώντας τις ίδιες συναρτήσεις, επιχειρεί να προσκομίσει ίδια
|
||||
αποτελέσματα ανεξαρτήτως του παρόχου νέφους που στοχεύει.
|
||||
|
||||
\clearpage
|
||||
|
||||
Παρ όλη την προσπάθεια που καταβλήθηκε από την libcloud όμως, για την ενοποίηση
|
||||
αυτή, οι διαφορές στους τρόπους λειτουργίας του κάθε παρόχου αρχίζουν να
|
||||
εμφανίζονται σύντομα κατά την ανάπτυξη. Για το εργαλείο που προτείνει η παρούσα
|
||||
διπλωματική εργασία, χρειάζεται να γίνει χρήση των λειτουργιών
|
||||
Παρ' όλη την προσπάθεια που καταβλήθηκε από την libcloud όμως, για την
|
||||
ενοποίηση αυτή, οι διαφορές στους τρόπους λειτουργίας του κάθε παρόχου αρχίζουν
|
||||
να εμφανίζονται σύντομα κατά την ανάπτυξη. Για το εργαλείο που προτείνει η
|
||||
παρούσα διπλωματική εργασία, χρειάζεται να γίνει χρήση των λειτουργιών
|
||||
\textquote{Compute} της βιβλιοθήκης. Στην αρχική σελίδα της, αναφέρεται
|
||||
υποστήριξη για πάνω από 50 παρόχους. Κατά την σελίδα τεκμηρίωσης
|
||||
\footfullcite{libcloudProviders} για τις λειτουργίες \textquote{Compute},
|
||||
@@ -44,7 +44,7 @@
|
||||
τους και εν γένει όσες λειτουργίες είναι απαραίτητες για την ολοκληρωμένη
|
||||
λειτουργία του εργαλείου. Από αυτούς τους 48 παρόχους, οι 25 υποστηρίζουν και
|
||||
τις 9 συναρτήσεις. Ωστόσο, από αυτούς τους 25 έπρεπε να αφαιρεθούν οι 20 για
|
||||
λόγους όπως η μη ύπαρξη τεκμηρίωσης χρήσης από την libcloud, η μη συνέχιση
|
||||
λόγους όπως η μη ύπαρξη τεκμηρίωσης χρήσης από την libcloud, η μη συνέχιση της
|
||||
λειτουργίας τους, η έλλειψη πληροφοριών τιμής ή δοκιμαστικής περιόδου για τις
|
||||
υπηρεσίες τους και η αδυναμία δημιουργίας λογαριασμού στην επίσημη σελίδα τους.
|
||||
Επομένως, υπάρχουν εν τέλει 5 πάροχοι νέφους που δύναται να χρησιμοποιηθούν
|
||||
@@ -58,7 +58,7 @@
|
||||
Παρακάτω θα διαπιστώσουμε πως ακόμα και με την χρήση της βιβλιοθήκης libcloud
|
||||
και την επίσημη υποστήριξη όλων των λειτουργιών για κάθε πάροχο, υπήρχε η
|
||||
ανάγκη χρήσης της επίσημης βιβλιοθήκης της Azure για την δημιουργία Resource
|
||||
Group \footfullcite{azure-mgmt-resource}, Virtual Network
|
||||
Group \footfullcite{azure-mgmt-resource} και Virtual Network
|
||||
\footfullcite{azure-mgmt-network} διότι αυτές οι λειτουργίες δεν υποστηρίζονται
|
||||
μέσω της libcloud. Επιπροσθέτως, δίχως την υποστήριξη των λειτουργιών αυτών, ο
|
||||
χρήστης θα ήταν υποχρεωμένος να δημιουργεί αυτούς τους πόρους χειροκίνητα ή να
|
||||
@@ -98,7 +98,7 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
\end{savenotes}
|
||||
|
||||
Ο λόγος που οι εκδόσεις είναι συγκεκριμένες για τους παρόχους AWS και Azure,
|
||||
είναι διότι ο αριθμός των διαθέσιμων διανομών και εκδόσεων τους είναι
|
||||
είναι διότι ο αριθμός των διαθέσιμων διανομών και εκδόσεών τους είναι
|
||||
υπερβολικά μεγάλος και κατά την εκτέλεση της λειτουργίας δημιουργίας λίστας
|
||||
τους ή κατά τον έλεγχο της ορθότητας δεδομένων που εισάγει ο χρήστης, το
|
||||
πρόγραμμα θα καθυστερούσε σε τεράστιο βαθμό να ολοκληρωθεί.
|
||||
@@ -167,7 +167,7 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
\item \textbf{Το εργαλείο πρέπει να εμφανίζει μηνύματα λάθους σε περίπτωση
|
||||
που κάτι πάει στραβά κατά την εκτέλεση}
|
||||
|
||||
\item \textbf{το εργαλείο πρέπει να υποστηρίζει την διαδραστική διαμόρφωση
|
||||
\item \textbf{Το εργαλείο πρέπει να υποστηρίζει την διαδραστική διαμόρφωση
|
||||
του αρχείου ρυθμίσεων του}
|
||||
|
||||
\item \textbf{Το εργαλείο πρέπει να υποστηρίζει την εκτέλεση εξωτερικού
|
||||
@@ -176,7 +176,7 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
\item \textbf{Το εργαλείο πρέπει να υποστηρίζει την εγκατάσταση δοχείων
|
||||
στις εικονικές μηχανές που δημιουργεί, κατά την διάρκεια της
|
||||
σκλήρυνσής τους, μέσω ενός αρχείου docker-compose.yml που θα
|
||||
βρίσκεται στον ίδιο φάκελο με το εκτελέσιμο αρχείο}
|
||||
βρίσκεται στον ίδιο φάκελο με το εκτελέσιμο αρχείο του}
|
||||
|
||||
\item \textbf{Το εργαλείο πρέπει να διαθέτει λειτουργία εμφάνισης όλων των
|
||||
διαθέσιμων εντολών του}
|
||||
@@ -210,7 +210,7 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
που έχει χρησιμοποιήσει προγράμματα γραμμής εντολών στο παρελθόν}
|
||||
|
||||
\item \textbf{Το εργαλείο πρέπει να δημιουργεί ξεχωριστό αρχείο για τις
|
||||
ρυθμίσεις του στον ίδιο φάκελο που βρίσκεται και το εκτελέσιμο αρχείο}
|
||||
ρυθμίσεις του στον ίδιο φάκελο που βρίσκεται και το εκτελέσιμο αρχείο του}
|
||||
|
||||
\item \textbf{Το εργαλείο πρέπει να κρατάει αρχείο των διευθύνσεων
|
||||
IP των εικονικών μηχανών που δημιουργεί ώστε να μπορούν να
|
||||
@@ -288,10 +288,11 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
Ουσιαστικά, κατά την πραγματική χρήση του SecDep υπάρχουν πάντοτε δύο οντότητες
|
||||
που αλληλεπιδρούν μεταξύ τους. Ο χρήστης και ο πάροχος νέφους. Ο χρήστης μπορεί
|
||||
να ζητήσει πληροφορίες για διαθέσιμους πόρους όπως οι εικονικές του μηχανές ή
|
||||
τα συστατικά που έχει στην διάθεση του για την δημιουργία τους όπως οι
|
||||
τα συστατικά που έχει στην διάθεσή του για την δημιουργία τους όπως οι
|
||||
διανομές, τα μεγέθη και οι τοποθεσίες τους. Αυτή η αλληλεπίδραση μεταξύ του
|
||||
χρήστη και του παρόχου νέφους, απεικονίζεται στο σχήμα
|
||||
\ref{fig:sequenceDiagram}, το οποίο δημιουργήθηκε με το εργαλείο mermaid.
|
||||
\ref{fig:sequenceDiagram}, το οποίο δημιουργήθηκε με το εργαλείο
|
||||
\textquote{mermaid}.
|
||||
|
||||
\begin{center}
|
||||
\begin{figure}[!ht]
|
||||
@@ -368,7 +369,7 @@ pydeps -T png --cluster --include-missing --max-bacon=1 --noshow --reverse --ran
|
||||
|
||||
\clearpage
|
||||
|
||||
\section{Αρχιτεκτονική} \label{architecture}
|
||||
\section{Αρχιτεκτονική Εργαλείου} \label{architecture}
|
||||
|
||||
Οι διαθέσιμες συναρτήσεις και μεταβλητές του secdep.py, απεικονίζονται στα
|
||||
σχήματα \ref{fig:secdepFunctions} και \ref{fig:secdepVariables} αντίστοιχα. Η
|
||||
@@ -424,7 +425,7 @@ Docker. Το harden, εκτελείται μόνο στις εικονικές
|
||||
\item \textbf{image}
|
||||
|
||||
\item \textbf{confirm}: Για επιβεβαίωση της δημιουργίας της
|
||||
εικονικής μηχανής χωρίς να χρειαστεί επιπλέον επιβεβαίωση από
|
||||
εικονικής μηχανής χωρίς να χρειαστεί χειροκίνητη επιβεβαίωση από
|
||||
τον χρήστη.
|
||||
|
||||
\item \textbf{deploy}: Για την εκτέλεση του harden.
|
||||
|
||||
Reference in New Issue
Block a user