UnrealIRCd - 3.2 - Official Documentation

English | German | Spanish | Hungarian | French | Greek | Dutch | Russian | Turkish

UnrealIRCd
http://www.unrealircd.com/
Version: 3.2.5
Last doc update: 2006-06-15

Head Coders: Stskeeps / codemastr / Syzop / Luke
Contributors: McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk
Documentation: CKnight^ / Syzop

Μετάφραση: GSF - UnReaL.mirc.gr on HellenicNet

Λόγω της αυξανόμενης περιπλοκότητας του UnrealIRCd3.2 στραφήκαμε σε ένα πιο έυκολο, πιο περιεκτικό βοηθητικό έγγραφο. Για να μπορέσετε να δείτε αυτο το έγγραφο πρέπει να έχετε έναν συμβατό περιηγητή, όπως αυτοί που υπάρχουν παρακάτω: Τα τελευταία βοηθητικά έγγραφα βρίσκονται στο http://www.vulnscan.org/UnrealIrcd/unreal32docs.html και το FAQ στο http://www.vulnscan.org/UnrealIrcd/faq/.

Συμβατοί Περιηγητές:

- Opera 6.02
- Microsoft Internet Explorer 6.X / 5.5
- Netscape Navigator 6.X
- Mozilla 1.2.X
- Lynx (σε μικρό βαθμό)

INDEX / TABLE OF CONTENTS
1. Εισαγωγή και Σημειώσεις
---1.1. Σημειώσεις για αναβάθμιση/μίξη 3.1.x -> 3.2
---1.2. Σημειώσεις για αναβάθμιση μεταξώ των 3.2 εκδόσεων
2. Εγκατάσταση
3. Χαρακτηριστικά
-- 3.1. Cloaking
-- 3.2. Modules
-- 3.3. Snomasks
-- 3.4. Aliases
-- 3.5. Helpop
-- 3.6. Επίπεδα πρόσβασης διαχειριστών
-- 3.7. Εντολές διαχειριστών
-- 3.8. SSL
-- 3.9. IPv6
-- 3.10. Zip links
-- 3.11. Υποστήριξη δυναμικής σύνδεσης DNS/IP
-- 3.12. Χαρακτηριστικά Anti-flood
-- 3.13. Τύποι Ban
-- 3.14. Spamfilter
-- 3.15. CIDR
-- 3.16. Σετ χαρακτήρων Nick
-- 3.17. Άλλα χαρακτηριστικά
4. Διαμορφώνοντας το unrealircd.conf
---4.1. Το αρχείο επιλογών αναλυτικά
---4.2. Επιλογή Me -=- (M:Line)
---4.3. Επιλογή Admin -=- (A:Line)
---4.4. Επιλογή Class -=- (Y:Line)
---4.5. Επιλογή Allow -=- (I:Line)
---4.6. Επιλογή Listen -=- (P:Line)
---4.7. Επιλογή Oper -=- (O:Line)
---4.8. Επιλογή DRpass -=-(X:Line)
---4.9. Include Directive
---4.10. Loadmodule Directive
---4.11. Επιλογή Log
---4.12. Επιλογή TLD -=- (T:Line)
---4.13. Επιλογή Ban Nick -=- (Q:Line)
---4.14. Επιλογή Ban User -=- (K:Line)
---4.15. Επιλογή Ban IP -=- (Z:Line)
---4.16. Επιλογή Ban Server -=-(q:Line)
---4.17. Επιλογή Ban Realname -=- (n:Line)
---4.18. Επιλογή Ban Version
---4.19. Επιλογή Ban Exception -=- (E:Line)
---4.20. Επιλογή TKL Exception
---4.21. Επιλογή Throttle Exception
---4.22. Επιλογή Deny DCC -=- (dccdeny.conf)
---4.23. Επιλογή Deny Version -=- (V:Line)
---4.24. Επιλογή Deny Link -=- (D:Line / d:Line)
---4.25. Επιλογή Deny Channel -=- (chrestrict.conf)
---4.26. Επιλογή Allow Channel
---4.27. Επιλογή Allow DCC
---4.28. Επιλογή Vhost -=- (vhost.conf)
---4.29. Επιλογή Badword -=- (badwords.conf)
---4.30. Επιλογή Uline -=- (U:Line)
---4.31. Επιλογή Link -=- (C/N/H:Lines)
---4.32. Επιλογή Alias
---4.33. Επιλογή Help
---4.34. Επιλογή Official Channels
---4.35. Επιλογή Spamfilter
---4.36. Επιλογή Set -=- (networks/unrealircd.conf)
5. Επιπλέον αρχεία
6. Modes χρηστών & καναλιών
7. Εντολές χρηστών & διαχειριστών
8. Βοήθεια/λίστα για την ασφάλεια
---8.1. Κωδικοί
---8.2. Ευάλωτα συστήματα που δεν οφείλονται στο Ircd
---8.3. Δικαιώματα και το αρχείο επιλογών
---8.4. Προβλήματα που σχετίζονται με χρήστες
---8.5. SSL/SSH & sniffing
---8.6. Denial of Service attacks (DoS) [ή: πώς να προστατέψω τον hub μου]
---8.7. Information disclosure
---8.8. Protecting against exploits
---8.9. Summary
9. Frequently Asked Questions (FAQ)
A. Κανονικές εκφράσεις
---A.1. Literals
---A.2. Τελεστής Τελεία(.)
---A.3. Τελεστές επανάληψης
---A.4. Εκφράσεις Brackets
---A.5. Ισχυρισμοί
---A.6. Εναλακτικότητα
---A.7. Υποεκφράσεις
---A.8. Back References
---A.9. Ευαισθησία Κεφαλαίων/μικρών

1.0 – Εισαγωγή και Σημειώσεις

Αυτό το έγγραφο έχει γραφτεί για αποκλειστική χρήση με το UnrealIRCd. Η χρήση του εγγράφου με άλλο πρόγραμμα , ή η διανομή αυτου του εγγράφου μαζι με άλλο πρόγραμμα απαγορέυεται αυστηρά χωρίς την γραπτή άδεια της ομάδας προγραμματισμού του UnrealIRCd. Αυτο το έγγραφο μπορει να αντιγραφεί/εκτυπωθεί/επαναδημιουργηθεί/εκδοθεί όσες φορές θέλετε, όσο παρέχεται για χρήση με το UnrealIRCd και δεν έχει τροποποιηθεί με κανέναν τρόπο. – Copyright UnrealIRCd Development Team 2002-2004

Παρακαλούμε διαβάστε αυτό το εγχειρίδιο πριν ζητήσετε οποιαδήποτε βοήθεια, και επισης ΣΙΓΟΥΡΑ πρέπει να ρίξετε μια ματιά και στο FAQ αφου περισσότερο απο το 80% απο τις ερωτήσεις/προβλήματα έχουν απαντηθεί εκεί. Αν συνεχίζετε να χρειάζεστε βοήθεια μπορείτε να ζητήσετε υποστήριξη στο irc.ircsystems.net (port 6667) κανάλι #unreal-support (να γνωρίζετε οτι ΑΠΑΙΤΟΥΜΕ να έχετε διαβάσει το εγχειρίδιο και το FAQ, και οτι προσφέρουεμ βοήθεια μόνο για το UnrealIRCd, όχι με τα services!). Αν έχετε βρεί κάποιο σφάλμα στο πρόγραμμα (όπως crash) τότε υποβάλετέ το στο http://bugs.unrealircd.org/.

1.1 – Σημειώσεις για αναβάθμιση/μίξη 3.1.x -> 3.2

Σε περίπτωση που αναβαθμίζετε απο το Unreal3.1.x στο Unreal3.2 θα παρατηρήσετε ότι όλο το αρχείο επιλογών έχει αλλάξει, ίσως το βρείτε δύσκολο στην αρχή, αλλα γρήγορα θα καταλάβετε ότι είναι πολυ καλύτερο!

Επίσης μήν ξεχάσετε να διαβάσετε την παράγραφο 3 που αναφέρεται στα χαρακτηριστικά, αν και σίγουρα γνωρίζετε μερικά απο αυτά που βρίσκονται στην 3.1.x υπάρχουν και αρκετά νέα χαρακτηριστικά!

Το καλύτερο είναι να μήν αναμίξετε/συνδέσετε το 3.1.x με το 3.2, αλλα αν αναγκαστικά το θέλετε, χρειάζεστε τουλάχιστον την έκδοση 3.1.4, αν και η 3.1.5.1 συστήνεται ώς η καλύτερη επιλογή.

1.2 – Σημειώσεις για αναβάθμιση μεταξύ των 3.2 εκδόσεων

Ο τρόπος που συστήνεται για την αναβάθμιση είναι:
Linux:

- Μετονομάστε το παλιό φάκελο του UnrealIRCd (αλλιώς θα τον αντικαταστήσετε στο επόμενο βήμα)
- Extract την νέα έκδοση του UnrealIRCd και τρέχτε ./Config και make
- Αντιγράψτε τα παλιά αρχεία επιλογών στο νέο φάκελο (unrealircd.conf, motd, rules, server.* [SSL certs], αρχείο network, κτλ)

Windows:

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

Παρακαλούμε επίσης ελέγξτε τις σημειώσεις της νέας έκδοσης .RELEASE.NOTES για να δείτε τις άλλαγες που έχουν πραγματοποιηθεί.Αν παρατηρήσετε οποιαδήποτε αλλαγή (ή bugs) μεταξύ των εκδόσεων, ΣΙΓΟΥΡΕΥΤΕΙΤΕ ΟΤΙ ΔΙΑΒΑΣΑΤΕ ΠΡΩΤΑ ΤΙΣ ΣΗΜΕΙΩΣΕΙΣ ΤΗΣ ΝΕΑΣ ΕΚΔΟΣΗΣ (RELEASE NOTES) πριν το αναφέρετε ώς bug!.

2.0 - Εγκατάσταση

Λειτουργικά συστήματα που έχουν δοκιμαστεί και υποστηρίζονται:

- *NIX versions:

- Linux (2.2.*, 2.4.*, 2.6.*)
- FreeBSD (4.*, 5.*)
- NetBSD (2.*)
- OpenBSD (3.7, 3.8)
- Solaris (9, 10)

- Windows version:

- Windows 2000 (Pro, Server, Advanced Server)
- Windows XP (Home, Pro)
- Windows 2003

- Δοκιμασμένες Αρχιτεκτονικές:
  - ia32 (i386, i486, i586, i686)
  - ia64
  - amd64
  - alpha

Αν γνωρίζετε οτι το Unreal3.2 λειτουργεί σωστά και σε άλλα λειτουργικά συστήματα, παρακαλούμε στείλτε τις λεπτομέριες στο coders@lists.unrealircd.org

Οδηγείες Εγκατάστασης
Linux:

1. gunzip -d Unreal3.2.X.tar.gz
2. tar xvf Unreal3.2.X.tar
3. cd Unreal3.2
4. ./Config
5. Απαντήστε τις ερωτήσεις με τον καλύτερο τρόπο που σας επιτρέπουν οι γνώσεις σας. Ψενικά αν δεν είστε σίγουροι, οι προεπιλεγμένες απαντήσεις θα λειτουργήσουν μια χαρα!
6. make
7. Τώρα δημιουργήστε το unrealircd.conf και άλλα αρχεία επιλογών, ελέγξτε την παράγραφο 4.

Windows:

1. Τρέξτε το πρόγραμμα εγκατάστασης του Unreal
2. Τώρα δημιουργήστε το unrealircd.conf και άλλα αρχεία επιλογών, ελέξτε την παράγραφο 4.

3.0 - Χαρακτηριστικά

Μερικά απο τα πιο βασικά/ωραία χαρακτηριστικά αναλύονται σε αυτήν την παράγραφο. Παρέχει μια γενική κάτοψη, και μερικές φορές αναφέρεται στο αρχείο επιλογών (κατι που ίσως για το οποίο δεν γνωρίζετε τίποτα ακομα).

Μπορείτε να αγνοήσετε αυτήν την παράγραφο, όμως προτείνεται να την διαβάσετε πρίν/μετά απο την εγκατάσταση.

3.1 - Cloaking

Το Cloaking είναι ένας τρόπος για να αποκρύψετε την πραγματική διέυθυνση των χρηστών, για παράδειγμα αν η διεύθυνση είναι d5142341.cable.wanadoo.nl, θα φαίνεται (στα join, part, whois, κτλ) ως rox-2DCA3201.cable.wanadoo.nl. Αυτο το χαρακτηριστικό είναι χρήσιμο στο να αποτρέψει τους χρήστες απο flooding μεταξύ τους αφου δεν μπορούν να δούν την αληθινή διεύθυνση/IP.

Αυτο ορίζεται απο το usermode +x (π.χ: /mode yournick +x), οι admins μπορούν επίσης να επιβάλουν το +x να είναι ενεργοποιημένο εξαρχής, η να το ορίσουν έτσι ώστε οι χρήστες να μην μπορούν ποτε να κάνουν -x.

Μια καλυμένη διέυθυνση(cloaked host) παράγεται απο ένα cloaking module (είστε υποχρεωμένοι να έχετε φορτώσει ένα), αυτην την στιγμή μόνο ένα επίσημο module είναι διαθέσιμο:
cloak: Αυτό είναι το νέο επίσημο cloaking module απο το 3.2.1 το οποίο είναι πολυ πιο ασφαλές απο τον παλιότερο αλγόριθμο, χρησιμοποιεί md5 εσωτερικώς και απαιτεί να έχετε τρία set::cloak-keys:: που αποτελούνται απο ανάμικτους μικρούς (a-z), κεφαλαίους (A-Z) και αριθμούς (0-9) χαρακτήρες [π.χ: "AopAS6WQH2Os6hfosh4SFJHs"]. Δείτε το example.conf για ένα παράδειγμα.

Τα κλειδιά κάλυψης (Cloak keys) ΕΠΙΒΑΛΕΤΑΙ να είναι ίδια σε όλους τους SERVERS σε ένα δύκτιο. Επίσης τα κλειδιά κάλυψης (cloak keys) πρέπει να διατηρούνται μυστικά γιατι είναι πιθανόν να αποκαλυφθεί η αληθινή διεύθυνση αν κάποιος γνωρίζει τα κλειδιά (κατι το οποίο καθιστά το umode +x άχρηστο).

3.2 - Modules

Το UnrealIRCd υποστιρίζει modules τα οποία είναι ωραία γιατί:
- Μπορείτε να τα φορτώσετε/ξαναφορτώσετε/ξεφορτώσετε/ καθώς το ircd τρέχει (με την εντολή /rehash). Αυτό επιτρέπει μερικά bugs να φτιαχτούν η νέα χαρακτηριστικά να προσθεθούν χωρίς να χρειάζεται επανακίνηση!
- ’λλα άτομα μπορούν να δημιουργήσουν (3rd party) modules με νέες εντολές, mode χρηστών ακόμα και mode καναλιών.
Το UnrealIRCd περιέχει μόνο λίγα modules. Ρίξτε μια ματιά στο www.unrealircd.com -> modules ή χρησιμοποιήστε την μηχανή αναζήτησης google για να βρείτε 3rd party modules.

Πρέπει να έχετε φορτώσει τουλάχιστον δύο modules αλλιώς δεν θα μπορείτε να ξεκινήσετε!:
- το module εντολών: commands.so (commands.dll στα windows)
- ένα module κάλυψης: συνήθως cloak.so (cloak.dll στα windows).

3.3 - Snomasks

Τα Snomasks είναι είναι μάσκες παρατηρήσεων των server, είναι ένας ειδικός τύπος mode χρηστών το οποίο ελέγχει ποιές παρατηρήσεις θα δέχεστε (περισσότερο χρησιμοποιείται απο διαχειριστές)

Μπορεί να οριστεί με την εντολή: /mode yournick +s SNOMASK, για παράδειγμα: /mode yournick +s +cF
Ψια να αφαιρέσετε συγκεκριμένα snomasks, χρησιμοποιήστε κατι σαν: /mode yournick +s -c
Η μπορείτε να αφαιρέσετε όλα τα snomasks απλώς γράφοντας: /mode yournick -s

Τα διαθέσιμα snomasks είναι:
c - τοπικές συνδέσεις
F - συνδέσεις άλλων server (εκτώς απο U-lined servers)
f - ειδοποιήσεις για flood
k - ειδοποιήσεις για kill [*]
e - ειδοποιήσεις 'eyes'
j - ειδοποιήσεις 'junk'
v - ειδοποιήσεις vhost
G - ειδοποιήσεις gline/shun
n - ειδοποιήσεις τοπικών αλλαγών nick
N - ειδοποιήσεις απόμακρων αλλαγών nick
q - ειδοποιήσεις απόρριψης nick (Q:line)
s - ειδοποιήσεις server [*]
S - ειδοποιήσεις spamfilter
o - ειδοποιήσεις oper-up
[*: αυτο το snomask είναι επίσης διαθέσιμο στους μή-διαχειριστές]

Μπορείτε να διαλέξετε ποια snomasks θα δέχεστε αυτόματα όταν συνδέεστε (set::snomask-on-connect) και ποια θα δέχεστε όταν θα λαμβάνετε δικαιώματα διαχειρηστή (set::snomask-on-oper, oper::snomask)

Με τις αρχικές επιλογές, άν ένας χρήστης απλώς ορίζει το mode +s, συγκεκριμένα snomasks ορίζονται. Ψια τους μή-διαχειρηστές, τα snomasks +ks, και για τους διαχειριστές, τα snomasks +kscfvGqo.

3.4 - Aliases

Με τις συντομεύσεις (Aliases) μπορείτε να σετάρετε server-side εντολές συντομεύσης. Μπορείτε για παράδειγμα να κάνετε το "/ns identify blah" να προωθείται στον nickserv (θα μεταφραστεί σε: privmsg nickserv identify blah). Μπορείτε ακόμα να δημιουργήσετε πιο πολύπλοκες συντομεύσεις όπως το /register να προωθείται στον ChanServ μόνο αν το πρώτο όρισμα αρχίζει με # αλλιώς να προωθείται στον NickServ.

Οι συντομεύσεις (Aliases) ορίζονται με την επιλογή alias στο αρχείο επιλογών, και μπορείτε επίσης να συμπεριλάβετε ένα αρχείο με αρχικές συντομεύσεις για τις υπηρεσίες που χρησιμοποιούνται συχνότερα.

3.5 - Helpop

Το UnrealIRCd έχει ένα ενσωματωμένο σύστημα βοήθειας προσβάσιμο με την εντολή /helpop. Η εντολή /helpop είναι πλήρως διαμορφώσιμη απο τον χρήστη μέσω του της επιλογής help στο αρχείο επιλογών. Επιπλέον, συμπεριλαμβάνεται και το αρχειο help.conf το οποίο περιέχει μερικές απο τις βασικές εντολές βοήθειας για όλες τις εντολές.
Ψια παράδειγμα η εντολή /helpop chmodes δίνει μια κάτοψη για όλα τα mode των καναλιών που έχει το UnrealIRCd.
Θυμηθείτε ότι αν είστε διαχειρηστής (helpop) θα πρέπει να εισάγετε στο όρισμα ώς πρόθεμα τον χαρακτήρα '?', έτσι ώστε το /helpop να γίνει /helpop ? και το /helpop chmodes μετατρέπεται σε /helpop ?chmodes κτλ..

3.6 – Επίπεδα Πρόσβασης Διαχειριστών

Υπάρχουν αρκετά επίπεδα πρόσβασης διαχειριστών στο UnrealIRCd και μπορείτε να προσθέσετε επιπλέον δικαιώματα (όπως η χρήση της εντολής /gline) σε καθένα απο αυτά, έτσι ώστε με αυτόν τον τρόπο μπορείτε να δώσετε στον κάθε διαχειριστή τα προνόμια που χρειάζονται.

Αυτό ορίζεται απο τους ενδείκτες διαχειριστών στην επιλογή oper, ελέγξτε την επιλογή oper για περισσότερες πληφοροριές.

3.7 – Εντολές Διαχειριστών

Το UnrealIRCd έχει πολλές ισχυρές εντολές διαχειριστών που εξηγούνται με λεπτομέριες στο Εντολές Χρηστών και Διαχειριστών, πιθανότατα θέλετε να το διαβάσετε μετά την εγκατάσταση :).

3.8 - SSL

Τα αρχικά SSL δηλώνουν Secure Socket Layer, με το SSL μπορείτε να δημιουργήσετε ασφαλείς κρυπτογραφημένες συνδέσεις. Μπορεί να χρησιμοποιηθεί για να κρυπτογραφήσετε δεδομένα μεταξύ server<->server, αλλα και τα δεδομένα client<->server μπορούν επίσης να κρυπτογραφηθούν. Συνήθως χρησιμοποιείτε το SSL για να προστατευθείτε εναντίον του sniffing και για αναγνώριση.

Πρέπει να έχετε κάνει τον IRC server compile με υποστίριξη SSL. Ψια να ορίσετε μια port ως SSL πρέπει να το ορίσετε στο listen::options::ssl.

Δεν μπορείτε να συνδεθείτε κανονικά σε μια SSL port (γιαυτό μήν κάνετε την port 6667 ssl!), χρειάζεστε ένα πρόγραμμα που είναι γραμμένο να αντιλαμβάνεται το προτόκολο του SSL.

Προγράμματα που υποστιρίζουν SSL: XChat, irssi, mIRC (6.14 και πάνω, επίσης χρειάζονται μερικά ακόμα βήματα)

Ψια προγράμματα που δεν υποστιρίζουν SSL μπορείτε να χρησιμοποιήσετε ένα tunnel όπως το stunnel, εδώ είναι ένα αρχείο επιλογών stunnel.conf για παράδειγμα (για το stunnel 4.x):

           client = yes
           [irc]
           accept = 127.0.0.1:6667
           connect = irc.myserv.com:6697

Αν τότε συνδεθείτε στο 127.0.0.1 στο port 6667, τα δεδομένα σας θα κρυπτογραφούνται και θα προωθούνται στο irc.myserv.com στο port 6697 (ένα SSL port).

Επίσης θα πρέπει να επικυρώσετε τα πιστοποιητικά όταν συνδέεστε σε servers και να μην τους δέχεστε τυφλά (όπως στο παράδειγμα του stunnel) αλλιώς θα είστε ακόμα ευάλωτος σε επιθέσεις "active sniffing" (ssl redirects), αυτό όμως είναι πολυ άσχετο για να αναλυθεί εδώ (μάθετε για το SSL, μην ρωτήσετε εμάς). [το mIRC και το xchat βγάζουν μήνυμα σε παράθυρο ζητώντας να επιτρέψετε/απορρίψετε το πιστοποιητικό, κατι που είναι καλο].

3.9 - IPv6

Το UnrealIRCd υποστηρίζει IPv6, αφού η έκδοση beta15 φαίνεται πως είναι σταθερή.
Το Λειτουργικό σύστημα σας πρέπει να υποστηρίζει IPv6 και πρέπει να ενεργοποιήσετε την υποστήριξη του IPv6 στο UnrealIRCd κατα την διάρκεια του ./Config επίσης.

Αν και η microsoft έχει εκδόσει μια δοκιμαστική έκδοση του IPv6 για εφαρμογή στα w2k/XP δεν υποστιρίζεται (ακόμα) απο το UnrealIRCd.

3.10 - Zip links

Τα Zip links μπορούν να ενεργοποιηθούν για τις συνδέσεις μεταξύ server<->server, συμπιέζει τα δεδομένα χρησιμοποιόντας το zlib. Μπορεί να σώσει 60-80% bandwidth... Οπότε είναι πολύ καλο για συνδέσεις με χαμηλό bandwidth η συνδέσεις με πολλούς χρήστες, μπορει να βοηθήσει πολύ όταν συνδέεστε αφου πολλά δεδομένα στέλνονται για κάθε χρήστη/κανάλι/κτλ.

Ψια να κάνετε compile με υποστίριξη για zip links, πρέπει να απαντήσετε Ναι στην ερώτηση για το zlib στο ./Config και να ορίσετε το link::options::zip (και στις δύο μεριές)

3.11 – Υποστήριξη δυναμικής σύνδεσης DNS/IP

Το UnrealIRCd έχει μερικά (νέα) ωραία χαρακτηριστικά που βοηθούν τους χρήστες με δυναμική IP που χρησιμοποιούν δυναμικό DNS (όπως blah.dyndns.org). Αν συνδέετε δύο δυναμικές DNS διευθήνσεις , τότε ορίστε τα: link::options::nodnscache και link::options::nohostcheck.

3.12 – Χαρακτηριστικά Anti-Flood

Throttling
Το Throttling είναι μια μέθοδος η οποία σας επιτρέπει να περιορίσετε το πόσο γρήγορα κάποιος χρήστης μπορεί να αποσυνδεθεί και να ξανασυνδεθεί στον server. Μπορείτε να το ρυθμίσετε με την επιλογή set::throttle για να επιτρέψετε X συνδέσεις σε YY δευτερόλεπτα απο την ίδια IP.
ModeΚαναλιών
Υπάρχουν ακόμα μερικά modes καναλιών τα οποία μπορεί να είναι αρκετά αποτελεσματικά απέναντι σε floods. Ψια παράδειγμα:
K = όχι εντολή /knock, N = όχι αλλαγές nick, C = όχι CTCPs, M = μόνο καταχωρημένοι χρήστες μπορούν να μιλήσουν, j = έλεγχος πολλαπλών join (για κάθε χρήστη)
.
Απο την beta18 υπάρχει το πολύ προχωρημένο mode καναλιών +f...
Mode Καναλιών f
Αντι να χρησιμοποιείτε scripts και bots για να προστατευτείτε απέναντι σε flood καναλιών είναι τώρα ενσωματωμένο στο ircd.
Ένα παράδειγμα για το +f mode είναι: *** Blah sets mode: +f [10j]:15
Αυτο σημαίνει οτι 10 joins κάθε 15 δευτερόλεπτα επιτρέπονται στο κανάλι, αν το όριο έχει εξαντληθεί, το κανάλι θα γίνει +i αυτόματα.
Οι επόμενοι τύποι flood είναι διαθέσημοι:

type: | name: | default action: | other avail. actions: | comments
c | CTCPs | auto +C | m, M |
j | joins | auto +i | R |
k | knocks | auto +K |  | (μετράει τους τοπικούς χρήστες μόνο)
m | messages/notices | auto +m | M |
n | nickchanges | auto +N |  |
t | text | kick | B | Μηνύματα/ειδοποιήσεις για κάθε χρήστη, όπως το παλίο +f. Θα κάνει kick ή ban στον χρήστη.

