Επιστροφή στο Webship blog

Webship μηχανική

Webship Διακομιστής Ιστού: Ασφαλείς Ρυθμίσεις από Προεπιλογή

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

# Webship Διακομιστής Ιστού: Ασφαλείς Ρυθμίσεις από Προεπιλογή

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

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

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

Οι προστασίες που ξεκινούν ενεργοποιημένες

Webship ενεργοποιεί έξι επίπεδα στην βασική του διαμόρφωση:

| Στρώμα | Προεπιλεγμένη συμπεριφορά | Τι μειώνει | | --- | --- | --- | | Προστασία αρχείων dot | Απορρίπτει στατικά τμήματα διαδρομής που ξεκινούν με τελεία | Τυχαία έκθεση αρχείων περιβάλλοντος, μεταδεδομένων αποθετηρίου και τοπικής διαμόρφωσης | | Τείχος προστασίας εφαρμογών ιστού | Αποκλείει γνωστά πρότυπα επιθέσεων | Εισαγωγή SQL, cross-site scripting, διασχίσεις, εξετάσεις ευαίσθητων διαδρομών, εισαγωγή εντολών, παραποίηση επικεφαλίδων και μη υποστηριζόμενοι κωδικοποιητές αιτήσεων | | Έλεγχοι DDoS | Λειτουργεί σε κανονική λειτουργία με περιορισμένη κατάσταση πελάτη | Κατακλυσμοί αιτήσεων, ανεξέλεγκτη παρακολούθηση και αποφεύξιμη εξάντληση πόρων | | Προκλήση bot | Χρησιμοποιεί υπογεγραμμένο cookie προκλήσεων | Χαμηλού κόστους αυτοματοποιημένη κατάχρηση και επαναλαμβανόμενη σάρωση | | Κεφαλίδες ασφάλειας απάντησης | Προσθέτει μια περιοριστική πολιτική περιήγησης | Σύγχυση MIME, πλαισίωση, διαρροή αναφορέα, επικίνδυνες δυνατότητες περιηγητή και ευρεία φόρτωση περιεχομένου | | Ασπίδα API | Χρησιμοποιεί τη λειτουργία αποκλεισμού και απορρίπτει άγνωστες διαδρομές μόλις οριστεί ένα συμβόλαιο API | Σκιώδης τελικά σημεία, απρόθετες μέθοδοι, απροσδόκητοι τύποι περιεχομένου και ελλιπείς απαιτήσεις εξουσιοδότησης |

Η προεπιλεγμένη WAF επίσης θέτει σκληρά όρια γύρω από αυτό που ελέγχει: 32 KiB κεφαλίδων αιτήματος, μια διαδρομή 2.048 byte και ένα σώμα αιτήματος 1 MiB. Αυτά είναι όρια ασφαλείας, όχι αυθαίρετοι διακόπτες απόδοσης. Εάν μια εφαρμογή χρειάζεται νόμιμα μεγαλύτερα αιτήματα, αυξήστε το σχετικό όριο για εκείνη την εφαρμογή και ελέγξτε το αποτέλεσμα αντί να απενεργοποιήσετε την επιθεώρηση παγκοσμίως.

Η προστασία DDoS ξεκινά σε κανονική λειτουργία στα 600 αιτήματα ανά λεπτό με επιτρεπόμενη έκρηξη 100 ανά κλειδί πελάτη. Ο πίνακας κατάστασης πελατών της περιορίζεται σε 65.536 καταχωρίσεις. Αυτές οι τιμές είναι μια βασική γραμμή, όχι ένα καθολικό μοντέλο κίνησης: ένα δημόσιο API, μια υπηρεσία λήψης και ένα εσωτερικό πάνελ διαχείρισης δεν πρέπει να μοιράζονται τα ίδια όρια ειδικά για την εφαρμογή.

Οι προστασίες του προγράμματος περιήγησης είναι μέρος της βασικής γραμμής

Η πολιτική κεφαλίδας απόκρισης του Webship είναι ενεργοποιημένη ακόμα και όταν μια εφαρμογή ξεχνά να προσθέσει τη δική της. Το προεπιλεγμένο περιλαμβάνει:

  • X-Content-Type-Options: nosniff;
  • μια πολιτική άρνησης πλαισίου;
  • Πολιτική-Αναφορέα: καμία-αναφορά;
  • Αυστηρή Μεταφορά Ασφαλείας για ένα έτος, συμπεριλαμβανομένων των υποτομέων;
  • Πολιτική Ασφαλείας Περιεχομένου περιορισμένη σε περιεχόμενο από την ίδια προέλευση, με περιορισμούς σε ενσωμάτωση και βάση-URI;
  • Πολιτική Άδειας που απενεργοποιεί την πρόσβαση στην γεωτοποθεσία, το μικρόφωνο και την κάμερα.

