4.4 Άλλοι τύποι επίθεσης σε Ασύρματα Δίκτυα και απαραίτητα εργαλεία
4.4.3 Integrity attacks
Αυτές οι επιθέσεις (attacks) στέλνουν πλαστό έλεγχο, πλαίσια διαχείρισης ή δεδομένων πάνω σε ασύρματα δίκτυα με σκοπό να παραπλανήσει τον αποδέκτη ή επιπλέον για να προωθήσει κάποιο άλλο τύπο επίθεσης (attack) (π.χ., DoS).
Πίνακας 4.3: Integrity attacks
Τ ύ π ο ς
ε π ί θ ε σ η ς Π ε ρ ι γ ρ α φ ή Μ έ θ ο δ ο ι κ α ι 1 Ε |> γ α λ ε ν «
«02 11 F r a m e I n j e c t i o n
Δ η μ ι ο υ ρ γ ί α κ φ α π ο σ τ ο λ ή π λ α σ τ ώ ν π λ α ι σ ί ω ν ( F r a m e s ) 8 0 2 . 1 1
A i r p w n , F i i e 2 a i r , l i b r a d i a t c , v o i d ] 1 , W E P W e d g i e , w u e t d i n j e c t / r e i n j e c t S 0 2 . 1 1
D a t a R e p l a y
Α η μ υ ο ί ί ρ γ ι ί ϋ ν τ α ς π λ α ί σ ι α δ ε δ ο μ έ ν ω ν ( d a t a f r a m e s ) 8 0 2 . 1 1 γ ια . ( τ ρ ο π ο π ο ι η μ έ ν ε ς )
; ε π α ν α λ ή ψ ε ι ς π ο υ θ α α κ ο λ ο υ θ ή σ ο υ ν .
C a p t u r e + I n j e c t i o n Ε ρ γ α λ ε ί α
8 0 2 . 1 1 D a t a D e l e t i o n
Π α ρ ε μ β ο λ ή ε ν ό ς ε π ι δ ί ω κ α μ ε ν ο ω δ έ κ τ η γ ι α α π ο τ ρ ο π ή τ η ς π α ρ ά δ ο σ η ς κ ν ώ τ α υ τ ό χ ρ ο ν α γ ί ν ε τ α ι χ ρ ή σ η τ ο υ τ ό π ο υ π α ρ α π λ ά ν η σ η ς A C K s γ ι α δ ι α γ ρ α μ μ έ ν α π λ α ί σ ι α δ ε δ ο μ έ ν ω ν ( d a t a , f r a m e s ) .
J a m i ll i r i g -t- I n j e c t i o n Ε ρ γ α λ ε ί α
« 0 2 . 1 X Β Λ Ρ R e p l a y
Σ ύ λ λ η ψ η 8 0 2 . 1 X E x t e n s i b l e A u t h e n t i c a t i o n P r o t o c o l s ( π . χ , , Ε Α Ρ I d e n t i t y , S u c c e s s , F a i l u r e ) γ ι α ε π α ν ά λ η ψ η α ρ - ν ό τ ε ρ α .
W i r e l e s s C a p t u r e + I n j e c t i o n ε ρ γ α λ ε ί α μ ε τ α ξ ύ σ τ α θ μ ο ύ κ π ι A P 8 0 2 . I X
R A D I O S R e p l a y
Σ ύ λ λ η ψ η R A D T U S A c c e s s - A c c e p t ή R e j e c t μ η ν ύ μ α τ α γ ι α ε π α ν ά λ η ψ η .
E t h e r n e t C a p t u r e + I n j e c t i o n ε ρ γ α λ ε ί α μ ε τ α ξ ύ A P κ α ι a m h e n t i o a t i o n s e r v e r
Authentication attacks (Πίνακας 4.4)
Οι εισβολείς χρησιμοποιούν τέτοιου είδους επιθέσεις (attacks) για να κλέβουν νόμιμα αναγνωρισμένες ταυτότητες χρήστη και διαπιστευτήρια για πρόσβαση σε διαφορετικά ιδιωτικά δίκτυα και υπηρεσίες.
Πίνακας 4.4: Authentication attacks
Τ ύ π ο ι Ι ΐίε ρ ιγ ρ α φ ή
Ε π ί θ ε σ η ς _____________________________ Η
ν ιέ θ ο δ ο ι κ α ι ΐρ γ α λ ε ία Π ρ ο σ π ά θ εια π ισ το π ο ίη σ η ς δ η μ ο σ ίο υ
κ λ ειδ ιο ύ (S h a re d K ey A u th e n tic a tio n ) S hared ey go2 11 μ ε μ ά ν τεμ α χρ η σ ιμ ο π ο ιώ ν τα ς
π ρ ο ε π ιλ ο γ ή π ρ ο μ η θ ευ τώ ν ή W E P k ey s π ο υ
έ χ ο υ μ ε σ π ά σ ει, |
W EP C ra c k in g fo o ls
Ε π α ν α φ ο ρ ά ε ν ό ς W P A P S K α π ό έ ν α P S K σ υ λ λ α μ β α ν ό μ εν υ κ λειδ ί h a n d sh a k e π λ α ισ ίω ν C ra c k in g χ ρ η σ ιμ ο π ο ιώ ν τα ς έν α ς α ρ χ είο μ ε π ο λ λ ές
λ έ ξ ε ις κ αι κ ω δ ικ ο ύ ς
co W P A tty , K isM A C , w p a_ crack , w pa- p sk -b f
. . Κ α τα γρ α φ ή δια π ισ τ ευ τη ρ ίω ν χ ρ ή σ τη (π .χ,.
A p p licatio n §ιεβ0υ ν σ η Κ(„ Κ(1>δικός π ρ ό σ β α σ η ς) :L o g in c π|)αιτύκολλα εφ α ρ μ ο γ ή ς cle a rte x t
A ce P assw o rd S n iffer, D sn iff,
PH oss, W in S n iffer Α ν ά κ τ η σ η δια π ισ τ ευ τη ρ ίω ν χ ρ ή σ τη (π.χ.,
σ ύ ν δ εσ η με τα W in d o w s κ α ι κ ω δ ικ ό ς D o m ain π ρ ό σ β α σ η ς) σ π ά ζο ν τ α ς τ α N etB IO S
p a ss w o rd h a sh e s , κ α ι χ ρ η σ ιμ ο π ο ιώ ν τα ς rac in g τε χ ν ικ ή b ru te -fo rc e ή ερ γ α λ εία d ictio n ary
[attack.
Jo h n th e R ipper, LO phtCraek, C ain
V P N L ogin C ra c k in g
Ε π ανα φ ο ρ ά δ ια π ισ τ ε υ τη ρ ίω ν χρ ή σ τη (π .χ..
κ ω δ ικ ό ς π ρ ό σ β α σ η ς Ρ Ρ Τ Ρ ή IP sec P resh ared S e c re t K ey δ ο κ ιμ ά ζ ο ν τ α ς b ru te -fo rc e attack s σ ε π ρ ω τό κ ο λ λ α επ α λ ή θ ε υ σ η ς τα υ τό τη τα ς V PN .
Ike scan and i k c c r a c k (IP sec), a n g e r and T H C - p p tp -h ru le r (P P T P )
8 0 2 . IX Id en tity T h e ft
Δ η μ ιο υ ρ γ ώ ν τα ς τ α υ τ ό τ η τ ε ς χ ρ η σ τώ ν α π ό τ α π α κ έ τ α α π ό κ ρ ισ η ς τα υ τό τη τα ς cle a rte x t
8 0 2 . IX . _ _ _ _ _
C a p tu re ε ρ γ α λ εία
8 0 2 .IX P a ss w o rd G u e ssin g
Χ ρ η σ ιμ ο π ο ίη σ η μ ια ς σ υ λ λ η ψ θ είσ α ς τα υ τ ό τη τα ς ε π α ν ε ιλ η μ μ έ ν α π ρ ο σ π α θ ώ ν τα ς σ τ ο 802. IX ν α β ρ ο ύ μ ε τ ο κ ω δ ικ ό τ ο υ user.
P assw o rd D ictio n ary
8 0 2 .IX L E A P C rack in g
Α ν ά κ τ η σ η τω ν ευ α ίσ θ η τω ν σ τ ο ιχ ε ίω ν του χ ρ ή σ τη (u s e r c re d e n tia ls) από σ υ λ λ η φ θ έν τα 8 0 2 . IX L ig h tw e ig h t Ε Α Ρ π α κ έτ α (L E A P ), χ ρ η σ ιμ ο π ο ίη σ η εν ό ς ερ γ α λ είο υ επ ίθ εσ η ς
λ ε ξ ικ ώ ν γ ια ν α σ π ά σ ο υ μ ε το Ν Ι p assw o rd h ash .
A n w rap , A sleap , T H C -L E A P c ra c k e r
8 0 2 .1 X E A P D o w n g rad e
Π α ρ α β ία σ η εν ό ς 8 0 2 .1X serv er ο ύ τ ω ς «άστε ν α π ρ ο σ φ έρ ει έ ν α ν α σ θ ενή τ ύ π ο
π ισ το π ο ίη σ η ς τ α υ τ ό τ η τ α ς χ ρ η σ ιμ ο π ο ιώ ν τα ς π λ α σ τ ά π α κ έ τ α E A P -R csp o n se/N ak .
F ile2air, lib rad iate
4.4.5 Availability attacks (Πίνακας 4.5)
Αυτοί οι τύποι επιθέσεων (attacks) παρακωλύουν την παροχή ασύρματων υπηρεσιών (wireless services) που είναι απαραίτητες για τη νομιμοποίηση των χρηστών, είτε
απαγορεύοντας τους την πρόσβαση σε πόρους WLAN, είτε προκαλώντας σοβαρές ζημιές στους συγκεκριμένους πόρους.
Τ ύ π ο ι Ε π ίθ ε σ η ς ΙΙ ε ρ ιγ μ α φ ή Μ έ θ ιιά υ ι n u t ι ρ γ α λ ι ίιι Κ λο π ή (T h eft)
Α Ρ
'Ρ υ σ ικ ή α π ο μ ά κ ρ υ ν σ η ε ν ό ς Λ Ρ α π ό έν α δ η μ ό σ ιο δ ιά κ ε ν ο (p u b lic sp ace).
" l i v e Ιιιημα d is w u iil"
Π α ρ εμ β ο λ ή ( J a m m in g ) R F
Ε κ π έμ ιιο ν τα ς σ τ η ν ίδια σ υ χ ν ό τ η τ α όπηνς ο σ τ ό χ ο ς W L A N , δ ιιιβ κ ιυ ν τ ιις ίσ ω ς δ ύ ν α μ η π ο υ υ π ε ρ β α ίν ε ι τη ν π ρ ο β λ ε π ό μ ε ν η ιπ ο τ ο χ ικ ά
ιο ό τιμ η (E IR P ).
R F Jam m er, φ ο ύ ρ ν ο ς μ ικ ρ ο κ υ μ ά τ ω ν (M ie m w n w o v en ), Λ Ρ μ ε A lch em y /H y p c rW R T firm w are
Q u e e n sla n d D o S
Ε κ μ ε τ α λ λ ε υ τε ίτε τ ο μ η χ α ν ισ μ ό C S M A /C A C le a r C h an n el A sse ss m e n t (C C A ) γ ια ν α κ ά ν ε τε έ ν α κ α ν ά λ ι ν α ε μ φ α ν ίζ ε τ α ι α π α σ χ ο λ η μ έν ο .
Έ ν α ς α τ ά π τ ο ρ α ς (a d a p te r) ο ο π ο ίο ς υ π ο σ τ η ρ ίζε ι CWr Τ Χ m o d e , μ ε ένα β ο η θ η τικ ό π ρ ό γ ρ α μ μ α χαμ ηλοί) ε π ιπ έ δ ο υ γ ια ν α π ρ ο κ α λ εί σ υ ν ε χ ή μ ετά δο σ η .
802.11 B eaco n F lo o d
Π α ρ α γ ω γ ή χ ιλ ιά δ ω ν π λ α σ τ ώ ν b e a c o n s 802.11 π ο υ έ χ ο υ ν ω ς σ τ ό χ ο ν α π α ρ ε μ π ο δ ίζο υ ν ή να δ υ σ κ ο λ ε ύ ο υ ν τη ν α να ζή τη σ η ε ν ό ς ν ό μ ιμ ο υ Λ Ρ α π ό το υ ς σ τ α θ μ ο ύ ς.
Π λ α σ τ ό (F a k e ) Α Ρ
802.11 A sso c ia te ) A u th e n tic a te F lo o d
Σ τ έ λ ν ο ν τ α ς π λ α σ τ ές π ισ τ ο π ο ιή σ ε ις τ α υ τ ό τ η τ α ς ή σ υ ν δ έ σ ε ις α π ό τ υ χ α ίε ς M A C s γ ια ν α γ ε μ ίσ ο υ μ ε έν α π ίν α κ α σ υ σ χ έ τ ισ η ς ΑΡ.
A irja c k , F ile2 air, M acfld , v o id 11
802.11 T K IP M IC E x p lo it
Π α ρ α γ ω γ ή μη έ γ κ υ ρ ω ν δ ε δ ο μ έ ν ω ν T K JP π ο υ υ π ε ρ β α ίν ο υ ν το M IC e rro r th re sh o ld σ ε σ τ ό χ ο υ ς Α Ρ , α ν α σ τ ο λ ή υ π η ρ ε σ ιώ ν W L A N ,
F ile2 air, w n ct d in ject
802.11 D e au lh cn ticatc F lo o d
Σ τα θ μ ο ί F lo o d in g μ ε π λ α σ τ έ ς μη π ισ τ ο π ο ιή σ ε ις τ α υ τ ό τ η τ α ς ή μη σ υ ν δ έ σ ε ις π ο υ α π ο σ υ ν δ έ ο υ ν το υ ς χ ρ η σ τ έ ς α π ό έ ν α Λ Ρ.
A ilja c k . O m c rta . v o id 11
8 0 2 . IX EA P-
Υ πέρ τρ ο φ ο δ ο σ ία (F lo o d in g ) εν ό ς Λ Ρ μ ε μ η ν ύ μ α τα F.A P -S tart S ta rt Flood μ ε σ τ ό χ ο τη ν φ θ ο ρ ά τω ν π ό ρ ω ν
ή σ τ ο σ π ά σ ιμ ο το ύ σ τό χο υ .
Q A C a fe , F ile2 air, lib rad ialc
8 0 2 .1 X E A P - F ailu re
Π α ρ α τή ρ η σ η μ ια ς ν ό μ ιμ η ς α ν τ α λ λ α γ ή ς 802. IX Ε Α Ρ , και α π ο σ το λ ή π λ α σ τ ο ύ μ η ν ύ μ α το ς F .A P -F ailure σ τ ο σ τα θ μ ό .
Q A C a fc , F ile 2 a u , libradiatc
802 IX E A P -o f- D calh
Α π ο σ το λ ή μ ια ς m alfo rm ed α π ά ν τη σ η α π ό τ α υ τ ό τη τα 8 0 2 .1 X Ε Α Ρ γ ν ω σ τ ή γ ια τη ν π ρ ό κ λ η σ η κ ά π ο ια ς μ ο ρ φ ή ς δ υ σ λ ε ιτο υ ρ γ ία ς σ ε ορισμένιτ A Ps.
Q A C a fe , F ile2 air, libradiatc
8 0 2 .I X E A P L e n g th A ttack s
Α π ο σ το λ ή μ η ν υ μ ά τω ν Ε Α Ρ ty p e -sp e c ific με ε λ α ττω μ α τικ ά π ε δ ία μ ή κ ο υ ς γ ια ν α β ο η θ ή σ ο υ ν σ τ η ν α π ό π ε μ ιυ σ π α σ ίμ α το ς εν ό ς Λ Ρ ή ε ν ό ς R A D IU S s e rv e r
Q A C a fe , F ilc2 air, lib rad iate
Σημείωση: πολλά από τα εργαλεία που προαναφέρθηκαν, μπορεί κανείς να τα βρει στο Auditor Security Collection. Πρόκειται για μια εργαλειοθήκη (toolkit) KNOPPIX-based που προορίζεται για χρήση κατά τη διάρκεια δοκιμών διείσδυσης και αξιολόγησης τρωτών σημείων.
Κεφάλαιο 5°
Προστασία ασύρματου δικτύου από εισβολείς του διαδικτύου
5.1 Εισαγωγή
Πέρα από τον πρωταρχικό στόχο μας να παρουσιάσουμε τους δυνατούς τρόπους προστασίας του εσωτερικού μας δικτύου, είναι επιβεβλημένο, πιστεύω, καταρχήν να επισημανθούν και κάποιες μέθοδοι προστασίας του δικτύου μας από το διαδίκτυο (ίντερνετ). Για τον σκοπό αυτό θα προβούμε σε μια διαδικασία υλοποίηση ενός firewall.
Υπάρχουν πολλές λύσεις για firewall: είτε hardware επαγγελματικές έτοιμες λύσεις ή software λύσεις οι οποίες εξαρτώνται και από το λειτουργικό σύστημα που θα επιλέξουμε, δηλ. αν θα είναι Microsoft Windows ή *ΝΙΧ, τις οποίες μπορούμε και μόνοι μας να υλοποιήσουμε έχοντας στη διάθεση μας ένα υπολογιστή και τα κατάλληλα προγράμματα. Το κόστος ορίζεται ανάλογα με το είδος της λύσης που θα επιλέξουμε για το δίκτυο μας.
Στην περίπτωση μας, θα χρησιμοποιήσουμε τη δεύτερη επιλογή δηλ. θα υλοποιήσουμε ένα firewall με την χρήση κατάλληλου λογισμικού και υπολογιστή σε *ΝΙΧ λειτουργικό σύστημα. Και αυτό γιατί (α) το κόστος των προγραμμάτων (software) είναι ελάχιστο έως ανύπαρκτο και (β) για τη μεγάλη γκάμα προγραμμάτων που έχουμε στη διάθεση μας. Το μόνο κόστος σε αυτή την περίπτωση είναι ένας υπολογιστής με κάποια χαρακτηριστικά που θα αναφέρουμε πιο κάτω.
Τα υλικά που θα χρειαστούμε είναι:
HARDWARE:
Ένα υπολογιστή με επεξεργαστή 500 MHz ή περισσότερο και μητρική, 128MB η περισσότερο RAM, 10 GB ή περισσότερο σκληρό δίσκο, 2 κάρτες δικτύου και CD ROM.
SOFTWARE:
Εδώ μπορούμε να επιλέξουμε αρκετά προγράμματα για την δουλεία αυτή. Μια εύκολη και πολύ γρήγορη λύση είναι η χρήση έτοιμων και δωρεάν firewall που υπάρχουν στο ίντερνετ όπως π.χ. το smoothwall (http://www.smoothwall.org) ή το monowall http://mOnO.ch/wall/
που μπορείτε χωρίς ιδιαίτερες γνώσεις να στήσετε σε λίγη ώρα ένα firewall για το δίκτυο σας.
Υπάρχουν και άλλες δωρεάν λύσεις, στις οποίες δε θα αναφερθούμε (μπορείτε να βρείτε αρκετές ψάχνοντας σε μία μηχανή αναζήτησης όπως το Google, το yahoo κτλ). Επίσης για δωρεάν προγράμματα *ΝΙΧ Base συστημάτων μπορείτε να ανατρέξετε στις παρακάτω ηλεκτρονικές διευθύνσεις: http://freshmeat.net και http://sourceforge.net/.
Για τον δικό μας σκοπό θα χρησιμοποιήσουμε σαν λειτουργικό σύστημα το FreeBSD και κάποια προγράμματα που είναι στα ports του FreeBSD. To FreeBSD είναι μια δωρεάν έκδοση UNIX που διακρίνεται για την σταθερότητα του και την ευκολία του στην εγκατάσταση προγραμμάτων χάρη στην δυνατότητα των ports που έχουνε ενσωματωθεί. Τα ports είναι μια λίστα προγραμμάτων τα οποία έχουνε δοκιμαστεί ότι δουλεύουνε πάνω στο συγκεκριμένο λειτουργικό σύστημα και με απλές εντολές χωρίς να χρειάζεται να ψάξεις στο ίντερνετ για να βρεις τα προγράμματα σου κατεβάζει το πρόγραμμα που θέλεις και στο εγκαθιστά.
5.2 Διαδικασία Εγκατάστασης του FreeBSD
Κάθε βήμα — εντολή, ακολουθείται από μια ή περισσότερες εικόνες (screenshots), για να γίνει πιο κατανοητή η διαδικασία.
Κατεβάζουμε την έκδοση του FreeBSD που θέλουμε από
ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/
και την καίμε σε CD με κάποιο πρόγραμμα αντιγραφής CD.
Για το συγκεκριμένο firewall έχουμε χρησιμοποιήσει την τελευταία σταθερή έκδοση της σειράς 4 και συγκεκριμένα την 4.11. Υπάρχει σειρά 5 και 6 αυτή την στιγμή που γράφεται αυτή η εργασία, για οποίον θέλει να πειραματιστεί με καινούργια πράγματα.
Αφού ετοιμάσουμε τα CD μας ξεκινάμε την εγκατάσταση μας από το CD.
Μόλις ξεκινήσει ο υπολογιστής τη διαδικασία εγκατάστασης θα παρουσιαστεί η παρακάτω εικόνα.
Verifying DMI Pool D a ta ...
Boot from ATAPI CD-ROM : 1. FD 2.88MB System Type-(OO) Uncompressing ... done
BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is diskO
BIOS drive B; is diskl BIOS drive C: is disk2 BIOS drive C: is disk3
BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 0.8 /kernel text-0x277391 data-0x3268c+0x332a8 |
I
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 9 seconds... _
Πατάμε ENTER ή περιμένουμε 9 δευτερόλεπτα για να προχωρήσει η εγκατάσταση από μόνη της.
Όταν προχωρήσει η εγκατάσταση εμφανίζεται η επόμενη οθόνη.
Kernel Configuration Menu
Skin Kernel configuration and continue with installation
y u i i a · ! Jn«i-Ki j'i.'w v < t.i.· ι > ί a . >41»
Start kernel configuration in CLI made
Here you liauc the chance to go into kernel configuration mode, nuking any changes which may be necessary to properly adjust the kernel to notch your hardware configuration.
If you are Installing FreeBSD Tor the first tine, select Uisual Node (press Down-Arrow then ENTER).
If you need to do nore specialized kernel configuration and are an experienced FreeBSD user, select CLI node.
If you are 'HJilllf that you do not need to configure your kernel then sinply press EHTF.R or Q nou.
Επιλέγουμε το "Skip kernel configuration and continue with installation" και πατάμε ENTER.
Όπως μπορείτε να παρατηρήσετε, το εγχειρίδιο αυτό αποτελείται από πολυάριθμες εικόνες (screen shots), οι οποίες θα σας βοηθήσουν να ολοκληρώσετε με επιτυχία την εγκατάσταση.
Πρώτα απ' όλα επιλέξτε τη χώρα που σας ενδιαφέρει και μετά πατήστε enter.
Από το κυρίως μενού, θα επιλέξετε και θα θέσετε σε λειτουργία την συνηθισμένη διαδικασία εγκατάστασης.
Δημιουργία διαίρεσης δίσκου (Partition creation) με τη βοήθεια του fdisk (αυτά είναι επίσης γνωστά ως 'slices') - πατήστε ΟΚ για να συνεχίσετε. Ως αρχικό στάδιο θα πρέπει να επιλέξουμε τον (ή τους) drive(s) που θα χρησιμοποιήσουμε για την εγκατάσταση μας. Για το σκοπό μου αυτό θα χρειαστούμε μόνο ένα δίσκο. Χρησιμοποιήστε τα πλήκτρα μετακίνησης ανόδου (up) και καθόδου (down) για να επιλέξετε τη δική σας μονάδα δίσκου εκκίνησης (boot drive), έπειτα πατήστε το πλήκτρο διαστήματος (space bar) για να προχωρήσετε στον Partition Editor screen. Πάντοτε πατούμε Ά για την χρήση ολόκληρου του δίσκου, κατόπιν 'S' για την εναλλαγή του δείκτη εκκίνησης (boot flag), τέλος 'Q' για παύση. Για ταχείες εναλλαγές απλά πατήστε 'ASQ'. Πατώντας 'Q' θα μεταφερθείτε πίσω στο bootmanager screen. Επιλέξτε 'BootMgr', για να επιστρέψετε στην οθόνη επιλογής δίσκου (disk selection screen). Εάν διαθέτετε και δεύτερο δίσκο για εναρμόνιση διαιρέσεων δίσκου (configure partitions), σπρώξετε το πλήκτρο βέλους προς τα κάτω και πατήστε space. Η διαφορά σε αυτόν το δεύτερο δίσκο έγκειται στο γεγονός ότι δε χρειάζεται να πατήσετε το 'S', καθώς δεν είναι αναγκαία η εναλλαγή του δείκτη εκκίνησης (boot flag) σε αυτόν το δίσκο. Για το δεύτερο δίσκο απλά πατήστε διαδοχικά το 'AQ'
ID i sk naMe:
IniSK GeoMetry: 2088 cyls/255 heads/63 sectors = 33S43720 sectors (16378MB)
Offset Slze(ST) End NaMe PType Desc Subtype Flags
0 33554432 33554431 -
DISK Partition Editor
12 unused 0
[The following c o m a n d s are supported (In upper or lower case):
I
f) = Use Entire Disk G - set Drive GeoMotry U = Delete Slice 2 = Toggle Size Units T = Cliange Type U = Undo fill ChangesC = Create Slice S = Set Bootable Q = Finish
Jse FI or ? to get More help, arrow keys to select.
F = 'DD’ Mode
! = Wizard m.
Gance 1
78MB)
daHsl isk naMu
ISK GeoMetry: 20B8 cyls/255 heads/63 sectors = 33543720 s e c t o r s " 162
ffset Size(ST) End
0 63 62
63 33543657 33543719 33543720 10712 33554431
NaMe PType Desc Subtypo Flags unused
f reebsd unused
rhe following cnMMands are supported (in upper or luwor case):
’ ~ nS? Dlsk G = set Dri<Je GeoMetry C = Create Slice F = ’D D ’ Mode J - Delete Slice Z = Toggle Size Units S = Set Bootable 1 = Wizard m
Γ - Change Type U = Undo 011 Changes Q a Finish
Jse FI or ? to get More help, arrow keys to select.
FreeBSD c o m b s with a boot selector that allows you to easily
S* 1®ct l,“ |Me0n FreeBSD and any other operating systeMS on your Machine at hoot t im b. If you have More than one drive and want to boot
froM the second one, the boot selector will also Make it passible to do so (liMitations in the PC BIOS usually prevent this otherwise) If you do not want a boot selector, or wish to replace an existinq one, select standard If you would prefer your Master Boot Jlecord to reMain untouched then select "None” .
40TE: PC-DOS users will alMnst certainly require "None"!
B n o t M q r M l n s t a l 1 the FreeBSD Boot Mana____ ττ^ π
Install a standard MBH (no hoot Manager) Leave the Master Boot Decord untouched
Τώρα θα πρέπει να δημιουργήσουμε partitions μέσα στα slices. Τα πλήκτρα μετακίνησης up/down θα σας βοηθήσουν να επιλέξετε τους διαφόρους δίσκους, εάν διαθέτετε περισσοτέρους από ένα. Πάντοτε να χρησιμοποιείτε τις προκαθορισμένες διαστάσεις (default size) τις οποίες επιλεγεί ο installer. Για τον δίσκο adO, απλά πατήστε Ά' για Auto Defaults.
"reeBSD Disk label Editor|
Disk: da0 Partition n«ne: daBsl Free: 33543657 blocks C1637BMB)
Part Mount Size Newfs Part Mount Size Newfs
The following cnMimnds are oalid here (upper or lower case):
C = Create D = Delete M = Mount pt.
H = Newfs Opts Q = Finish S = Toggle SoftUpdates Z = CustoM Newfs Γ = Toggle Newfs U = Undo fl = ftuto Defaults R = Delete*Murge Jse Fl or ? to get nore help, arrow keys to select.
! _ ______________________________________________________________
■Fre e B S D Disklahnl E d i t o r ·
Disk: daB Partition u s m b: daBsl Free: 0 blocks (BMB)
Part Mount Size Newfs Part Mount Size Newfs
daftsla / 512MB UFS Ϋ
daBslb swap 998MB SUAP
dads Id /var 1523MB UFS»S Ϋ
ilaBsle /tMp 512MB UFS»S Y
flaBslf 2usr 12032MB IJFS*S Y
The following c o M M a n d s are valid here (upper or lower case):
C = Create D = Delete M = Haunt pi.
M = Hewfs Upts 0 = Finish S = Toggle SoftUpdates 2 = CustoM Newfs
Γ = Toggle Newfs U = Undo A = Auto Defaults H = Delete*Merge j
r
F1 °r 7 - - ”arrow keys to select.
Εν συνεχεία επιλέγουμε τον τρόπο διανομής. Πάντοτε χρησιμοποιούμε το Kern-Developer install. To Kern-Developer install χρειάζεται ελάχιστο συνολικό χρόνο και διασφαλίζει την εγκατάσταση των πιο αναγκαίων δεδομένων καθώς και του source του πυρήνα που θα το χρειαστούμε στη συνέχεια. Για οτιδήποτε άλλο χρειαστείτε θα το βρείτε από τη συλλογή θυρών (ports collection). Οδηγηθείτε με τα πλήκτρα μετακίνησης στην επιλογή Kern- Developer και πατήστε enter. Πατήστε enter ξανά για να επιβεβαιώσετε την προκαθορισμένη επιλογή και να την φορτώσετε από το CDROM, και ακόμα μια φορά για να το επαληθεύσετε (YES') και να συνεχίσετε. Ο installer θα αρχίσει να προσθέτει τα συστήματα αρχείων και να αντιγράφει τη βάση εγκατάστασης (base installation). Όταν ολοκληρωθεί η διαδικασία θα εμφανιστεί μια congratulations screen. Κάντε κλικ πάνω στο ΟΚ για να συνεχίσετε
'canned" distribution sets
If you would prefer to and choose the
Choose an iteM by pressing [SPACE] or IENTEH1. When finished, choose the
C a n c e 1 As a convenience, wo provide several
These select what we consider to be the Most reasonable defaults for the type of systeM in question.
list of distributions yourself, siwply select "CustoM". You can also pick a canned distribution set and then fine-tune it with the CustoM iteM
Exit iteM or m o v b to the OK button with ITAB 1.
Fill sources, binaries and doc but no gaMes SaMu as above X Uindow SysteM
Full binaries and doc, kernel sources SaMe as abuve X Uindow SysteM Overage user - binaries and doc only SaMe as above Uindow SysteM
he SMdllest configuration possible M i in μ λ 1
Specify your own distribution set
Η σύνθεση Ethernet είναι αρκετά απλή, και μπορείτε να την αρχίσετε κάνοντας κλικ στο εικονίδιο ΝΑΙ (yes) ή ΟΧΙ (no). Εάν κάνετε κλικ στο yes, θα προχωρήσετε στην επιλογή διασυνδετικής διάταξης (interface selection). Η κάρτα Ethernet σας συνήθως καταγράφεται στο πάνω μέρος. Στο παράδειγμα που παραθέτω, η κάρτα Ethernet είναι γνωστή με την ονομασία IncO. Πατήστε ΟΚ για να συνεχίσετε. Έπειτα θα ερωτηθείτε εάν επιθυμείτε να χρησιμοποιήσετε το DHCP ή όχι. Εάν η επιλογή σας είναι θετική (yes), η σύνθεση Ethernet θα περατωθεί και θα προχωρήσετε στο επόμενο κεφάλαιο, εάν πάλι η επιλογή σας είναι αρνητική, θα εμφανιστεί στην οθόνη σας το Network Configuration dialog. Εισάγετε την ονομασία του υπολογιστή σας, το όνομα περιοχής, το router, το dns server, και την ip address/netmask, και μεταφερθείτε με τη βοήθεια του πλήκτρου tab στο κάτω μέρος όπου αναγράφεται η ένδειξη ok. Μόλις πατήσετε το κουμπί enter, θα ερωτηθείτε εάν επιθυμείτε να φέρετε το interface τώρα σε κατακόρυφη θέση. Πάντα να κάνετε κλικ στην επιλογή ΝΑΙ (yes).
If yuu are using PPP over a serial device, as oppusud to a direct ethernet connection, then you May first need to dial your Internet
the ppp utility we provide for that purpose.
Service Provider using
If y o u ’re using SLIP over a serial device then the expectation is that you have a HARDWIRED connection.
lapli nk' You can also install over a parallel port using a special
cable to another Machine running FreeBSD.
ancc/PCnet (Isolan^Hovel1 NE21BB/NE32-UU ethernet (FLIP) peer connection
Parallel Port
SLIP interface on device /dev/cundfl CCOMl) PPP interface on device /dov/cuad0 CCOMl) SLIP interface on device /dev/cuadl (COM2) PPP interface on device /dev/cuadl (CUM?)
Cttiice 1
n9 PPP interface on device xri evTcnatlf
Έπειτα ακολουθεί μια σειρά με ερωτήσεις του στυλ ΝΑΙ/ΟΧΙ (yes/no), που μπορεί αρχικά να προκαλέσουν κάποιου είδους σύγχυση. Δεδομένου ότι κάθε εικόνα θα πραγματεύεται και ένα διαφορετικό θέμα, είναι επιβεβλημένο να απαριθμήσουμε τα ερωτήματα:
1) Θέλετε το μηχάνημα να λειτουργεί ως μια πύλη δικτύου (network gateway); ΟΧΙ.
2) Θέλετε να ρυθμίσετε το inetd και τις υπηρεσίες δικτύου (network services); ΟΧΙ
3) Θα θέλατε σύνδεση με ssh; ΝΑΙ (δεν πρόκειται για default... αλλάξετε το σε ΝΑΙ!)
4) Θέλετε ένα άγνωστο FTP σε αυτή τη μηχανή; ΟΧΙ.
5) Θέλετε να ρυθμίσετε αυτή τη μηχανή ως NFS server; ΟΧΙ.
6) Θέλετε να ρυθμίσετε αυτή τη μηχανή ως NFS client; ΟΧΙ.
7) Θα θέλατε τώρα να ρυθμίσετε τη Ζώνη ώρας της μηχανής; ΝΑΙ.
8) Μήπως τα CMOS αυτής της μηχανής ρυθμίζετε σε UTC; ΟΧΙ.
Η επιλογή της Ζώνης ώρας πρέπει να είναι ακριβής και απλή. Διαλέξτε την περιοχή σας και πατήστε enter. Έπειτα επιλέξτε τη χώρα σας και πατήστε enter ξανά. Τέλος, διαλέξτε τη ζώνη σας και πατήστε και πάλι enter .
Select a region
Cancel MDrica — North and South Hntdrctled
Arctic Ocean Asia
Atlantic Ocean Australia Europe
Indian Ocean Pacific Ocean
Central Tinn Central Tine Central Tine ■ Central Tine Central Tine Mountain Tine
which observes the saMe tine as pour locality.
Select zone Eastern Tine
- Must locations Michigan
Eastern TiMe -
- Louisville area Kentucky
Eastern Tine -
Uayne County Kentucky
Eastern TiMe
Most locations Indiana -
Eastern TiMe -
Crawford County Indiana
Eastern Tine
Starke County Indiana
Eastern Ti m r
Switzerland County Indiana -
Eastern TiMe - entral TiMe
D a v i e s s , Dubois, Knox, Martin. Perry S Pula Indiana
Indiana - Pike County
Michigan D i c k i n s o n , Gogebic, Iron X MennMinBB Count Oliver County
North Dakota
North Dakota - Morton County (except Mandan area) south Idaho X east Oregon
Mountain Ti m c
Cance1
Select a zone which observes the sane tine as your locality Eastern Tine
Eastern Tine - Michigan - Most locations Louisville area Eastern TiHe - Kentucky
Kentucky - Uayne County Eastern TiHe
Most locations Eastern TiMe - Indiana
Crawford County Eastern TiMe - Indiana
Does the abbreviation 'CST’ look reasonable?
® '3 M ]
Oliver County Central TiMe - North Dakota
Central TiMe - North Dakota - Morton County (except Mandan area) Mountain TiMe
east Urogon south Idaho
Mountain TiMe
Cance1
Μερικές ακόμη ερωτήσεις τύπου ΝΑΙ/ΟΧΙ:
9) Πρέπει να ενεργοποιηθεί η υποστήριξη του δυαδικού λειτουργικού συστήματος Linux;
ΟΧΙ (εάν η διάταξη συστήματος του υπολογιστή σας επιβάλλει να γίνει αυτό αργότερα, αυτό θα προστεθεί αυτομάτως, οπότε μπορείτε να το παραλείψετε για την ώρα).
10) PS2, Serial or bus mouse; Εάν διαθέτετε ποντίκι (mouse) USB, πατήστε στην επιλογή όχι, εάν όμως έχετε ένα από τα τρία αντικείμενα που αναφέρονται πιο πάνω τότε κάντε κλικ στην επιλογή ΝΑΙ. Εάν η επιλογή σας είναι θετική, η οθόνη που ακολουθεί θα σας επιτρέψει να δοκιμάσετε τις ρυθμίσεις, αλλά ακόμα και όταν εγκαθιστάτε ένα PS2 mouse system, μπορεί αυτό να παραβλεφθεί. Κάντε κλικ για να το δοκιμάσετε εάν θέλετε.
Αυτό που ακολουθεί είναι σημαντικό. Τα packages system είναι εφαρμογές οι οποίες είναι προμεταγλωτισμένες και έτοιμες να εκτελεστούν πάνω σε FreeBSD. Μερικές φορές όμως, μπορεί να είναι απαρχαιωμένες, και ακόμη χειρότερα, μπορεί να δέχονται μόνο παλαιότερες εκδόσεις πραγμάτων, όπως είναι το apache. Θα σας συνιστούσα να μην τα προτιμάτε αυτά, και αργότερα, όταν θα μιλήσουμε για τη ρύθμιση παραμέτρων Desktop or Server, θα εξηγήσω τους λόγους.
Συνεπώς στην ερώτηση εάν επιθυμείτε να:
11) Αναζητήσετε (browse) τη συλλογή πακέτων (packages collection); ΟΧΙ.
Εξίσου σημαντικό είναι το θέμα που αναφέρεται στους λογαριασμούς χρήστη (user accounts). Πάντοτε επιλέγουμε να μην προσθέσουμε κανένα λογαριασμό χρήστη, καθώς μερικές φορές κατά τη διάρκεια μιας διεργασίας που θα μνημονευθεί εδώ αργότερα, η ομάδα εγγεγραμμένων χρηστών μπορεί να μπερδευτεί και κάποιοι μπορεί να απομακρυνθούν από τις ομάδες στις οποίες επιβάλλεται να βρίσκονται. Θα προστεθούν πολύ πριν το σύστημα καταστεί εύχρηστο.
Ως εκ τούτου:
12) Θα θέλατε να προσθέσετε λογαριασμούς χρήστη (user accounts); ΟΧΙ.
Αφού πατήσετε enter για την εντολή "no to users", εμφανίζεται μια οθόνη με οδηγίες για ρύθμιση του κωδικού πρόσβασης του συστήματος διαχειριστή (system managers password).
Αυτό αφορά τον βασικό λογαριασμό (root account). Πατήστε enter για να ρυθμίσετε τώρα τον κωδικό πρόσβασης.
Αφού ρυθμίσετε το root password, εμφανίζεται στην επόμενη οθόνη η ακόλουθη ερώτηση:
"Visit the general configuration menu for a chance to set any last options?"
Κάνουμε επανεκκίνηση και περιμένουμε να φορτώσει το σύστημα για να προχωρήσουμε στις ρυθμίσεις ώστε να δουλεύει το σύστημα σαν firewall.
5.3 Ρυθμίσεις στο FreeBSD για να δουλεύει σαν Firewall
To FreeBSD firewall και το natd daemon φορτώνονται με την προσθήκη της ακόλουθης γραμμής εντολής στο /etc/rc.conf:
firewall_enable="YES"
firewall_quiet="NO"
firewall_type="/etc/firewall.conf firewall_flags="-p /usr/bin/cpp"
gateway_enable="YES"
natd_enable="YES"
natd_interface="xl 1"
natd_flags=""
Η ρύθμιση των παραμέτρων αποτελείται από τρία αρχεία, τα οποία μπορείτε να κατεβάσετε και να τα χρησιμοποιήσετε. Το βασικό αρχείο firewall.conf χρησιμοποιεί τις καθορισμένες μεταβλητές σε εγκατάσταση τοίχους προστασίας (firewall.setup) (επιβάλλεται να τροποποιηθεί), για να επιτραπεί σε παρόμοιο αρχείο διευθέτησης να χρησιμοποιηθεί σε πολλαπλές θέσεις. Έπειτα, καλεί το user firewall config (καθίσταται και πάλι αναγκαίο να τροποποιηθεί, εάν επιθυμείτε να αλλάξετε τον αριθμό των χρηστών) το οποίο με τη σειρά του καλεί ipfw κανόνες που εμπερικλείει. Αυτά τα αρχεία κόμβων (tree files) πρέπει να αντιγραφούν στο /etc/ directory σας. Τέλος, ένας καινούργιος πυρήνας (kernel) δημιουργείται. Αυτό προσδίδει μερικά προαιρετικά χαρακτηριστικά (όπως παραδείγματος χάριν το diagnostic login) τα οποία δεν είναι διαθέσιμα εκ προεπιλογής. Επιπλέον, συνθέτει σταδιακά επιμέρους δομικά στοιχεία μέσα στον πυρήνα, * ο οποίος προσφέρει μια αρκετά καλύτερη απόκριση. Αυτό βέβαια επιτυγχάνεται αρχικά με την προσθήκη των ακόλουθων γραμμών μετάδοσης στο αρχείο /usr/src/sys/i386/conf/GENERIC.
options IPFIREWALL
options IPFIREWALLDEFAULTTOACCEPT
options IPFIREWALLFORWARD options IPFIREWALL VERBOSE
options IPFIREWALL_VERBOSE_LIMIT =100 options DUMMYNET
Έπειτα μπορείτε να συλλέξετε και να ταξινομήσετε αυτά τα δομικά στοιχεία αφού πρώτα εκτελέσετε τις συγκεκριμένες εντολές:
cd /usr/src
make buildkernel KERNCONF=GENERIC make installkernel KERNCONF=GENERIC reboot
5.3.1 Φόρτωση των κανόνων τοίχους προστασίας (firewall) FreeBSD.
Το πρώτο βήμα αφορά την φόρτωση των κανόνων του τοίχους προστασίας FreeBSD. To FreeBSD φορτώνει τους κανόνες τοίχους προστασίας (firewall) ipfw κατά τη διάρκεια διαδικασίας εκκίνησης. Απαιτεί όμως κάποιες πληροφορίες για να προβεί στη διαδικασία φορτώσεις των κανόνων του τοίχους προστασίας ipfw. Αυτές τις πληροφορίες μπορεί να τις αναζητήσει στο /etc/rc.conf. Ανοίξετε το και προσθέστε τις γραμμές μετάδοσης που ακολουθούν.
flrewan_enable-'YES”
firewall_quiet="NO"
firewall_type=7etc/firewan.conf' firewall_flags="-p /usr/bin/cpp"
Η εγκατάσταση του τοίχους προστασίας FreeBSD ολοκληρώνεται κατά τη διάρκεια της επόμενης διαδικασίας εκκίνησης μέσω της φόρτωση των κανόνων του τοίχους προστασίας ipfw με τους παρεχόμενους ενδείκτες. Αυτοί οι συγκεκριμένοι ενδείκτες (flags) μας πληροφορούν ότι τα αρχεία επιβάλλεται να τεθούν σε μια διαδικασία προεπεξεργασίας με τη βοήθεια του προεπεξεργαστή (pre-processor) C. Ο προεπεξεργαστής C, παρόλο που αναφέρεται σε γλώσσα υπολογιστή, θα δώσει τη δυνατότητα στο χρήστη να διαλέγει εύκολα διαμορφωμένους κανόνες τοίχους προστασίας FreeBSD.
gateway_enable="YES"
natd_enable="YES"
natd_interface="ed 1"
natd_flags=,m
Οι παραπάνω γραμμές μετάδοσης πρέπει επίσης να προστεθούν, εάν το FreeBSD firewall protection χρησιμοποιείται σαν πύλη δικτύων (gateway). Εάν αυτές οι γραμμές μετάδοσης απουσιάζουν, δε θα είστε σε θέση να συνδεθείτε με το διαδίκτυο
(internet), καθώς είναι απαραίτητες για τη σύνθεση και ρύθμιση της πύλης δικτύων σας μέσα σε ένα δρομολογητή (router) μετάφρασης διεύθυνσης δικτύου (NAT). Από αυτές τις γραμμές μετάδοσης, η πρώτη μας πληροφορεί για τη δυνατότητα των πακέτων να βρίσκουν πέρασμα ανάμεσα σε πολλαπλά περιβάλλοντα εργασίας. Οι ακόλουθες τρεις επιφέρουν τη φόρτωση και ρύθμιση του NAT daemon πάνω στον εξωτερικό ελεγκτή προσαρμογής δικτύου (NIC).
Τα C directives συνιστούν ένα σύνολο οδηγιών προγραμματισμού ηλεκτρονικού υπολογιστή που ελέγχει το αρχείο (ή τα αρχεία) προτού περάσει στο IPFW. Τα αρχεία ρυθμίσεων του τοίχους προστασίας FreeBSD χρησιμοποιεί τις εξής πέντε οδηγίες: (a)include, (β) define, (γ) ifdef, (δ) else and (ε) endif . Η οδηγία include αντιγράφει το πλαίσιο εφαρμογής του αρχείου στη θέση της οδηγίας. Το θεματικό πλαίσιο εμφανίζεται στο αρχείο που αναφέρεται (στην περίπτωση μας fire wall, conf) στην άποψη του επισκέπτη. Η επόμενη οδηγία καθορίζει μια σταθερά, η οποία αντικαθίσταται από την τιμή της, οπουδήποτε χρησιμοποιείται. Εξαίρεση βέβαια αποτελεί η χρήση τους σε οδηγίες όπως παραδείγματος χάριν το ifdef . Η κύρια λειτουργία αυτής της οδηγίας αφορά τον έλεγχο του καθορισμού ή όχι της σταθεράς. Το κείμενο μεταξύ του ifdef και του else προστίθεται στην έξοδο δεδομένων εάν καθοριστεί η σταθερά όπως επίσης και το κείμενο μεταξύ του else και του endif.
5.3.2 Ρυθμίζοντας τους κανόνες του τοίχους προστασίας FreeBSD.
Στο προηγούμενο κεφάλαιο εξηγήσαμε τη λειτουργία φόρτωσης ενός αρχείου διευθέτησης από το FreeBSD firewall, γνωστό ως firewall.conf. Αυτό το αρχείο διευθέτησης FreeBSD firewall στην πραγματικότητα χρησιμοποιεί αρχεία κομβικών δεδομένων για να φορτώσει τους κανόνες του FreeBSD firewall, ενώ το firewall.conf συνιστά το βασικό αρχείο εντολών.
Μερικοί κανόνες ipfw firewall φορτώνονται με την επίσκεψη των χρηστών του τοίχους προστασίας (firewall.user). Μολαταύτα επεξήγηση του τρόπου λειτουργίας των δυο συγκεκριμένων αρχείων εντολών δεν αποτελεί αρμοδιότητα του. Επιπλέον χρησιμοποιεί εγκατάσταση firewall για να μπορεί να ρυθμίζει με μεγαλύτερη ευκολία το τοίχος προστασίας. Έτσι, όταν δεν παρατηρείτε κανένα άλλο πρόβλημα στους προεπιλεγμένους κανόνες του FreeBSD firewall, επιβάλλεται απλά να ρυθμιστούν οι κανόνες του αυτοί. Αυτά τα δενδροειδή αρχεία πρέπει να διαβιβαστούν σε /etc/. Αυτό επιτυγχάνεται με τις εξής εντολές:
cd /etc/
fetch http://pericles.ee.duth.gr/files/FreeBSD/firewall.conf fetch http://
pericles.ee.duth.gr/files/FreeBSD/firewall.users config fetch http://
pericles.ee.duth.gr /files/FreeBSD/firewall.user fetch http://pericles.ee.duth.gr /files/FreeBSD/firewall.setup
Εντούτοις αυτά τα αρχεία διευθέτησης FreeBSD firewall δεν είναι ιδιαίτερα χρήσιμα εκτός και αν γεμίσουν με πληροφορίες δικτύου, οι οποίες πρέπει να καταχωρηθούν στην εγκατάσταση του τοίχους προστασίας (firewall.setup) με τη βοήθεια του προγράμματος επεξεργασίας κείμενου που χρησιμοποιείτε (editor). Οι απαραίτητες αυτές πληροφορίες μας ενημερώνουν για τις τοπικές υπηρεσίες που διαθέτουν ή προσφέρουν οι υπολογιστές όπως επίσης και πόσο υψηλού βαθμού είναι τα διαθέσιμα bandwidth. Η διεύθυνση IP στο αρχείο διευθέτησης φέρουν τον ακόλουθο μορφότυπο: IP address/netmask. Όπου netmask = 1 bits.
Τέλος, πρέπει να προσθέσουμε ότι σε ορισμένες περιπτώσεις αυτή η εγκατάσταση FreeBSD firewall δεν προσιδιάζει πλήρως τους σκοπούς μας. (Ίσως να υπάρχουν και άλλοι εκτός από χρήστες κομβικών δεδομένων). Συμπεριέλαβα μια γενική επισκόπηση των κανόνων του FreeBSD firewall για την συνεχή τροποποίηση. Θα σας συμβούλευα να διαβάσετε όλα τα δενδροειδή αρχεία διευθέτησης ipfw firewall προσεκτικά προτού προβείτε σε αλλαγές.
5.3.3 Ταξινόμηση των στοιχείων του τοίχους προστασίας μέσα σε πυρήνα
Το τελικό βήμα αφορά την κατασκευή ενός εξειδικευμένου πυρήνα. Αυτή η διαδικασία βέβαια είναι δυνατόν να παραβλεφθεί εάν δεν απαιτείται. Εάν αποφανθείτε να παραλείψετε αυτό το στάδιο πρέπει πρώτα να βεβαιωθείτε ότι δεν καθορίζεται κανένας TRAFFIC- SHAPER στην εγκατάσταση firewall. Προτού επεκταθούμε περισσότερο, θα πρέπει να
επισημάνουμε ορισμένα στοιχεία που αναφέρονται στο περιεχόμενο του κεφαλαίου που θα μας απασχολήσουν. Το φάσμα βέβαια αυτής της ενότητας είναι περιορισμένο. Περισσότερες πληροφορίες όμως μπορεί να βρει κανείς στην ενότητα όπου έγινε λόγος για τη ρύθμιση του πυρήνα FreeBSD.
Το αρχικό στάδιο απαιτεί (α) το άνοιγμα του αρχείου διευθέτησης πυρήνα (η προεπιλογή για το i386 architect είναι /usr/src/sys/i386/conf/GENERIC) και (β) την προσθήκη των ακόλουθων γραμμών μετάδοσης σε αυτό. Απώτερος σκοπός μας είναι η λεπτομερής παρουσίαση τους, εκτός ίσως από το DUMMYNET, το οποίο αναφέρεται σε εντολές προγράμματος, απαραίτητες για τις λειτουργίες του traffic shaper.
options IPFIREWALL
options IPFIREWALLDEFAULTTOACCEPT options IPFIREWALLJORWARD
options IPFIREWALL VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=l00 options DUMMYNET
Έχουμε προσθέσει την επιλογή IPFIREWALLDEFAULTTOACCEPT. Και αυτό επειδή μειώνει τον κίνδυνο να κλειδωθούμε έξω, καθώς πειραματιζόμαστε με το λογισμικό firewall.
Αυτό βέβαια δε σας απομακρύνει από την κονσόλα (console) και έτσι βοηθάει στην αύξηση της ασφάλειας του FreeBSD firewall. Όταν ολοκληρωθεί αυτή η διαδικασία, επιβάλλεται ο καινούργιος πυρήνας του συστήματος να γίνει compiled και να εγκατασταθεί. Ο κατάλογος εργασίας σας πρέπει να είναι /usr/src. Πρέπει επίσης να αναζητείτε τυχόν σφάλματα που πιθανώς θα προκύψουν κατά τη διάρκεια εκτέλεσης οποιασδήποτε εντολής. Αν παρουσιαστεί οποιοδήποτε πρόβλημα στην διαδικασία, τότε διακόψετε την διαδικασία και ελέγξτε τη ρύθμιση του πυρήνα, ούτως ώστε να διαπιστώσετε εάν έχετε μετατρέψει σε σχόλιο κάποια απαιτούμενη γραμμή κώδικα. Εάν δεν υπάρχουν οποιαδήποτε μηνύματα σφάλματος, τότε μπορείτε να επανεκκινήσετε τον υπολογιστή σας.
cd /usr/src
make buildkernel KERNCONF=GENERIC make installkernel KERNCONF=GENERIC reboot
Ο νέος πυρήνας μπορεί να υποβληθεί σε δοκιμή, με μια απλή εφαρμογή των εντολών που παρατίθενται πιο κάτω, πράγμα που μπορεί να προσφέρει είτε μια γραμμή προσαρμογής είτε στη χειρότερη περίπτωση καμιάς μορφής γραμμή μετάδοσης. Από την άλλη πλευρά, εάν η εγκατάσταση του πυρήνα σας δεν ολοκληρώθηκε με επιτυχία, τότε εμφανίζεται στην οθόνη σας ένα μήνυμα σφάλματος του τύπου: "ipfw: setsockopt (IPDUMM YNETCONFIGURE):
Protocol not available". Παρακαλώ προχωρήστε στην εκτέλεση των απαριθμημένων εντολών που ακολουθούν:
/sbin/ipfw add divert natd ip from any to any /sbin/ipfw add 1 count log ip from any to any
(Σημείωση: Αυτή η εντολή δε θα παρουσίαση σφάλμα. Αντί αυτού ελέγξτε το αρχείο /var/log/security που περιέχει τα αρχεία log του ipfw.)
/sbin/ipfw pipe 1 config bw lOOKbit/s
/sbin/ipfw queue 1 config queue 96KByte weight 100 pipe 1 mask-all
Είναι ιδιαίτερα σημαντικό να χρησιμοποιεί κανείς το firewall protection, και αυτό γιατί παρέχει μια αποτελεσματική ασφάλεια και προστασία από τυχόν επιθέσεις. Ο καθένας λοιπόν θα έπρεπε να ενισχύσει τον υπολογιστή του με τέτοιου είδους προστασία.
Ανακεφαλαιώνοντας λοιπόν, δώσαμε μια αδρομερή περιγραφή της εγκατάσταση του FreeBSD firewall, το οποίο πιθανώς να μην ανταποκρίνεται πλήρως στις προτιμήσεις σας.
Μολαταύτα ελπίζω να προσέφερα ικανοποιητικές πληροφορίες που θα σας βοηθήσουν να κατανοήσετε καλύτερα τις λειτουργίες του FreeBSD firewall.
5.3.4 Τελικές σημειώσεις
5.3.5Λίστα αρχείων που χρησιμοποιούμε
Τα αρχεία που παραθέτουμε ποιο κάτω ίσως χρειαστούν να τα τροποποιήσετε σύμφωνα με το δικό σας σύστημα ώστε να δουλέψουνε. Για περισσότερες πληροφορίες σχετικά με το Firewall του Freebsd θα βρείτε στην διεύθυνση
http://www.freebsd.org/doc/en US .IS08859-l/books/handbook/firewalls.html
5.3.5.1 Αρχείο firewall, conf
#include "/etc/firewall.setup"
Count traffic Count global traffic for stats
* ****** **********************************************,1,****.**.*******
*/
#ifdef GATEWAY
add 110 count ip from any to any via EXTERNAL NIC in add 120 count ip from any to any via e x t e r n a l"NIC out add 130 count ip from any to any via i n t e r n a l"_NIC out add 140 count ip from any to any via INTERNAL^~NIC in
#else /* GATEWAY */
add 110 count ip from any to any via INTERNAL J'TIC in add 120 count ip from any to any via INTERNAL "n iC out
#endif /* GATEWAY */
add 150 allow ip from any to any via loO out add 160 allow ip from any to any via loO in
/* * * * * * * * * * * * * * * * * * - k * * * * + + -k**-lc-k**** + * * * * * l,* lt1 r 1 r1 tll* 1 ,* 1 r * * * * * * * * * * * * ifk * *
*
Allow STATEFUL Check packages on the dynamic firewall rules.
If one maches then this usaly means the ip package is allowed though. In this case it also added to a user counter for stats.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Λ * * * * * * * * * » * * * * * * » « * *
*/
add 190 check-state /* 1000 early allow
* 2000 early deny / reject
* 3000 natd + traffic shaper
* 4000 selecting for skipto 50xxx
*/
/* ************************************ A*******************»***,*****
★
Allow local traffic All local traffic is allowed and doesn't need to go though the rest of the firewall rules.
* ******************************************************************
*/
#ifdef GATEWAY add 1000 skipto INTERNAL_NIC
1100 ip add 1000 skipto
INTERNAL NIC
1100 ip
add 1020 allow EXTERNAL_NIC
iP add 1030 allow.
1080
ip add 1030 allow 1080
ip
#endif /* GATEWAY */
add 1010 allow INTERNAL NIC
iP
from fiXTERNAL_NET to EXTERNAL_NET via
from EXTERNAL_IP to any via EXTERNAL_NIC uid from any to EXTERNAL IP via EXTERNAL_NIC uid
from INTERNAL_NET to INTERNAL_NET via
/* Allow local services and deny alternatives. */
via via via via tifdef GATEWAY
add 1310 skipto 59000 udp from EXTERNAL_IP to any domain EXTERNAL_NIC out
add 1310 skipto 59000 udp from any domain to EXTERNAL_IP EXTERNAL_NIC in
add 1310 skipto 59000 udp from any to LXTEKNAL_IP domain EXTERNALNIC in
add 1310 skipto 59000 udp from EXTERNAL_IP domain to any F.XTERNAL_NIC out
add 1310 reject udp from any to any domain EXTERNAL_NIC out
add 1320 skipto 59000 udp from EXTERNAL_IP ntp to any ntp via EXTERNAL_NIC out
add 1320 skipto 59000 udp from any ntp to EXTERNAL_IP ntp via EXTERNAL_NIC in
add 1320 reject udp from any to any ntp via EXTERNALNIC out
ttendif /* GATWAY */
via
add 1330 reject
♦ Λ**************************’*************
udp from any bootpc to any bootps
jit ******** *****************
*
Deny Spoofing Filther out packages with an private ip-adress excluding those of our own.
* ******************************************************************
*/
#ifdef GATEWAY
add 2000 skipto 2100 ip add 2000 skipto 2100 ip out
add 2000 skipto 2100 ip add 2000 skipto 2100 ip in
add 2000 skipto 2100 ip out
#else /* GATEWAY */
add 2000 skipto 2100 ip in
add 2000 skipto 2100 ip out
fendif
add 2010 deny ip add 2010 deny ip add 2010 deny ip add 2010 deny ip add 2010 deny ip add 2020 reject ip add 2020 reject ip add 2020 reject ip add 2020 reject ip add 2020 reject ip /* Portsentry */
from any to any via INTERNALNIC
from INTERNAL_NET to any via EXTERNAL_NIC from any to INTERNAL_NET via EXTERNAL_NIC from EXTERNAL NET to any via EXTERNALNIC from any to EXTERNA1_NET via EXTERNAL_NIC from INTERNAL NET to any via INTERNAL_NIC from any to INTERNAL_NET via INTERNAL_NIC from 10.0.0.0/8 to any in
from 127.0.0.0/8 to any in from 172.0.0.0/12 to any in from 192.0.2.0/24 to any in from 192.168.0.0/16 to any in from any to i o.o.o.0/8 out from a n y to 127.0.0 .0/8
from any to 172.0.0 .0/12 out
out from any to 192.0.2.0/24 out from any to 192.168.0.0/16 out
add 2100 skipto 2200 add 2100 skipto 2200
tfifdef GATEWAY
add 2100 skipto 2200
#endif /* GATEWAY * /
ip from any to any via INTERNAL NIC
ip from INTERNALNET to any via EXTERNAL_NIC ip from EXTERNALNET to any via EXTERNAL NIC /* ***************** ***********************************************ΛΑ
*
Blocklist Filther out packages with n ip-adress that exist on an blacklist formulated by a external blocklist program.
* ******************************************************************
*/
/* reserve 2200 for the whitelist */
add 2290 skipto 2500 ip from INTERNAL NET to INTERNAL NET via INTERNAL NIC
add 2291 skipto 2500 ip from 192.168.31.128/25 to any add 2292 skipto 2500 ip from any to 192.168.31.128/25 /* blocklist */
add 2300 skipto 2400 ip from any to any out add 2400 skipto 2500 ip from any to any in
/* Tempory Pay Block * /
#ifdef TEMP_BLOCK tifdef GATEWAY add 2900 reject log add 2900 deny log
#else /* GATEWAY */
add 2900 skipto 59000 state
add 2900 reject log add 2900 deny log
#endif f * GATEWAY */
♦endif /* TEMP BLOCK */
/* socks via skip */
ip from ip from ip from ip from ip from
from me to any via INTERNAL_NIC out keep-
/* Selecting traffic shaping and natd traffic */
lifdef GATEWAY
add 3000 skipto 3400 add 3000 skipto 3400 EXTERNALNIC
add 3000 skipto 3400
#endif /* GATEWAY */
ip from any to any via INTERNALNIC ip from EXTERNAL_NET to EXTERNAL NET via ip from PUBLIC_IP to any via EXTERNAL_NIC /* Traffic shaping up */
#ifdef TRAFFICSHAPER
pipe 1 config queue QUEUE_UP bw BANDWIDTH_UP
queue 1 config queue QUEUE_UP pipe 1 mask src-ip Oxffffffff weight 1 mask all
queue 2 config queue QUEUE_UP pipe 1 mask src-ip Oxffffffff weight 1 0 0
add 3100 skipto 3110 ip from any to any out via EXTERNAL_NIC add 3100 skipto 3200 ip from any to any
add 3110 skipto 3120 tcp from any to any tcpflags ack iplen 0-80 add 3110 skipto 3120 tcp from any to any tcpflags rst
add 3110 skipto 3120 tcp from any to any tcpflags urg
add 3110 skipto 3120 tcp from any to any 22,80,1080 iplen 0-1024 add 3110 skipto 3120 tcp from any 22,80,1080 to any iplen 0-1024 add 3110 queue 1 ip from any to any
add 3110 skipto 3190 ip from any to any add 3120 queue 2 ip from any to any add 3120 skipto 3190 ip from any to any
#endif /* TRAFFIC_SHAPER */
/ * Passing though natd */
#ifdef GATEWAY
add 3200 skipto 3210 add 3200 skipto 3210 add 3200 skipto 3290 add 3210 divert natd add 3220 skipto 3400
#endif /* GATEWAY */
ip from not E X T E R N A L ! P to any ip from any to not PUBLIC_IP ip from any to any
ip from any to any
ip from any to PUBLIC_IP /* Traffic shaping down (for natd traffic) */
#ifdef TRAFFIC_SHAPER
pipe 2 config queue QUEUE DOWN i>w BANDWIDTH_DOWN
queue 3 config queue QUEUE_DOWN pipe 2 mask dst-ip Oxffffffff weight 1 mask all
queue 4 config queue QUEUE_DOWN pipe 2 mask dst-ip Oxffffffff weight 1QQ
add 3300 skipto 3310 ip from any to any in via EXTERNAL_NIC add 3300 skipto 3390 ip from any to any
add 3310 skipto 3320 tcp from any to any tcpflags ack iplen 0-80 add 3310 skipto 3320 tcp from any to any tcpflags rst
add 3310 skipto 3320 tcp from any to any tcpflags urg
add 3310 skipto 3320 tcp from any to any 80,22,1080 iplen 0-1024 add 3310 skipto 3320 tcp from any 80,22,1080 to any iplen 0-1024 add 3310 queue 3 ip from any to any
add 3310 skipto 3390 ip from any to any add 3320 queue 4 ip from any to any add 3320 skipto 3390 ip from any to any
#endif /* TRAFFIC_SHAPER */
/* Allow traffic going though natd */
#ifdef GATEWAY
add 3390 allow ip from any to any iendif /* GATEWAY */
/* Traffic shaping down (for non natd traffic) * /
#ifdef TRAFFIC_SHAPER
add 3400 skipto 3410 ip from any to any in via EXTERNAL_NIC add 3400 skipto 3450 ip from any to any
add 3410 add 3410 add 3410 add 3410 add 3410 add 3410 add 3410 add 3420 add 3420
skipto 3420 tcp from any- to- any tcpflags ack iplen 0-80 skipto 3420 tcp from any to any tcpflags rst
skipto 3420 tcp from any to any tcpflags urg
skipto 3420 tcp from any to any 80,22,1080 iplen 0-1024 skipto 3420 tcp from any 80,22,1080 to any iplen 0-1024 queue 3 ip from any to any
skipto 3490 ip from any to any queue 4 ip from any to any skipto 3490 ip from any to any iendif /* TRAFFIC SHAPER * f
/* IP Rules */
♦ifdef GATEWAY
add 4000 skipto 4100 ip from any to any via E X T E R N A L N I C
#endif /* GATEWAY */
/* User Rules */
♦ifdef GATEWAY
add 4100 skipto 4200 ip from any to any via INTERNAL_NIC fendif /* GATEWAY */
/ * STATEFUL Firewall */
add 4600 deny tcp from any to any in tcpflags syn,fin
#ifdef GATEWAY
add 4610 skipto 1900 ip from any to any via INTERNAL_NIC ttendif /* GATEWAY */