You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[Signature Testing and Management](#signature-testing-and-management)
@@ -13,12 +15,102 @@ Table Of Contents
13
15
14
16
This user guide presents an overview of the various ways that *libclamav* can be used through the tools provided by ClamAV. To learn more about how to better use each facet of ClamAV that interests you, please follow the links provided.
15
17
18
+
## High-Level Software Diagram
19
+
20
+
```mermaid
21
+
flowchart TD
22
+
subgraph CLAMAV[ClamAV Programs, Services, Libraries, and Data]
23
+
DB[(Virus Databases)]
24
+
NET[(ClamAV mirrors / update source)]
25
+
26
+
LF[libfreshclam<br/>update library]
27
+
28
+
FC[freshclam<br/>updates databases]
29
+
CD[clamd<br/>scanner daemon]
30
+
CS[clamscan<br/>standalone scanner]
31
+
CDS[clamdscan<br/>client for clamd]
32
+
CDT[clamdtop<br/>monitor for clamd]
33
+
COA[clamonacc<br/>on-access scanner]
34
+
CMI[clamav-milter<br/>mail filter]
35
+
ST[sigtool<br/>signature/db utility]
36
+
CBC[clambc<br/>bytecode utility]
37
+
CCF[clamconf<br/>config/report utility]
38
+
CSU[clamsubmit<br/>sample submission tool]
39
+
40
+
NET --> FC
41
+
LF --> FC
42
+
FC --> DB
43
+
44
+
DB --> CD
45
+
DB --> CS
46
+
DB --> ST
47
+
DB --> CBC
48
+
49
+
CDS --> CD
50
+
CDT --> CD
51
+
COA --> CD
52
+
CMI --> CD
53
+
end
54
+
55
+
```
56
+
57
+
## Rough Scan Flowchart
58
+
59
+
```mermaid
60
+
flowchart LR
61
+
subgraph DIRECT[Direct scan flow]
62
+
direction LR
63
+
CS[clamscan]
64
+
CS_VERDICT[Scan verdicts / alerts]
65
+
CS_META[Logs / metadata]
66
+
67
+
CS -->|report verdict| CS_VERDICT
68
+
CS -->|emit logs / metadata| CS_META
69
+
end
70
+
71
+
subgraph CLIENTSERVER[Client/server scan flow]
72
+
direction LR
73
+
74
+
subgraph CLIENTS[ ]
75
+
direction TB
76
+
CDS[clamdscan]
77
+
COA[clamonacc]
78
+
CMI[clamav-milter]
79
+
end
80
+
81
+
subgraph DAEMON[ ]
82
+
direction TB
83
+
CD[clamd]
84
+
end
85
+
86
+
subgraph OUTPUTS[ ]
87
+
direction TB
88
+
CD_VERDICT[Scan verdicts / alerts]
89
+
CD_META[Logs / metadata]
90
+
end
91
+
92
+
CDS -->|request scan| CD
93
+
COA -->|request scan| CD
94
+
CMI -->|request scan| CD
95
+
96
+
CDS -->|report verdict| CD_VERDICT
97
+
COA -->|report verdict| CD_VERDICT
98
+
CMI -->|report verdict| CD_VERDICT
99
+
100
+
CDS -->|emit logs / metadata| CD_META
101
+
COA -->|emit logs / metadata| CD_META
102
+
CMI -->|emit logs / metadata| CD_META
103
+
end
104
+
105
+
```
106
+
16
107
## Daemon
17
108
18
109
The ClamAV Daemon, or [`clamd`](Usage/Scanning.md#clamd), is a multi-threaded daemon that uses *libclamav* to [scan files for viruses](Usage/Scanning.md). ClamAV provides a number of tools which interface with this daemon. They are, as follows:
19
110
20
111
-[`clamdscan`](Usage/Scanning.md#clamdscan) - a simple scanning client
21
-
-[`on-access scanning`](Usage/Scanning.md#On-access-scanning) - provides real-time protection via a `clamd` instance
112
+
-[`clamonacc`](Usage/Scanning.md#On-access-scanning) - provides on-access scanning (aka real-time protection via a `clamd` instance
113
+
-[`clamav-milter`](Usage/Scanning.md#On-access-scanning) - a mail filtering plugin for the Sendmail email processing server software to scan emails
22
114
-[`clamdtop`](Usage/Scanning.md#clamdtop) - a resource monitoring interface for `clamd`
23
115
24
116
## Scanner
@@ -40,6 +132,4 @@ The more complex tools ClamAV provides each require some degree of [configuratio
40
132
-[`clamd.conf`](Usage/Configuration.md#clamdconf) - for configuring the behavior of the ClamAV Daemon `clamd` and associated tools
41
133
-[`freschclam.conf`](Usage/Configuration.md#freshclamconf) - for configuring the behavior of the signature database update tool, `freshclam`
42
134
43
-
ClamAV also provides a mail filtering tool called [`clamav-milter`](Usage/Configuration.md#clamav-milterconf) which can be attached to a `clamd` instance for mail scanning purposes.
44
-
45
135
Additionally, a tool called [`clamconf`](Usage/Configuration.md#clamconf) allows users to check the configurations used by each other tool, pulling information from the configuration files listed above, alongside other relevant information.
0 commit comments