Παράδειγμα:

        *** ChanOp sets mode: +f [20j,50m,7n]:15
        <ChanOp> lalala
        *** Evil1 (~fdsdsfddf@Clk-17B4D84B.blah.net) has joined #test
        *** Evil2 (~jcvibhcih@Clk-3472A942.xx.someispcom) has joined #test
        *** Evil3 (~toijhlihs@Clk-38D374A3.aol.com) has joined #test
        *** Evil4 (~eihjifihi@Clk-5387B42F.dfdfd.blablalba.be) has joined #test
        -- snip XX lines --
        *** Evil21 (~jiovoihew@Clk-48D826C3.e.something.org) has joined #test
        -server1.test.net:#test *** Channel joinflood detected (limit is 20 per 15 seconds), putting +i
        *** server1.test.net sets mode: +i
        <Evil2> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
        <Evil12> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
        <Evil15> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
        <Evil10> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
        <Evil8> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
        -- snip XX lines --
        -server1.test.net:#test *** Channel msg/noticeflood detected (limit is 50 per 15 seconds), putting +m
        *** server1.test.net sets mode: +m
        *** Evil1 is now known as Hmmm1
        *** Evil2 is now known as Hmmm2
        *** Evil3 is now known as Hmmm3
        *** Evil4 is now known as Hmmm4
        *** Evil5 is now known as Hmmm5
        *** Evil6 is now known as Hmmm6
        *** Evil7 is now known as Hmmm7
        *** Evil8 is now known as Hmmm8
        -server1.test.net:#test *** Channel nickflood detected (limit is 7 per 15 seconds), putting +N
        *** server1.test.net sets mode: +N