Αυτές οι προεπιλογές είναι σκόπιμα περιοριστικές. Εξετάστε το HSTS πριν το εφαρμόσετε σε έναν τομέα με υποτομείς που δεν είναι πλήρως έτοιμοι για HTTPS. Εξετάστε την Πολιτική Ασφαλείας Περιεχομένου πριν μια εφαρμογή φορτώσει σενάρια, στυλ, γραμματοσειρές, εικόνες ή συνδέσεις από άλλες προελεύσεις. Μια ασφαλής προεπιλογή θα πρέπει να αποτυγχάνει εμφανώς κατά την ανάπτυξη, όχι να αποδυναμώνεται σιωπηλά στην παραγωγή.

Προαιρετικές επιφάνειες παραμένουν κλειστές

Webship δεν εκθέτει κάθε λειτουργία απλώς και μόνο επειδή το binary την περιέχει. Η αντίστροφη διαμεσολάβηση (reverse proxying), WebTransport, τα σημεία παρακολούθησης (observability endpoints), το αυτόματο TLS, η προέλευση των αποκρίσεων (response provenance) και το endpoint ελέγχου MCP είναι απενεργοποιημένα από προεπιλογή.

Το σημείο τερματισμού MCP έχει περιορισμό loopback όταν είναι ενεργοποιημένο και απαιτεί ρητή ρύθμιση ασφαλείας. Οι μετρήσεις και τα στατιστικά απαιτούν σκόπιμη ενεργοποίηση της οργάνωσης. Η αυτόματη διαχείριση πιστοποιητικών απαιτεί από τον χειριστή να επιλέξει έναν κατάλογο ACME, επαφές, αποθήκευση και αποδοχή όρων υπηρεσίας. Αυτό αποτρέπει τα λειτουργικά χαρακτηριστικά από το να γίνουν απρόσμενες επιφάνειες δικτύου.

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

Η αντιστροφή διακομιστή μεσολάβησης διατηρεί τα όρια εμπιστοσύνης

Όταν είναι ενεργοποιημένη η αντιστροφή προώθησης (reverse proxy), η διέλευση TLS παραμένει η προεπιλογή. Webship προωθεί κωδικοποιημένη κίνηση χωρίς να αναλαμβάνει ιδιοκτησία του απλού κειμένου της εφαρμογής ή των ενεργών κλειδιών συνεδρίας. Η αρχική πηγή παραμένει υπεύθυνη για το TLS και το συμφωνηθέν πρωτόκολλο.

Ενεργοποιήστε τον τερματισμό TLS μόνο όταν το Webship πρέπει να ελέγχει αιτήσεις HTTP, να δρομολογεί κατά διαδρομή, να εφαρμόζει πολιτικές WAF και API, να επαναγράφει κεφαλίδες ή να προσωρινά αποθηκεύει απαντήσεις. Ο τερματισμός δεν είναι εγγενώς λιγότερο ασφαλής· απλώς μεταφέρει το όριο εμπιστοσύνης. Η σημαντική απόφαση είναι ποιο μηχάνημα επιτρέπεται να δει το απλό κείμενο και γιατί.

Η διάβαση έχει επίσης λειτουργικά όρια. Η δρομολόγηση TCP βασίζεται στο ClientHello SNI επειδή το αίτημα HTTP είναι κωδικοποιημένο. Η διάβαση HTTP/3 απαιτεί οι διαδρομές να μοιράζονται μία προέλευση UDP. Εάν χρειάζεστε ασφάλεια με επίγνωση περιεχομένου στην άκρη, τερματίστε το TLS εκεί και προστατεύστε το άλμα από την άκρη στην προέλευση ξεχωριστά.

Μια βάση παραγωγής που μπορείτε να αναθεωρήσετε

Το ακόλουθο απόσπασμα καθιστά ρητά τα σημαντικά προεπιλεγμένα στοιχεία αντί να βασίζεται στην παράλειψη:

listen = "0.0.0.0:443"
deny_dotfiles = true

[tls]
unknown_sni = "reject"

[ddos]
enabled = true
mode = "normal"
requests_per_minute = 600
burst = 100
block_seconds = 60
max_tracked_clients = 65536

[security]
enabled = true
rate_limit_max_entries = 65536

[security.waf]
enabled = true
mode = "block"
sqli = true
xss = true
traversal = true
sensitive_paths = true
header_abuse = true
max_header_bytes = 32768
max_path_bytes = 2048
max_body_bytes = 1048576

[security.response_headers]
enabled = true
nosniff = true
frame_deny = true
referrer_no_referrer = true
hsts = "max-age=31536000; includeSubDomains"
content_security_policy = "default-src 'self'; frame-ancestors 'none'; base-uri 'self'"
permissions_policy = "geolocation=(), microphone=(), camera=()"