Για την ακρίβεια, μπορεί να γίνει αρκετά πιο προχωρημένο/μπερδεμένο:
Αντι για την αρχικά επιλεγμένη ενέργεια, μπορείτε για μερικούς τύπους flood να ορίσετε κάποια άλλη, για παράδειγμα: +f [20j#R,50m#M]:15
Αυτό θα ρυθμίσει το κανάλι +R αν το όριο join έχει εξαντληθεί (>20 joins σε 15 δευτερόλεπτα), και θα ρυθμίσει το κανάλι +M αν το όριο μηνυμάτων έχει εξαντληθεί (>50 μηνύματα σε 15 δευτερόλεπτα).
Υπάρχει ακόμα ένα "αφαίρεση mode μετα απο X λεπτα" χαρακτηριστικό: +f [20j#R5]:15 θα ρυθμίσει το κανάλι +R αν το όριο έχει εξαντληθεί και θα ρυθμίσει το κανάλι -R μετά απο 5 λεπτα.
Ένας server μπορεί να έχει αρχική επιλογή unsettime (set::modef-default-unsettime), οπότε αν γράψετε +f [20j]:15 θα μετατραπεί σε +f [20j#i10]:15, είναι το αρχικό, μπορείτε ακόμα να ορίσετε [20j#i2]:15 η κάτι παρόμοιο, και μπορείτε επίσης να απενεργοποιήσετε την αφαίρεση mode καναλιού εντελώς κάνοντας +f [20j#i0]:15 (ένα explicit 0).
Το παλιό +f mode (flood μηνυμάτων για κάθε χρήστη) είναι επίσης διαθέσιμο ως 't', +f 10:6 τώρα ονομάζεται +f [10t]:6 και +f *20:10 είναι τώρα +f [20t#b]:10. Τώρα το ircd θα μετατρέπει αυτόματα τους παλιούς +f mode τύπους σε άλλους νέους. Σημειώστε ότι δεν υπάρχει unsettime χαρακτηριστικό διαθέσιμο για τα 't' bans ([20t#b30]:15 δεν λειτουργεί).
Ποιό είναι το καλύτερο +f mode εξαρτάται πάρα πολύ απο το κανάλι... πόσους χρήστες έχει? Έχετε κάποιο παιχνίδι που αναγκάζει τους χρήστες να στέλνουν πολλά μηνύματα (π.χ: trivia) ή οι χρήστες συχνά χρησιμοποιούν popups? Είναι κάποιο είδος κεντρικού καναλιού ή εχει οριστεί για αυτόματο join? κτλ..
Δεν υπάρχει το τέλειο mode +f που είναι καλο για όλα τα κανάλια, αλλα για να πάρετε μιά ιδέα ρίξτε μια ματιά στο παρακάτω παράδειγμα και τροποποιήστε το για να ικανοποιεί τις ανάγκες σας:
+f [30j#i10,40m#m10,7c#C15,10n#N15,30k#K10]:15
30 joins σε 15 δευτερόλεπτα, αν το όριο εξαντληθεί ρύθμίζει το κανάλι +i για 10 λεπτά
40 messages σε 15 δευτερόλεπτα, αν το όριο εξαντληθεί ρύθμίζει το κανάλι +m για 10 λεπτά
7 ctcps σε 15 δευτερόλεπτα, αν το όριο εξαντληθεί ρύθμίζει το κανάλι +C για 15 λεπτά
10 nickchanges σε 15 δευτερόλεπτα, αν το όριο εξαντληθεί ρύθμίζει το κανάλι +N για 15 λεπτά
30 knocks σε 15 δευτερόλεπτα, αν το όριο εξαντληθεί ρύθμίζει το κανάλι +K για 10 λεπτά
Αν είναι κάποιο είδος μεγάλου καναλιού (>75 χρήστες?) θα πρέπει να μεγαλώσετε την ευαισθησία των join (σε π.χ: 50) και το όριο μηνυμάτων επίσης (σε π.χ: 60 ή 75).
Συγκεκριμένα ο χρόνος της αφαίρεσης mode είναι θέμα προσωπικής άποψης.. πρέπει να σκεφτείτε σαν.. τι θα γινόταν αν κανένας διαχειριστής δεν ήταν διαθέσιμος για να αντιμετωπίσει την κατάσταση, θα ήθελα να κλειδώσω το κανάλι για π.χ 15 λεπτά (=όχι καλό για τους χρήστες) ή 5 λεπτά (=ίσως ο flooder θα περιμένει 5 λεπτά και θα κάνει flood ξανά). Ακόμα εξαρτάται απο τον τύπο του flood, οι χρήστες που αδυνατούν να κάνουν join (+i) η να μιλήσουν (+m) είναι χειρότερο απο το να τους αναγκάσετε να μην μπορούν να αλλάξουν το nick τους (+N) η να στείλουν ctcps στο κανάλι (+C) οπότε ίσως να θέλετε να χρησιμοποιήσετε διαφορετικούς χρόνους αφαίρεσης.
Mode καναλιού j
Το mode +f συμπεριλαμβάνει ένα χαρακτηριστικό για να αποτρέπει τα join floods, όμως αυτό το χαρακτηριστικό είναι "ολικό." Για παράδειγμα, άν οριστεί σε 5:10 και 5 διαφορετικοί χρήστες εισέλθουν σε 10 δευτερόλεπτα, η προστασία του flood ενεργοποιείται. Το mode καναλιού +j είναι διαφορετικό. Αυτο το mode λειτουργεί ξεχωριστά για κάθε χρήστη. Αντι να προστατεύει εναντίον των join floods, είναι σχεδιασμένο για να προστατεύει εναντίον join-part floods (revolving door floods). Αυτό το mode δέχεται μια παράμετρο της μορφής X:Y όπου X είναι ο αριθμός των joins και Y ο αριθμός των δευτερολέπτων. Αν ένας χρήστης υπερβεί αυτό το όριο, αυτός/αυτή θα αποτραπεί απτο να εισέλθει ξανά στο κανάλι.

3.13 - Τύποι Ban

Βασικοί τύποι ban και cloaked hosts
Το UnrealIRCd υποστιρίζει τους βασικούς τύπους ban όπως +b nick!user@host.
Επίσης, άν μια κρυπτογραφημένη διεύθυνση είναι π.χ 'rox-ACB17294.isp.com' και ορίζετε ένα ban στο *!*@rox-ACB17294.isp.com, τότε αν ο χρήστης θέσει στον εαυτό του -x (και αυτή η διεύθυνση γίνει για παράδειγμα 'dial-123.isp.com) τότε το ban θα υφίσταται ακόμα. Τα Bans πάντα ελέγχονται και με τις αληθινές διευθύνσεις ΚΑΙ με τις κρυπτογραφημένες διευθύνσεις.
Τα IP ban είναι επίσης διαθέσημα ώς (π.χ: *!*@128.*) και ελέγχονται πάντα.
Τα Ban σε κρυπτογραφημένες IP διευθύνσεις απαιτούν κάποια επεξήγηση:
Αν ένας χρήστης έχει την διεύθυνση 1.2.3.4 τότε η κρυπτογραφημένη του διεύθυνση θα είναι 341C6CEC.8FC6128B.303AEBC6.IP.
Αν κάνετε ban *!*@341C6CEC.8FC6128B.303AEBC6.IP τότε κάνετε ban το *!*@1.2.3.4 (προφανές...)
Αν κάνετε ban *!*@*.8FC6128B.303AEBC6.IP τότε κάνετε ban το *!*@1.2.3.*
Αν κάνετε ban *!*@*.303AEBC6.IP τότε κάνετε ban το *!*@1.2.*
Αυτές οι πληροφορίες μπορούν να είναι χρήσιμες για να αποφασίσετε πόσο ευρύ το ban πρέπει να είναι.
Extended τύποι ban
Extended ban είναι κάπως έτσι: ~[!]<type>:<stuff>. Αυτήν την στιγμή οι επόμενοι τύποι είναι διαθέσημοι:

τύπος: | όνομα | περιγραφή:
~q | ύσηχο | Χρήστες που ταιριάζουν αυτά τα ban μπορούν να εισέλθουν στο κανάλι αλλά δεν μπορούν να μιλήσουν, εκτώς και αν έχουν mode +v και πάνω. π.χ: ~q:*!*@blah.blah.com
~n | αλλαγές nick | Άτομα που ταιριάζουν με αυτά τα ban δεν μπορούν να αλλάξουν nick, εκτώς και αν έχουν mode +v και πάνω. π.χ: ~n:*!*@*.aol.com
~c | [πρόθεμα]κανάλι | Αν ο χρήστης βρίσκεται σε αυτό το κανάλι τότε δεν μπορεί να εισέλθει.Ένα πρόθεμα μπορεί επίσης να οριστεί (+/%/@/&amp;/~) που σημαίνει οτι θα ταιριάξει μόνο αν ο χρήστης έχει τα συγκεκριμένα δικαιώματα η μεγαλύτερα στο συγκεκριμένο κανάλι. <Ι>π.χ: +b ~c:#lamers, +e ~c:@#trusted
~r | realname | Αν το πραγματικό όνομα ενός χρήστη ταιριάζει με αυτό τότε αυτός/αυτή δεν μπορεί να εισέλθει. π.χ: ~r:*Stupid_bot_script* Σημείωση: το underscore ('_') ταιριάζει και με ένα κενό (' ') και με ένα underscore ('_'), οπότε αυτο το ban θα ταίριαζε με το 'Stupid bot script v1.4'.

Αυτοί οι τύποι ban υποστιρίζονται επίσης στην λίστα εξαίρεσης καναλιών (+e).
Τα Modules μπορούν επίσης να προσθέσουν και άλλους τύπους Extended bans.

3.14 - Spamfilter

Το Spamfilter είναι ένα νέο σύστημα καταπολέμησης της ενοχλητικής διαφήμισης, του spam, των ιών και άλλων πραγμάτων. Λειτουργεί περίπου όπως το σύστημα κακών λέξεων αλλα έχει πολλά πλεονεκτήματα.

Τα Spamfilters προστίθενται με την εντολή /spamfilter που χρησιμοποιεί την παρακάτω σύνταξη:
/spamfilter [add|del|remove|+|-] [τύπος] [ενέργεια] [διάρκεια] [λόγος] [regex]

[τύπος] | ορίζει τον τύπο στόχου:
Χαρακτήρας: | Ρύθμιση στόχου: | Περιγραφή:
c | channel | Μήνυμα καναλιού
p | private | Μήνυμα σε prive (from user->user)
n | private-notice | Notice σε prive
N | channel-notice | Notice σε κανάλι
P | part | Λόγος στο Part
q | quit | Λόγος στο Quit
d | dcc | Όνομα αρχείου DCC
a | away | Μήνυμα σε Away
t | topic | Μήνυμα σε Topic
u | user | Στοιχεία χρήστη, θα ταιριάξουν με το nick!user@host:realname
Μπορείτε να ορίσετε πολλαπλούς στόχους, όπως: cpNn
[ενέργεια] | ορίζει την ενέργεια που θα γίνει (μόνο μια ενέργεια μπορεί να οριστεί)
kill | κάνει kill τον χρήστη
tempshun | κάνει shun την σύνδεση του χρήστη (αν αυτός/αυτή επανασυνδεθεί το shun αφαιρείται)
shun | προσθέτει ένα shun στην διεύθυνση του χρήστη
kline | προσθέτει μια kline στην διεύθυνση του χρήστη
gline | προσθέτει μια gline στην διεύθυνση του χρήστη
zline | προσθέτει μια zline στην διεύθυνση του χρήστη
gzline | προσθέτει μια gzline (global zline) στην διεύθυνση του χρήστη
block | απλώς εμποδίζει την αποστολή του μηνύματος
dccblock | σημειώνει τον χρήστη ώστε να μην μπορεί να στείλει κανένα DCC
viruschan | αποχωρεί απο όλα τα κανάλια, εισέρχεται στο set::spamfilter::virus-help-channel, απενεργοποιεί όλες τις εντολές για τον χρήστη εκτώς απο το PONG, ADMIN, και msg/notices στο set::spamfilter::virus-help-channel
[διάρκεια] | Η διάρκεια της *line/shun που προστίθεται απο το filter, χρησιμοποιείστε '-' για να δεχτεί το αρχικό η για να το αγνοήσει (π.χ: αν η ενέργεια = 'block')
[λόγος] | Ο λόγος της παρεμπόδισης/*line/shun.. ΔΕΝ μπορείτε να χρησιμοποιήσετε κενά, αλλά τα underscores ('_') θα μεταφραστούν σε κενά την ώρα της εκτέλεσης. Και τα διπλά underscore ('__') δίνουν ένα underscore ('_'). Πάλι, χρησιμοποιείστε '-' για να δεχτεί τον αρχικό λόγο.
[regex] | Αυτό είναι το πραγματικό regex ή 'κακή λέξη' για την οποία πρέπει να παρεμποδίσουμε το μήνυμα ή στην οποία θα πραγματοποιηθεί η ορισμένη ενέργεια

Εδώ είναι ένα παράδειγμα: /spamfilter add pc gline - - Come watch me on my webcam
Αν η πρόταση come watch me on my webcam βρεθεί είτε σε ένα προσωπικό μήνυμα είτε σε μήνυμα καναλιού τότε το μήνυμα θα μπλοκαριστεί και μια gline θα προστεθεί κατευθείαν.
Άλλο παράδειγμα: /spamfilter add pc block - - come to irc\..+\..+
Αυτό είναι ένα regex που θα ταιριάξει με το Hi, come to irc.blah.net κτλ....
Και ένα παράδειγμα με ορισμένη διάρκεια/λόγο:
/spamfilter add p gline 3h Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam
Αν η πρόταση come watch me on my webcam βρεθεί σε ένα προσωπικό μήνυμα τότε ο χρήστης γίνεται gline για 3 ώρες με τον λόγο Please go to www.viruscan.xx/nicepage/virus=blah.
Τα Spamfilters που προστίθονται με το /spamfilter είναι ολικής εμβέλειας. Λειτουργούν αγνωόντας αν ο χρήστης ή το κανάλι έχει ορισμένο mode +G, μόνο οι διαχειριστές και οι ulines (υπηρεσίες) εξαιρούνται απο το filtering.

Μπορείτε επίσης να προσθέσετε spamfilters στο αρχείο επιλογών αλλα αυτές θα είναι τοπικά spamfilters (όχι ολικής εμβέλειας, αν και μπορείτε να χρησιμοποιήσετε πεδία απομακρυσμένης πρόσβασης για αυτό). Η σύνταξη αυτών των spamfilter { } επιλογών επεξηγούνται εδώ
Παράδειγμα:

    spamfilter {
              regex "//write \$decode\(.+\|.+load -rs";
              target { private; channel; };
              reason "Generic $decode exploit";
              action block;
        };

Το set::spamfilter::ban-time σας επιτρέπει να επεξεργαστείτε την αρχική διάρκεια για τις *lines/shuns που προστίθενται απο το spamfilter (αρχικό: 1 μέρα)
Το set::spamfilter::ban-reason σας επιτρέπει να ορίσετε έναν προεπιλεγμένο λόγο (αρχικό: 'Spam/advertising')
Το set::spamfilter::virus-help-channel σας επιτρέπει να ορίσετε το κανάλι στο οποίο θα εισέρχονται οι χρήστες με την ενέργεια 'viruschan' (αρχικό: #help)
Το set::spamfilter::virus-help-channel-deny σας επιτρέπει να εμποδίσετε κάθε κανονικό είσοδο στο virus-help-channel (αρχικό: no)

3.15 - CIDR

Το UnrealIRCd τώρα υποστιρίζει το CIDR (Classless Interdomain Routing). Το CIDR σας επιτρέπει να κάνετε ban σειρές IP. Οι διευθύνσεις IP καθορίζονται στις εταιρίες παροχής υπηρεσιών internet (ISPs) χρησιμοποιόντας το CIDR, οπότε, το να είναι δυνατόν να οριστεί ένα ban βασισμένο στο CIDR σας επιτρέπει να κάνετε ban μια εταιρία ISP. Το Unreal υποστιρίζει CIDR για IPv4 αλλα και για IPv6. Οι μάσκες CIDR μπορούν να χρησιμοποιηθούν στα allow::ip, ban user::mask, ban ip::mask, except ban::mask, except throttle::mask, και except tkl::mask (για gzline, gline, και shun). Επιπλέον, το CIDR μπορει να χρησιμοποιηθεί σε εντολές όπως /kline, /gline, /zline, /gzline, και /shun. Το Unreal χρησιμοποιεί το αρχικό συντακτικό των IP/bits, π.χ., 127.0.0.0/8 (δέχεται 127.0.0.0 - 127.255.255.255), και fe80:0:0:123::/64 (δέχεται fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).

3.16 - Nick Character Sets

Το UnrealIRCd τώρα έχει την ικανότητα να ορίσετε ποιά σετ χαρακτήρων/γλωσσών μπορούν να επιτραπούν στα nicknames. Μπορείτε να το ορίσετε αυτό στο set::allowed-nickchars.
Ένας πίνακας με όλες τις πιθανές επιλογές:

Όνομα: | Περιγραφή: | Σετ χαρακτήρων/κωδικοποίηση:
catalan | Χαρακτήρες Καταλανικών | iso8859-1 (latin1)
danish | Χαρακτήρες Δανέζικων | iso8859-1 (latin1)
dutch | Χαρακτήρες Ολλανδικών | iso8859-1 (latin1)
french | Χαρακτήρες Γαλλικών | iso8859-1 (latin1)
german | Χαρακτήρες Γερμανικών | iso8859-1 (latin1)
swiss-german | Χαρακτήρες Ελβετο-Γερμανικών (no es-zett) | iso8859-1 (latin1)
icelandic | Χαρακτήρες Ισλανδικών | iso8859-1 (latin1)
italian | Χαρακτήρες Ιταλικών | iso8859-1 (latin1)
spanish | Χαρακτήρες Ισπανικών | iso8859-1 (latin1)
swedish | Χαρακτήρες Σουηδικών | iso8859-1 (latin1)
latin1 | catalan, danish, dutch, french, german, swiss-german, spanish, icelandic, italian, swedish | iso8859-1 (latin1)
hungarian | Χαρακτήρες Ουγγρικών | iso8859-2 (latin2), windows-1250
polish | Χαρακτήρες Πολωνικών | iso8859-2 (latin2)
romanian | Χαρακτήρες Ρουμάνικων | iso8859-2 (latin2), windows-1250, iso8859-16
latin2 | Ουγγρικά, Πολωνικά, Ρουμάνικα | iso8859-2 (latin2)
polish-w1250 | Χαρακτήρες Πολωνικών, windows variant (unfortunately more common than iso) | windows-1250
slovak-w1250 | Χαρακτήρες Σλοβακικών, windows variant | windows-1250
czech-w1250 | Χαρακτήρες Τσέχικων, windows variant | windows-1250
windows-1250 | polish-w1250, slovak-w1250, czech-w1250, hungarian, romanian | windows-1250
greek | Χαρακτήρες Ελληνικών | iso8859-7
turkish | Χαρακτήρες Τούρκικων | iso8859-9
russian-w1251 | Χαρακτήρες Ρωσσικών | windows-1251
belarussian-w1251 | Χαρακτήρες Belarussian | windows-1251
ukrainian-w1251 | Χαρακτήρες Ουκρανικών | windows-1251
windows-1251 | russian-w1251, belarussian-w1251, ukrainian-w1251 | windows-1251
hebrew | Χαρακτήρες Εβραϊκών | iso8859-8-I/windows-1255
chinese-simp | Απλοποιοημένα Κινέζικα | Multibyte: GBK/GB2312
chinese-trad | Παραδοσιακά Κινέζικα | Multibyte: GBK
chinese-ja | Γιαπωνέζικα Hiragana/Pinyin | Multibyte: GBK
chinese | chinese-* | Multibyte: GBK
gbk | chinese-* | Multibyte: GBK

ΣΗΜΕΙΩΣΗ 1: Παρακαλώ σημειώστε οτι μερικοί συνδιασμοί μπορούν να προκαλέσουν προβλήματα. Για παράδειγμα, ο συνδιασμός latin* και chinese-* δεν μπορει να ελεγθεί σωστά απο το IRCd και το Unreal θα εμφανίσει ένα μήνυμα λάθους. Ο Συνδιασμός άλλων σετ χαρακτήρων μπορεί επίσης να προκαλέσει προβλήματα στην εμφάνιση, έτσι το Unreal θα εμφανίσει μια προειδοποίηση αν προσπαθήσετε να συνδιάσετε latin1/latin2/greek/άλλα μη συμβατά σύνολα.

ΣΗΜΕΙΩΣΗ 2: Το Casemapping (αν ένας συγκεκριμένος μικρός χαρακτήρας ανήκει σε έναν κεφαλαίο) γίνεται σύμφωνα με το US-ASCII, αυτό σημαίνει ότι το o" και το O" δέν αναγνωρίζονται ώς 'ο ίδιος χαρακτήρας' και γιαυτό μπορεί κάποιος να έχει ένα nick με B"ar και κάποιος άλλος BA"r την ίδια στιγμή. Αυτό είναι ένας περιορισμός του συστήματος και των κανόνων του IRCd που δεν μπορούν να λυθούν σε σύντομο χρονικό διάστημα. Ο Κόσμος πρέπει να γνωρίζει αυτούς τους περιορισμούς. Σημείωση ότι αυτός ο περιορισμός εφαρμόζεται και στα κανάλια, στα οποία σχεδόν όλοι οι χαρακτήρες επιτρέπονταν πάντα και το US-ASCII casemapping εφαρμοζόταν πάντα.

ΣΗΜΕΙΩΣΗ 3: Οι βασικοί χαρακτήρες nick (a-z A-Z 0-9 [ \ ] ^ _ - { | }) επιτρέπονται/συμπεριλαμβάνονται πάντα.

Παράδειγμα 1, για άτομα απο την δυτική ευρώπη:

    set { allowed-nickchars { latin1; }; };

Παράδειγμα 2, αν έχετε περισσότερο κινέζους χρήστες και θέλετε να επιτρέψετε "κανονικούς" κινέζικους χαρακτήρες:

    set { allowed-nickchars { chinese-simp; chinese-trad; }; };

3.17– Άλλα Χαρακτηριστικά

Το UnrealIRCd έχει πολλά χαρακτηριστικά οπότε δεν καλύπτονται όλα εδώ... Θα το καταλάβετε και απο μόνοι σας.

4.0 – Διαμορφώνοντας το unrealircd.conf

Πρώτα απ’όλα, το να δημιουργήσετε ένα καλό unrealircd.conf θα πάρει αρκετό χρόνο, πιθανότατα περίπου 10 – 60 λεπτά. Μπορείτε να προσπαθήσετε να το ξεκινήσετε όσο πιο γρήγορα μπορείτε και να το βελτιστοποιήσετε αργότερα, ή μπορείτε να μάθετε τις σημαντικότερες παραγράφους βήμα βήμα κάτι που προτείνεται ;P. Αν έχετε κάποιο πρόβλημα, ελέγξτε την σύνταξη, ελέγξτε το εγχειρίδιο και ελέγξτε το FAQ πριν ζητήσετε οποιαδήποτε βοήθεια/το υποβάλετε ώς bug.

4.1 Το αρχείο Επιλογών αναλυτικά

Το νέο σύστημα χρησιμοποιεί σύνταξη σε κουτάκια. Κάθε καταχώρηση, η κουτάκι, με την νέα σύνταξη έχει ειδική μορφοποίηση. Η μορφοποίηση δουλεύει ώς:

        <block-name> <block-value> {
              <block-directive> <directive-value>;
        };

<block-name> Είναι ο τύπος της επιλογής, όπως το me, ή το admin. <block-value> μερικές φορές ορίζει μια τιμή, όπως στο /oper login, αλλα άλλες φορές θα είναι ένας υπο-τύπος όπως στο ban user.

<block-directive> Είναι μια χωριστή μεταβλητή αποκλειστικά για την επιλογή, και το <directive-value> είναι η τιμή με την οποία σχετιζεται. Αν το <directive-value> περιέχει κενά, ή χαρακτήρες που αντιπροσωπεύουν ένα σχόλιο πρέπει να περιέχεται μέσα σε λατινικά εισαγωγικά. Αν θέλετε να χρησιμοποιήσετε έναν εισαγωγικό χαρακτήρα μέσα σε μιά εισαγωγική φράση χρησιμοποιήστε \" και το πρόγραμμα θα το δεχτεί ώς εισαγωγικό χαρακτήρα.

Το <block-directive> μπορεί να έχει ορίσματα μέσα του, σε αυτήν την περίπτωση θα έχει περιέχεται μέσα σε αγκύλες. Μερικές επιλογές δέν έχουν ορίσματα και ορίζονται απλώς με το <block-value>, όπως το include. Ακόμα σημειώστε οτι δεν υπάρχει μορφοποίηση με set, που σημαίνει οτι όλη η επιλογή μπορεί να εμφανίζεται σε μιά γραμμή ή σε περισσότερες. Η μορφοποίηση πιο πάνω είναι αυτή που κανονικά χρησιμοποιείται (και που θα χρησιμοποιείται στο αρχείο) γιατί είναι εύκολο να διαβαστεί.

Σημείωση: Το αρχείο επιλογών είναι ευαίσθητο στα κεφαλαία δηλαδή το BLOCK-NAME δεν είναι το ίδιο με το block-name. Υπάρχει ειδική σημείωση που αναφέρεται στις καταχωρήσεις στο αρχείο επιλογών. Ψια παράδειγμα, μιλώντας για το <directive-name> στο παράδειγμα παραπάνω, θα λέγατε <block-name>::<block-directive>, και αν αυτό το όρισμα έχει υπο-επιλογή που θέλετε να συμπεριλάβετε, θα προσθέτατε άλλο ένα :: και το όνομα του υπο ορίσματος.

Ψια να αναφερθείτε σε ένα ανώνυμο όρισμα θα κάνατε <block-name>:: που θα σήμαινε σε αυτην την περίπτωση <block-value>, ή θα μπορούσε να είναι μια καταχώρηση σε μια υπο-επιλογή χωρίς όνομα.

Τρείς τύποι σχολίων υποστιρίζονται:

# Σχόλιο μιάς γραμμής
// Σχόλιο μιάς γραμμής
/* Σχόλιο πολλών
γραμμών */

Τώρα που γνωρίζετε πώς λειτουργεί, δημιουργήστε το δικό σας unrealircd.conf απο την αρχή η αντιγράψτε το doc/example.conf και αρχίστε να το επεξεργάζεστε. Συστήνεται να προχωρήσετε βήμα-βήμα όλες τις επιλογές και να χρησιμοποιήσετε αυτο το εγχειρίδιο για αναφορά.

4.2 – Επιλογή Me ΑΠΑΡΑΙΤΗΤΗ (Προηγουμένως γνωστή ώς M:Line)

Σύνταξη:

        me {
              name <Το όνομα του server>;
              info <Περιγραφή του server>;
              numeric <Νούμερο αναφοράς του server>;
        };

Αυτές οι τιμές είναι αρκετά εμφανείς. Το name ορίζει το όνομα του server, το info ορίζει την περιγραφή του server, το numeric ορίζει ένα νούμερο αναφοράς για τον server. Αυτό πρέπει να είναι μια τιμή μεταξύ του 0 και του 254 η οποία είναι ΜΟΝΑΔΙΚΗ για τον server εννοόντας οτι ΚΑΝΕΝΑΣ άλλος server στο δύκτιο δεν θα έχει το ίδιο νούμερο αναφοράς.

Παράδειγμα:

        me {
              name "irc.foonet.com";
              info "FooNet Server";
              numeric 1;
        };

4.3 – Επιλογή Admin ΑΠΑΡΑΙΤΗΤΗ (Προηγουμένως γνωστή ως A:Line)

Σύνταξη:

        admin {
              <text-line>;
              <text-line>;
        };

Η επιλογή admin καθορίζει τις φράσεις που εμφανίζονται σε μια αίτηση /admin. Μπορείτε να ορίσετε όσες γραμμές θέλετε και μπορούν να περιέρχουν οποιαδήποτε πληροφορία επιλέξετε, αλλα είναι σωστό να περιέχεται το όνομα του admin και η διεύθυνση e-mail το λιγότερο. Aλλες πληροφορίες μπορούν να περιέχουν οποιαδήποτε άλλη πληροφορία επικοινωνίας που θέλετε να δώσετε.

Παράδειγμα:

        admin {
              "Bob Smith";
              "bob";
              "widely@used.name";
        };

4.4 – Επιλογή Class ΑΠΑΙΤΕΙΤΑΙ (Προηγουμένως γνωστή ώς Y:Line)

Παράδειγμα:

        class <όνομα> {
              pingfreq <Συχνότητα ping>;
              connfreq <Συχνοτητα δοκιμών σύνδεσης>;
              maxclients <maximum-χρήστες>;
              sendq <send-queue>;
              recvq <recv-queue>;
        };

Η επιλογές Class είναι κατηγορίες στις οποίες κατατάσονται οι συνδέσεις (για παράδειγμα απο τις επιλογές allow ή servers απο επιλογές link), γενικώς έχετε πολλαπλές κατηγορίες επιλογών (π.χ: για servers, χρήστες, διαχειριστές).

name Είναι το όνομα, όπως "clients" ή "servers", αυτό το όνομα χρησιμοποιείται για αναφορά στην κατηγορία απο τις επιλογές allow/link/oper/κτλ

pingfreq Είναι ο αριθμός των δευτερολέπτων μεταξύ των PING για τους servers (κάτι μεταξύ 90 και 180 προτείνεται).

connfreq Χρησιμοποιείται μόνο για τους servers και είναι ο αριθμός των δευτερολέπτων μεταξύ των προσπαθιών σύνδεσης αν η επιλογή autoconnect έχει ενεργοποιηθεί.

maxclients ορίζει το μέγιστο αριθμό των χρηστών/servers που μπορούν να βρίσκονται σε αυτήν την κατηγορία

sendq ορίζει το σύνολο των δεδομένων που μπορούν να βρίσκονται στην ουρά αποστολής δεδομένων (πολυ μεγαλο για servers με μεγαλο bandwidth, μέτριο για χρήστες)

recvq ορίζει το σύνολο των δεδομένων που μπορούν να βρίσκονται στην ουρά αποδοχής δεδομένων και χρησιμοποιείται για έλεγχο του flood (αυτό χρησιμοποιείται μόνο για κανονικούς χρήστες, προσπαθήστε να πειραματιστείτε με τιμές 3000-8000, 8000 είναι το αρχικό).

Παράδειγμα:

        class clients {
              pingfreq 90;
              maxclients 500;
              sendq 100000;
              recvq 8000;
        };

        class servers{
              pingfreq 90;
              maxclients 10; /* Μέγιστος αριθμός servers που μπορούν να είναι συνδεδεμένοι */
              sendq 1000000;
              connfreq 100; /* Πόσα δευτερόλεπτα μεταξύ κάθε προσπάθειας σύνδεσης */
        };

4.5 – Επιλογή Allow ΑΠΑΙΤΕΙΤΑΙ (Προηγουμένως γνωστή ώς I:Line)

Σύνταξη:

        allow {
              ip <user@μάσκα-επιτρεπτών-ip>;
              hostname <user@μασκα-επιτρεπτών-host>;
              class <κατηγορία-συνδέσεων>;
              password <κωδικός-σύνδεσης> { <auth-type>; };
              maxperip <μέγιστες-συνδέσεις-για-καθε-ip>;
              redirect-server <server-στον-οποίο-να-προωθείται>;
              redirect-port <πορτα-στην-οποία-να-προωθείται>;
              options {
                     <option>;
                     <option>;
                     ...
              };
        };

Η επιλογή επιτρεπτής κατηγορία είναι αυτή που καθορίζει ποιός επιτρέπεται να συνδεθεί στον server, μπορείτε να έχετε πολλαπλές επιλογές επιτρεπτών κατηγοριών.

Σχετικά με το “ταίριασμα”
Ο έλεγχος πρόσβασης λειτουργεί με τον παρακάτω τρόπο: Η ip ταιριάζει ή το host ταιριάζει, έτσι ώστε το "hostname *@*"; Και η "ip *@1.2.3.4" σημαίνει οτι πάντα ταιριάζει. Επίσης η επιλογή επιτρεπτής πρόσβασης διαβάζονται με ανάποδη σειρά, που σημαίνει οτι πρέπει να προσδιορίσετε συγκεκριμένες host/ip επιλογές επιτρεπτής πρόσβασης ΜΕΤΑ απο τις γενικές *@* επιλογές επιτρεπτής πρόσβασης. Επιπλέον, αν θέλετε να ορίσετε μιά επιλογή που ταιριάζει μόνο με τις IP, τότε απλώς ορίστε το hostname σε κάτι άκυρο, όπως "hostname NOBODY;", αυτό θα επιτρέψει στην επιλογή να ταιριάζει μόνο βασισμένο στην IP.

ip
Η μάσκα ip βρίσκεται στην μορφή user@ip, το user είναι η ταυτότητα και συχνά ορίζεται ως *, η ip είναι η μάσκα του ip. Μερικά παραδείγματα: *@* (απο οπουδήποτε), *@192.168.* (μόνο απο διευθύνσεις που αρχίζουν απο 192.168), κτλ.

host
Επίσης μια μάσκα user@host για διευθύνσεις. Το user συχνά ορίζεται ώς *. Μερικά παραδείγματα: *@* (παντού), *@*.wanadoo.fr (μόνο απο το wanadoo.fr).

password (μή απαραίτητο)
Απαιτεί ένα κωδικό σύνδεσης. Μπορείτε επίσης να ορίσετε μια μέθοδο κρυπτογράφησης κωδικού εδώ.

class
Ορίζει το όνομα της κατηγορίας στην οποία θα καταταχθούν οι συνδέσεις που χρησιμοποιούν αυτήν την επιλογή επιτρεπτής πρόσβασης.

maxperip (μή απαραίτητο, αλλα προτείνεται)
Σας επιτρέπει να προσδιορίσετε πόσες συνδέσεις για κάθε IP επιτρέπονται σε αυτό τον server (π.χ: maxperip 4;).

redirect-server (μή απαραίτητο)
Αν η κατηγορία είναι γεμάτη, στέλνει τους χρήστες σε αυτόν τον server (αν το πρόγραμμα του χρήστη το υποστηρίζει [το mIRC 6.xx το υποστιρίζει]).

redirect-port (μή απαραίτητο)
Αν το redirect-server έχει οριστεί, μπορείτε να ορίσετε την port εδώ, αλλιώς θεωρείται η 6667.

options block (μή απαραίτητο)
Έγκυρες επιλογές είναι:
useip πάντα εμφανίζει το IP αντί του hostname
noident δεν χρησιμοποιεί το ident αλλα χρησιμοποιεί το username ορισμένο απο το πρόγραμμα
ssl ταιριάζει μόνο αν το πρόγραμμα συνδέθηκε μέσω SSL
nopasscont συνέχιζει το ταίριασμα και ας μην δώθηκε κωδικός (ωστέ να μπορείτε να στείλετε τους χρήστες σε ειδικές κατηγορίες αν δώσουν κωδικό).

Παράδειγμα:

        allow {
              ip *;
              hostname *;
              class clients;
              maxperip 5;
        };

        allow {
              ip *@*;
              hostname *@*.passworded.ugly.people;
              class clients;
              password "f00Ness";
              maxperip 1;
        };

4.6 – Επιλογή Listen ΑΠΑΙΤΕΙΤΑΙ (Προηγουμένως γνωστή ώς P:Line)

Σύνταξη:

        listen <ip:port> {
              options {
                     <option>;
                     <option>;
                     ...
              };
        };

Αυτή η επιλογή σας επιτρέπει να ορίσετε τις ports στις οποίες το IRCD θα “ακούει”. Αν δεν χρειάζονται υπο επιλογές, μπορείτε να τις ορίσετε χωρίς ορίσματα στην μορφή listen <ip:port>;.

ip and port
Μπορείτε να ορίσετε την ip σε * για να δεσμεύσετε όλες τις διαθέσιμες ips, η να ορίσετε μία ώστε να δεσμεύσει μόνο αυτήν την ip (συνήθως χρειάζεται σε shell providers). port είναι το port στο οποίο θέλετε να ακούει. Μπορείτε ακόμα να ορίσετε το port σε μια ποικιλία αντι για μία μόνο τιμή. Για παράδειγμα, 6660-6669 θα ακούει σε ports 6660 έως και 6669. Οι χρήστες IPv6 , δείτε παρακάτω.

Info for IPv6 users
Αν έχετε έναν ενεργοποιημένο IPv6 server τότε πρέπει να περιελάβετε την IP σε αγκύλες. Όπως το [::1]:6667 (ακούει στο localhost στο port 6667). Αν χρησιμοποιείτε IPv6 και θέλετε να ακούσετε σε μία συγκεκριμένη IPv4 διεύθυνση αρκει να χρησιμοποιήσετε ::ffff:ipv4ip. Για παράδειγμα: [::ffff:203.123.67.1]:6667 θα ακούσει στο 203.123.67.1 στο port 6667. Φυσικά μπορείτε επίσης να χρησιμοποιήσετε *.

options block (μή απαραίτητο)
Μπορείτε να ορίσετε ειδικές υπο-επιλογές για κάθε port αν θέλετε, έγκυρες υπο-επιλογές είναι:

clientsonly | port μόνο για χρήστες
serversonly | port μόνο για servers
java | Υποστίριξη για CR javachat
ssl | Κρυπτογραφημένη SSL port

Παραδείγματα:

        listen *:6601 {
              options {
                     ssl;
                     clientsonly;
              };
        };

Η αν δεν υπάρχουν υπο-επιλογές:

listen *:8067;
listen 213.12.31.126:6667;
listen *:6660-6669;

4.7 - Επιλογή Oper ΠΡΟΤΕΙΝΕΤΑΙ (Previously known as the O:Line)

    oper <name> {
              from {
                     userhost <hostmask>;
                     userhost <hostmask>;
              };
              password <password> { <auth-type>; };
              class <class-name>;
              flags <flags>;
              flags {
                     <flag>;
                     <flag>;
                     ...
              };
              swhois <whois info>;
              snomask <snomask>;
              modes <modes>;
              maxlogins <num>;
        };

Η επιλογή oper σας επιτρέπει να ορίσετε διαχειριστές για τον server σας. Το oper:: καθορίζει το όνομα της επιλογής /oper. Το oper::from::userhost είναι μια μάσκα user@host με την οποία ο χρήστης πρέπει να ταιριάζει, μπορείτε επίσης να καθορίσετε περισσότερες απο μία μάσκες ορίζοντας περισσότερες απο μία επιλογές oper::from::userhost. Το oper::password είναι ο κωδικός τον οποίο πρέπει να καθορίσει ο χρήστης, το oper::password:: σας επιτρέπει να καθορίσετε μια μέθοδο αναγνώρισης για αυτόν τον κωδικό, έγκυροι τύποι αναγνώρισης είναι τα crypt, md5, και sha1, ripemd-160. Αν θέλετε να χρησιμοποιήσετε ένα απλό κωδικό αγνοήστε αυτην την υποεπιλογή.

Παρακαλούμε σημειώστε ότι ΚΑΙ το όνομα αναγνώρισης όπως και ο κωδικός είναι case sensitive

Το oper::class καθορίζει το όνομα μιάς κατηγορίας που προυπάρχει (εμφανίζεται πρίν απο αυτό στο αρχείο επιλογών) την οποία η επιλογή oper θα χρησιμοποιήσει.

Το oper::flags έχει δύο μορφές. Αν θέλετε να χρησιμοποιήσετε τον παλιό τύπο oper flags π.χ., OAa, χρησιμοποιήτε την μέθοδο flags <flags> , άν θέλετε να χρησιμοποιήσετε το νέο τύπο,π.χ., services-admin, τότε χρησιμοποιείτε την μέθοδο flags { <flag>; } . Παρακάτω βρίσκεται μια λίστα με όλα τα διαθέσιμα flags (και στις δύο μορφές) και την ιδιοτητά τους.

Old Flag | New Flag | Description
o | local | Σας ορίζει τοπικό διαχειριστή
O | global | Σας ορίζει γενικό διαχειριστή
C | coadmin | Σας ορίζει βοηθό ιδιοκτήτη του server
A | admin | Σας ορίζει ιδιοκτήτη του server
a | services-admin | Σας ορίζει διαχειριστή των services
N | netadmin | Σας ορίζει διαχειριστή Δυκτίου
r | can_rehash | Ο Διαχειριστής μπορει να χρησιμοποιήσει /rehash
D | can_die | Ο Διαχειριστής μπορει να χρησιμοποιήσει /die
R | can_restart | Ο Διαχειριστής μπορει να χρησιμοποιήσει /restart
h | helpop | Ο Διαχειριστής δέχεται το umode +h (Βοηθός)
w | can_wallops | Ο Διαχειριστής μπορεί να στείλει /wallops
g | can_globops | Ο Διαχειριστής μπορεί να στείλει /globops
c | can_localroute | Μπορεί να συνδέσει τους servers τοπικά
L | can_globalroute | Μπορεί να συνδέσει τους servers σε όλο το δύκτιο
k | can_localkill | Μπορεί να κάνει /kill τους τοπικούς χρήστες
K | can_globalkill | Μπορεί να κάνει /kill απομακρυσμένους χρήστες
b | can_kline | Μπορεί να χρησιμοποιήσει /kline
B | can_unkline | Μπορεί να χρησιμοποιήσει /kline -u@h
n | can_localnotice | Μπορεί να στείλει τοπικές ειδοποιήσεις στους χρήστες του server
G | can_globalnotice | Μπορεί να στείλει ανακοινώσεις στους χρήστες απομακρυσμένων server
z | can_zline | Μπορεί να χρησιμοποιήσει /zline
t | can_gkline | Μπορεί να χρησιμοποιήσει /gline, /shun και /spamfilter
Z | can_gzline | Μπορεί να χρησιμοποιήσει /gzline
W | get_umodew | Ορίζει umode +W όταν δεχτείτε δικαιώματα διαχειριστή
H | get_host | Ορίζει την διεύθυνση σας σε μια διεύθυνση διαχειριστή
v | can_override | Μπορεί να χρησιμοποιήσει OperOverride
q | can_setq | Μπορει να χρησιμοποιήσει umode +q
X | can_addline | Μπορει να χρησιμοποιήσει /addline
d | can_dccdeny | Μπορεί να χρησιμοποιήσει /dccdeny και /undccdeny

Συγκεκριμένα flags σας δίνουν άλλα flags εξαρχής:

local | global | admin/coadmin | services-admin | netadmin
can_rehash | can_rehash | can_rehash | can_rehash | can_rehash
helpop | helpop | helpop | helpop | helpop
can_globops | can_globops | can_globops | can_globops | can_globops
can_wallops | can_wallops | can_wallops | can_wallops | can_wallops
can_localroute | can_localroute | can_localroute | can_localroute | can_localroute
can_localkill | can_localkill | can_localkill | can_localkill | can_localkill
can_kline | can_kline | can_kline | can_kline | can_kline
can_unkline | can_unkline | can_unkline | can_unkline | can_unkline
can_localnotice | can_localnotice | can_localnotice | can_localnotice | can_localnotice
| can_globalroute | can_globalroute | can_globalroute | can_globalroute
| can_globalkill | can_globalkill | can_globalkill | can_globalkill
| can_globalnotice | can_globalnotice | can_globalnotice | can_globalnotice
|  | global | global | global
|  | can_dccdeny | can_dccdeny | can_dccdeny
|  |  | can_setq | can_setq
|  |  |  | admin
|  |  |  | services-admin

Το όρισμα oper::swhois σας επιτρέπει να προσθέσετε μια επιπλέον γραμμή στις πληροφορίες whois ενός διαχειριστή. [προαιρετικό]

Το όρισμα oper::snomask σας επιτρέπει να προ-καθορίσετε την μάσκα ειδοποιήσεων όταν κάποιος δεχτεί δικαιώματα διαχειριστή. Για μια λίστα με τα διαθέσιμα SNOMASKs, δείτε παράγραφος 3.3 [προαιρετικό]

Το όρισμα oper::modes σας επιτρέπει να προ-καθορίσετε τα modes ενός που θα δεχτεί τα δικαιώματα του διαχειριστή. [προαιρετικό]

Το oper::maxlogins σας επιτρέπει να περιορίσετε τον αριθμό των ταυτόχρονων συνδέσεων διαχειριστή απο αυτήν την διέυθυνση, για παράδειγμα αν το ορίσετε στο 1 τότε μόνο ένα άτομο μπορεί να έχει δικαιώματα διαχειριστή απο αυτην την επιλογή κάθε στιγμή. [προαιρετικό]

Παράδειγμα:

        oper bobsmith {
              class clients;
              from {
                     userhost bob@smithco.com;
                     userhost boblaptop@somedialupisp.com;
              };
              password "f00";
              flags {
                     netadmin;
                     can_gkline;
                     can_gzline;
                     can_zline;
                     can_restart;
                     can_die;
                     global;
              };
              swhois "Παράδειγμα μιας μάσκας whois";
              snomask frebWqFv;
        };

Μερικές πληροφορίες για το OperOverride:
Το OperOverride είναι ενέργειες όπως: εισέρχεστε σε ένα κανάλι +ikl και περνάτε οποιοδήποτε ban (πρέπει να κάνετε /invite πρώτα απόλα εσάς), δίνετε op στον εαυτό σας σε ένα κανάλι, κτλ.
Η υποεπιλογή can_override operflag πρστέθηκε ώς μια προσπάθεια να σταματήσει η κατάχρηση της εντολής απο τους διαχειριστές. Κανένας διαχειριστής δεν μπορεί να κάνει override εξαρχής, πρέπει να του έχει δοθεί η υποεπιλογή can_override flag .

4.8 - Επιλογή DRpass ΠΡΟΤΕΙΝΕΤΑΙ(Previously known as the X:Line)

Σύνταξη:

        drpass {
              restart <restart-password> { <auth-type>; };
              die <die-password> { <auth-type>; };
        };

Αυτή η επιλογή ορίζει τους κωδικούς για το /restart και το /die με drpass::restart and drpass::die αναλόγως. Το drpass::restart:: και drpass::die:: σας επιτρέπει να ορίσετε τον τύπο της αναγνώρισης που χρησιμοποιείται απο αυτό. Οι μορφές αναγώρισης που υποστιρίζονται είναι crypt, md5, and sha1, ripemd-160.

Example:

        drpass {
              restart "I-love-to-restart";
              die "die-you-stupid";
        };

4.9 - Όρισμα Include

Σύνταξη:
include <file-name>;

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

Παράδειγμα 1: ένα αρχείο δυκτίου

    include mynetwork.network;

Αυτο θα ήταν η εντολή που θα χρησιμοποιούσαμε αν θέλαμε να χρησιμοποιήσουμε ένα ξεχωριστό αρχείο δυκτίου. Τα ξεχωριστά αρχεία δυκτίου δεν είναι πλέον απαραίτητα; Όλες οι επιλογές δυκτίου μπορούν να προστεθούν κατευθείαν μέσα στο unrealircd.conf. Ή μπορείτε να ορίσετε μια επιλογή include για να φορτώσετε το αρχείο.

Παράδειγμα 2: aliases

    include aliases/ircservices.conf

Άλλο ένα παράδειγμα είναι να το χρησιμοποιήσετε για να περιλάβετε τις επιλογές alias, το UnrealIRCd έρχεται με μερικά αρχεία που θα (πρεπει) να περιέχουν τα σωστά aliases για τις περισσότερες υπηρεσίες:

- aliases/ircservices.conf (IRCServices, Daylight)
- aliases/epona.conf (Epona)
- aliases/anope.conf (Anope)
- aliases/auspice.conf (Auspice)
- aliases/generic.conf (Magick, Sirius, Wrecked)
- aliases/cygnus.conf (Cygnus)
- aliases/operstats.conf (OperStats)
- aliases/genericstats.conf (GeoStats, NeoStats)

4.10 - Όρισμα LoadModule ΑΠΑΙΤΕΙΤΑΙ

Σύνταξη:
loadmodule <file-name>;

Δείτε εδώ γιατι τα modules είναι ωραία/χρήσιμα.

Modules που συμπεριλαμβάνονται στο Unreal3.2:

commands.so / commands.dll - Όλες οι / εντολές (ίσως όχι όλες ακόμα, αλλα τελικα θα προστεθούν όλες) ΑΠΑΙΤΕΙΤΑΙ
cloak.so / cloak.dll - Cloaking module ΑΠΑΙΤΕΙΤΑΙ (ή οποιοδήποτε άλλο module κρυπτογράφησης)

Οπότε θέλετε να είστε σίγουροι ότι έχετε φορτώσει αυτά:

        loadmodule "src/modules/commands.so";
        loadmodule "src/modules/cloak.so";

ή στα windows:

        loadmodule "modules/commands.dll";
        loadmodule "modules/cloak.dll";

4.11 - Επιλογή Log ΠΡΟΤΕΙΝΕΤΑΙ

Σύνταξη:

        log <file-name> {
              maxsize <max-file-size>;
              flags {
                     <flag>;
                     <flag>;
                     ...
              };
        };

Η Επιλογή log σας επιτρέπει να ορίσετε διαφορετικά αρχεία καταγραφής για διαφορετικούς σκοπούς. Το log:: περιέχει το όνομα του αρχείου καταγραφής. log::maxsize είναι ένα προαιρετικό όρισμα που σας επιτρέπει να ορίσετε το μέγεθος στο οπόιο αυτο το αρχείο καταγραφής θα διαγράφεται και θα επανακινείται.Μπορείτε να χρησιμοποιήσετε το MB για τα megabytes, KB, για kilobytes, GB, για gigabytes. Το log::flags ορίζει ποιοί τύποι πληροφοριών θα χρησιμοποιηθούν σε αυτό το αρχείο καταγραφής. Δείτε παρακάτω την λίστα με τις διαθέσιμες επιλογές.

Μπορείτε επίσης να έχετε πολλαπλές επιλογές καταγραφής, για να καταγράφετε διαφορετικά πράγματα σε διαφορετικά αρχεία καταγραφής.

Available Flags:

errors | self explanatory
kills | καταγράφει τα /kill notices
tkl | καταγράφει πληροφορίες για τις *lines, τα shun και τα spamfilters που (προστέθηκαν/αφαιρέθηκαν/έληξαν)
connects | καταγράφει τις εισόδους/εξόδους χρηστών
server-connects | καταγράφει τις συνδέσεις/αποσυνδέσεις των server
kline | καταγράφει την χρήση της /kline
oper | καταγράφει τις προσπάθειες απόκτησης δικαιώματα διαχειριστή (ανεπιτυχείς και επιτυχείς)
sadmin-commands | καταγράφει την χρήση των εντολών /sa* (samode, sajoin, sapart, κτλ.)
chg-commands | καταγράφει την χρήση των εντολών /chg* (chghost, chgname, chgident, κτλ.)
oper-override | καταγράφει την χρήση του operoverride
spamfilter | καταγράφει ενέργειες του spamfilter

Παράδειγμα:

        log ircd.log {
              maxsize 5MB;
              flags {
                     errors;
                     kills;
                     oper;
                     kline;
                     tkl;
              };
        };

4.12 - Επιλογή TLD ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as the T:Line)

Σύνταξη:

        tld {
              mask <hostmask>;
              motd <motd-file>;
              rules <rules-file>;
              shortmotd <shortmotd-file>;
              opermotd <opermotd-file>;
              botmotd <botmotd-file>;
              channel <channel-name>;
              options {
                     ssl;
              }
        };

Η επιλογή tld σας επιτρέπει να ορίσετε το motd, αρχείο κανόνων, και κανάλι για έναν χρήστη βασισμένο στην διεύθυνση του. Αυτό είναι χρήσιμο όταν θέλετε να έχετε διαφορετικά motd για διαφορετικές γλώσσες. Το tld::mask είναι μια μάσκα user@host που το όνομα χρήστη και η διεύθυνση πρέπει να ταιριάζουν. Τα tld::motd, tld::shortmotd, tld::opermotd, tld::botmotd, και tld::rules ορίζουν το αρχείο motd, shortmotd, opermotd, botmotd, και αρχέιο κανόνων (rules), αναλόγως, για να εμφανίζονται για αυτήν την διεύθυνση. Τα tld::shortmotd, tld::opermotd, και tld::botmotd είναι προαιρετικά. tld::channel είναι προαιρετικό επίσης, σας επιτρέπει να ορίσετε ένα κανάλι το οποίο ο χρήστης θα εξαναγκάζεται να εισέρθει όταν συνδεθεί. Αν αυτή η επιλογή υπάρχει τότε κάνει override το αρχικό auto join channel. Το tld::options σας επιτρέπει να ορίσετε επιπλέον απαιτήσεις, προς το παρόν υπάρχουν μόνο το tld::options::ssl που εμφανίζει το αρχείο μόνο στους χρήστες SSL, και το tld::options::remote που εμφανίζει το αρχείο μόνο στους remote χρήστες.

TLD entries are matched upside down

Example:

        tld {
              mask *@*.fr;<
              motd "ircd.motd.fr";
              rules "ircd.rules.fr";
        };

4.13 - Επιλογή Ban Nick ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as the Q:Line)

Σύνταξη:

        ban nick {

              mask <nickname>;
              reason <reason-for-ban>;
        };

Η επιλογή ban nick σας επιτρέπει να αποτρέψετε την χρήση ενός nickname στον server. Το ban::mask σας επιτρέπει οι μάσκες wildcard να ταιριάζουν με πολλαπλά nicks, και το ban::reason σας επιτρέπει να ορισετε τον λόγο για τον οποίο τέθηκε αυτο το ban. Συνήθως αυτές οι επιλογές χρησιμοποιούνται για να απαγορέψουν την χρήση κάποιων nickname που χρησιμοποιούνται συνήθως απο τα services.

Παράδειγμα:

        ban nick {
              mask "*C*h*a*n*S*e*r*v*";
              reason "Reserved for Services";
        };

4.14 - Επιλογή Ban User ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as the K:Line)

Σύνταξη:

        ban user {
              mask <hostmask>;
              reason <reason-for-ban>;
        };

Η επιλογή σας επιτρέπει να απαγορέψετε απο μιά μασκα user@host την σύνδεση στον server. Το ban::mask είναι μια γρραμμή wildcard της διεύθυνσης user@host του χρήστη που θα γίνει ban, και το ban::reason είναι ο λόγος για τον οποίο ορίζεται ένα ban. Σημειώστε, αυτό είναι μόνο ένα τοπικό ban και επομένως ο χρήστης μπορεί να συνδεθεί στους άλλους servers του δυκτίου.

Example:

        ban user {
              mask *tirc@*.saturn.bbn.com;
              reason "Idiot";
        };

4.15 - Επιλογή Ban IP ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as the Z:Line)

Σύνταξη:

        ban ip {
              mask <ipmask>;
              reason <reason-for-ban>;
        };

Η επιλογή ban ip αποτρέπει την σύνδεση μιας IP στον server. Αυτό περιέχει και τους χρήστες αλλα και τους servers που προσπαθούν να συνδεθούν. Το όρισμα ban::mask είναι μία IP που μπορεί να περιέχει χαρακτήρες wildcard, και το ban::reason είναι ο λόγος για τον οποίο αυτό τέθηκε αυτό το ban. Εφόσον αυτο το ban επηρεάζει και τους servers θα πρέπει να χρησιμοποιείται πολύ προσεκτικά.

Παράδειγμα:

        ban ip {
              mask 192.168.1.*;
              reason "Get a real ip u lamer!";
        };

4.16 - Επιλογή Ban Server ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as the q:Line)

Σύνταξη:

        ban server {
              mask <server-name>;
              reason <reason-for-ban>;
        };

Αυτη η επιλογή εμποδίζει την ιδιότητα ενός server's για σύνδεση στο δύκτιο. Αν ο server συνδέεται κατευθείαν στον server σας, η σύνδεση απορρίπτεται. Αν ο server συνδέεται σε απομακρυσμένο server, τότε ο τοπικός server θα αποσυνδεθεί απο το δύκτιο. Το πεδίο ban::mask ορίζει μια μάσκα wildcard που ταιριάζει με τον όνομα του server που προσπαθεί να συνδεθεί, και το ban::reason ορίζει τον λόγο για τον οποίο τέθηκε αυτό το ban.

Παράδειγμα:

        ban server {
              mask broken.server.my.network.com;
              reason "Its broken!";
        };

4.17 - Επιλογή Ban RealName ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as the n:Line)

Σύνταξη:

        ban realname {
              mask <realname-mask>;
              reason <reason-for-ban>;
        };

Η επιλογή ban realname σας επιτρέπει να κάνετε ban έναν χρήστη βασισμένοι στο πεδίο GECOS (πραγματικό όνομα). Αυτό είναι χρήσιμο για να σταματήσετε επιθέσεις κλώνων γιατι συχνά οι κλώνοι χρησιμοποιούν το ίδιο πραγματικό όνομα. Το ban::mask ορίζει το πραγματικό όνομα που θα πρέπει να γίνει ban. Η μάσκα μπορεί να περιέχει wildcards. Το ban::reason ορίζει τον λόγο για τον οποίο τέθηκε αυτο το ban.

Example:

        ban realname {
              mask "Bob*";
              reason "Bob sucks!";
        };

4.18 - Επιλογή Ban Version ΠΡΟΑΙΡΕΤΙΚΟ

Σύνταξη:

        ban version {
              mask <version-mask>;
              reason <reason-for-ban>;
              action [kill|tempshun|shun|kline|zline|gline|gzline];
        };

Η επιλογή ban version σας επιτρέπει να κάνετε ban έναν χρήστη βασισμένοι στο πρόγραμμα πρόσβασης IRC που χρησιμοποιούν. Αυτό χρησιμοποιεί την επιλογή CTCP version των προγραμμάτων. Γιαυτό άν το πρόγραμμα δεν δώσει απάντηση στο CTCP version, το ban δεν θα λειτουργήσει. Αυτη η επιλογή στοχεύει στο να επιτρέπει να αποτρέψετε την χρήση κακόβουλων προγραμμάτων. Το ban::mask ορίζει την έκδοση που πρέπει να αποτραπεί. Η μάσκα μπορει να περιέχει wildcards. Το ban::reason ορίζει τον λόγο για τον οποίο αυτο το ban θα πλαισιωθεί. Μπορείτε ενα ορίσετε επίσης ban::action, το kill είναι η αρχική επιλογή, tempshun θα κάνει shun στην σύνδεση του συγκεκριμένου χρήστη και θα λειτουργήσει μόνο πολύ αποτελεσματικά εναντίον zombies/bots σε δυναμικές διευθύνσεις αφού δεν θα επηρεάσει αθώους χρήστες. shun/kline/zline/gline/gzline θα ορίσει ένα ban αυτού του τύπου στην ip (*@IPADDR), η διάρκεια αυτών των ban μπορει να οριστεί με το όρισμα set::ban-version-tkl-time και η αρχική τιμή της είναι 1 μέρα.

Example:

        ban version {
              mask "*SomeLameScript*";
              reason "SomeLameScript contains backdoors";
        };

        ban version {
              mask "*w00tZombie*";
              reason "I hate those hundreds of zombies";
              action zline;
        };

4.19 - Επιλογή Ban Exceptions ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as the E:Line)

Σύνταξη:

        except ban {
              mask <hostmask>;
        };

Η επιλογή εξαίρεσης ban σας επιτρέπει να ορίσετε ένα user@host το οποίο θα υπερβαίνει ένα ban που τέθηκε σε ένα πιο ευρύ host. Αυτο είναι χρήσιμο όταν θέλετε να κάνετε μια ISP banned, αλλα επίσης θέλετε συγκεκριμένους χρήστες να μπορούν να συνδεθούν. Το except::mask όρισμα ορίζει την user@host μάσκα των χρηστών που θα μπορούν να συνδεθούν.

Example:

        except ban {
              mask myident@my.isp.com;
        };

4.20 - Επιλογή TKL Exceptions ΠΡΟΑΙΡΕΤΙΚΟ

Σύνταξη:

        except tkl {
              mask <hostmask>;
              type <type>;
              type {
                     <type>;
                     <type>;
                     ...
              };
        };

Η επιλογή εξαίρεσης tkl σας επιτρέπει να ορίσετε μια μάσκα user@host που θα υπερβαίνει ένα tkl ban που τέθηκε σε ένα πιο ευρύ host. Αυτο είναι χρήσιμο όταν θέλετε να κάνετε μια ISP banned, αλλα επίσης θέλετε συγκεκριμένους χρήστες να μπορούν να συνδεθούν. Το except::mask όρισμα ορίζει την user@host μάσκα των χρηστών που θα μπορούν να συνδεθούν. Το όρισμα except::type ορίζει ποιούς τύπους ban αυτό θα υπερβαίνει. Έγκυροι τύποι είναι gline, gzline, qline, gqline, και shun, που δημιουργεί εξεραίσεις για τα Glines, Global Zlines, Qlines, Global Qlines, και shuns. Αν η μορφή {} χρησιμοποιείται, μπορούν να οριστούν πολλαπλοί τύποι.

Example:

        except tkl {
              mask myident@my.isp.com;
              type gline;
        };

4.21 - Επιλογή Throttle Exceptions ΠΡΟΑΙΡΕΤΙΚΟ

Σύνταξη:

        except throttle {
              mask <ipmask>;
        };

Η επιλογή εξαίρεσης throttle σας επιτρέπει να ορίσετε μια μάσκα IP που θα υπερβαίνει το σύστημα throttling. Αυτό λειτουργεί μόνο άν έχετε διαλέξει να ενεργοποιήσετε το throttling. Το except::mask ορίζει μια μάσκα IP που δεν θα γίνεται ban εξαιτίας του throttling.

Example

        except throttle {
              mask 192.168.1.*;
        };

4.22 - Επιλογή Deny DCC ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as dccdeny.conf)

Σύνταξη:

        deny dcc {
              filename <file-to-block>;
              reason <reason-for-ban>;
              soft [yes|no];
        };

Η επιλογή απόρριψης dcc σας επιτρέπει να ορίσετε ένα αρχείο το οποίο δεν θα επιτρέπεται να σταλεί μέσω DCC στον server. Αυτό είναι αρκετά χρήσιμο στο να σταματήσει η διακίνηση ιών και trojans.

Το deny::filename ορίζει μια μάσκα wildcard του αρχείου του οποίου θα αποτρέπεται η αποστολή, και το deny::reason ορίζει τον λόγο για τον οποίο αυτο το αρχείο είναι απαγορευμένο.

Υπάρχει ακόμα ένα deny::soft όρισμα, αν το ορίσετε 'yes' το dcc αποτρέπεται εκτώς και αν ο χρήστης το επιτρέψει μέσω του /DCCALLOW +χρήστης-που-προσπαθεί-να-στείλει. Δείτε το dccallow.conf για ένα καλό παράδειγμα της χρήσης του dccallow.

Example

        deny dcc {
              filename virus.exe;
              reason "This is a GD Virus";
        };

        deny dcc {
              filename "*.exe";
              reason "Executable content";
              soft yes;
        };

4.23 - Επιλογή Deny Version ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as the V:Line)

Σύνταξη:

        deny version {
              mask <server-name>;
              version <version-number>;
              flags <compile-flags>;
        };

Αυτή η επιλογή σας επιτρέπει να αποτρέψετε την σύνδεση ενός server βασισμένο στην έκδοση του Unreal που τρέχει και στις παραμέτρους του compile που έχει. Η μορφή της επιλογής είναι λίγο πολύπλοκη αλλα δεν είναι πολύ δύσκολο να την κατανοήσετε. Το όρισμα deny::mask ορίζει μια μάσκα wildcard που αναφέρεται στο όνομα του server. Το deny::version ορίζει τον αριθμό του προτοκόλου στην οποία αυτή η έκδοση αναφέρεται.

Για παράδειγμα, στην έκδοση 3.0 είναι 2301, 3.1.1/3.1.2 είναι 2302, 3.2 είναι 2303. Ο πρώτος χαρακτήρας της παραμέτρου μπορεί να είναι ένας απο τους επόμενους >, <, =, !. Αυτός ο χαρακτήρας λέει στο IRCd πως να ερμηνεύσει την έκδοση. Αν ο πρώτος χαρακτήρας είναι ένα > τότε όλες οι νεότερες εκδόσεις απο αυτήν που ορίστικε απορρίπτονται, εάν είναι ένα < όλες οι παλαιότερες εκδόσεις απορρίπτονται, εάν είναι ένα = μόνο η συγκεκριμένη έκδοση απορρίπτεται, και εάν είναι ένα ! τότε όλες οι εκδόσεις εκτώς απο την συγκεκριμένη απορρίπτονται. Το όρισμα deny::flags σας επιτρέπει να ορίσετε ποιες παραμέτρους compile ο server μπορεί η δεν μπορεί να έχει. Τα flags είναι τοποθετημένα το ένα δίπλα στο άλλο χωρίς κενό ανάμεσα τους, άν ένας χαρακτήρας βρίσκεται μετά απο ένα ! τότε σημαίνει οτι ο server δεν μπορεί να έχει αυτο το flag compiled, άν δεν βρίσκεται μετά απο ένα !, τότε σημαίνει οτι ο server πρέπει να έχει αυτο το flag compiled.

4.24 - Επιλογή Deny Link ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as the D/d:Line)

Σύνταξη:

        deny link {
              mask <server-name>;
              rule <crule-expression>;
              type <type-of-denial>;
        };

Αυτή η επιλογή σας επιτρέπει να χρησιμοποιήσετε συγκεκριμένους κανόνες για να απορρίψετε την σύνδεση ενός server. deny::mask ορίζει μια μάσκα wildcard στην οποία θα ταιριάζει το όνομα του server. Το όρισμα deny::rule είναι πολυ πολύπλοκο. Μια ωμή έκφραση σας επιτρέπει να ελέγξετε την σύνδεση σε μεγάλο βαθμό, και ορίζεται ώς έκφραση προγραμματισμού. Τέσσερα operators υποστιρίζονται, connected(<servermask>), επιστρέφει true αν ο server που ταιριάζει την μάσκα συνδεθεί, directcon(<servermask>), επιστρέφει true αν ο server που ταιριάζει την μασκα συνδεθεί κατευθείαν σε αυτόν τον server, via(<viamask>,<servermask>), επιστρέφει true αν ο server που ταιριάζει την μάσκα συνδεθεί μέσω ενός server που ταιριάζει το viamask, και directop(), το οποίο επιστρέφει true αν ο διαχειρηστής που χρησιμοποιεί το /connect είναι συνδεδεμένος κατευθείαν σε αυτόν τον server. Αυτά τα ορίσματα μπορούν να συνδεθούν μεταξύ τους χρησιμοποιώντας && (και) and || (ή), τα ορίσματα μπορούν επίσης να δωθούν μέσα σε παρενθέσεις για να επιτρέπεται η δημιουργία group. Επίσης, ένα όρισμα που ακολουθείται απο ένα ! ελέγχει αν το όρισμα επιστρέφει false. Αν ολόκληρη η έκφραση επιστρέφει true, τότε η σύνδεση απορρίπτεται. Το όρισμα deny::type σας επιτρέπει δύο διαφορετικές τιμές, auto (μόνο για τις αυτόματες συνδέσεις, το /connect θα συνεχίσει να λειτουργεί), και all (λειτουργεί για όλες τις προσπάθειες σύνδεσης).

4.25 - Επιλογή Deny Channel ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as chrestrict.conf)

Σύνταξη:

        deny channel {
              channel "<channel-mask>";
              reason <reason-for-ban>;
              redirect "<channel-name>";
              warn [on|off];
        };

Η επιλογή deny channel σας επιτρέπει να αποτρέψετε την είσοδο των χρηστών σε συγκεκριμένα κανάλια. Το όρισμα deny::channel ορίζει μια μάσκα wildcard καναλιών που απαγορεύεται η είσοδος στους χρήστες, και το deny::reason ορίζει τον λόγο για τον οποίο η είσοδος στο κανάλι απαγορεύεται. Επιπλέον, μπορείτε να ορίσετε ένα deny::redirect. Αν αυτό οριστεί, όταν ένας χρήστης προσπαθήσει να εισέλθει σε ένα κανάλι που ταιριάζει με το deny::channel, θα προωθηθεί στο deny::redirect. Και επίσης υπάρχει το deny::warn που (άν ειναι στο on) θα στείλει ένα μήνυμα στους διαχειριστές (με το EYES snomask) αν ο χρήστης προσπαθήσει να εισέλθει.

Example

        deny channel {
              channel "#unrealsucks";
              reason "No it don't!";
        };

        deny channel {
              channel "#*teen*sex*";
              reason "You == dead";
              warn on;
        };

        deny channel {
              channel "#operhelp";
              reason "Our network help channel is #help, not #operhelp";
              redirect "#help";
        };

4.26 - Επιλογή Allow Channel ΠΡΟΑΙΡΕΤΙΚΟ

Σύνταξη:

        allow channel {
              channel "<channel-mask>";
        };

Η επιλογή allow channel σας επιτρέπει να ορίσετε συγκεκριμένα κανάλια που οι χρήστες επιτρέπεται να εισέρχονται. Το όρισμα allow::channel ορίζει την μάσκα wildcard των καναλιών που μπορούν οι χρήστες να εισέλθουν.

Example:

        allow channel {
              channel "#something";
        };

4.27 - Επιλογή Allow DCC ΠΡΟΑΙΡΕΤΙΚΟ

Σύνταξη:

        allow dcc {
              filename "<filename-mask>";
              soft [yes|no];
        };

Η επιλογή allow dcc σας επιτρέπει να ορίσετε εξαιρέσεις για τις επιλογές deny dcc, επιτρέποντας και wildcards. Αν το allow dcc::soft έχει οριστεί σε 'yes' αναφέρεται στην λίστα 'soft dcc bans', ενώ αν οριστεί σε 'no' αναφέρεται στην κανονική λίστα ('hard') dcc bans.

Example:

        allow dcc {
              filename "*.jpg"; /* Images are usually safe */
              soft yes;
        };

4.28 - Επιλογή Vhost ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as vhosts.conf)

Σύνταξη:

        vhost {
              vhost <vhost>;
              from {
                     userhost <hostmask>;
                     userhost <hostmask>;
                     ...
              };
              login <login-name>;
              password <password> { <auth-type>; };
              swhois "<swhois info>";
        };

Η επιλογή vhost σας επιτρέπει να ορίσετε ένα κωδικό σύνδεσης που θα χρησιμοποιείτε με την εντολή /vhost για να αποκτήσετε μια ψεύτικη διεύθυνση. Το όρισμα vhost::vhost μπορει είτε να είναι της μορφής user@host είτε μια διεύθυνση μόνο που ο χρήστης θα δέχεται μετα απο επιτυχημένη χρήση /vhost. Το όρισμα vhost::from::userhost περιέχει μια μάσκα user@host που ο χρήστης πρέπει να ταιριάζει για να είναι κατάλληλος για το vhost. Μπορείτε να ορίσετε πάνω απο μία μάσκα. Το vhost::login είναι το όνομα login που ο χρήστης πρέπει να δώσει και vhost::password είναι ο κωδικός που πρέπει να εισαχθεί. Το vhost::password:: σας επιτρέπει να ορίσετε τον τύπο της αναγνώρισης που χρησιμοποιείται για το κάθε vhost. Οι τύποι που υποστιρίζονται αυτήν την στιγμή είναι crypt, md5, και sha1, ripemd-160. Τέλος το vhost::swhois σας επιτρέπει να προσθέσετε μια επιπλέον γραμμή στο whois του χρήστη, ακριώς όπως γίνεται και στην επιλογή διαχειριστών oper::swhois.

Example:

        vhost {
              vhost my.own.personal.vhost.com;
              from {
                     userhost my@isp.com;
                     userhost myother@isp.com;
              };
              login mynick;
              password mypassword;
              swhois "Im Special";
        };

4.29 - Επιλογή Badword ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as badwords.*.conf)

Σύνταξη:

        badword <type> {
              word <text-to-match>;
              replace <replace-with>;
              action <replace|block>;
        };

Η επιλογή badword σας επιτρέπει να χειριστείτε την λίστα που χρησιμοποιείται για τους χρήστες και τα κανάλια με το mode +G για να αποκρύψετε "badwords". Το badword:: ορίζει τον τύπο, έγκυροι τύποι είναι channel, message, quit, και all. Το channel είναι για την λίστα καναλιών +G, το message είναι για την λίστα των χρηστών +G, το quit είναι για την απόκρυψη μηνυμάτων αποσύνδεσης, και το all το προσθέτει και στις τρείς λίστες. Το badword::word μπορεί να είναι μια απλή λέξη ή μια κανονική έκφραση που το Unreal πρέπει να ψάξει. Το badword::replace είναι η λέξη με την οποία θέλουμε να αντικαταστήσουμε το badword. Αν το badword::replace δεν οριστεί, η λέξη αντικαθίσταται με την λέξη <censored>. Το badword::action ορίζει τι πρέπει να συμβεί άν αυτό το badword βρεθεί. Αν ορίσετε αντικατάσταση, τότε το badword αντικαθίσταται, αν ορίσετε block, τότε ολόκληρο το μήνυμα απορρίπτεται. Αν δεν ορίσετε ένα badword::action, τότε θεωρείται η αντικατάσταση(replace).

Example:

        badword channel {
              word shit;
              replace shoot;
        };

4.30 - Επιλογή ULines ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as the U:Line)

Σύνταξη:

        ulines {
              <server-name>;
              <server-name>;
              ...
        };

Η επιλογή ulines σας επιτρέπει να ορίσετε συγκεκριμένους server που θα έχουν επιπλέον δυνατότητες. Αυτό θα πρέπει μόνο να χρησιμοποιείται για servers όπως τα services ή τα stats. Δεν θα πρέπει να οριστεί για έναν κανονικό server. η κάθε γραμμή είναι το όνομα του server που θα δεχθεί τις επιπλέον δυνατότητες.

Example

        ulines {
              services.mynetwork.com;
              stats.mynetwork.com;
        };

4.31 - Επιλογή Link ΠΡΟΑΙΡΕΤΙΚΟ (Previously known as C/N/H:Lines)

Σύνταξη:

        link <server-name> {
              username <usermask>;
              hostname <ipmask>;
              bind-ip <ip-to-bind-to>;
              port <port-to-connect-on>;
              password-connect <password-to-connect-with>;
              password-receive <password-to-receive> { <auth-type>; };
              hub <hub-mask>;
              leaf <leaf-mask>;
              leafdepth <depth>;
              class <class-name>;
              ciphers <ssl-ciphers>;
              options {
                     <option>;
                     <option>;
                     ...
              };
        };

Αυτή η επιλογή χρειάζεται για να συνδέσετε servers, παρακαλούμε διαβάστε την παράγραφο με την ησυχία σας γιατι είναι μία απο τις δυσκολότερες ρυθμίσεις και συχνά οι χρήστες αντιμετωπίζουν προβλήματα ;P

Πρώτα απόλα το server-name είναι το όνομα του απομακρυσμένου server, το όνομα που ο απομακρυσμένος server έχει στην επιλογή me { }, όπως hub.blah.com (όχι η IP και μπορεί να διαφέρει απο την διεύθυνση).

username
Μπορείτε να το ορίσετε άν χρησιμοποιείτε ταυτότητα για αναγνώριση, συνήθως πρέπει να το ορίσετε σε "*".

hostname
Η διεύθυνση η IP του απομακρυσμένου server. Αυτό χρησιμοποιείται και για την σύνδεση αλλα ΚΑΙ για την αναγνώριση/επαλήθευση στην εισερχόμενη πλευρά. Μερικά παραδείγματα:

1.2.3.4 | normal IP
hub.blah.com | host: μόνο για εξερχόμενες, δεν δέχεται _εισερχόμενες_ συνδέσεις εκτώς και αν υπάρχει το link::options::nohostcheck
* | Δεν μπορεί να συνδεθεί ΣΕ αλλα θα επιτρέψει μια σύνδεση server (με τον σωστό κωδικό) απο οπουδήποτε
::ffff:1.2.3.4 | για σύνδεση ipv6 και ipv4.

bind-ip (προαιρετικό)
Μπορεί να χρησιμοποιηθεί για να συνδεθεί διαμέσου συγκεκριμένης IP (π.χ: 192.168.0.1) απο εκεί που θα πρεπε να συνδεθούμε, χρησιμοποιείται σπάνια.

port
Η port στην οποία θα συνδεθεί (σε ποία "ακούει" ο απομακρυσμένος server).

password-connect
Ο κωδικός που χρησιμοποιείται για σύνδεση στον απομακρυσμένο server, πρέπει να είναι μή κωδικοποιημένο.

password-receive
Ο κωδικός που χρησιμοποιείται για αναγνώριση των εισερχομένων συνδέσεων, μπορεί να είναι κρυπτογραφημένος(έγκυροι τρόποι κρυπτογράφησης είναι crypt, md5, sha1, ripemd-160). Μπορείτε να αγνοήσετε την παράμετρο τύπου αναγνώρισης για να χρησιμοποιήσετε μή κρυπτογραφημένα γράμματα. Συχνά αυτός ο κωδικός είναι ο ίδιος με τον κωδικό σύνδεσης.

hub vs leaf
Ένας hub έχει πολλούς servers συνδεδεμένους πάνω του, ενώ ο leaf έχει μόνο μία σύνδεση... σε εσάς. Ένας server είναι είτε hub είτε leaf, δεν μπορείτε να συνδιάσετε αυτές τις επιλογές.

hub (προαιρετικό)
Η τιμή είναι μια μάσκα των server στους οποίους αυτός ο hub επιτρέπεται να συνδεθεί (π.χ: *.my.net).

leaf (προαιρετικό)
Η τιμή είναι μια μάσκα στην οποία αυτός ο server θα φέρεται σαν ένας leaf.

leaf-depth (προαιρετικό)
Αν οριστεί τότε πρέπει επίσης να οριστεί και ο leaf. Η τιμή ορίζει το βάθος (αριθμός των θέσεων) που ο server μπορεί να έχει κάτω απο αυτόν.

class
Η κατηγορία στην οποία κατατάσεται αυτός ο server, συχνά μια ξεχωριστή κατηγορία server χρησιμοποιείται για αυτό.

compression-level (προαιρετικό)
Ορίζει το μέγεθος της συμπίεσης (1-9) για αυτήν την σύνδεση. Χρησιμοποιείται μόνο αν έχει οριστεί το link::options::zip.