Σε έναν ακροατή πολλαπλών τομέων, unknown_sni = "reject" αποτρέπει την αποστολή του προεπιλεγμένου πιστοποιητικού του ακροατή σε ένα μη αναγνωρισμένο όνομα host. Οι ακροατές με αυτόματο TLS του Webship ήδη απορρίπτουν άγνωστα ονόματα μέχρι να υπάρχει ένα πιστοποιητικό.

Η επικύρωση είναι ένας έλεγχος ασφάλειας

Webship επαληθεύει τη διαμόρφωση πριν συνδέσει τους ακροατές. Άγνωστα πεδία, άκυρα όρια, ελλιπείς ταυτότητες, αντικρουόμενοι ακροατές και μη υποστηριζόμενοι συνδυασμοί πρωτοκόλλων προκαλούν αποτυχία εκκίνησης με συγκεκριμένο σφάλμα. Η ίδια επαλήθευση εκτελείται πριν εγκατασταθεί μια ενεργή διαμόρφωση. Μια αποτυχημένη επαναφόρτωση αφήνει την τρέχουσα διαμόρφωση ενεργή.

Η επικυρωμένη διαδρομή ρύθμισης MCP προσθέτει μια επιπλέον προστασία: αρνείται ζωντανές αλλαγές που θα απενεργοποιούσαν ένα ενεργό WAF, στρώμα DDoS, API Shield, πρόκληση bot, πολιτική edge-auth ή στρώμα κεφαλίδας απόκρισης. Οι έλεγχοι έκδοσης αποτρέπουν έναν διαχειριστή από το να αντικαταστήσει ένα νεότερο στιγμιότυπο διαμόρφωσης. Οι ρυθμίσεις που συνδέονται με διαδικασίες εξακολουθούν να απαιτούν επανεκκίνηση αντί να προσποιούνται ότι μια μερική ζωντανή αλλαγή ήταν επιτυχής.

Αυτή είναι μια χρήσιμη διάκριση. Οι ασφαλείς προεπιλογές προστατεύουν μια νέα ανάπτυξη. Η συναλλακτική επικύρωση και οι προστατευμένες ενημερώσεις προστατεύουν μια ενεργή.

Τι πρέπει ακόμα να αποφασίσουν οι φορείς εκμετάλλευσης

Πριν την έκθεση του Webship στο διαδίκτυο:

  1. Διαμορφώστε μια αξιόπιστη ταυτότητα TLS και προστατεύστε το ιδιωτικό κλειδί.
  2. Ορίστε τη διαχείριση αγνώστου SNI για τη τοπολογία του ακροατή.
  3. Επιβεβαιώστε ότι οι πολιτικές HSTS και Content-Security-Policy ταιριάζουν με κάθε εφαρμογή και υποτομέα.
  4. Ορίστε τα endpoints του API Shield, τις αποδεκτές μεθόδους, τους τύπους περιεχομένου και τις απαιτήσεις εξουσιοδότησης.
  5. Προσθέστε όρια ταχύτητας ανά διαδρομή αντί να βασίζεστε μόνο στη γενική βασική γραμμή.
  6. Ενεργοποιήστε την πιστοποίηση άκρης για προστατευμένους κεντρικούς υπολογιστές ή διαδρομές και χρησιμοποιήστε προσωρινούς κωδικούς πρόσβασης.
  7. Κρατήστε τους MCP και τους ακροατές παρατηρησιμότητας ιδιωτικούς, αυθεντικοποιημένους και ξεχωριστούς από την δημόσια κίνηση.
  8. Τρέξτε το Webship με έναν αφιερωμένο μη προνομιούχο λογαριασμό, με ένα εφαρμογικό root μόνο για ανάγνωση όπου είναι δυνατόν, και μόνο με τις δυνατότητες του λειτουργικού συστήματος που χρειάζεται.
  9. Επιβεβαιώστε την διαμόρφωση πριν από την ανάπτυξη, στη συνέχεια δοκιμάστε την αποκλεισμένη και επιτρεπόμενη κίνηση σε ένα περιβάλλον κανάριου.
  10. Παρακολουθήστε τα γεγονότα ελέγχου ασφαλείας και εξασκηθείτε στη μετάβαση από κανονική λειτουργία σε κατάσταση επίθεσης ή κλείδωμα.

Ένα πιο ασφαλές προεπιλεγμένο είναι μια αρχή, όχι μια αξίωση

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

Webship παρέχει το κατώτερο επίπεδο: περιορισμένους αναλυτές, αυστηρή διαμόρφωση, αμυντικούς τίτλους απόκρισης, έλεγχο αιτημάτων, μέτρα κατά της κακοποίησης και κλειστές προαιρετικές επιφάνειες. Το αποτέλεσμα δεν είναι «λύθηκε η ασφάλεια». Είναι ένα μικρότερο χάσμα μεταξύ της εγκατάστασης ενός διακομιστή και της υπεύθυνης λειτουργίας του.

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