ciphers (προαιρετικό)
Ορίζει τους κρυπτογράφους SSL για χρήση με αυτήν την σύνδεση. Για να αποκτήσετε την λίστα με τους διαθέσιμους κρυπτογράφους, χρησιμοποιήστε την εντολή `openssl ciphers`. Οι κρυπτογράφοι πρέπει να ορίζονται ώς μια λίστα δεδομένων διαχωρισμένη με :

options block
Μια ή περισσότερες επιλογές χρησιμοποιούνται για σύνδεση στον server. Μερικές φορές δεν απαιτείται.

ssl | αν συνδέεστε σε μία SSL port.
autoconnect | ο server θα προσπαθεί να συνδεθεί αυτόματα, ο χρόνος ορίζεται στο class::connfreq (είναι καλύτερο να το ενεργοποιήσετε απο μόνο μία πλευρά, π.χ leaf->hub)
zip | αν χρειάζεστε συμπιεσμένες συνδέσεις, χρειάζεται να κάνετε compile και να το ορίσετε και στις δύο πλευρές
nodnscache | μην σώζεται η IP για εξερχόμενες συνδέσεις server, χρησιμοποιήστε το αν είναι μια διεύθυνση που αλλάζει συχνά (όπως dyndns.org)
nohostcheck | μην γίνει επαλήθευση της απομακρυσμένης διεύθυνσης (link::hostname), χρησιμοποιήστε το αν είναι μια διεύθυνση που αλλάζει συχνά. (όπως dyndns.org)
quarantine | οι διαχειριστές σε αυτόν τον server δεν μπορούν να αποκτήσουν δικαιώματα GLOBAL διαχειριστή(θα γίνουν KILL), χρησιμοποιείται για δοκιμαστικούς διακομιστές κτλ.

Example:

        link hub.mynet.com {
              username *;
              hostname 1.2.3.4;
              bind-ip *;
              port 7029;
              hub *;
              password-connect "LiNk";
              password-receive "LiNk";
              class servers;
              options {
                     autoconnect;
                     ssl;
                     zip;
              };
        };

4.32 - Επιλογή Alias ΠΡΟΑΙΡΕΤΙΚΟ

Σύνταξη [standard alias]:

        alias <name> {
              target <nick-to-forward-to>;
              type <type-of-alias>;
    	      spamfilter <yes|no>;
        };

(Σημείωση: επίσης δείτε εδώ για τα standard αρχεία alias που περιέχονται στο UnrealIRCd)

Η επιλογή alias [standard alias] σας επιτρέπει να προωθήσετε μια εντολή σε έναν χρήστη, για παράδειγμα /chanserv στέλνει ένα μήνυμα στον χρήστη chanserv. Το alias:: ορίζει το όνομα της εντολής η οποία θα είναι η συντόμευση (π.χ: chanserv), το alias::target είναι το όνομα η το κανάλι στο οποίο θα προωθηθεί το μήνυμα, άν το alias:: είναι το ίδιο με το όνομα, στο οποίο θα προωθηθεί, το alias::target είναι προαιρετικό. Το alias::type ορίζει τον τύπο της συντόμευσης, έγκυροι τύποι είναι services (ο χρήστης είναι στον server των services), stats (ο χρήστης βρίσκεται στον server των stats), normal (ο χρήστης είναι κανονικός χρήστης σε οποιονδήποτε server), και channel (ο στόχος είναι όνομα καναλιού). Αν το alias::spamfilter (μή απαραίτητο) έχει οριστεί σε 'yes', τότε τα spamfilters θα ελέγχονται (η αρχική επιλογή ειναι 'no').
Η επιλογή alias έχει επίσης και άλλον έναν σκοπό που εξηγείται λεπτομερώς παρακάτω.

Σύνταξη [command alias]:

        alias <name> {
              format <regex-expression> {
                     target <nick-to-forward-to>;
                     type <type-of-alias>;
                     parameters <parameter-string>;
              };
              format <regex-expression> {
                     ...
              };
              type command;
    	      spamfilter <yes|no>;
        };

Όταν η επιλογή alias χρησιμοποιείται με αυτήν την μορφή, σας επιτρέπει να έχετε μια πιο ευρεία περιοχή χρήσης. Για παράδειγμα μπορείτε να δημιουργήσετε συντομεύσεις όπως το /identify. Το alias:: είναι το ίδιο με παραπάνω, το όνομα της εντολής συντόμευσης. Το alias::format ορίζει μια κανονική έκφραση που ελέγχεται με την πρόταση που στέλνεται στην εντολή alias, και αφού ταιριάξει με την υπο-καταχώρηση της συντόμευσης το alias::format θα χρησιμοποιηθεί, μπορείτε να έχετε πολλαπλά alias::format's για να ορίσετε την εντολή να κάνει διαφορετικά πράγματα ανάλογα με την πρόταση που στέλνεται σε αυτήν. Το alias::format::target είναι ο στόχος στον οποίο θα προωθηθεί αυτή η συντόμευση. Το alias::format::type ορίζει τον τύπο της συντόμευσης με τον οποίο αυτό το μήνυμα θα προωθηθεί. Το alias::format::parameters είναι τια θα σταλθεί σάν παράμετρος σε αυτήν την συντόμευση. Για να ορίσετε μιά απο τις παραμέτρους που θα δωθεί στην συντόμευση εντολής ορίστε ένα % ακολουθούμενο απο έναν αριθμό, για παράδειγμα, %1 είναι η πρώτη παράμετρος. Για να ορίσετε όλες τις παραμέτρους απο μία παράμετρο μέχρι το τέλος δώστε % ακολουθούμενο απο έναν αριθμό και ένα -, για παράδειγμα το %2- επιστρέφει όλες τις παραμέτρους απο το δεύτερο μέχρι και το τελευταίο. Επιπλέον, μπορείτε να ορίσετε %n το οποίο θα αντικατασταθεί με το nickname του χρήστη που έδωσε την εντολή. Για παραδείγματα χρήσης της επιλογής συντόμευσης alias σε μορφή εντολών, συμβουλευτείτε το doc/example.conf.

4.33 - Επιλογή Help ΠΡΟΑΙΡΕΤΙΚΟ

Σύνταξη:

        help <name> {
              <text-line>;
              <text-line>;
              ...
        };

(Σημείωση: Συνήθως απλώς χρησιμοποιείτε το include help.conf)

Η επιλογή help σας επιτρέπει να δημιουργήσετε καταχωρήσεις για χρήση στο /helpop. Το help:: είναι η τιμή που πρέπει να περάσει στο /helpop ώς παράμετρος, αν το help:: αγνοηθεί, τότε θα χρησιμοποιηθεί όταν καμία παράμετρος δεν δωθεί στο /helpop. Οι καταχωρήσεις για την επιλογή help είναι οι προτάσεις που θα εμφανιστούν στον χρήστη όταν ζητήσει την εντολή /helpop.

4.34 - Επιλογή Official Channels ΠΡΟΑΙΡΕΤΙΚΟ

Σύνταξη:

        official-channels {
              "#channel" { topic "The default topic"; };
        };

Τα επίσημα κανάλια φένονται στο /list ακόμα και αν δεν υπάρχουν χρήστες στο κανάλο. Το topic είναι προαιρετικό και φένεται στο /list μόνο αν το κανάλι έχει 0 users.

Παράδειγμα:

        official-channels {
              "#Help" { topic "The official help channel, if nobody is present type /helpop helpme"; };
              "#Home";
              "#Main" { topic "The main channel"; };
        };

4.35 - Επιλογή Spamfilter ΠΡΟΑΙΡΕΤΙΚΟ

Η επιλογή spamfilter σας επιτρέπει να προσθέσετε τοπικά spamfilters (όχι ολικού δυκτίου).
Δείτε Features - Spamfilter για περισσότερες πληροφορίες σχετικά με τα spamfilters.

Σύνταξη:

        spamfilter {
              regex <word>;
              target { <target(s)> };
              action <action>;
              reason <reason>;
              ban-time <time>;
        };

regex είναι το regex με το οποίο θα ταιριάξει.
target ορίζει τους στόχους, δείτε εδώ για μια λίστα των πιθανών τύπων (π.χ: 'channel').
action ορίζει την ενέργεια που θα γίνει, δείτε εδώ για μια λίστα με τις πιθανές ενέργειες (π.χ: 'gline').
reason προαιρετικό: ορίζει τον λόγο για το ban ή block, αλλιώς ο αρχικός λόγος χρησιμοποιείται.
ban-time προαιρετικό: ορίζει την διάρκεια ενός *line ban ή shun, αλλιώς η αρχική διάρκεια χρησιμοποιείται (1 μέρα).

Παράδειγμα:

        spamfilter {
              regex "Come watch me on my webcam";
              target { private; channel; };
              action gline;
              reason "You are infected, please go to www.antivirus.xx/blah/virus=GrrTrojan";
              ban-time 6h;
        };

        spamfilter {
              regex "come to irc\..+\..+";
              target { private; channel; };
              action gline;
              action gline;
              reason "No spamming allowed";
        };

4.36 - Επιλογή Set REQUIRED (Previously known as unrealircd.conf/networks file)

Το αρχείο επιλογών set είναι αυτο που παλιότερα υπήρχε ώς networks/unrealircd.conf και το αρχείο δυκτίου. Σε δύκτια με μοναδικό server, αντι να έχετε 3 αρχεία μπορείτε απλώς να βάλετε όλα τα ορίσματα set στο ίδιο το unrealircd.conf, σε δύκτια με πολλούς servers, σας προτείνουμε να χρησιμοποιήσετε διαφορετικό αρχείο δυκτίου.

Τώρα, Αν ο server σας είναι σε δύκτιο, το πιθανότερο είναι να χρησιμοποιείται όλοι το ίδιο αρχείο για τις επιλογές Set. Γιαυτό είναι λογικό να έχετε ένα αρχείο δυκτίου, που μπορείτε να το περιέχετε στις ρυθμίσεις με ένα όρισμα include. Παρακάτω μπορείτε να βρείτε μια λίστα με όλα τα διαθέσιμα ορίσματα set.

Σε αυτό το αρχείο αναφερόμαστε στις ρυθμίσεις / ορίσματα στην μορφή <block-name>::<block-directive> . Αυτή η μορφή ΔΕΝ είναι η μορφή μπορεί με την οποία πρέπει να οριστούν στο αρχείο επιλογών. ΠΡΕΠΕΙ να μετατραπεί στην μορφή που βρίσκεται παρακάτω. Εδώ δίνεται σε αυτήν την μορφή για να είναι πιο απλή η επεξήγηση του.

Σύνταξη:

        set {
              <entry> <value>;
              <entry> <value>;
              ...
        };

Η επιλογή set ορίζει επιλογές για ξεχωριστά χαρακτηριστικά του server. Κάθε καταχώρηση κάνει κάτι διαφορετικό και γιαυτό το καθένα θα αναλυθεί παρακάτω ξεχωριστά. Μερικά ορίσματα έχουν υπο επιλογές που επίσης εξηγούνται. Υπάρχουν πολλές καταχωρήσεις set για να καλυφθούν, όλα τα ορίσματα που βρίσκονται παρακάτω μπορούν να περιέχονται μέσα σε μιά καταχώρηση. Άν ένα όρισμα έχει επιλογές, περιέχονται μέσα στην μοναδική καταχώρηση set επίσης.
Example:

        set {
              kline-address my@emailaddress.com;
              auto-join #welcome;
              options {
                     hide-ulines;
              };
              hosts {
                     local LocalOp.MyNet.com;
                     global globalop.mynet.com;
              };
        };

Τώρα αν θέλετε να κάνετε ξεχωριστές καταχωρήσεις set, πείτε οτι θέλετε να ορίσετε τις επιλογές σε μία και μόνο γραμμή.
Παράδειγμα:
set { options { hide-ulines; no-stealth; }; };

set::kline-address <email-address>;
Η διεύθυνση email στην οποία θα αποστέλονται οι ερωτήσεις σχετικά με τις K:line. Αυτη η τιμή πρεπει να οριστεί.

set::gline-address <email-address>;
Η διεύθυνση email στην οποία θα αποστέλονται οι ερωτήσεις σχετικά με τις G:line.

set::modes-on-connect <+modes>;
Τα modes τα οποία θα ορίζονται σε έναν χρήστη κατα την σύνδεση του.

set::snomask-on-connect <+modes>
Τα snomask τα οποία θα ορίζονται σε έναν χρήστη κατα την σύνδεση του.

set::modes-on-oper <+modes>;
Τα modes που θα ορίζονται σε έναν χρήστη όταν παίρνει δικαιώματα διαχειριστή.

set::snomask-on-oper <+modes>;
Τα snomask που θα ορίζονται σε έναν χρήστη όταν παίρνει δικαιώματα διαχειριστή.

set::modes-on-join <+modes>;
Τα modes που θα ορίζονται σε ένα κανάλι όταν πρωτοδημιουργείται. Δεν μπορείτε να χρησιμοποιήσετε όλα τα modes με αυτήν την εντολή. +qaohvbeOAzlLk ΔΕΝ μπορούν να οριστούν με αυτήν την εντολή.

set::restrict-usermodes <modes>
Περιορίζει τους χρήστες για να βάλουν/βγάλουν τα modes που βρίσκονται σε αυτό το όρισμα (χωρίς χρήση του + και -).
Για παράδειγμα μπορείτε να ορίσετε +G στο modes-on-connect και G στο restrict-usermodes, με αυτόν τον τρόπο μπορείτε να αναγκάσετε όλους τους χρήστες να είναι +G και να μην μπορούν να γίνουν -G.

set::restrict-channelmodes <modes>
Περιορίζει τους χρήστες να βάλουν/βγάλουν τα modes που βρίσκονται σε αυτό το όρισμα (χωρίς την χρήση του + και -).
Για παράδειγμα μπορείτε να ορίσετε +G στο modes-on-join και G στο restrict-channelmodes, με αυτόν τον τρόπο μπορείτε να αναγκάσετε όλα τα (καινούρια) κανάλια να είναι +G και να μην μπορούν να γίνουν -G.
ΣΗΜΕΙΩΣΗ: μπορεί να είναι ακόμα εφικτό να χρησιμοποιήσετε αυτα τα modes μέσω των services χρησιμοποιώντας το MLOCK. Δυστυχώς δεν μπορούμε να κάνουμε πολλά για αυτό, πρέπει να ζητήσετε απο τους προγραμματιστές των services να προσθέσουν μια επιλογή restrict-channelmodes επίσης.

set::restrict-extendedbans <types|*>
Δεν επιτρέπει στους χρήστες να χρησιμοποιήσουν τα extended bans ("*") ή απαγορεύει συγκεκριμένα να χρησιμοποιηθούν (π.χ: "qc").

set::auto-join <channels>;
Τα κανάλια στα οποία ένας χρήστης θα αναγκαστεί να εισέρθει όταν συνδεθεί. Για να ορίσετε περισσότερα απο ένα κανάλια χρησιμοποιήστε μια λίστα χωρισμένη με κόμμα ",".
[ΣΗΜΕΙΩΣΗ: μην ξεχάσετε να προσθέσετε εισαγωγικά, όπως: auto-join "#chan";]

set::oper-auto-join <channels>;
Τα κανάλια στα οποία ένας χρήστης θα αναγκαστεί να εισέρθει όταν κάνει /oper. Για να ορίσετε περισσότερα απο ένα κανάλια χρησιμοποιήστε μια λίστα χωρισμένη με κόμμα ",".
[ΣΗΜΕΙΩΗ: μην ξεχάσετε να προσθέσετε εισαγωγικά, όπως: oper-auto-join "#chan";]

set::anti-spam-quit-message-time <timevalue>;
Μια τιμή χρόνου που καθορίζει τον χρόνο που πρέπει να είναι ένας χρήστης συνδεδεμένος πριν μπορεί να εμφανιστεί το μήνυμα του /quit. Χρησιμοποιείται για να αποτρέψει την διαφήμιση. Μια τιμή χρόνου είναι μια συμβολοσειρά οπου το d σημαίνει μέρες(days), h σημαίνει ώρες(hours), m σημαίνει λεπτά (minutes), και s σημαίνει δευτερόλεπτα(seconds), για παράδειγμα 1d2h3m σημαίνει 1 μέρα, 2 ώρες, 3 λεπτά.

set::prefix-quit <text-to-prefix-quit>;
Ορίζει την λέξη που θα χρησιμοποιείται πριν απο ένα μήνυμα quit. Αν αυτή η τιμή οριστεί σε 0 τότε χρησιμοποιείται το αρχικό "Quit:".

set::static-quit <quit message>;
Ορίζει ένα στατικό μήνυμα quit που θα στέλνεται κάθε φορά που ένας χρήστης αποσυνδέεται απο το δύκτιο. Αυτο αποκλείει την ανάγκη για χρήση του anti-spam-quit-message-time, όπως και του set::prefix-quit. ΔΕΝ θα αντικαθαστίσει τα ERRORS με το static-quit message.

set::static-part <no|yes|part message>;
Η τιμή 'yes' αφαιρεί όλα τα σχόλια του part, η τιμή 'no' κάνει το part να δουλεύει όπως συνήθως, οτιδήποτε άλλο θα χρησιμοποιηθεί σαν ένα σχόλιο part (π.χ: static-part "Bye!") αλλα αυτό μπορεί συχνά να είναι αρκετά ενοχλητικό, οπότε να χρησιμοποιηθεί με προσοχή.

set::who-limit <limit>;
Ορίζει το όριο για τον μέγιστο αριθμό των αποτελεσμάτων που θα επιστραφούν απο ένα /who. Αν αυτή η επιλογή δεν επιλεχθεί, δεν θα εφαρμοστεί κανένα όριο.

set::silence-limit <limit>;
Ορίζει το όριο για τον μέγιστο αριθμό των SILENCE επιλογών. Αν αυτη η επιλογή δεν οριστεί, ορίζεται αυτόματα το όριο των 15.

set::maxbans <limit>;
Ορίζει το όριο των μέγιστων bans (+b) που επιτρέπονται σε κάθε κανάλι. Η αρχική επιλογή είναι 60. Αν το αλλάξετε, σιγουρευτείτε οτι ρίξατε μια ματιά και στο maxbanlength (δείτε παρακάτω)!

set::maxbanlength <limit>;
Παρόμοιο με το παραπάνω, αλλά ορίζει τον μέγιστο αριθμό χαρακτήρων για όλα τα bans συγκεντρωμένα μαζί, κάτι που βασικά θέτει ένα όριο στην (ήμη-)μέγιστο μέγεθος μνήμης την οποία μπορούν να καταλάβουν όλα τα bans σε ένα κανάλι. Η αρχική επιλογή είναι 2048 (bytes). Με την αρχική επιλογή set::maxbans στα 60 αυτο επιτρέπει 2048:60=34 χαρακτήρες για κάθε ban σε μέσο όρο.

set::oper-only-stats <stats-list>;
Ορίζει μια λίστα με τα stats flags χωρίς διαχωριστικό που καθορίζει ποια stats flags μπορούν να χρησιμοποιήσουν μόνο οι διαχειριστές. Αγνοήστε αυτό το όρισμα για να επιτρέψετε στους χρήστες να χρησιμοποιήσουν όλα τα flags, η ορίστε * ωστε να μην μπορούν οι απλοί χρήστες να χρησιμοποιήσουν κανένα flag. Μόνο η σύντομη μορφή των stats flags μπορεί να οριστεί εδώ.

set::oper-only-stats {<stats-flag>; <stats-flag>;};
Ορίζει μια λίστα με stats flags που μπορούν να χρησιμοποιηθούν μόνο απο διαχειριστές. Αυτό λειτουργεί μόνο με long stats flags.

set::maxchannelsperuser <amount-of-channels>;
Ορίζει τον αριθμό των καναλιών που μπορεί να βρίσκεται ένας χρήστης ταυτόχρονα.

set::maxdccallow <amount-of-entries>;
Ορίζει τον μέγιστο αριθμό επιλογών που μπορεί να έχει ένας χρήστης στην λίστα DCCALLOW του.

set::channel-command-prefix <command-prefixes>;
Ορίζει το πρόθεμα χαρακτήρων για υπηρεσίες "εντολών καναλιών". Μηνύματα που αρχίζουν με οποιονδήποτε απο τους καθορισμένους χαρακτήρες θα στέλνονται ακόμα και αν ο χρήστης είναι +d. Η αρχική τιμή είναι "`!.".

set::allowed-nickchars { <list> };
Σέτ χαρακτήρων / γλωσσών που επιτρέπονται στα nicks, δείτε Σετ χαρακτήρων Nick.

set::allow-userhost-change [never|always|not-on-channels|force-rejoin]
Ορίζει τι συμβαίνει όταν αλλάζει το user@host (+x/-x/chghost/chgident/setident/vhost/κτλ).
never εμποδίζει όλες τις εντολές, always τις επιτρέπει πάντα ακόμα και μέσα σε κανάλια (μπορει να προκαλέσει ασυγχρονισμούς προγραμμάτων) [αρχικό], not-on-channels σημαίνει επιτρέπεται μόνο όταν ο χρήστης δεν είναι σε κανάλι, force-rejoin θα αναγκάσει τον χρήστη να εισέρθει ξανά σε όλα τα κανάλια και να ξαναδεχτεί op/voice/κτλ αν χρειάζεται.

set::options::hide-ulines;
Αν υπάρχει, κάθε Ulined server δεν θα εμφανίζεται σε ένα /links που ζητήθηκε απο μη-διαχειριστή.

set::options::flat-map;
Αν υπάρχει, όλοι οι servers θα εμφανίζονται ως κατευθείαν συνδεδεμένοι στο /map και /links, έτσι δεν μπορείτε να δείτε ποιος server είναι συνδεδεμένος σε ποιόν. Αυτό βοηθάει λίγο έναντι στις επιθέσεις (D)DoS επειδή οι "κακοί" χρήστες δεν μπορούν πλέον να δούν τα 'αδύναμα σημεία'.

set::options::show-opermotd;
Αν υπάρχει, το opermotd θα εμφανίζεται στους χρήστες όταν δέχονται δικαιώματα διαχειριστή.

set::options::identd-check;
Αν υπάρχει, θα ελέγχεται η ύπαρξη ενός identd server και η τιμή που επιστρέφεται θα χρησιμοποιηθει για το username. Αν δεν επιστραφεί αίτηση ident ή ο identd server δεν υπάρχει, το ορισμένο απτον χρήστη username θα πάρει το πρόθεμα ~. Αν αυτή η τιμή παραληφθεί δεν θα γίνει έλεγχος.

set::options::show-connect-info;
Αν υπάρχει οι ειδοποιήσεις που δείχνουν "ident request", "hostname lookup", κτλ. θα εμφανίζονται όταν ένας χρήστης συνδέεται.

set::options::dont-resolve;
Αν υπάρχει οι διευθύνσεις των χρηστών που συνδέονται δεν θα μετατρέπονται, μπορεί να είναι χρήσιμο αν πολλοί απτους χρήστες δεν έχουν διεύθυνση (host) για να μειωθεί ο χρόνος σύνδεσης.
Σημείωση: αφου δεν γίνεται μετατροπή της διεύθυνσης δεν μπορείτε να έχετε επιλογές allow βασισμένες στις διευθύνσεις (host).

set::options::mkpasswd-for-everyone;
Ορίζει έτσι ώστε η εντολή /mkpasswd μπορεί να χρησιμοποιηθεί απο οποιονδήποτε αντιθέτως απτο oper-only, η χρήση της εντολής απο μή διαχειριστές στέλνεται στο EYES snomask.

set::options::allow-part-if-shunned;
Επιτρέπει σε έναν shunned χρήστη να χρησιμοποιήσει /part.

set::options::fail-oper-warn;
Αν υπάρχει, ο χρήστης θα ενημερώνεται ότι οι αποτυχημένες του/της προσπάθειες /oper έχουν καταγραφεί.

set::dns::timeout <timevalue>;
Μια τιμή που ορίζει τον χρόνο που έχει ένας DNS server για να απαντήσει πρίν αγνοηθεί. Μια τιμή χρόνου είναι μια συμβολοσειρά αριθμών με το d να σημαίνει μέρες, h σημαίνει ώρες, m σημαίνει λεπτά, και s σημαίνει δευτερόλεπτα, για παράδειγμα 1d2h3m σημαίνει 1 μέρα, 2 ώρες, 3 λεπτά.

set::dns::retries <number-of-retries>;
Μια αριθμιτκή τιμή που ορίζει τον αριθμό των προσπαθειών που θα γίνονται στον DNS server πρίν καταχωρηθεί ώς αποτυχία.

set::dns::nameserver <name-of-dns-server>;
Ορίζει την διεύθυνση του server που θα χρησιμοποιηθεί για τις αιτήσεις DNS.

set::dns::bind-ip <ip>;
Ορίζει την IP στην οποία θα συνδεθεί για να κάνει τις αιτήσεις στον μετατροπέα, χρειάζεται σπάνια.

set::network-name <name-of-network>;
Ορίζει το όνομα του δυκτίου στο οποίο τρέχει αυτός ο server. Αυτή η τιμή πρέπει να είναι ακριβώς η ίδια σε όλους τους servers σε ένα δύκτιο.

set::default-server <server-name>;
Καθορίζει το όνομα του αρχικού server στον οποίο θα συνδεθούν οι χρήστες αν αυτός ο server είναι γεμάτος.

set::services-server <server-name>;
Ορίζει το όνομα του server στον οποίο συνδέονται τα bots υπηρεσιών. Απαιτείται, ορίστε το σε κάτι όπως services.yournet.com αν δεν έχετε υπηρεσίες.

set::stats-server <server-name>;
Ορίζει το όνομα του server στον οποίο βρίσκονται τα stats bots. Αν τα stats δεν υπάρχουν τότε αυτή η τιμή μπορει να αγνοηθεί.

set::help-channel <network-help-channel>;
Ορίζει το όνομα του καναλιού βοηθείας για το δύκτιο αυτό.

set::cloak-keys { "key1"; "key2"; "key3"; };
Ορίζει τα κλειδιά για να χρησιμοποιηθούν για να δημιουργηθεί μια διεύθυνση +x. Αυτή η τιμή πρέπει να είναι η ίδια σε όλους τους servers αλλιώς οι servers δεν θα συνδεθούν. Καθένα απο τα τρία set::cloak-keys:: πρέπει να είναι μια συμβολοσειρά απο 5-100 χαρακτήρες (10-20 είναι καλά) αποτελούμενες απο ανακατεμένα μικρά (a-z), κεφαλαία (A-Z) και αριθμούς (0-9). Σημείωση: Σύμφωνα με το κάθε cloaking module που έχετε φορτώσει, άλλοι κανόνες μπορεί να ισχύουν.

set::hiddenhost-prefix <prefix-value>;
Καθορίζει το πρόθεμα που θα χρησιμοποιηθεί στα κρυμμένα hosts (+x). Αυτό είναι συνήθως τρείς ή τέσσερις χαρακτήρες που αντιπροσωπέυουν το όνομα του δυκτίου.

set::hosts::local <locop-host-name>;
Καθορίζει το hostname που θα ανατεθεί στους τοπικούς διαχειριστές όταν παίρνουν mode +x. Μπορείτε προαιρετικά να ορίσετε ένα username@host για αυτήν την τιμή.

set::hosts::global <globop-host-name>;
Καθορίζει το hostname που θα ανατεθεί στους ολικούς διαχειριστές όταν παίρνουν mode +x. Μπορείτε προαιρετικά να ορίσετε ένα username@host για αυτήν την τιμή.

set::hosts::coadmin <coadmin-host-name>;
Καθορίζει το hostname που θα ανατεθεί στους co-admins όταν παίρνουν mode +x. Μπορείτε προαιρετικά να ορίσετε ένα username@host για αυτήν την τιμή.

set::hosts::admin <admin-host-name>;
Καθορίζει το hostname που θα ανατεθεί στους admins όταν παίρνουν mode +x. Μπορείτε προαιρετικά να ορίσετε ένα username@host για αυτήν την τιμή.

set::hosts::servicesadmin <servicesadmin-host-name>;
Καθορίζει το hostname που θα ανατεθεί στους services admins όταν παίρνουν mode +x. Μπορείτε προαιρετικά να ορίσετε ένα username@host για αυτήν την τιμή.

set::hosts::netadmin <netadmin-host-name>;
Καθορίζει το hostname που θα ανατεθεί στους netadmins όταν παίρνουν mode +x. Μπορείτε προαιρετικά να ορίσετε ένα username@host για αυτήν την τιμή.

set::hosts::host-on-oper-up <yes/no>;
Αν οριστεί σε yes, το H/get_host flag θα ισχύει και το +x θα ορίζεται αυτόματα με την εντολή /oper. Αν οριστεί σε no, ο χρήστης πρέπει να ορίσει το +x μόνος του για να δεχτεί το oper host.

set::ssl::egd <filename>;
Ορίζει ότι η υποστίριξη για το EGD (Entropy Gathering Daemon) πρέπει να ενεργοποιηθεί. Αν τρέχετε OpenSSL 0.9.7 η μεγαλύτερο, τότε /var/run/egd-pool, /dev/egd-pool, /etc/egd-pool, και /etc/entropy θα αναζητηθούν αρχικά οπότε δεν χρειάζεται όνομα αρχείου, μπορείτε επίσης να ορίσετε το set::ssl::egd χωρίς καμία τιμή. Αν χρησιμοποιείτε μια έκδοση OpenSSL παλαιότερη της 0.9.7 ή θέλετε να χρησιμοποιήσετε μια σύνδεση EGD που βρίσκεται σε άλλη τοποθεσία απο αυτές που προαναφέρθηκαν μπορείτε να ορίσετε το όνομα του αρχείου του UNIX Domain Socket στο οποίο "ακούει" το EGD.

set::ssl::certificate <filename>;
Ορίζει το όνομα του αρχείου στο οποίο βρίσκεται το πιστοποιητικό SSL του server.

set::ssl::key <filename>;
Ορίζει το όνομα του αρχείου στο οποίο βρίσκεται το ιδιωτικό κλειδί SSL του server.

set::ssl::trusted-ca-file <filename>;
Ορίζει το όνομα του αρχείου στο οποίο βρίσκονται τα πιστοποιητικά των διαπιστευμένων CAs.

set::ssl::options::fail-if-no-clientcert;
Αναγκάζει χρήστες που δεν έχουν πιστοποιητικό να μείνουν εκτός δυκτίου.

set::ssl::options::no-self-signed;
Αποτρέπει συνδέσεις απο άτομα με αυτο-υπογραμμένα πιστοποιητικά.

set::ssl::options::verify-certificate;
Ενημερώνει το Unreal για να προσδιορίσει αν το πιστοποιητικό SSL είναι έγκυρο πριν επιτρέψει την σύνδεση.

set::throttle::period <timevalue>
Πόσο χρόνο πρέπει κάποιος χρήστης να περιμένει πριν επανασυνδεθεί περισσότερες από set::throttle::connections φορές.

set::throttle::connections <amount>;
Πόσες φορές πρέπει να συνδεθεί ένας χρήστης με την ίδια διεύθυνση για να τεθεί σε αναμονή.

set::ident::connect-timeout <amount>;
Πόσα δευτερόλεπτα μετά πρέπει να σταματήσει η προσπάθεια σύνδεσης στον ident server (αρχικό: 10s).

set::ident::read-timeout <amount>;
Πόσα δευτερόλεπτα μετά πρέπει να σταματήσει η αναμονή για απάντηση (αρχικό: 30s).

set::anti-flood::unknown-flood-bantime <timevalue>;
Ορίζει την διάρκεια του ban για έναν flooder απο άγνωστη σύνδεση.

set::anti-flood::unknown-flood-amount <amount>;
Ορίζει το πλήθος των δεδομένων (σε KiloBytes) που πρέπει να στείλει η άγνωστη σύνδεση ώστε να αποσυνδεθεί ο χρήστης απο τον server.

set::anti-flood::away-flood <count>:<period>
Away flood protection: Περιορίζει την χρήση του /away σε 'count' αλλαγές για 'period' δευτερόλεπτα. Αυτό απαιτεί το NO_FLOOD_AWAY να γίνει enabled στο config.h. Παράδειγμα: away-flood 5:60s; σημαίνει μέγιστες 5 αλλαγές κάθε 60 δευτερόλεπτα.

set::anti-flood::nick-flood <count>:<period>
Nickflood protection: Περιορίζει τις αλλαγές nick σε 'count' αλλαγές για 'period' δευτερόλεπτα. Για παράδειγμα nick-flood 4:90 σημαίνει 4 κάθε 90 δευτερόλεπτα, το αρχικό είναι 3 κάθε 60.

set::default-bantime <time>
Η προεπιλεγμένη διάρκεια όταν εκτελείται /kline, /gline, /zline, /shun, κτλ χωρίς παράμετρο διάρκειας (π.χ /gline *@some.nasty.isp), η προεπιλογή είναι μόνιμο (0). Παράδειγμα: default-bantime 90d;

set::modef-default-unsettime <value>
Για το channelmode +f μπορείτε να ορίσετε μια προεπιλεγμένη τιμή unsettime, αν ορίσετε 10 για παράδειγμα τότε +f [5j]:15 θα μετατραπεί σε [5j#i10]:15. Η προεπιλογή είναι no default unsettime.

set::modef-max-unsettime <value>
Η μέγιστη τιμή σε λεπτά για το mode +f unsettime (στο +f [5j#i<ΔΙΑΡΚΕΙΑ>]:15), αυτή είναι μια τιμή μεταξύ 0 και 255. Η προεπιλογή είναι 60 (= 1 ώρα).

set::ban-version-tkl-time <value>
Αν ορίσετε μια 'ενέργεια' όπως zline/gline/κτλ στην έκδοση ban, τότε μπορείτε να ορίσετε εδώ για πόση διάρκεια θα γίνεται η ip banned, η προεπιλογή είναι 86400 (1 μέρα).

set::spamfilter::ban-time <value>
Το ίδιο με το παραπάνω αλλα για *lines/shuns που προστέθηκαν απο το spamfilter

set::spamfilter::ban-reason <reason>
Ο λόγος που θα χρησιμοποιηθεί στις καταχωρήσεις που προστέθηκαν απο το spamfilter

set::spamfilter::virus-help-channel <channel>
Το κανάλι που θα χρησιμοποιηθεί στην ενέργεια 'viruschan' στο spamfilter

set::spamfilter::virus-help-channel-deny <yes|no>
Αν οριστεί σε yes (ή '1') επιστρέφει 'invite only' σε όποιον απλό χρήστη προσπαθήσει να εισέρθει στο virus-help-channel. Μόνο διαχειριστές, άτομα που ταιριάζουν με τα spamfilters και άτομα που προσκλήθησαν στο κανάλι μπορούν να εισέρθουν.

set::spamfilter::except <target(s)>
Αυτοί οι στόχοι είναι εξαιρέσεις απο το spam filtering (καμία ενέργεια δεν θα γίνει), μπορεί να είναι ένας στόχος ή μια λίστα διαχωρισμένη απο κόμματα.. π.χ: except "#help,#spamreport"

set::check-target-nick-bans <yes|no>
Όποτε κάποιος χρήστης αλλάζει το ψευδώνυμο του/της, ελέγχει αν το ΝΕΟ ψευδώνυμο πρέπει να γίνει ban. Αν πρέπει, δεν επιτρέπει την αλλαγή του ψευδωνύμου. Η αρχική επιλογή είναι yes.

5 – Επιπλέον αρχεία

Επιπλέον εκτώς απο τα αρχεία επιλογών, το Unreal έχει και μερικά ακόμα αρχεία, όπως το MOTD, OperMOTD, BotMOTD, και Rules. Παρακάτω βρίσκονται τα ονόματα αυτών των αρχείων και οι χρήσεις τους.
Σημειώστε ότι τα αρχεία motd (όλοι οι τύποι) και το αρχείο κανόνων μπορούν επίσης να οριστούν σε μια επιλογή tld, Αυτά είναι απλώς τα αρχεία που χρησιμοποιούνται αρχικά (και για μή τοπικά MOTD/RULES's).

ircd.motd | Εμφανίζεται όταν μια εντολή /motd εκτελείται και (αν το ircd.smotd δεν υπάρχει) όταν ένας χρήστης συνδέεται
ircd.smotd | Εμφανίζεται μόνο στην σύνδεση (short MOTD)
ircd.rules | Εμφανίζεται όταν η εντολή /rules εκτελείται
oper.motd | Εμφανίζεται όταν η εντολή /opermotd εκτελείται ή η /oper
bot.motd | Εμφανίζεται όταν η εντολή /botmotd εκτελείται

6 – Modes χρηστών & καναλιών

Mode | Description
Channel Modes
A | Μόνο διαχειριστές διακομιστή μπορούν να εισέλθουν
a <nick> | Κάνει τον χρήστη διαχειριστή καναλιού
b <nick!user@host> | Απαγορέυει την είσοδο του χρήστη στο κανάλι
c | Τα χρώματα ANSI δεν μπορούν να σταλθούν στο κανάλι
C | Τα CTCP's δεν επιτρέπονται στο κανάλι
e <nick!user@host> | Exception ban – Αν κάποιος ταιριάζει με αυτό, μπορει να εισέλθει σε ένα κανάλι ακόμα και αν ταιριάζει με κάποιο ban
f [<number><type>]:<seconds> | Προστασία Flood καναλιών. Δείτε section 3.12 παραπάνω για περισσότερες πληροφορίες.
G | Ορίζει το κανάλι ώς G rated. Ελέγχει για λέξεις που βρίσκονται σε μια λίστα με επιλογές κακών λέξεων, και τις αντικαθιστά με τις ορισμένες λέξεις
h <nick> | Δίνει half-op στον χρήστη
i | Απαιτείται invite
I <nick!user@host> | Εξαιρέσεις Invite ("invex") - αν κάποιος ταιριάζει με αυτό, μπορεί να παρακάμψει τους περιορισμούς +i για να εισέλθει στο κανάλι.
j <joins:seconds> | Throttles joins per-user to joins per seconds seconds
K | Το /knock δεν επιτρέπεται
k <key> | Θέτει ένα κλειδί απαραίτητο για να εισέλθει κάποιος
l <##> | Ορίζει τον μέγιστο αριθμό χρηστών
L <Chan> | Αν ο αριθμός που ορίστηκε απο το +l έχει επιτευχθεί, οι χρήστες θα προωθηθούν σε αυτό το κανάλι
M | Ο χρήστης υποχρεούται να έχει καταχωρημένο nickname (+r) για να μιλήσει
m | Moderated κανάλι. Μόνο χρήστες με +v/o/h μπορούν να μιλήσουν
N | Απαγορεύονται αλλαγές των nickname
n | Απαγορεύονται μηνύματα έξω απο το κανάλι
O | Μόνο διαχειριστές μπορούν να εισέλθουν
o <nick> | Δίνει σε έναν χρήστη δικαιώματα διαχειριστή καναλιού
p | Ορίζει το κανάλι ως ιδιωτικό
q <nick> | Ορίζει τον ιδιοκτήτη του καναλιού
Q | Μόνο U:Lined servers μπορούν να κάνουν kick χρήστες
R | Απαιτείται καταχωρημένο nickname για να εισέλθει κάποιος
S | Φιλτράρει όλα τα εισερχόμενα χρώματα
s | Ορίζει το κανάλι ως μυστικό
t | Μόνο οι διαχειριστές καναλιού μπορούν να αλλάξουν το topic
T | Απαγορεύονται τα NOTICE's στο κανάλι
u | Auditorium – Κάνει τις εντολές /names και /who #channel να δείχνουν μόνο τους διαχειριστές καναλιού
V | Απαγορεύεται το /invite
v <nick> | Δίνει voice στους χρήστες. (Για να μπορούν να μιλάνε σε +m κανάλια)
z | Μόνο χρήστες συνδεδεμένοι με ασφαλή (SSL) σύνδεση μπορούν να εισέλθουν

Mode | Description
User Modes
A | Server Admin (Ορίζεται στην επιλογή Oper)
a | Διαχειριστής υπηρεσιών (Ορίζεται στην επιλογή Oper)
B | Σας σημαδεύει ώς Bot
C | Co-Admin (Ορίζεται στην επιλογή Oper)
d | Ορίζει να μην δέχεστε μηνύματα καναλιών PRIVMSGs (με την εξέρεση αυτών που αρχίζουν με συγκεκριμένους χαρακτήρες,δείτε set::channel-command-prefix)
G | Φιλτράρει όλες τις κακές λέξεις για κάθε επιλογή
g | Μπορεί να στείλει & διαβάσει globops και locops
H | Κρύβει την ιδιότητα διαχειριστή (Μόνο για διαχειριστές)
h | Διαθέσιμος για βοήθεια (HelpOp) (Ορίζεται στην επιλογή Oper)
i | Αόρατος (δεν φένεται στο /who)
N | Ιδιοκτήτης Δυκτίου (Ορίζεται στην επιλογή Oper)
O | Τοπικός διαχειριστής IRC Operator (Ορίζεται στην επιλογή Oper)
o | Διαχειριστής δυκτίου IRC Operator (Ορίζεται στην επιλογή Oper)
p | Κρύβει τα κανάλια στα οποία είστε μέσα απο το /whois
q | Μόνο U:Lines χρήστες μπορούν να σας κάνουν kick (Μόνο για διαχειριστές υπηρεσιών)
R | Σας επιτρέπει να δέχεστε μόνο PRIVMSGs/NOTICEs απο καταχωρημένους (+r) χρήστες
r | Αναγνωρίζει το nick σαν καταχωρημένο
S | Χρησιμοποιείται για να προστατέψει τις υπηρεσίες
s | Μπορεί να "ακούει" τα server notices
T | Αποτρέπει την αποδοχή CTCPs
t | Δείχνει οτι χρησιμοποιείτε ένα /vhost
V | Σας σημαδέυει ώς WebTV χρήστη
v | Δέχεται notices της αποτροπής αποστολής μολυσμένων αρχείων
W | Σας δείχνει πότε οι χρήστες χρησιμοποιούν /whois πάνω σας (Για διαχειριστές Μόνο)
w | "Ακούει" τα μηνήματα wallop
x | Δίνει στον χρήστη μια κρυμμένη διεύθυνση
z | Σας σημαδεύει ώς SSL χρήστη

7 – Εντολές χρηστών & διαχειριστών

Σημείωση: Το εγχειρίδιο /helpop είναι πιο ανανεωμένο, χρησιμοποιήστε /helpop εντολή (ή /helpop ?εντολή άν είστε διαχειρηστής) για να δείτε περισσότερες πληροφορίες για μια εντολή.

Command | Description | Who
nick <newnickname> | Αλλάζει το nickname σας. Ειδοποιεί τους άλλους για την αλλαγή του nick σας | All
whois <nick> | Εμφανίζει πληροφορίες για τον χρήστη που ζητήθηκε. Περιέχει κανονικό όνομα, διεύθυνση, τα κανάλια στα οποία ο χρήστης είναι μέσα, και την ιδιότητα διαχειριστή | All
who <mask> | Η Who σας επιτρέπει να ψάξετε για χρήστες. Οι μάσκες που περιλαμβάνονται: nickname, #channel, hostmask (*.attbi.com) | All
whowas <nick> <maxreplies> | Εμφανίζει πληροφορίες για ένα nick που έχει αποχωρήσει. Το πεδίο <max replies> είναι προαιρετικό, και περιορίζει πόσες καταχωρήσεις θα εμφανιστούν. | All
ison <nick1 nick2 nick3 ...> | Σας επιτρέπει να ελέγξετε αν ένας χρήστης είναι συνδεδεμένος, ή μια σειρά απο χρήστες. Απλά επιστρέφει, χρησιμοποιείται περισσότερο απο τα scripts | All
join <channel1,channel2, ...> | Σας επιτρέπει να εισέλθετε σε κανάλια. Χρησιμοποιόντας το /join #channel1,#channel2,#channel3 σας επιτρέπεται να εισέλθετε σε περισσότερα απο ένα κανάλια με μία εντολή. Με την εντολή /join 0 αποχωρείται απο όλα τα κανάλια. | All
cycle <channel1, channel2, ...> | Κάνει Cycle στο/στα κανάλι/κανάλια που δίνετε. Αυτή η εντολή είναι παρόμοια με το να στείλετε μια εντολή PART και ύστερα μια εντολή JOIN. | All
motd <server> | Εμφανίζει το motd του server. Βάζοντας για παράμετρο το όνομα ενός server σας επιτρέπει να δείτε το motd’s στους άλλους servers. | All
rules <server> | Εμφανίζει τους κανόνες (ircd.rules) ενός server. Βάζοντας ώς παράμετρο τό όνομα του server σας επιτρέπει να δείτε τους κανόνες στους άλλους servers | All
lusers <server> | Εμφανίζει τους χρήστες & και τον μέγιστο αριθμό χρηστών, στο δύκτιο και τοπικά. Βάζοντας ώς παράμετρο το όνομα του server σας επιτρέπει να δείτε τα στατιστικά στους άλλους servers. | All
map | Εμφανίζει τον χάρτη του δυκτίου | All
quit <reason> | Σας αποσυνδέει απο τον server. Αν ορίσετε και έναν λόγο, θα εμφανιστεί σε όλα τα κανάλια που βρίσκεστε καθώς αποσυνδέεστε | All
ping <user> | Στέλνει μια εντολή PING σε έναν χρήστη. Χρησιμοποιείται για έλεγχο των συνδέσεων και του lag. Οι Servers δίνουν μια εντολή ping σε τακτά χρονικά διαστήματα για να προσδιορίσουν αν οι χρήστες είναι ακόμα συνδεδεμένοι. | All
version <nick> | Στέλνει μια εντολή CTCP Version σε έναν χρήστη. Αν έχει καθοριστεί για να το κάνει, το πρόγραμμα του θα στείλει μια απάντηση με την έκδοση του προγράμματος. | All
links | Εμφανίζει μια λίστα με όλους τους servers που είναι συνδεδεμένοι στο δύκτιο | All
Admin <server> | Εμφανίζει πληροφορίες για τον ιδιοκτήτη του server. Αν δωθεί το όνομα του server ως παράμετρος θα εμφανιστούν πληροφορίες για εκείνον τον server. | All
userhost <nick> | Εμφανίζει την διεύθυνση του nick που δώθηκε. Συνήθως χρησιμοποιείται απο τα scripts | All
topic <channel> <topic> | Topic <channel> θα εμφανίσει το topic του καναλιού που δώθηκε. Topic <channel> <topic> θα αλλάξει το topic του καναλιού που δώθηκε. | All
invite <nick> <channel> | Κάνει Invite τον χρήστη που δώθηκε στο κανάλι που δώθηκε. (Πρέπει να είστε διαχειριστής καναλιού) | ChanOp
kick <channel, channel> <user, user> <reason> | Κάνει Kick έναν χρήστη απο το κανάλι, η κανάλια. Ένας λόγος μπορεί επίσης να δωθεί ως παράμετρος. | ChanOp
away <reason> | Σας σημαδεύει ώς away. Ένας λόγος μπορεί επίσης να δωθεί ως παράμετρος. | All
Watch +-<nick> +-<nick> | Η εντολή Watch είναι ένα νέο σύστημα τύπου notify στο UnrealIRCd που είναι και γρηγορότερο και χρησιμοποιεί λιγότερους πόρους δυκτίου απο ότι οποιοδήποτε άλλο παλιού τύπου σύστημα notify. Ο server θα στείλει ένα μήνυμα όταν κάποιο nickname που βρίσκεται στην watch λίστα σας συνδέεται η αποσυνδέεται απο το δύκτιο. Η λίστα watch ΔΕΝ ΠΑΡΑΜΕΝΕΙ ΜΕΤΑΞΥ ΤΩΝ ΔΙΑΦΟΡΕΤΙΚΩΝ ΣΥΝΔΕΣΕΩΝ ΣΑΣ - πρέπει εσείς(ή το πρόγραμμα σας) να προσθέτετε τα nicknames στην λίστα watch κάθε φορά που συνδέεστε στον IRC server. | All
helpop ?<topic> or !<topic> | Το HelpOp είναι ένας νέος τρόπος για να δέχεστε βοήθεια στο απτον IRC Server. Γράφετε είτε /HELPOP ? <help system topic> είτε /HELPOP ! <question> Το "?" στο /HELPOP σημαίνει να ρωτήσει το σύστημα βοήθειας και αν δεν πάρετε καμία απάντηση μπορείτε να διαλέξετε '!' για να το στείλετε στους βοηθούς δυκτίου που βρίσκονται συνδεδεμένοι. Χρησιμοποιώντας είτε το ? είτε ! σημαίνει οτι η εντολή θα σταλθεί στο σύστημα βοηθείας και αν δεν ταιριάζει με κάποια καταχώρηση , θα προωθηθεί στους βοηθούς δυκτίου | All
list <search string> | Αν δεν δώσετε μια συμβολοσειρά αναζήτησης, η αρχική επιλογή είναι να σας στείλει ολόκληρη την λίστα των καναλιών. Παρακάτω βρίσκονται οι επιλογές που μπορείτε να χρησιμοποιήσετε, και ποια κανάλια θα επιστρέψει το LIST όταν τις χρησιμοποιήσετε. >number Εμφανίζει κανάλια με περισσότερους απο <number> χρήστες. <number Εμφανίζει κανάλια με λιγότερους απο <number> χρήστες. C>number Εμφανίζει κανάλια που δημιουργηθηκαν μεταξύ του τώρα και <number> λεπτά νωρίτερα. C<number Εμφανίζει κανάλια που δημιουργήθηκαν νωρίτερα απο <number> λεπτά πρίν. T>number Εμφανίζει κανάλια των οποίων τα topics είναι παλιότερα απο <number> λεπτά (π.χ., δεν έχουν αλλάξει τα προηγούμενα <number> λεπτά. T<number Εμφανίζει κανάλια των οποίων τα topics είναι νεότερα απο <number> λεπτά. *mask* Εμφανίζει κανάλια που ταιριάζουν με *mask* !*mask* Εμφανίζει κανάλια που δεν ταιριάζουνε με *mask* | All
Knock <channel> <message> | Σας επιτρέπει να κάνετε ‘knock’ σε ένα invite only κανάλι και να ζητήσετε την είσοδο. Δεν λειτουργεί αν το κανάλι έχει ένα απο τα παρακάτω modes: +K +V. Επίσης δεν λειτουργεί αν έιστε banned | All
setname | Επιτρέπει στους χρήστες να αλλάζουν το ‘Real Name’ τους χωρίς επανασύνδεση | All
vhost <login> <password> | Αποκρύπτει την διεύθυνση σας χρησιμοποιόντας vhost που δημιουργείται απο τον server. | All
mode <chan/nick> <mode> | Σας επιτρέπει να αλλάξετε τα mode των καναλιών και του user. Δείτε User & Channel Modes για μια λίστα. | All
credits | Δείχνει μια λίστα με εύσημα για όσους έχουν βοηθήσει στην ανάπτυξη του UnrealIRCd | All
license | Εμφανίζει το GNU License | All
time <server> | Εμφανίζει την ημερομηνία και την ώρα του servers. Αν δώσετε ώς όρισμα το όνομα ενός server σας εμφανίζει αποτελέσματα των άλλων server. | All
botmotd <server> | Εμφανίζει το bot message of the day του server. Αν δώσετε ώς όρισμα το όνομα ενός server σας εμφανίζει αποτελέσματα των άλλων server | All
identify <password> | Στέλνει τον κωδικό σας στο σύστημα υπηρεσιών για να αναγνωρίσει το nick σας. | All
identify <channel> <password> | Στέλνει τον κωδικό σας στο σύστημα υπηρεσιών για να σας αναγνωρίσει ώς τον ιδιοκτήτη ενός καναλιού. | All
dns <option> | Επιστρέφει πληροφορίες για την μνήμη γρήγορης προσπέλασης DNS του IRC server. Σημειώστε, αφου τα περισσότερα προγράμματα έχου δικιά τους εντολή DNS, θα πρέπει μάλλον να χρησιμοποιήσετε /raw DNS για να το πετύχετε. Οι διαχειριστές μπορούν να χρησιμοποιήσουν το l για πρώτη παράμετρο στην εντολή για να πάρουν μια λίστα όλων των καταχωρήσεων στην μνήμη γρήγορης προσπέλασης DNS. | All
userip <nick> | Returns the IP address of the user in question. | All
oper <userid> <password> | Εντολή για να λάβετε δικαιώματα διαχειριστή αν ταιριάζει με την Επιλογή διαχειριστή | IRCop
wallops <message> | Στέλνει ένα μήνυμα σε όλους τους χρήστες με umode +w | IRCop
globops <message> | Στέλνει ένα μήνυμα σε όλους τους διαχειριστές | IRCop
chatops <message> | Στέλνει ένα μήνυμα σε όλους τους διαχειριστές με umode +c | IRCop
locops <message> | Στέλνει ένα μήνυμα σε όλους τους τοπικούς διαχειριστές | IRCop
adchat <message> | Στέλνει ένα μήνυμα σε όλους τους Admins | IRCop
nachat <message> | Στέλνει ένα μήνυμα σε όλους τους Net Admins | IRCop
kill <nick> <reason> | Αποσυνδέει τον χρήστη απο το δύκτιο | IRCop
kline [+|-]<user@host | nick> [<διάρκεια> <λόγος>] | Κάνει Ban την διεύθυνση του χρήστη απο τον server στον οποίο δώθηκε. Η kline δεν είναι ολικό ban. Η διάρκεια είναι είτε: α) μια τιμή σε δευτερόλεπτα, β) μια τιμή χρόνου, όπως '1d' είναι 1 μέρα ή γ) '0' για μόνιμο. Η διάρκεια και ο λόγος είναι προαιρετικά, αν δεν οριστεί, το set::default-bantime (αρχικό: 0/μόνιμο) και 'no reason' χρησιμοποιούνται. Για να αφαιρέσετε μια kline χρησιμοποιήστε /kline -user@host | IRCop
zline [+|-]<*@ip> [<time to ban> <reason>] | Κάνει Ban μια διεύθυνση IP στον server που δίνεται (όχι ολικό). Δείτε το kline για περισσότερες πληφορορίες για την σύνταξη. Χρησιμοποιήστε /zline -*@ip για αφαίρεση. | IRCop
gline [+|-]<user@host | nick> [<time to ban> <reason>] | Προσθέτει ένα ολικό ban σε οποιονδήποτε ταιριάζει. Δείτε kline για περισσότερες πληροφορίες για την σύνταξη. Χρησιμοποιήστε /gline -user@host για αφαίρεση. | IRCop
shun [+|-]<user@host | nick> [<time to shun> <reason>] | Αποτρέπει έναν χρήστη απο την χρήση ΚΑΘΕ εντολής και του απαγορεύει να μιλάει. Τα Shuns είναι δυκτίου (όπως τα glines). Δείτε kline για περισσότερες πληροφορίες σύνταξης. Χρησιμοποιήστε /shun -user@host για αφαίρεση ενός shun. | IRCop
gzline [+|-]<ip> <time to ban> :<reason> | Προσθέτει μια ολική zline. Δείτε kline για περισσότερες πληροφορίες σύνταξης. Χρησιμοποιήστε /gzline -*@ip για αφαίρεση μιας gzline. | IRCop
rehash <server> –<flags> | Επαναφορτώνει το αρχείο επιλογών του server. Αν περιλαμβάνει το όνομα του server σας επιτρέπει να επαναφορτώσετε το αρχείο επιλογών απομακρυσμένου server. Αρκετές επιλογές είναι επίσης διαθέσιμες. Όπως -motd - Επαναφορτώνει μόνο όλα τα αρχεία MOTD και RULES (συμπεριλαμβανομένου του tld {}) -opermotd - Επαναφορτώνει μόνο το αρχείο OPERMOTD -botmotd - Επαναφορτώνει μόνο το αρχείο BOTMOTD -garbage - Αναγκάζει την συλλογή garbage στοιχείων | IRCop
restart <server> <password> | Επανακινεί την διεργασία του IRCD. Απαιτείται κωδικός μόνο αν υπάρχει το drpass{}. Μπορείτε επίσης να συμπεριλάβετε έναν λόγο. | IRCop
die <password> | Σταματάει την διεργασία του IRCD. Απαιτείται κωδικός μόνο αν υπάρχει το drpass{}. | IRCop
lag <server> | Αυτή η εντολή είναι σαν Sonar ή Traceroute για τον IRC server. Εσείς γράφετε /LAG irc.fyremoon.net και σας επιστρέφεται απο κάθε server απτον οποίο περνάει η ώρα. Χρήσιμο για να ελέγχετε που υπάρχει lag και προαιρετικές μεταφορές TS future/past | IRCop
sethost <newhost> | Σας επιτρέπει να αλλάξετε το vhost σας σε ότι θέλετε να είναι. | IRCop
setident <newident> | Σας επτρέπει να αλλάξετε το ident σας σε ότι άλλο θέλετε να είναι. | IRCop
chghost <nick> <newhost> | Σας επιτρέπει να αλλάξετε την διεύθυνση ενός χρήστη που βρίσκεται συνδεδεμένος στο δύκτιο. | IRCop
chgident <nick> <newident> | Σας επιτρέπει να αλλάξετε το ident ενός χρήστη που βρίσκεται συνδεδεμένος στο δύκτιο. | IRCop
chgname <nick> <newname> | Σας επιτρέπει να αλλάξετε το πραγματικό όνομα ενός χρήστη που βρίσκεται συνδεδεμένος στο δύκτιο. | IRCop
squit <server> | Αποσυνδέει έναν server απτο δύκτιο. | IRCop
connect <server> <port> <server> | Αν δωθεί μόνο ένας server, θα προσπαθήσει να συνδέσει τον server στον οποίο βρίσκεστε, στον δωθέντα server. Αν δωθούν δύο servers, θα προσπαθήσει να συνδέσει τους δύο servers μεταξύ τους. Βάλτε τον leaf server ώς πρώτο, και τον hub server ώς δεύτερο. | IRCop
dccdeny <filemask> <reason> | Προσθέτει μια καταχώρηση DCCDENY για την μάσκα αρχείου αποτρέποντας την αποστολή τέτοιων αρχείων. | IRCop
undccdeny <filemask> | Αφαιρεί μια DCCDENY | IRCop
sajoin <nick> <channel>, <channel> | Αναγκάζει έναν χρήστη να εισέρθει σε ένα/πολλά κανάλι/α. Διαθέσιμο στις υπηρεσίες & στους network admins μόνο | IRCop
sapart <nick> <channel>, <channel> | Αναγκάζει έναν χρήστη να αποχωρήσει απο ένα/πολλά κανάλι/α. Διαθέσιμο μόνο στις υπηρεσίες & στους network admins μόνο. | IRCop
samode <channel> <mode> | Επιτρέπει στους Network & Services admins να αλλάξουν τα modes ενός καναλιού χωρίς να έχουν ChanOps. | IRCop
rping <servermask> | Θα υπολογίσει σε milliseconds την καθυστέρηση μεταξύ των server | IRCop
trace <servermask|nickname> | Αν χρησιμοποιηθεί σε χρήστη θα επιστρέψει την class και πληροφορίες για καθυστέρηση. Αν χρησιμοποιηθεί σε server επιστρέφει πληροφορίες για class/version/link. | IRCop
opermotd | Εμφανίζει το αρχείο OperMotd του server | IRCop
addmotd :<text> | Θα προσθέσει την πρόταση στο τέλος του Motd | IRCop
addomotd :<text> | Θα προσθέσει την πρόταση στο τέλος του OperMotd | IRCop
sdesc <newdescription> | Επιτρέπει στους server admins να αλλάξουν την γραμμή περιγραφής του server τους χωρίς επανακίνηση. | IRCop
addline <text> | Σας επιτρέπει να προσθέσετε γραμμές στο unrealircd.conf | IRCop
mkpasswd <password> | Θα κρυπτογραφήσει έναν κωδικό για να προστεθεί στο unrealircd.conf | IRCop
tsctl offset +/- <time> | Προσαρμόζει το εσωτερικό ρολόι του IRCD (Μην το χρησιμοποιήσετε αν δεν ξέρετε τι ΑΚΡΙΒΩΣ κάνει) | IRCop
tsctl time | Θα δώσει αναφορά του TS | IRCop
tsctl alltime | Θα δώσει αναφορά του TS για όλους τους servers | IRCop
tsctl svstime <timestamp> | Ορίζει την ώρα TS σε όλους τους servers (ΜΗΝ το χρησιμοποιήσετε αν δεν ξέρετε τι ΑΚΡΙΒΩΣ κάνει) | IRCop
htm <option> | Ελέγχει επιλογές που σχετίζονται με την κατάσταση υψηλής κίνησης. Η κατάσταση Υψηλής κίνησης (HTM) βασικά αποτρέπει την χρήση συγκεκριμένων εντολών όπως: list whois who κτλ ως απάντηση σε πολύ υψηλή κίνηση στον server. Επιλογές που περιλαμβάνονται: Η -ON επιβάλλει τον server σε HTM Το -OFF επιβάλλει τον server σε λειτουργία εκτως HTM Το -NOISY ορίζει τον server να ειδοποιεί τους users/admins όταν εισέρχεται και εξέρχεται απο το HTM Το -QUIET ορίζει τον server να μην ειδοποιεί όταν εισέρχεται και εξέρχεται απο το HTM Το -TO <value> Λέει στο HTM σε ποιον εισερχόμενο ρυθμό θα ενεργοποιήσει το HTM | IRCop
stats <option> | B - banversion - Στέλνει την λίστα ban έκδοσης b - badword - Στέλνει την λίστα κακών λέξεων C - link - Στέλνει την λίστα επιλογών σύνδεσης d - denylinkauto - Στέλνει την λίστα απαγορευμένων σύνδεσεων (auto) D - denylinkall - Στέλνει την λίστα απαγορευμένων συνδέσεων (all) e - exceptthrottle - Στέλνει την λίστα εξερέσεων throttle E - exceptban - Στέλνει την λίστα εξερέσεων ban και tkl f - spamfilter - Στέλνει την λίστα spamfilter F - denydcc - Στέλνει την λίστα επιλογών απαγορευμένων dcc G - gline - Στέλνει την λίστα των gline και gzline Εκτεταμένες επιλογές: [+/-mrs] [μάσκα] [λόγος] [ορισμένο απο] το m επιστρέφει τις glines που ταιριάζουν/δεν ταιριάζουν με την ορισμένη μάσκα το r επιστρέφει τις glines με λόγο που ταιριάζει/δεν ταιριάζει με τον ορισμένο λόγο το s επιστρέφει τις glines που ορίστηκαν απο/δεν ορίστηκαν απο χρήστες που ταιριάζουν με το ορισμένο όνομα I - allow - Στέλνει την λίστα των επιλογών allow j - officialchans - Στέλνει την λίστα των επίσημων καναλιών K - kline - Στέλνει την λίστα επιλογών ban user/ban ip/except ban l - linkinfo - Στέλνει τις πληροφορίες σύνδεσης L - linkinfoall - Στέλνει τις πληροφορίες για όλες τις συνδέσεις M - command - Στέλνει την λίστα με το πόσες φορές χρησιμοποιήθηκε κάθε εντολή n - banrealname - Στέλνει την λίστα επιλογών ban realname O - oper - Στέλνει την λίστα επιλογών διαχειριστών P - port - Στέλνει πληροφορίες για τα ports q - sqline - Στέλνει την λίστα SQLINE Q - bannick - Στέλνει την λίστα επιλογών ban nick r - chanrestrict - Στέλνει την λίστα επιλογών channel deny/allow R - usage - Στέλνει πληροφορίες χρήσης S - set - Στέλνει την λίστα επιλογών set s - shun - Στέλνει την λίστα των shun Εκτεταμένες επιλογές: [+/-mrs] [μάσκα] [λόγος] [ορισμένο απο] το m επιστρέφει τα shuns που ταιριάζουν/δεν ταιριάζουν με την ορισμένη μάσκα το r επιστρέφει τα shuns με τον λόγο που ταιριάζουν/δεν ταιριάζουν με τον ορισμένο λόγο το s επιστράφει τα shuns που ορίστηκαν/δεν ορίστηκαν απο χρήστες που ταιριάζουν με το ορισμένο όνομα t - tld - Στέλνει την λίστα επιλογών tld T - traffic - Στέλνει πληροφορίες κίνησης u - uptime - Στέλνει το uptime και αριθμό συνδέσεων U - uline - Στέλνει την λίστα επιλογών ulines v - denyver - Στέλνει την λίστα επιλογών deny version V - vhost - Στέλνει την λίστα επιλογών vhost X - notlink - Στέλνει την λίστα των servers που δεν είναι συνδεδεμένοι Y - class - Στέλνει την λίστα επιλογών των class z - zip - Στέλνει πληροφορίες συμπίεσης για τους servers που χρησιμοποιούν ziplinks (αν έχουν γίνει compile με υποστίριξη για ziplinks) Z - mem - Στέλνει πληροφορίες για την χρήση της μνήμης | All
module | Εμφανίζει όλα τα φορτωμένα modules | All
close | Αυτή η εντολή αποσυνδέει όλες τις άγνωστες συνδέσεις απο τον IRC server. | IRCOp

8 – Βοήθεια/Λίστα για την Ασφάλεια

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

Η λίστα αυτή έχει δημιουργηθεί με σκέψη το πόσο γνωστό είναι/επίπεδο επικυνδυνότητας/πιο συχνοί τρόποι επίθεσης:

8.1 Κωδικοί

Διαλέχτε καλούς κωδικούς για τους διαχειριστές, κωδικούς για link, κτλ:
- χρησιμοποιήστε ανάμικτα μικρα, κεφαλαία και αριθμούς ("Whbviwf5") και/ή κάτι μεγάλο ("blaheatsafish", "AlphaBeta555").
- ΜΗΝ χρησιμοποιήσετε τον κωδικό διαχειριστή για κάτι άλλο όπως ο λογαριασμός e-mail, κωδικός για bot, forums, κτλ...

8.2 Ευαλωτα συστήματα που δεν οφείλονται στο Ircd

Υπάρχει μια πολύ μεγαλύτερη πιθανότητα οτι ένα υπολογιστικό σύστημα θα γίνει στόχος εισβολέα απο μια τρύπα που δεν οφείλεται στο irc(d) παρα απο ένα bug του UnrealIRCd. Αν για παράδειγμα τρέχετε http, dns, smtp και ftp servers στο ίδιο υπολογιστικό σύστημα έχετε ένα πολύ μεγαλύτερο ρίσκο.Επίσης, αν είστε σε ένα υπολογιστικό σύστημα με πολλούς χρήστες (π.χ αγοράσατε ένα shell) υπάρχει μεγάλο ρίσκο απο τοπικές τρύπες και λάθος ρυθμισμένα δικαιώματα (δείτε παρακάτω). Αυτό το ρίσκο είναι αρκετά μεγάλο γιαυτό να είστε αρκετά προσεκτικοί όταν διαλέγετε εταιρία παροχής shell.

8.3 Δικαιώματα και το αρχείο επιλογών

Πάντα να σιγουρεύστε οτι ο φάκελος σας και του UnrealIRCd έχουν τα σωστά δικαιώματα, τα (group/)other δεν πρέπει να έχουν δικαιώματα για read. Αλλιώς κάποιος χρήστης του υπολογιστικού συστήματος μπορεί απλώς να κατεβάσει το αρχείο επιλογών και να ψάξει για κωδικούς... Με λίγα λόγια: chmod -R go-rwx /path/to/Unreal3.2 αν δεν είστε σίγουρος για αυτό.
Άλλα πράγματα που σχετίζονται με αυτό: ποτέ μην βάζετε το UnrealIRCd μέσα στον κύριο φάκελο ή σε κάποιο φάκελο με ιδιότητες κοινής χρήσης. Και για αντίγραφα, σιγουρευτείτε οτι έχουν και αυτά τα σωστά δικαιώματα (συμβαίνει αρκετά συχνά να είναι όλα ασφαλισμένα σωστά αλλα να υπάρχει ένα backup.tar.gz κάπου εκεί που να μπορεί να το διαβάσει ο οποιοσδήποτε).
Επίσης θα θέλατε να χρησιμοποιήσετε κρυπτογραφημένους κωδικούς όποτε αυτό είναι δυνατόν, αν κάνατε compile με υποστίριξη για OpenSSL (πράγμα που θα το κάνατε, αφού ενδιαφέρεστε για την ασφάλεια, έτσι?) τότε προτείνουμε να χρησιμοποιήσετε sha1 ή ripemd160 κρυπτογράφηση κωδικών, αλλιώς χρησιμοποιήστε md5. Επίσης αν έχετε ακόμα κρυπτογραφημένες επιλογές διαχειριστών απο το Unreal3.2.1 η προηγούμενα προτείνουμε να τις επανα κρυπτογραφήσετε (απλα ξανατρέξτε το /mkpasswd), γιατι απο το 3.2.1 και μετά παρουσιάστικαν μεγάλες βελτιώσεις στο σύστημα anti-crack (βασικά περίπου 14x καθυστέρηση των τωρινών cracks, και έγινε αδύνατο η επανάκτηση των stored-plain-ciphertext κωδικών).
Ακόμα, να έχετε κατα νου οτι αυτό είναι απλως ένας ακόμα φλοιός ασφάλειας, αν έχετε έυκολους κωδικούς τότε μπορούν ακόμα να ανακτηθούν πολύ εύκολα και άν κάποιος καταφέρει να πάρει το αρχείο επιλογών σας, υπάρχουν αρκετά ενδιαφέρον πράγματα που μπορούν να βοηθήσουν τον εισβολέα, όπως link::password-connect.

8.4 Προβλήματα που σχετίζονται με χρήστες

Όπως τα περισσότερα απο αυτα τα πράγματα, δεν είναι συγκεκριμένα για το UnrealIRCd, αλλα..
Πάντα να διαλέγετε τους διαχειριστές και τους admins με σύνεση. Και να θυμάστε την ιδέα του αδύναμου κρίκου.Αν και μπορεί να είστε προσεκτικός και να κάνατε ότι λέει αυτο το εγχειρίδιο, ίσως ο φίλος σας που είναι επίσης διαχειριστής να έκανε κάτι χαζό. Όπως να έχει δώσει δικαιώματα του σκληρού του δίσκου μέσω του netbios/kazaa/morpheus/.., να κόλησε κάποιον ιό, να χρησιμοποίησε έναν εμφανή κωδικό, κτλ κτλ... Δυστυχώς, δεν είναι πάντα στον έλεγχο σας. Ένα πράγμα που θα μπορούσατε όμως να κάνετε είναι να προσέχετε καλά τι προνόμια χρειάζεται ο κάθε διαχειριστής (oper::flags).

8.5 SSL/SSH & sniffing

Χρησιμοποιήστε SSL συνδέσεις μεταξύ των server και σαν διαχειριστής, αυτό θα σας προστατέψει εναντίον του "sniffing". Το Sniffing είναι πιθανό να συμβεί αν ο εισβολέας έχει αποκτήσει πρόσβαση σε ένα υπολογιστικό σύστημα κάπου μεταξύ εσάς και του ircd server, μπορεί τότε να δεί όλα τα δεδομένα του δυκτίου τα οποία περνούν απο την μία άκρη στην άλλη.Να παρακολουθήσει όλες τις συζητήσεις, να βρεί όλους τους κωδικούς (διαχειριστών,nickserv, κτλ).. Ψια τον ίδιο λόγο να χρησιμοποιείτε πάντα ssh αντι για telnet.

8.6 Denial of Service attacks (DoS) [ή: πως να προστατέψω τον hub μου]

Πολλά δύκτια έχουν την εμπειρία του πόσο "αστείο" είναι μια επίθεση flood ή επίθεση (D)DoS, μπορείτε όμως να κάνετε μερικά πράγματα για να μειώσετε την ζημειά που προκαλείται απο αυτές. Τα περισσότερα δύκτια έχουν έναν hub server, κάτι που μερικοί ξεχνάνε είναι οτι είναι πολύ έυκολο να προστατέψετε τον hub server απο επιθέσεις.
Θα το εξηγήσω εδώ:
1. Ορίστε το όνομα του hub σε μια διεύθυνση που δεν υπάρχει, π.χ 'hub.yournet.com', αλλα
μην προσθέσετε επιλογή dns για αυτόν. Με αυτόν τον τρόπο αυτός που κάνει την επίθεση δεν μπορεί να βρεί την διεύθυνση και
δεν μπορεί να κάνει flood. Μετά απλώς συνδέστε τους servers σας στο hub ορίζοντας την
IP ή κάποια άλλη μη γνωστή διεύθυνση.
Παράδειγμα 1: link visibiblename.yournet.com { hostname 194.15.123.16; [κτλ] };.
Παράδειγμα 2: link visibiblename.yournet.com { hostname thehostnamethatworks.yournet.com; [κτλ] };.
Υποσημείωση, για το τελευταίο παράδειγμα πρέπει να σιγουρευτείτε ότι οι nameservers σας δεν επιτρέπουν μεταφορές σε άλλες ζώνες, αλλα αυτό είναι πολυ εκτώς θέματος ;).
2. Άλλο ένα σημαντικό βήμα είναι να κρύψετε '/stats c' και άλλες stats πληροφορίες, αλλιώς οι
κακόβουλοι χρήστες μπορεούν απλώς να δούν την λίστα επιλογών σύνδεσης. Συνήθως αν είστε αρκετά παρανοικός (όπως
εγώ) μπορείτε απλώς να κάνετε: set { oper-only-stats "*"; }; για να απαγορέψετε κάθε χρήση των /stats.
Αν δεν το θέλετε αυτό, τουλάχιστον κρύψτε τα "CdDlLXz". Περισσότερα για αυτό στην επόμενη παράγραφο.
Φυσικά αυτά τα βήματα είναι λιγότερο χρήσιμα άν εφαρμοστούν αργότερα (π.χ: μετα απο μερικούς μήνες)
αντι απτην αρχή οπότε οι διευθύνσεις IP's μπορεί να είναι ήδη γνωστές σε μερικούς "κακούς" χρήστες, όμως.. αξίζει να γίνει.
Επίσης σημειώστε ότι οι κακόβουλοι χρήστες μπορούν ακόμα να κάνουν επίθεση flood σε όλους τους μή servers, αλλα αυτό απαιτεί περισσότερη προσπάθεια
απτο απλώς να επιτεθούν σε 1 ή 2 αδύναμα σημεία (τα hubs), επίσης με αυτόν τον τρόπο τα hub & υπηρεσίες δυκτίου θα μείνουν ανέπαφα :).

8.7 Information disclosure

STATS
Η εντολή /stats είναι πολυ πληροφοριακή, θα ήταν συνετό να περιορίσετε την χρήση της όσο το δυνατόν περισσότερο. Μια ερώτηση που πρέπει να κάνετε στον εαυτό σας είναι "τι θά θελα οι χρήστες μου να βλέπουν. Τα περισσότερα μεγάλα δύκτια απαντάνε "τίποτα", ενώ άλλοι προτιμούν οι χρήστες να μπορούν να κάνουν '/stats g' και '/stats k'.
Εμείς προτείνουμε να χρησιμοποιήσετε set { oper-only-stats "*"; }; για να απαγορέψετε όλα τα /stats για τους μή-διαχειριστές, αλλά αν δεν το θέλετε αυτό, ρίξτε μια ματιά στην λίστα των '/stats' (δίνει μια γενική ιδέα για όλες τις διαθέσιμες επιλογές) και περιορίστε τα όλα εκτώς απο αυτά που θέλετε να επιτρέπετε.. (αν έχετε δίλλημα, απλως απαγορέψτε το.. γιατι θα έπρεπε οι χρήστες να τα γνωρίζουν όλα αυτά;).
Για να σας δώσουμε μερικά παραδείγματα:
- /stats o: σας δίνει τα ονόματα των διαχειριστών (με σωστή σύνταξη κεφαλαίων-μικρών) και διευθύνσεων.
- /stats c: σας δίνει μια ιδέα για τα serverlinks και ποιά να χρησιμοποιήσετε για 'backup', κτλ..
- /stats g, /stats k: συνήθως χρησιμοποιούνται για να αποτραπούν τα proxies.. οπότε αυτό θα έδινε απλως στους εισβολείς μια λίστα με τα proxy που μπορούν να χρησιμοποιήσουν.
- /stats E, /stats e: αρκετά ευαίσθητες πληροφορίες, ειδικά αν ένας εισβολέας μπορει να χρησιμοποιήσει αυτές τις διευθύνσεις
- /stats i, /stats y: ίσως βοηθήσουν έναν εισβολέα στο να βρεί κάποιες διευθύνσεις που επιτρέπουν πολλές συνδέσεις.
- /stats P: Βοηθάει τον εισβολέα να βρεί serveronly ports
κτλ κτλ...
MAP / LINKS
Αρκετοί άνθρωποι έχουν ρωτήσει αν υπάρχει τρόπος να αποκλειστεί η χρήστη του /map ή του /links. Η θέση μας σε αυτό είναι οτι είναι αρκετά χαζό και δίνει λάθος εντύπωση της ασφάλειας, ασ το εξηγήσουμε... Το να κρύψετε τους servers που ήδη χρησιμοποιούνται απο τους χρήστες είναι άχρηστο αφου ήδη ξέρουν για τους servers σας(πως αλλιώς θα μπορούσαν να μπουν σε αυτούς εξαρχής;). Για τους servers που δεν θέλετε να βρίσκονται οι χρήστες, δείτε την παράγραφο 8.6.
Τώρα τι μπορείτε ΝΑ κάνετε? Απο την έκδοση 3.2.1 υπάρχει μια επιλογή που ονομάζεται 'flat map' (set::options::flat-map), αυτο θα κάνει όλους τους servers να εμφανίζονται 'άμεσα συνδεδεμένοι' στο /map και στο /links, έτσι οι απλοί χρήστες δεν μπορούν πλέον να δούν ποιος server είναι συνδεδεμένος σε ποιόν... Αυτό μπορεί να γίνει ένας επιπλέον φλοιός ασφαλείας επειδή με αυτόν τον τρόπο ένα "παιδάκι" δεν μπορεί έυκολα να βρεί 'αδύναμα σημεία' με το /map η με το /links. Έτσι η χρήση του προτείνεται. Σημείωση: αυτο δεν είναι foolproof... Αν γίνει κάποιο split κάποιος μπορεί να δεί έυκολα ποιος server ήταν συνδεδεμένος σε ποιόν, και αυτό είναι αλήθεια και για κάποια άλλα πράγματα επίσης.
NORMAL USERS & SNOMASKS
Ένα στοιχείο που δεν είναι πολυ γνωστό είναι ότι οι απλοί χρήστες μπορούν επίσης να ορίσουν κάποια περιορισμένα snomasks, π.χ +s +sk. Με αυτόν τον τρόπο μπορούν να δούν πράγματα όπως rehashes, kills και διάφορα άλλα μηνύματα.
Για να το απενεργοποιήσετε μπορείτε να χρησιμοποιήσετε το set::restrict-usermodes κάπως έτσι: set { restrict-usermodes "s"; };.
Φυσικά όλα αυτά απλώς κρύβουν πληροφορίες, οπότε δεν είναι "αληθινή" ασφάλεια. Σίγουρα όμως θα κάνει πιο δύσκολη την προσπάθεια που χρειάζεται για να εισβάλει/επιτεθεί κάποιος.

8.8 Protecting against exploits

Υπάρχουν τα kernel patches τα οποία κάνουν πολύ δύσκολη την λειτουργία κάποιων stack- και heap-based exploits. Αυτό βέβαια δεν πρέπει να είναι το κύριο σημείο εστίασης της προσοχής σας, έχετε έναν πολυ μεγαλύτερο κίνδυνο να γίνετε exploited μέσω άλλων σημείων εκτώς απο αυτά... για διάφορους λόγους.
Υπάρχει κάτι που πρέπει να κάνετε βέβαια, δηλαδή να ΧΡΗΣΙΜΟΠΟΙΕΙΤΕ ΠΑΝΤΑ ΤΗΝ ΤΕΛΕΥΤΑΙΑ ΕΚΔΟΣΗ, εγγραφείτε στην unreal-notify λίστα mail τώρα ώστε να δέχεστε ανακοινώσεις για τυχόν καινούριες εκδόσεις (unreal-notify είναι μόνο για ανακοινώσεις νέων εκδόσεων, οπότε μόνο 1 mail κάθε X μήνες). Συνήθως αναγράφεται στην ανακοίνωση αν η καινούρια έκδοση περιέχει (υψηλού κινδύνου) security fixes, αλλα είναι καλό να αναβαθμίσετε έτσι και αλλιώς.

8.9 Summary

Όπως ελπίζουμε οτι τώρα έχετε καταλάβει, δεν μπορείτε ποτέ να είστε 100% ασφαλείς. Εσείς (και εμείς) πρέπει να βρίσκουμε και να διορθώνουμε κάθε τρύπα εκει έξω, καθώς κάποιος εισβολέας χρειάζεται να βρεί μόνο έναν server με μία τρύπα. Όλα όσα εξηγήθηκαν εδώ ΟΝΤΩΣ βοηθούν με το να μειώνουν τους κινδύνους αρκετά. Βρείτε τον χρόνο να ασφαλίσετε το δύκτιο σας και να εκπαιδεύσετε τους διαχειρηστές σας.Πολύς κόσμος δεν νοιάζεται για την ασφάλεια μέχρι να τους επιτεθεί κάποιος, προσπαθήστε να το αποφύγετε :).

9 – Frequently Asked Questions (FAQ)

Το FAQ είναι διαθέσημο εδώ

A Κανονικές Εκφράσεις

Οι κανονικές εκφράσεις χρησιμοποιούνται σε πολλά θέματα στο Unreal, συμπεριλαμβανομένων των badwords, spamfilter, και aliases. Οι κανονικές εκφράσεις είναι ένα πολύ πολύπλοκο εργαλεί που χρησιμοποιείται για ταίριασμα εκφράσεων. Μερικές φορές αναφέρονται ώς "regexp" ή "regex." Το Unreal χρησιμοποιεί τις βιβλιοθήκες κανονικών εκφράσεων TRE για το regex. Αυτές οι βιβλιοθήκες υποστιρίζουν μερικές πολύ πολύπλοκες και προχωρημένες εκφράσεις που μπορεί να είναι δυσνόητες. Οι πληροφορίες παρακάτω θα σας βοηθήσουν να κατανοήσετε πως λειτουργούν τα regexps. Αν ενδιαφέρεστε για περισσότερες τεχνικές και πιο επεξηγημένες πληροφορίες για την σύνταξη των regexp που χρησιμοποιείται απο το Unreal, επισκεφτείτε την σελίδα TRE.

A.1 Literals

Τα Literals είναι το πιο βασικό μέρος ενός regexp. Βασικά, είναι χαρακτήρες που εκλαμβάνονται ώς απλό κείμενο. Για παράδειγμα, η έκφραση "test" αποτελείται απο τέσσερα literals, "t," "e," "s," και "t." Στο Unreal, στα literals δεν παίζουν ρόλο τα κεφαλαία/μικρά, οπότε το προηγούμενο regex θα ταίριαζε με "test" όπως επίσης και με "TEST." Οποιοσδήποτε χαρακτήρας που δεν είναι "meta character" (επεξηγήται στις επόμενες παραγράφους) εκλαμβάνεται ώς literal. Μπορείτε επίσης να ορίσετε έναν χαρακτήρα ως literal χρησιμοποιόντας ένα backslash (\). Για παράδειγμα, η τελεία (.) είναι ένα metacharacter. Αν θέλετε να συμπεριλάβετε μια literal ., απλώς χρησιμοποιήστε \. και το Unreal θα την εκλάβει ώς τελεία. Είναι επίσης δυνατό να θέλετε να ελέγχετε κάποιον χαρακτήρα που δεν είναι έυκολο να τυπωθεί, όπως οι ASCII χαρακτήρες 3 (χρώματα). Αντι να πρέπει να αντιμετωπίσετε αυτό το πρόβλημα χρησιμοποιώντας έναν IRC client για να δημιουργήσετε αυτόν τον χαρακτήρα, μπορείτε να χρησιμοποιήσετε μια ειδική ακολουθεία, την \x. Αν γράψετε \x3, τότε μεταφράζεται σαν να ήταν ο ASCII χαρακτήρας 3. Ο αριθμός μετά απο το \x αντιπρωσοπεύεται ώς δεκαεξαδικός και μπορεί να πάρει τιμές απο \x0 ώς \xFF.

A.2 Τελεστής Τελεία(.)

Ο τελεστής τελεία (.) χρησιμοποιείται για να ταιριάζει με "οποιονδήποτε χαρακτήρα." Ταιριάζει με οποιονδήποτε χαρακτήρα που έχει οποιαδήποτε τιμή. Για παράδειγμα, το regex "a.c" θα ταιριάζει "abc," "adc," κτλ. Όμως, δεν θα ταιριάζει με το "abd" γιατι ο "a" και "c" είναι literals που πρέπει να ταιριάζουν ακριβώς.

A.3 Τελεστής επανάληψης

Ένα απο τα συνηθέστερα λάθη που κάνουν οι περισσότεροι χρήστες είναι να θεωρούν ότι δουλέυει ακριβώς όπως τα wildcards. Αυτό σημαίνει, οτι οι χαρακτήρες * και ? θα ταιριάζουν όπως σε ένα wildcard. Αν και αυτοί οι χαρακτήρες έχουν παρόμοια σημασία σε ένα regex, δεν είναι ακριβώς το ίδιο. Επιπλέον, οι κανονικές εκφράσεις υποστιρίζουν επίσης άλλες, πιο εξειδικευμένες μεθόδους επανάληψης.

Ο πιο βασικός τελεστής επανάληψης είναι ο ? . Αυτός ο τελεστής ταιριάζει με το 0 ή το 1 απο τους προηγούμενους χαρακτήρες. Αυτό, "απο τους προηγούμενους χαρακτήρες," είναι η διαφορά του ? στα απο ένα wildcard. Σε ένα wildcard, η έκφραση, "a?c" ταιριάζει με "a" ακολουθούμενο απο οποιονδήποτε χαρακτήρα (είτε κανένα χαρακτήρα), ακολουθούμενο απο ένα "c." Ένα regex έχει διαφορετική σημασία. Ταιριάζει με το 0 ή 1 ενός γράμματος "a" ακολουθούμενο απο το γράμμα "c." Βασικά, το ? αλλάζει το a ορίζοντας πόσα a μπορεί να περιέχει. Για να εξομοιώσετε το ? όπως σε ένα wildcard, χρησιμοποιήστε τον χαρακτήρα τελεία(.). Το regex "a.?c" είναι παρόμοιο με το προαναφερθέν παράδειγμα wildcard. Ταιριάζει το γράμμα "a" ακολουθούμενο απο 0 ή 1 απο οποιονδήποτε χαρακτήρα (ο ? μετατρέπει τον .), ακολουθούμενο απο ένα "c."

Ο επόμενος χαρακτήρας επανάληψης είναι ο *. Ξανά, αυτός ο χαρακτήρας είναι παρόμοιος με ένα wildcard. Ταιριάζει με 0 η περισσότερους απο τους προηγούμενους χαρακτήρες. Σημείωση οτι το "απο τους προηγούμενους χαρακτήρες" είναι κάτι χαρακτηριστικό για όλους τους τελεστές επανάληψης. Το regex "a*c" ταιριάζει 0 ή περισσότερα a ακολουθούμενο απο ένα "c." Για παράδειγμα, "aaaaaac" ταιριάζει. Για άλλη μια φορά, για να το κάνετε να δουλέψει ώς wildcard, πρέπει να χρησιμοποιήσετε "a.*c" που θα αναγκάσει το * να μετατραπεί σε . (οποιοσδήποτε χαρακτήρας) αντι μόνο ο "a."

Ο τελεστής + είναι παρόμοιος με τον *. Όμως, αντί να ταιριάζει με 0 ή περισσοτερα, ταιριάζει με 1 ή περισσότερα. Βασικά, "a*c" θα ταιριάζει με το "c" (0 a ακολουθούμενα απο έναν c), ενώ το "a+c" δεν θα ταιριάξει. Το "a+" δηλώνει ότι πρέπει να υπάρχει "τουλάχιστον" 1 a. Έτσι το "c" δεν ταιριάζει ενώ το "ac" και το "aaaaaaaaac" ταιριάζουν.

Ο πιο εξειδικευμένος τελεστής είναι γνωστός ώς "boundary." Το boundary σας επιτρέπει να ορίσετε ακριβείς περιορισμούς στο πόσοι απο τους προηγούμενους χαρακτήρες πρέπει να υπάρχουν. Για παράδειγμα, μπορεί να θέλετε να υπάρχουν ακριβώς 8 a, ή τουλάχιστον 8 a, ή μεταξύ 3 και 5 a. Το boundary σας επιτρέπει να πετύχετε όλα αυτά. Η βασική σύνταξη είναι {M,N} όπου M είναι το μικρότερο bound, και N είναι το μεγαλύτερο bound. Για παράδειγμα, για να ταιριάξετε μεταξύ 3 και 5 a, θα πρεπε να κάνετε "a{3,5}". Όμως, δεν χρειάζεται να ορίσετε και τους δύο αριθμούς. Αν κάνετε "a{8}" σημαίνει οτι πρέπει να υπάρχουν ακριβώς 8 a. Οπότε, "a{8}" είναι παρόμοιο με το "aaaaaaaa." Για να ορίσετε το "at least" παράδειγμα, πρέπει απλώς να δημιουργήσετε ένα boundary που έχει μόνο μικρότερο bound. Οπότε για τουλάχιστον 8 a, πρέπει να κάνετε "a{8,}".

Απο προεπιλογή, όλοι οι τελεστές είναι "άπληστοι." Η απληστεία είναι λίγο πολύπλοκη σαν ιδέα. Βασικά, σημαίνει οτι ένας τελεστής θα ταιριάξει με όσους περισσότερους χαρακτήρες γίνεται. Αυτό επεξηγείται καλύτερα με ένα παράδειγμα.

Ας πούμε οτι έχουμε το ακόλουθο κείμενο:
HELLO
Και το ακόλουθο regex:
.+L

Σε αυτό το παράδειγμα, μπορεί να σκεφτείτε ότι το .+ ταιριάζει με το "HE." Όμως, αυτό δεν είναι αλήθεια. Επειδη το + είναι "άπληστο", ταιριάζει με το "HEL." Ο λόγος είναι, οτι διαλέγει το μεγαλύτερο μέρος της καταχώρησης που μπορεί να ταιριάξει αφήνοντας συγχρόνως και ολόκληρο το regex να ταιριάξει. Σε αυτό το παράδειγμα, διάλεξε "HEL" επειδή όλες οι άλλες προυποθέσεις είναι ο χαρακτήρας μετα απο το κείμενο που ταιριάζει με το .+ πρέπει να είναι ένα "L". Αφού το κείμενο είναι "HELLO", το "HEL" ακολουθείται απο ένα "L," και φυσικά ταιριάζει. Μερικές φορές, όμως, είναι χρήσιμο να γίνει ένας τελεστής μή απληστος. Αυτό μπορεί να γίνει προσθέτοντας έναν ? χαρακτήρα μετά απο τον τελεστή επανάληψης. Αν μετατρέψουμε το παραπάνω σε, ".+?L" το .+? τώρα θα ταιριάζει με το "HE" αντί για το "HEL" αφού έχει οριστεί σε μια μή απληστη μορφή. Το ? μπορεί να μπεί σε οποιονδήποτε χαρακτήρα επανάληψης: ??, *?, +?, {M,N}?.

A.4 Εκφράσεις Brackets

Οι Εκφράσεις σε Bracket προμηθεύουν έναν βολικό τρόπο να δημιουργήσουμε έναν τελεστή "ή". Για παράδειγμα, αν θέλατε να πείτε "ταίριαξε με το a ή με το b." Η έκφραση bracket παίρνει το όνομα της απο το γεγονός ότι βρίσκεται μεταξύ αγκύλων (brackets) ([]). Η βασική σύνταξη είναι οτι η έκφραση περιέχει μια σειρά απο χαρακτήρες. Αυτοί οι χαρακτήρες εκλαμβάνονται σαν να υπήρχε ένα "ή" μεταξύ τους. Για παράδειγμα, η έκφραση "[abc]" ταιριάζει με το "a," ένα "b," ή ένα "c." Οπότε, το regexp "a[bd]c" ταιριάζει με το "abc" και "adc" αλλά όχι με "acc."

Ένα πολύ χρήσιμο πράγμα που μπορεί να γίνει είναι να ελέγχετε για πράγματα όπως, ένα γράμμα, ή έναν αριθμό. Αντι να πρέπει να κάνετε, για παράδειγμα, "[0123456789]", ο τελεστής bracket υποστιρίζει εύρος. Το έυρος λειτουργεί ορίζοντας το σημείο αρχής και το σημείο λήξης με ένα - ανάμεσά τους. Οπότε, ένας πιο απλός τρόπος να δοκιμάσετε έναν αριθμό είναι να κάνετε απλώς "[0-9]". Το ίδιο πράγμα μπορεί να γίνει και με τα γράμματα, ή για την ακρίβεια, οποιοδήποτε εύρος των τιμών ASCII. Αν θέλετε να ταιριάξετε ένα γράμμα, απλώς κάντε "[a-z]" αφού το Unreal δεν αναγνωρίζει κεφαλαία/μικρά, αυτό θα ταιριάξει με όλα τα γράμματα. Μπορείτε επίσης να συμπεριλάβετε επιπλέον εύρος στην ίδια έκφραση. Για να ταιριάξετε ένα γράμμα η νούμερο, "[0-9a-z]". Ένα μπέρδεμα που δημιουργεί αυτό είναι ότι το - είναι ένας ειδικός χαρακτήρας μέσα σε μια έκφραση bracket. Για να ταιριάξει ώς literal -, ο πιο απλός τρόπος είναι να το θέσετε ώς τον πρώτο ή τον τελευταίο χαρακτήρα. Για παράδειγμα, "[0-9-]" ταιριάζει έναν αριθμό ή ένα -.

Για να γίνουν τα πράγματα ακόμα πιο απλά, υπάρχουν αρκετές "κατηγορίες χαρακτήρων" που μπορούν να χρησιμοποιηθούν μέσα σε μια έκφραση bracket. Αυτές οι κατηγορίες χαρακτήρων εξαλείφουν την ανάγκη για να ορίσουμε συγκεκριμένο εύρος. Οι κατηγορίες χαρακτήρων γράφονται κλείνοντας το όνομά τους μέσα σε πολλαπλά : . Για παράδειγμα, "[0-9]" μπορεί επίσης να γραφτεί ώς "[:isdigit:]". Αυτή η λίστα παρακάτω δείχνει όλες τις διαθέσιμες κατηγορίες χαρακτήρων και σε τι χρησιμεύουν:

- `alnum` - αλφαριθμητικοί χαρακτήρες
- `alpha` - αλφαβητικοί χαρακτήρες
- `blank` - κενοί χαρακτήρες
- `cntrl` - χαρακτήρες ελέγχου
- `digit` - δεκαδικοί αριθμοί (0 έως 9)
- `graph` - όλοι οι χαρακτήρες που μπορούν να εκτυπωθούν εκτώς απο το κενό
- `lower` - μή-κεφαλαία γράμματα
- `print` - όλοι οι χαρακτήρες που μπορούν να εκτυπωθούν συμπεριλαμβανομένου του κενού
- `punct` - όλοι οι χαρακτήρες που μπορούν να εκτυπωθούν εκτώς απο το κενό και αλφαριθμητικούς
- `space` - χαρακτήρες space
- `upper` - κεφαλαία γράμματα
- `xdigit` - δεκαεξαδικοί αριθμοί

Μια σημαντική σημείωση για τις κατηγορίες χαρακτήρων είναι οτι ΠΡΕΠΕΙ να είναι το μόνο στοιχείο στην έκφραση. Για παράδειγμα, [:isdigit:-] ΔΕΝ είναι σωστό. Ωστόσο, μπορείτε να πετύχετε ακριβώς το ίδιο δεσμεύοντας τις εκφράσεις, για παράδειγμα, να κάνετε ακριβώς το ίδιο όπως στο "[0-9-]" χρησιμοποιόντας μια κατηγορία χαρακτήρων, μπορείτε να κάνετε "[[:isdigit:]-]".

Το τελευταίο χαρακτηριστικό των εκφράσεων bracket είναι η αντιστροφή. Μερικές φορές είναι χρήσιμο να πούμε "οτιδήποτε εκτώς απο αυτούς τους χαρακτήρες." Για παράδειγμα, αν θέλετε να ελέγξετε αν οι χαρακτήρες "δεν είναι ένα γράμμα," είναι πιο έυκολο να έχετε μια λίστα απο a-z και να πείτε "όχοι αυτά," απο ότι είναι να έχετε μια λίστα με όλα τα μη-γράμματα. Οι εκφράσεις Bracket σας επιτρέπουν να τα ελέγξετε αυτά μέσω της αντιστροφής. Αντιστρέφετε την έκφραση ορίζοντας ένα "^" για τον πρώτο χαρακτήρα. Για παράδειγμα, "[^a-z]" θα ταιριάζει με κάθε μή-γράμμα. Όπως και με το -, αν θέλετε να συμπεριλάβετεe ένα literal ^, μην το θέσετε στην πρώτη θέση, "[a-z^]". Επίσης, για να αντιστρέψετε μια κατηγορία χαρακτήρων, πρέπει να χρησιμοποιήσετε δεύσμευση ξανά, "[^[:isdigit:]]" θα ταιριάζει με όλους τους μή-αριθμούς.

A.5 Ισχυρισμοί

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

Ο χαρακτήρας ^ αναφέρεται ως το "αριστερό άκρο." Αυτός ο χαρακτήρας ταιριάζει την αρχή μιας συμβολοσειράς. Αν απλώς ορίσετε ένα regex όπως "test", θα ταιριάξει, για παράδειγμα με το "this is a test" αφου αυτή η πρόταση περιέχει το "test." Όμως, μερικές φορές είναι χρήσιμο να σιγουρέψουμε οτι αυτή η πρόταση αρχίζει πραγματικά με αυτό το κείμενο. Αυτό μπορεί να γίνει με το ^. Για παράδειγμα "^test" σημαίνει οτι η πρόταση πρέπει να αρχίζει με "test." Επιπλέον, ο χαρακτήρας $ είναι το "δεξί άκρο." Αυτός ο χαρακτήρας ταιριάζει με το τέλος μιας πρότασης. Οπότε αν θα πρεπε να κάνετε "^test$", αυτή η πρόταση θα πρέπει να είναι ακριβώς η λέξη "test."

Παρόμοιες δοκιμές υπάρχουν επίσης για τις λέξεις. Όλοι οι άλλοι ισχυρισμοί ορίζονται χρησιμοποιόντας ένα \ ακολουθούμενο απο έναν ειδικό χαρακτήρα. Για παράδειγμα, για να δοκιμάσετε την αρχή και το τέλος μιας λέξης, μπορείτε να χρησιμοποιήσετε \< και \> αντίστοιχα.

Οι ισχυρισμοί που απομένουν συντάσονται σε δύο μορφές, μια κανονική και μια αντιστρεμένη. Οι ισχυρισμοί αυτοί βρίσκονται παρακάτω:

- `\b` - Word boundary
- `\B` - Non-word boundary
- `\d` - Αριθμιτικός χαρακτήρας (πανομοιότυπο με `[[:digit:]]`)
- `\D` - Μή αριθμιτικός χαρακτήρας (πανομοιότυπο με `[^[:digit:]]`)
- `\s` - Χαρακτήρας Space (πανομοιότυπο με `[[:space:]]`)
- `\S` - Χαρακτήρας μη-space (πανομοιότυπο με `[^[:space:]]`)
- `\w` - Χαρακτήρας Word (πανομοιότυπο με `[[:alnum:]_]`)
- `\W` - Χαρακτήρας μή-word (πανομοιότυπο με `[^[:alnum:]_]`)

A.6 Εναλακτικότητα

Η εναλακτικότητα είναι μια μέθοδος για να πούμε "ή." Ο τελεστής εναλαντικότητας είναι η κάθετη μπάρα (|). Για παράδειγμα, Αν θέλετε να πείτε "a ή b" μπορείτε να κάνετε "a|b". Για κανονικά γράμματα, αυτό μπορεί να αντικατασταθεί με μια έκφραση bracket, αλλα η εναλακτικότητα μπορεί να χρησιμοποιηθεί επίσης με υποεκφράσεις (που εξηγούνται στην επόμενη ενότητα).

A.7 Υποεκφράσεις

Οι υποεκφράσεις είναι ένα μέρος ενός regex που εκλαμβάνεται ώς ξεχωριστή οντότητα. Είναι δύο τρόποι να δημιουργήσετε μια υποέκφραση. Οι δύο τρόποι διαφέρουν μόνο στο στοιχείο του "back references," που θα εξηγηθούν αργότερα. Για να καθορίσετε μια υποέκφραση που χρησιμοποιεί back references, απλώς δεσμεύστε το με μια παρένθεση (). Για να δημιουργήσετε μια υποέκφραση που δεν χρησιμοποιεί back references, αντικαθαστείστε την ανοιχτή παρένθεση με, "(?:". Για παράδειγμα, "([a-z])" και "(?:[a-z])". Ο λόγος που οι υπορκφράσεις είναι χρήσιμες είναι γιατι μπορείτε να βάλετε τελεστές στην έκφραση. Όλοι οι τελεστές επανάληψης, για παράδειγμα, που αναφέρθηκαν ώς "X η περισσότεροι απο τους προηγούμενους χαρακτήρες, " μπορεί επίσης να χρησιμοποιηθεί για το "X ή περισσότερες απο τις προηγούμενες υποεκφράσεις." Για παράδειγμα, αν έχετε ένα regex με "[0-9][a-z][0-9]", για να ταιριάξει με έναν αριθμό, ακολουθούμενο απο ένα γράμμα, ακολουθούμενο απο έναν αριθμό, και τότε αποφασίζετε άν θέλετε να ταιριάζει με αυτήν την ακολουθεία ξανά. Συνήθως, θα κάνατε, "[0-9][a-z][0-9][0-9][a-z][0-9]". Με τις υποεκφράσεις, όμως, μπορείτε να κάνετε απλώς "([0-9][a-z][0-9]){2}".

A.8 Back References

Τα Back references σας επιτρέπουν να αναφερθείτε στην συμβολοσειρά που ταιριάξε με μία απο τις υποεκφράσεις του regexp. Μπορείτε να χρησιμοποιήσετε ένα back reference ορίζοντας ένα backslash (\) ακολουθούμενο απο έναν αριθμό, 0-9, για παράδειγμα \1. \0 είναι μια ειδική back reference που αναφέρεται σε ολόκληρο το regexp, αντί απλώς την υποέκφραση. Οι Back references είναι συνήθως χρήσιμες όταν θέλετε να ταιριάξετε κάτι που περιέχει την ίδια συμβολοσειρά δύο φορές. Για παράδειγμα, πείτε οτι έχετε ένα nick!user@host. Ξέρετε οτι υπάρχει ένα trojan που χρησιμοποιεί ένα nickname και πραγματικό όνομα που ταιριάζει με το "[0-9][a-z]{5}", και όσο το nickname τόσο και το πραγματικό όνομα είναι το ίδιο. Αν χρησιμοποιήσετε το "[0-9][a-z]{5}![0-9][a-z]{5}@.+" δεν θα λειτουργήσει γιατι θα επέτρεπε το nickname και το πραγματικό όνομα να είναι διαφορετικά. Για παράδειγμα, το nickname θα μπορούσε να είναι 1abcde και το πραγματικό όνομα 2fghij. Οι Back references σας επιτρέπουν να υπερπηδήσετε αυτόν τον περιορισμό. Αν χρησιμοποιήσετε το "([0-9][a-z]{5})!\1@.+" θα λειτουργήσει όπως και θα περιμέναμε. Αυτό ψάχνει για το nickname που ταιριάζει με την ορισμένη υποέκφραση και έπειτα χρησιμοποιεί μια back reference για να πεί οτι αυτό το πραγματικό όνομα πρέπει να είναι το ίδιο κείμενο.

Αφου μπορείτε να έχετε μόνο 9 back references, αυτός είναι ο λόγος που το (?:) είναι χρήσιμο. Σας επιτρέπει να δημιουργήσετε μια υποέκφραση χωρίς να χρειαστείτε την back reference. Επιπλέον, αφου οι πληροφορίες back reference δεν χρειάζονται να σωθούν, είναι επίσης γρηγορότερο. Γιαυτό, οι μή-back reference υποεκφράσεις πρέπει να χρησιμοποιούνται όταν οι back references δεν είναι απαραίτητες.

A.9 Ευαισθησία Κεφαλαίων/μικρών

Όπως προαναφέρθηκε, το Unreal δεν αναγνωρίζει κεφαλαία/μικρά στα regexps απο προεπιλογήt. ο βασικός λόγος για αυτό είναι οτι υπάρχουν πολλές περισσότερες περιπτώσεις στις οποίες χρειάζεστε να μήν υπαρχει ευαισθησία κεφαλαίων/μικρών παρά να έχει, για παράδειγμα, αν εμποδίσετε το κείμενο "www.test.com," θα θέλετε επίσης να εμποδίσετε και το "WWW.TEST.COM". Όμως, υπάρχουν και περιπτώσεις που θέλετε ευαισθησία κεφαλαίων/μικρών, για παράδειγμα, να ταιριάξετε με συγκεκριμένα trojans. Γιαυτον τον λόγο, παρέχεται μια μέθοδος για να γίνεται δυναμική αλλαγή της ευαισθησίας κεφαλαίων/μικρών. Για να απενεργοποιήσετε την ευαισθησία, απλώς χρησιμοποιήστε "(?-i)" και για να την ενεργοποιήσετε, "(?i)". Για παράδειγμα, "(?-i)[a-z](?i)[a-z]" θα ταιριάξει με ένα μή-κεφαλαίο γράμμα (ευαισθησία κεφαλαίων/μικρών είναι απενεργοποιημένη) ακολουθούμενο απο είτε ένα κεφαλαίο είτε μικρό γράμμα (ευαισθησία κεφαλαίων/μικρών είναι ενεργοποιημένη). Επιπλέον, αντι να πρέπει πάντα να θυμάστε να ενεργοποιείτε την επιλογή όταν τελειώνετε, μπορείτε επίσης να ορίσετε την αλλαγή της επιλογής να γίνεται μόνο σε υποεκφράσεις, για παράδειγμα, "(?-i:[a-z])[a-z]" είναι πανομοιότυπο με το προηγούμενο regexp γιατι το -i ορίζεται μόνο στην καθορισμένη υποέκφραση.