From 9fd3cc4548140d81d34400d0be9404c0400cf301 Mon Sep 17 00:00:00 2001 From: Carla Schroder Date: Wed, 17 Sep 2014 20:23:53 -0700 Subject: [PATCH 01/13] new page-- Configuring the ClamAV Antivirus Scanner --- .../configuration/configuration-antivirus.rst | 160 ++++++++++++++++++ admin_manual/images/antivirus-app.png | Bin 0 -> 12111 bytes admin_manual/images/antivirus-config.png | Bin 0 -> 15002 bytes .../images/antivirus-daemon-socket.png | Bin 0 -> 16412 bytes admin_manual/images/antivirus-daemon.png | Bin 0 -> 15398 bytes admin_manual/images/antivirus-executable.png | Bin 0 -> 16061 bytes admin_manual/images/antivirus-logging.png | Bin 0 -> 5047 bytes 7 files changed, 160 insertions(+) create mode 100644 admin_manual/configuration/configuration-antivirus.rst create mode 100644 admin_manual/images/antivirus-app.png create mode 100644 admin_manual/images/antivirus-config.png create mode 100644 admin_manual/images/antivirus-daemon-socket.png create mode 100644 admin_manual/images/antivirus-daemon.png create mode 100644 admin_manual/images/antivirus-executable.png create mode 100644 admin_manual/images/antivirus-logging.png diff --git a/admin_manual/configuration/configuration-antivirus.rst b/admin_manual/configuration/configuration-antivirus.rst new file mode 100644 index 000000000..334f15107 --- /dev/null +++ b/admin_manual/configuration/configuration-antivirus.rst @@ -0,0 +1,160 @@ +Configuring the ClamAV Antivirus Scanner +======================================== + +You can configure your ownCloud server to automatically run a virus scan on +newly-uploaded files with the Antivirus App for Files. The Antivirus App for +Files integrates the open source anti-virus engine `ClamAV +`_ with ownCloud. ClamAV detects all forms +of malware including Trojan horses, viruses, and worms, and it operates on all +major file types including Windows, Linux, and Mac files, compressed files, +executables, image files, Flash, PDF, and many others. ClamAV's Freshclam +daemon automatically updates its malware signature database at scheduled +intervals. + +ClamAV runs on Linux and any Unix-type operating system, and Microsoft Windows. +However, it has only been tested with ownCloud on Linux, so these instructions +are for Linux systems. You must first install ClamAV, and then install and +configure the Antivirus App for Files on ownCloud. + +Installing ClamAV +================= + +As always, the various Linux distributions manage installing and configuring +ClamAV in different ways. + +Debian, Ubuntu, Linux Mint + On Debian and Ubuntu systems, and their many variants, install ClamAV with + these commands: + +:: + + apt-get install clamav clamav-daemon + +The installer automatically creates default configuration files and launches +the ``clamd`` and ``freshclam`` daemons. You don't have to do anything more, +though it's a good idea to review the ClamAV documentation and your settings in +``/etc/clamav/``. Enable verbose logging for both ``clamd`` and ``freshclam`` +until you get any kinks worked out. + +Red Hat, CentOS 7 + On Red Hat 7 and related systems you must install the Extra Packages for + Enterprise Linux (EPEL) repository, and then install ClamAV: + +:: + + yum install epel-release + yum install clamav clamav-scanner clamav-scanner-systemd + clamav-server clamav-server-systemd clamav-update + +This installs two configuration files: ``/etc/freshclam.conf`` and +``/etc/clamd.d/scan.conf``. You must edit both of these before you can run +ClamAV. Both files are well-commented, and ``man clamd.conf`` and ``man +freshclam.conf`` explain all the options. Refer to ``/etc/passwd`` and +``/etc/group`` when you need to verify the ClamAV user and group. + +First work through ``/etc/freshclam.conf`` and configure your options. +``freshclam`` updates your malware database, so you want it to run frequently to +get updated malware signatures. Run it manually post-installation to download +your first set of malware signatures: + +:: + + freshclam + +The EPEL packages do not include an init file for ``freshclam``, so the quick +and easy way to set it up for regular checks is with a cron job. This example +runs it every hour at 47 minutes past the hour: + +:: + + # m h dom mon dow command + 47 * * * * /usr/bin/freshclam --quiet + +Please avoid any multiples of 10, because those are when the ClamAV servers are +hit the hardest for updates. + +Next, edit ``/etc/clamd.d/scan.conf``. When you're finished you must enable +ClamAV's service file and launch the ``clamd`` daemon: + +:: + + systemctl enable clamd@scan.service + systemctl start clamd@scan.service + +That should take care of everything. Enable verbose logging for both ``clamd`` +and ``freshclam`` until it is running reliably. + +Installing the Antivirus App for Files +====================================== + +Download the the Antivirus App for Files from the `ownCloud apps store +`_ , and +unpack it into your ``owncloud/apps/`` directory. Then go to your +ownCloud Apps page to enable it. + +.. figure:: ../images/antivirus-app.png + +Configuring ClamAV on ownCloud +============================== + +Next, go to your ownCloud Admin page and set your ownCloud logging level to +Everything. + +.. figure:: ../images/antivirus-logging.png + +Now find your Antivirus Configuration panel on your Admin page. + +.. figure:: ../images/antivirus-config.png + +ClamAV runs in one of three modes: + +* Daemon (Socket): ClamAV is running on the same server as ownCloud. The ClamAV + daemon, ``clamd``, runs in the background. This is the best choice for a + busy server with a lot of file uploads. + +* Executable: ClamAV is running on the same server as ownCloud, and the ClamAV + process is started and stopped with each file upload. Use this if you are + running a server without a lot of file uploads. + +* Daemon: ClamAV is running on a different server. This is the least favorable + option, as you have to deal with network congestion and server outages. + +Daemon (Socket) + ownCloud should detect your ``clamd`` socket and fill in the ``Socket`` + field. This is the ``LocalSocket`` option in ``clamd.conf``. You can + run ``netstat`` to verify: + +:: + netstat -a|grep clam + unix 2 [ ACC ] STREAM LISTENING 15857 /var/run/clamav/clamd.ctl + +.. figure:: ../images/antivirus-daemon-socket.png + + The ``Stream Length`` value limits the size of files to be scanned. 10485760 + bytes, or ten megabytes, is the default. Files larger than this will not be + uploaded or scanned. The ClamAV documentation recommends setting this to the + same value as your limit for attachments on your email server. + + ``Action for infected files found while scanning`` gives you the choice of + logging any alerts without deleting the files, or immediately deleting + infected files. + +Executable + The Executable option requires the path to ``clamscan``, which is the + interactive ClamAV scanning command. ownCloud should find it automatically. + + .. figure:: ../images/antivirus-executable.png + +Daemon + For the Daemon option you need the hostname or IP address of the remote + server running ClamAV, and the port number. The port number is the TCPSocket + value in ``clamd.conf``. + +.. figure:: ../images/antivirus-daemon-socket.png + +When you are satisfied with how ClamAV is operating, you might want to go +back and change all of your logging to lower levels. + + + + diff --git a/admin_manual/images/antivirus-app.png b/admin_manual/images/antivirus-app.png new file mode 100644 index 0000000000000000000000000000000000000000..30b65a2f153b9004d1b29d72ab62e5f6a2e773c5 GIT binary patch literal 12111 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 literal 0 HcmV?d00001 diff --git a/admin_manual/images/antivirus-config.png b/admin_manual/images/antivirus-config.png new file mode 100644 index 0000000000000000000000000000000000000000..8187c1be5bb5d8f79c3059cda945650161ee04e1 GIT binary patch literal 15002 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 literal 0 HcmV?d00001 diff --git a/admin_manual/images/antivirus-daemon-socket.png b/admin_manual/images/antivirus-daemon-socket.png new file mode 100644 index 0000000000000000000000000000000000000000..adb419a7641eb062d70074eab7cb314750b32c03 GIT binary patch literal 16412 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 WvX>WN^}~(w2qign*%FzD{{J6b#1TUP literal 0 HcmV?d00001 diff --git a/admin_manual/images/antivirus-daemon.png b/admin_manual/images/antivirus-daemon.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3b9ed1ae0cdd5050f7f484483cc22c24b925a1 GIT binary patch literal 15398 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 literal 0 HcmV?d00001 diff --git a/admin_manual/images/antivirus-logging.png b/admin_manual/images/antivirus-logging.png new file mode 100644 index 0000000000000000000000000000000000000000..0e4cbec24a7c41745ce1acd18701d33f7bed01bd GIT binary patch literal 5047 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 Date: Wed, 17 Sep 2014 20:27:12 -0700 Subject: [PATCH 02/13] Typo correction --- admin_manual/configuration/configuration-antivirus.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/admin_manual/configuration/configuration-antivirus.rst b/admin_manual/configuration/configuration-antivirus.rst index 334f15107..e9a308071 100644 --- a/admin_manual/configuration/configuration-antivirus.rst +++ b/admin_manual/configuration/configuration-antivirus.rst @@ -125,6 +125,7 @@ Daemon (Socket) run ``netstat`` to verify: :: + netstat -a|grep clam unix 2 [ ACC ] STREAM LISTENING 15857 /var/run/clamav/clamd.ctl From b6a336820a197f51a76d2ec9f95ff98f2b10ea66 Mon Sep 17 00:00:00 2001 From: Carla Schroder Date: Thu, 18 Sep 2014 20:37:30 -0700 Subject: [PATCH 03/13] Update configuration-antivirus.rst Corrected antivirus mode options. --- .../configuration/configuration-antivirus.rst | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/admin_manual/configuration/configuration-antivirus.rst b/admin_manual/configuration/configuration-antivirus.rst index e9a308071..e87d440d5 100644 --- a/admin_manual/configuration/configuration-antivirus.rst +++ b/admin_manual/configuration/configuration-antivirus.rst @@ -109,15 +109,16 @@ Now find your Antivirus Configuration panel on your Admin page. ClamAV runs in one of three modes: * Daemon (Socket): ClamAV is running on the same server as ownCloud. The ClamAV - daemon, ``clamd``, runs in the background. This is the best choice for a - busy server with a lot of file uploads. + daemon, ``clamd``, runs in the background. When there is no activity ``clamd`` places + a minimal load on your system. If your users upload large volumes of files you will + see high CPU usage. -* Executable: ClamAV is running on the same server as ownCloud, and the ClamAV - process is started and stopped with each file upload. Use this if you are - running a server without a lot of file uploads. - -* Daemon: ClamAV is running on a different server. This is the least favorable - option, as you have to deal with network congestion and server outages. +* Daemon: ClamAV is running on a different server. This is a good option for busy ownCloud + servers with high volumes of file uploads. + +* Executable: ClamAV is running on the same server as ownCloud, and the ``clamscan`` + command is started and then stopped with each file upload. ``clamscan`` is slow and not + always reliable for on-demand usage; it is better to use one of the daemon modes. Daemon (Socket) ownCloud should detect your ``clamd`` socket and fill in the ``Socket`` @@ -154,7 +155,7 @@ Daemon .. figure:: ../images/antivirus-daemon-socket.png When you are satisfied with how ClamAV is operating, you might want to go -back and change all of your logging to lower levels. +back and change all of your logging to less verbose levels. From 4131057aec241fd43b06843c42b5853cda9b2ca5 Mon Sep 17 00:00:00 2001 From: Carla Schroder Date: Fri, 19 Sep 2014 09:17:23 -0700 Subject: [PATCH 04/13] Error corrections. --- .../configuration/configuration-antivirus.rst | 56 +++++++++---------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/admin_manual/configuration/configuration-antivirus.rst b/admin_manual/configuration/configuration-antivirus.rst index e87d440d5..998dbf8c9 100644 --- a/admin_manual/configuration/configuration-antivirus.rst +++ b/admin_manual/configuration/configuration-antivirus.rst @@ -30,21 +30,21 @@ Debian, Ubuntu, Linux Mint apt-get install clamav clamav-daemon -The installer automatically creates default configuration files and launches -the ``clamd`` and ``freshclam`` daemons. You don't have to do anything more, -though it's a good idea to review the ClamAV documentation and your settings in -``/etc/clamav/``. Enable verbose logging for both ``clamd`` and ``freshclam`` -until you get any kinks worked out. +The installer automatically creates default configuration files and launches the +``clamd`` and ``freshclam`` daemons. You don't have to do anything more, though +it's a good idea to review the ClamAV documentation and your settings in +``/etc/clamav/``. Enable verbose logging in both ``clamd.conf`` and +``freshclam.conf`` until you get any kinks worked out. -Red Hat, CentOS 7 +Red Hat 7, CentOS 7 On Red Hat 7 and related systems you must install the Extra Packages for Enterprise Linux (EPEL) repository, and then install ClamAV: :: yum install epel-release - yum install clamav clamav-scanner clamav-scanner-systemd - clamav-server clamav-server-systemd clamav-update + yum install clamav clamav-scanner clamav-scanner-systemd clamav-server + clamav-server-systemd clamav-update This installs two configuration files: ``/etc/freshclam.conf`` and ``/etc/clamd.d/scan.conf``. You must edit both of these before you can run @@ -74,15 +74,15 @@ Please avoid any multiples of 10, because those are when the ClamAV servers are hit the hardest for updates. Next, edit ``/etc/clamd.d/scan.conf``. When you're finished you must enable -ClamAV's service file and launch the ``clamd`` daemon: +the ``clamd`` service file and start ``clamd``: :: systemctl enable clamd@scan.service systemctl start clamd@scan.service -That should take care of everything. Enable verbose logging for both ``clamd`` -and ``freshclam`` until it is running reliably. +That should take care of everything. Enable verbose logging in ``scan.conf`` +and ``freshclam.conf`` until it is running the way you want. Installing the Antivirus App for Files ====================================== @@ -109,16 +109,17 @@ Now find your Antivirus Configuration panel on your Admin page. ClamAV runs in one of three modes: * Daemon (Socket): ClamAV is running on the same server as ownCloud. The ClamAV - daemon, ``clamd``, runs in the background. When there is no activity ``clamd`` places - a minimal load on your system. If your users upload large volumes of files you will - see high CPU usage. + daemon, ``clamd``, runs in the background. When there is no activity ``clamd`` + places a minimal load on your system. If your users upload large volumes of + files you will see high CPU usage. -* Daemon: ClamAV is running on a different server. This is a good option for busy ownCloud - servers with high volumes of file uploads. +* Daemon: ClamAV is running on a different server. This is a good option + for ownCloud servers with high volumes of file uploads. -* Executable: ClamAV is running on the same server as ownCloud, and the ``clamscan`` - command is started and then stopped with each file upload. ``clamscan`` is slow and not - always reliable for on-demand usage; it is better to use one of the daemon modes. +* Executable: ClamAV is running on the same server as ownCloud, and the + ``clamscan`` command is started and then stopped with each file upload. + ``clamscan`` is slow and not always reliable for on-demand usage; it is + better to use one of the daemon modes. Daemon (Socket) ownCloud should detect your ``clamd`` socket and fill in the ``Socket`` @@ -141,22 +142,19 @@ Daemon (Socket) logging any alerts without deleting the files, or immediately deleting infected files. +Daemon + For the Daemon option you need the hostname or IP address of the remote + server running ClamAV, and the server's port number. + +.. figure:: ../images/antivirus-daemon-socket.png + Executable The Executable option requires the path to ``clamscan``, which is the interactive ClamAV scanning command. ownCloud should find it automatically. - .. figure:: ../images/antivirus-executable.png - -Daemon - For the Daemon option you need the hostname or IP address of the remote - server running ClamAV, and the port number. The port number is the TCPSocket - value in ``clamd.conf``. - -.. figure:: ../images/antivirus-daemon-socket.png +.. figure:: ../images/antivirus-executable.png When you are satisfied with how ClamAV is operating, you might want to go back and change all of your logging to less verbose levels. - - From 5196872b8f87d79266585d3f753b2c0ccfa00155 Mon Sep 17 00:00:00 2001 From: Carla Schroder Date: Fri, 19 Sep 2014 13:14:20 -0700 Subject: [PATCH 05/13] Update configuration-antivirus.rst Markup fixes. --- .../configuration/configuration-antivirus.rst | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/admin_manual/configuration/configuration-antivirus.rst b/admin_manual/configuration/configuration-antivirus.rst index 998dbf8c9..41b72b5e0 100644 --- a/admin_manual/configuration/configuration-antivirus.rst +++ b/admin_manual/configuration/configuration-antivirus.rst @@ -24,9 +24,7 @@ ClamAV in different ways. Debian, Ubuntu, Linux Mint On Debian and Ubuntu systems, and their many variants, install ClamAV with - these commands: - -:: + these commands::. apt-get install clamav clamav-daemon @@ -38,9 +36,7 @@ it's a good idea to review the ClamAV documentation and your settings in Red Hat 7, CentOS 7 On Red Hat 7 and related systems you must install the Extra Packages for - Enterprise Linux (EPEL) repository, and then install ClamAV: - -:: + Enterprise Linux (EPEL) repository, and then install ClamAV::. yum install epel-release yum install clamav clamav-scanner clamav-scanner-systemd clamav-server @@ -55,9 +51,7 @@ freshclam.conf`` explain all the options. Refer to ``/etc/passwd`` and First work through ``/etc/freshclam.conf`` and configure your options. ``freshclam`` updates your malware database, so you want it to run frequently to get updated malware signatures. Run it manually post-installation to download -your first set of malware signatures: - -:: +your first set of malware signatures::. freshclam @@ -74,9 +68,7 @@ Please avoid any multiples of 10, because those are when the ClamAV servers are hit the hardest for updates. Next, edit ``/etc/clamd.d/scan.conf``. When you're finished you must enable -the ``clamd`` service file and start ``clamd``: - -:: +the ``clamd`` service file and start ``clamd``::. systemctl enable clamd@scan.service systemctl start clamd@scan.service @@ -124,9 +116,7 @@ ClamAV runs in one of three modes: Daemon (Socket) ownCloud should detect your ``clamd`` socket and fill in the ``Socket`` field. This is the ``LocalSocket`` option in ``clamd.conf``. You can - run ``netstat`` to verify: - -:: + run ``netstat`` to verify::. netstat -a|grep clam unix 2 [ ACC ] STREAM LISTENING 15857 /var/run/clamav/clamd.ctl From c1e17d71921dcd7a51b0aae9de48ff0bfe821322 Mon Sep 17 00:00:00 2001 From: Carla Schroder Date: Fri, 19 Sep 2014 13:16:06 -0700 Subject: [PATCH 06/13] Update configuration-antivirus.rst --- admin_manual/configuration/configuration-antivirus.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/admin_manual/configuration/configuration-antivirus.rst b/admin_manual/configuration/configuration-antivirus.rst index 41b72b5e0..95d37648b 100644 --- a/admin_manual/configuration/configuration-antivirus.rst +++ b/admin_manual/configuration/configuration-antivirus.rst @@ -57,9 +57,7 @@ your first set of malware signatures::. The EPEL packages do not include an init file for ``freshclam``, so the quick and easy way to set it up for regular checks is with a cron job. This example -runs it every hour at 47 minutes past the hour: - -:: +runs it every hour at 47 minutes past the hour::. # m h dom mon dow command 47 * * * * /usr/bin/freshclam --quiet From 1bffbf6c474b61eccb0d97bc62b4d920af14e074 Mon Sep 17 00:00:00 2001 From: Carla Schroder Date: Fri, 19 Sep 2014 13:17:41 -0700 Subject: [PATCH 07/13] Update configuration-antivirus.rst --- admin_manual/configuration/configuration-antivirus.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin_manual/configuration/configuration-antivirus.rst b/admin_manual/configuration/configuration-antivirus.rst index 95d37648b..0537affcc 100644 --- a/admin_manual/configuration/configuration-antivirus.rst +++ b/admin_manual/configuration/configuration-antivirus.rst @@ -24,7 +24,7 @@ ClamAV in different ways. Debian, Ubuntu, Linux Mint On Debian and Ubuntu systems, and their many variants, install ClamAV with - these commands::. + these commands:: apt-get install clamav clamav-daemon From ebee635c87486d497ce7483c6b615c9bde45f118 Mon Sep 17 00:00:00 2001 From: Carla Schroder Date: Fri, 19 Sep 2014 13:18:47 -0700 Subject: [PATCH 08/13] Update configuration-antivirus.rst --- admin_manual/configuration/configuration-antivirus.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/admin_manual/configuration/configuration-antivirus.rst b/admin_manual/configuration/configuration-antivirus.rst index 0537affcc..e6af11873 100644 --- a/admin_manual/configuration/configuration-antivirus.rst +++ b/admin_manual/configuration/configuration-antivirus.rst @@ -36,7 +36,7 @@ it's a good idea to review the ClamAV documentation and your settings in Red Hat 7, CentOS 7 On Red Hat 7 and related systems you must install the Extra Packages for - Enterprise Linux (EPEL) repository, and then install ClamAV::. + Enterprise Linux (EPEL) repository, and then install ClamAV:: yum install epel-release yum install clamav clamav-scanner clamav-scanner-systemd clamav-server @@ -51,13 +51,13 @@ freshclam.conf`` explain all the options. Refer to ``/etc/passwd`` and First work through ``/etc/freshclam.conf`` and configure your options. ``freshclam`` updates your malware database, so you want it to run frequently to get updated malware signatures. Run it manually post-installation to download -your first set of malware signatures::. +your first set of malware signatures:: freshclam The EPEL packages do not include an init file for ``freshclam``, so the quick and easy way to set it up for regular checks is with a cron job. This example -runs it every hour at 47 minutes past the hour::. +runs it every hour at 47 minutes past the hour:: # m h dom mon dow command 47 * * * * /usr/bin/freshclam --quiet @@ -66,7 +66,7 @@ Please avoid any multiples of 10, because those are when the ClamAV servers are hit the hardest for updates. Next, edit ``/etc/clamd.d/scan.conf``. When you're finished you must enable -the ``clamd`` service file and start ``clamd``::. +the ``clamd`` service file and start ``clamd``:: systemctl enable clamd@scan.service systemctl start clamd@scan.service @@ -114,7 +114,7 @@ ClamAV runs in one of three modes: Daemon (Socket) ownCloud should detect your ``clamd`` socket and fill in the ``Socket`` field. This is the ``LocalSocket`` option in ``clamd.conf``. You can - run ``netstat`` to verify::. + run ``netstat`` to verify:: netstat -a|grep clam unix 2 [ ACC ] STREAM LISTENING 15857 /var/run/clamav/clamd.ctl From 650372ddd01d5219074e5a568b19f8c13051aa48 Mon Sep 17 00:00:00 2001 From: Carla Schroder Date: Fri, 19 Sep 2014 13:19:48 -0700 Subject: [PATCH 09/13] Update configuration-antivirus.rst --- admin_manual/configuration/configuration-antivirus.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/admin_manual/configuration/configuration-antivirus.rst b/admin_manual/configuration/configuration-antivirus.rst index e6af11873..3e47d65d0 100644 --- a/admin_manual/configuration/configuration-antivirus.rst +++ b/admin_manual/configuration/configuration-antivirus.rst @@ -26,7 +26,7 @@ Debian, Ubuntu, Linux Mint On Debian and Ubuntu systems, and their many variants, install ClamAV with these commands:: - apt-get install clamav clamav-daemon + apt-get install clamav clamav-daemon The installer automatically creates default configuration files and launches the ``clamd`` and ``freshclam`` daemons. You don't have to do anything more, though @@ -38,9 +38,9 @@ Red Hat 7, CentOS 7 On Red Hat 7 and related systems you must install the Extra Packages for Enterprise Linux (EPEL) repository, and then install ClamAV:: - yum install epel-release - yum install clamav clamav-scanner clamav-scanner-systemd clamav-server - clamav-server-systemd clamav-update + yum install epel-release + yum install clamav clamav-scanner clamav-scanner-systemd clamav-server + clamav-server-systemd clamav-update This installs two configuration files: ``/etc/freshclam.conf`` and ``/etc/clamd.d/scan.conf``. You must edit both of these before you can run From d65306f24765edf40341ea7c79203f2fe86d82a2 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Sat, 20 Sep 2014 10:39:46 +0200 Subject: [PATCH 10/13] better cropped images --- admin_manual/images/antivirus-config.png | Bin 15002 -> 14462 bytes admin_manual/images/antivirus-daemon.png | Bin 15398 -> 14001 bytes admin_manual/images/antivirus-executable.png | Bin 16061 -> 14705 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/admin_manual/images/antivirus-config.png b/admin_manual/images/antivirus-config.png index 8187c1be5bb5d8f79c3059cda945650161ee04e1..af8d6dc6ab1f19910fa0e151844692afcbbfe647 100644 GIT binary patch literal 14462 zcmaib2RzpM-}hBX${wWex3jSexB>~I@fWWYy5uS@8|pZyqAEBD(9(pugjX z8^vZkXZ6e2;a}Tr<+U6L1e(f?e>O$%(Xir|+Z-<_pWW8Eor!{r;nqFQCIVp};ewp> z73bDJv2Nl&TGp%TKJN~%-TkZgNqd0W56;FMUuy-&%mbG$B-V;Dw7JS@v|hQ=c2&FM zV0N^1w0g9AgTf_l?jSc#mVBlP9Z#aW=jqd31}`tPRxd9OeK(RY{W{>$8P|7W+(9C) zZn2y5*l&%YgpW<>0rpde4>5-5&J5KnhqH@|W51ZlQc>VNQs*pQ?V7uw zqM~y7a#m($W`6!2CcHgeZ|#Yuvb^e9q4mZeKgf~@1fhdGrRgIh?LAB-^vAM*f@a4;w1qDkTg||x|wrr`sP7vxI7$0s( zau#2k?5k2!r{~}(C9Zpx^&~1rs;Q}Q_pj^URgF(gJ;Klb`SWKbX=yK&B-I$P$+3>Y z;^Yy$@zSMBBo0ZFV^NGeN((6_#QTz)2t#|1b%Yxl8d6bHXn}oZjeJHKT(1|Z!zTj>8Lc7nC*!P~aH+FDv(AIwP^r`OnO+J2p;S(nszkOS1 zHz7XX_|OCNQM1&uvu79UoWCDRI}jI8q(TMMFc=Jm~A|i{FLR7@vwA z>+P-Y?EJc{_cQIfg^9^WlPs4GGi&R)xw)4Y4>Ikz(en0&m6cW4ayGt9Sy@?2OY6vy z)SZ0l_a4VaM_bs~NZR+y@9^`ct8Z-VD7cku+*dd+EGl|? zwgl>;!Z&@d8DE?p#0SO3#C*omF);X+Y8N`C78bgBc&s)gsYWT8$jOn(3@uFdh4ZS? zP*Wcf6eQih&+v7;r^jx%{yN zGi<@7OW&7fe_!AZlYfeP(E6B>qVh8Q)>~KpLFNXAcTH*Evzs9PotK%Z8 z9_(d&ZPi)iA|WB+;^K1a)-BX;XJ@B@fdR)#BK`28Se5zt`Sg?&_t}w%Cr`A^%w8E2 z=bkeY2=0}wdP+(`xw)b;)wQ+1D+3tI_44s3C13`PZtU#T<*tYpwbA5% zl%MZ1|Mtj{Bc@+tT5@eTVpU9qc7Ol=9mfl|Q~X=w^5x6s=C7lpS!M3YaVp22Iw2{k z$D$WFbLH}72W-RJw{PV*?Z(>k>zTd8 z-CE8prKG%`FU=CoqL}8|oMDiYlT*4n$0{?F+vS;+oxN8i#lLuKA*B{+XlO|8+&Pse z!sc_MEuuD^qia{}H8hxIDEupK30_lIzgy806dar>%gD$m&R%DH%&kdqhu`z~c(3aZ zy6yAl$2wR=tz(3*(+!(TOP7TmP~`vXv9h{)`qU|I=J7TZ%^l|LtEWz#dUfS6J1I%+ z_1?XE%QroXiD|F;De!n*x4`jrRg|ENytK5m4E1-}6aVVf!ph?GSj4@4rXHhZzp6f5(wQ@7u%4-@sme-9_)bZ)B6(F-7M9V`QA1TaCLq4H?FOJl^cfvIO4XY&evuAI7 zdU$Akv5xpsDT;Hz?O{r4YF}@!CcnCdMpL#$lYm}H`x)Bs8u#_J;4*w^YV$>Ux4;vGc)ik_b-T3q&< zUYuqXvDDAhbUfwp;r`AuUx_H`4`1918F%gas4t|Xq;%!#)wxGv={qHdpSkL+Un}+Z{IFn zy?U#w#G}|rOHHjF?O#zr;neBVsJD#`x3}-@?d9Ix6&uQR-Wm;UX=YfM#R?~8a&oeM zA&Yk7&bu$Oubfik|4A%K~hQq zGbb!OJoAKvL>zH;r18az7g|{+UZwNP%Tqd!(vAeX1XJ+`BiHeZF-QA*7V{ zvbOf89$P9ZD&reBdQ#l&D4fl+gK7sJJ$lqTxxjw=_?A1HjxG)mwN9hEJbJXttm{s~ z^POtxA*4V^MpHeVZ+9^Ipr#8R#sLXa7cQhznl%+wcWJ9w#VDwzv@#2ABp|UQX&R4 zwbjj=hFL9goR^f9twx(OFTYe8u2T(IS^Axhu1?D?zWc;Yrsyv!3JR`M{TCb@vTz8| zf>GImBm4paYfRznIJMf^czx-E-J4FkZ6TCPe)_~9A#(iq?=_R!zA6%NQu1+YYwO&c z6UMelR`Q!SVPRpOOT)Y((H)W<+BhNCuPg7PYwzfwm)X93d#+8F=kzaX{|a-=2s9pM z%OUo|80;LRDvhgGud1t;f7?b_d39+$YfjW{4((?2`EyQb1ppBPgPwQh4P=MVlN2Kb zuHrYBE@_pxpPb{o?n@W_MYquDNUTcI#e+DZHl0QEOg*+@Wo2bJm{jCOm|WS}*~Q1_ zF@Kil$Mv#rMudf_-MBH3dM$S;=^EBBh>qp76aSq3d`t|RFZxt7&Pqjjxk=sARl(+q zIyync4^#*d3VV;6P{|A#rQc3$ztC`8n0_tNo|k&f`OYTEMc@^N&T%PST~B-)5C<;L z`&(UGTXgNfjwv!SGGSrihYuf4EV|p+j6Zw!tiqp`%QwfeB`h>_a_BpkmDQjA{(c*v5vwC$zM*Y(5ka6qNGj z4F+WW_wSQaQ!J+(56axD8|*4_IgSRNmDNyQZrD@qCwrGlnqu!M$5#M|f7)`%HXEQG z6ciL_IV3DCERKta=)N`H9-;7I#C>6+r!iTBm6g?8xHUy9>m!MSl!)d%F;E+cks!wQ zwX(9Zww5ydWX}-oejHD)yebi7c*86@cQx1s62U_;>?- z{b#m^*h$Pgch0UXI=Hzlqhe>9&r@-5aEw;eg!3K^$JvNd`gK0v8don;bPSzlF91&f*eiO3qCOut{i+{u8_2+Y@mS!8n-&&@#Pv0s($%|(gZ=%& zA|m!;Y$DOIp`muaf2IO_qxQVLy)n#osDA?78u|S@UuW!hQ#xkVVt3h=(c~o6I1v#M zCnu-3Eu%$6MU|Cu^wW41y$m@yd2>(Dp5t^fgLQGVG&Cy8$~$#~7@I1w>VmpO3v++k zKr6haw^mkFNn(Ivli1nWdzYHIfR;8-yT;#n=JCFXpGXnEoss8Na`HNkEJZv%pOTUi zgSsb=+`nQEE31(|4-b#C_|qEWpFe-*WM>;V@EQ2YP~hZc=j3Q>X&v271wfFLbUxub zDoWymwS=Cdf7Pi;7mfwrtC& zOH52`&TUG&E=%F!>dJn`^+!Vk<9^50rCXuBn>KBth{p{E?w%g&IPDt}7RKOYW@E## zd$$Sp6xm)CPW0Jp z$YbzpR%Mg)@||?ksWzh#ywu3hQ2fjpuoi*0?gG}LCQ77<1>(#VTSe+!MGqf6Qakvt z3O8Z!Ax8J?J#n@dv! zb4Wgw=f1Dg{js+YC0|opOUxj7P?~W}M4TsTehZC_^#D}j2|r{XcsDZ>HBOxD^^>}t zr;}DvQi26RkxW=wgYqtVUG{!B_MtH0 z*|U8iLcSL-U7`=KG0ti+KDKB7kCv9jGMRIvWo*8TsqiL3wmO<;29s0<-n@Z9M!UCtgS^E2rWhr=$d_BpHS4l+oUu zczef}hezqL?Vr|cd}4F6Ci)|anesk~RWvOz@xalecI#`a@$vD!OJ-(fkK^Lj8&o9? z5;0z76V)ZM{ct>ZRU7ry(y75rRepy?wc0A9_&NB0BX4v(e z;|x6*au)a-gi@S6{lyDm_XS(85~ZkPe&-T;CY`~*FxZE$#faJUf))VxO*)JFlub-c zEzPyrB=RRGCGi$fnOa(=fFE;l$;Mx_1P3ZAl4!0(`!oIg7VQPR@#(oq!N9^aME`-`&v#}6hpw$FW&GP1Iui3j>Cb#HNhF`3Wg?W2=v zh&A0|-LmP^5LjVcE0*?srrTF-NhkAXuwa z+!%|pvK9FbgXJxo2tSCOGjp>?!LLVEo~%{8x|C4zawj?A&Jgq&LjS*>q>ioL_(Myo za>&=&>_td=5f|b*NHf82>%#blt<7gqrGCZ{A=O_%r}WcB*<(Q&Dvr@Dm8+ z9e<(H|Nj2}dnM0kht6MPpIBT$v13q{6$`GqR#sO-W!T|YA2|PTGof0quE=HjZrz~8 z&6}U9-%ALuMq-xSy-UtU)8sFhw)sw(#G=Ri*xp!`ZGV0b(gnzo`+RS0-I0ccTA~6d z82ex@MZ7F!H-38SolQK%4!u1zSc>l)c=}r^`d@x}-yI^!#g!nrzQQQp78^%gTdYr1 z)Mq8koL@{%Nzuu(jV~xDKo7#%jf?9VvAuXj!Z6*I(+8nn?-n9W1#`LwVlHDz30Ky;Fp+z`2rD`o1mK zhH}Ra>-N0(gajWtwX0Y6N_vXVT?LvTu1&}BX{7D*{q;504de#ZuT;v($*F>gI?~9e zto#Kfs}g(a>c#!xHSe;rPP@&e#K!LRuK?CO>9HhCs#+c^9H(IyfA#wH@Zex%OpH4y zafq7J)1|@doJMf-7=`!9~jN5?>lKkowNV#Ua zLZTYI3>uWJgM-`3g5AxV8^V!~x3{mw@1wH%`rS|pQc_Yfc&xihVxyw=u&~^};bdzI z_5pkipcdrk=SL#Z{@M|GbJ2Ybqa7?R`pJ_kSFWh1Xl`_kP^rT6KB8bfrlygP9sxS1 zrlb@>>VkZQW15?j15%f!m33DoDUeU#>q(CrtOWP$?{VN~PoH)Qmaf#V(s$pva|g!; zC>-suwN+b5j!p(h`hvWCp7SJU;D-X&**Cc7XYx2txLv>>6H`-vx*fE%7(Hhp7APwR zKX~wI%=d8St*r7w_1D_%w>)1Iu0)pzBn3y;_JEOOuCih(ZMRxr_oM_6;39v$P*LtAB9NsPIVk zyLU{xcBwoT+O+@0^XJE~i&&J+UP376H*XG0+pz@Ct#ZkZwQHpNH$M}>s;h00glrM?Uu;q`g%GH8828ydLiD6lDLkZUW8 z5T&^pYQBC=D=N~Fv9tR+EQ`bUJ7$H`_hZnW%g|U*tZ zVW=^{IDlbb3_!jgd3-=20rM)jH{@+O&h7U}Y$w%pHg51U6o;*G1O5G-rNpjcZOgiw zHRJq`^fR73VVN_i4%yG?52=dbexQR2M=Lo&FLhi%UP*%-H9-29)>8%VfKDG!B^p^m|5x9>|=EH{%IszJcdU}^Hhb!@znws7g{5>+lvUjh? z%+U7@${2!n9TTJD>gqZl^OxwQkU^^G*(lli7Z=J~wE5%XcFyO!{?DE?|-2G`e zJii5SHul=);aokH@F;luHmr8wXH!$D=c=|?=?wY&Jzp&Rv|t-KVT;;Yo{lvRc5pCt zghF;^=4&)Qhd~;r6W#v+S>A=Fpu||unAq5zOiWNsu%o`oSdx=|GA$(@r)3Tb3;(F7 zsOadp4zatwe(GZ|tL9VmmJCgP7zc(Q?z8_<{At_13emBRXuR&>dc3!{$ zOxG>d7_gCovue#}6_hP$D-6+qX0`ip3x)1RrCnf4M7i1fu1 zx%I5=Tw#HMVuN}))C6+6ynCOQ1`5R0jeIg&ss$|+TwL-?N+e>!Hc4w~MLpC=Bj^+4 zh?vp;NyPe}zbihrl~nbVhJ5KHFfk`BFd4j`_-D_6j1Ml->vsoM^w?rDVAu0D?;fh2 z;kaxjtc`k8R;E6vPrNI&?;tkm&>=5AAQp)&{uP&AUuo9ZOSmH~y0{fzzqsY!o))ec zzu(HSHLk8o_tD25+xM)iw>4}3Ml75?i7Eub)V$q)BbFVVVKg(cKnl19TQQw+T>%Ox zbVFX4_uq#dzm<5>gvwWTwvhb`t~9NFD3n^iB4wBUiu^CBOll1m@c(-%p}}51*n67X z^UgFS)vo^lP&gj3|K)J430e$6aRzT+TpU@Sk#M?oYjtJ1E?GU5L1lDk2wXEGH+LQz zjh?ub^#CM5zq@w@bc>uZYoIHmc9~uS+17S+6u){!@zIRk>DD{rFZh@oYK#mU# z_|ZY-Rs{aaH1fyPze~-U5g-dBf*;W7JKEdnWY}nU#l$o*$jkIUM~kNCXlU116|PUJ%#%}01GWWJ?`=2h3Ps;bhfY><89mgF}@C^GB>4#hhH`{ zeD3e>51aw12}nIUI(jS5Nine?mJI&3dd-ci{GvQWrE9fgI;Cph0wze65ep>_N)czif{QOJ;yIENw zDTx_Z)9rp1N4qOB~Qqd5Ys5BsR!)yi`GB1w46MASiyFvyBqIeXJOI4 zcCGElkIKGDXmiIbex@{~>*eO=ZX+WL;*exdegRGe5)PF5#l+3U<%rf>vg8dR4a*8K z&Qin;y9@OIJs;`|qY)L#Dp`psw=U0Pa#D7J0ewrOW^p70uGRXe*$0EVsp zN<0oVVF$cr;e__|Ky%!$b{ISsz}33~c=JoNDBeIMu0wR0_UbG*KIVc&w!NsXUIM0x zow$0n5t=9r5*Kk@_;e6|_qE;b^2mkEHCB;O7f1)gN$5~$0fDfaej^Lu0B#v7 zk7Wmo1T4{%($Lnve>R1i!5qkEadEMCB<{HBgTO$_oLgZeQXR0W#9UHhcJ_vDYK#tnD? z@Cd+Z_rX`y3dh*OA{p?{rwrCO@WNkUi)R0oix)GDYZxFK-~o%;($gzGJ)Pun5is!N zL;Glv?SD9Zm6VmYo~$uGCUPtB;z8UzdV2G|4O#{2QrXyLL>>1afeci)0}SzSdXt*UVhq9mZDqM{<$A)H3stKICpX2tpV z7cYR@dHCI-@I#nxHh}x~^o$$YS`J)){sEXFC~HPJ@Asx>HJ@f=`u+(j#VN9M=?C3t zp30rsVguO;U=~0bFfbbXYAGfb@?6q@MRxi+=V03i|@SC_xPsV^bk*mflAv zV%@%*jxHoBs->~5K|~HjLgiU=JnjzZlz^pHlR^`n-mpi7d&|Ipe_Y9b#O*ThH|t>nb0a5 z_kjZ)d3HV(J!rdtg{iv5+7s9E+!v?t|Bq;9NWr$qQ0LmsUQdM%wz#(HhCP^=ejg$! z5Q%|kVPpiA&C1g9FdyG|dp;Mk4Roy;23rC@fP3(%rwnC2f8J?Z--yENHc`NhYPFD5rlzKOfZ~7pre$ITGSD&*XYy^^eE3RS$(txy0hIr?P`!#X ztk4ZK(slR3<_g+EsHm@hTTsvnC;Hk;Ag>a3d2TgF$9KNVd%UC{Jj`w1qF2|?Y+Xl2 z&=2|aPwi-eR65~28mjs%uA#Bf?~K)U;8zcbATlVLILWUC z8pBL@(q*h_GMu5isXl^fW=3jyt!#RK=LNLhs=lZvPhdw$kKI>s@_%?TUq>KZ>uyya zUQ-5jj+~o+m*V;J+un^QygDejJUz#eu2*`uMvy?I5B4G0>9@Lbx*%=N$Ay7Wkkj|n zsmgPKbgP>PLh_q7ATpG_J6;uNwd57+&Hi;{8*cY`|F#*Ei$#O@?1S)AGjejsC7+e1 zuP9{AF}oe3*)MGLiytWQ-Ws9XB5>_lw9w+#JJRP(On4j_@p1c>e5^gq7tssdmS)WL z8go3BodBP1-I@i-^R#x8C{88yHfI{4VmaQ)HLt-Rv}wypm2{qMSU$K1n9Zo_fyadJ zT!gHIsK@g8$&=-rl9Hw74KHV{zIrjN&f0PfAUK33mG$=R#|L})@@-LRva&vt>etM+~P4=;#|B&={}FKkWE%u_YMO6rd}@; zk(A^(jc5ieKqV)qIb8U*nFRawk=8CO7KDH367En(pegrA&H|{63=dQ9IVPv4w@#8= zoA?K0mixu^4}%NBziHtp49^$Tf7PMo-f zo`ErEZEejtOVP%a)-h&fCl&)33FJraa}*vl#JAxy`_lOT&72-4A{;5i1F^mU%=iJ$%wk!I;)22x z>3b(ey1RvL{x}Hr3pPV~da1|q97&t0(6&d$(^JByY+-RQ4iplSuqnCEC8$au2e;B! z|A+CN8aZ_v;}S1|{Nms+jiinA5+*hS0|UrZwP7am8aJ)1JTN}t@cQ4q`zSK<{MoYs zKN#ugzM+{Tf(ROq3CYC7y>Jt*3>v zV})uoK9>LL)ewp=tgzLnu%qoiDwmPT#np#O0j`A!78n#XYOQ-)vGThS zA9e}I8o?P$3`m$VrJlvrHf!fyW{o-y-r&Fl1WCxO6SZ!KqefS)2gU*+G_wvC&-BcU zrI}fEUER2yuY4a}4^?kW!)gqt?~r3bX(KA3uJ;07=|az`@oSmIV}5S5?I; zD43p>21Hxa)^?hoe>9=|`NM}yqcN~uVGDvHZY3kz=L_XH_(pS{T>>apY;0_Cv4_6C zK8~!spMZb>xDKY%9+_8pdCu*5c3>9_R0{}6LZiT3ssxF|#J(Kzb#NLpNDMCxVC4P! zkIS9+JSRt&+Zko zy`z#8F8=~Y=!UT|ly3RHO?Ee+q9R7b$;E~J4v>2u7+4!~(!uo%OJz3Pc|?v*veC%g zQ%G!WYa`y*ko*~}HfJ~0UjtpW`Lqlg&Km5)m9^z@&7`%Z--2L8{B3wYiV5*PSYeZs z;G5EdY@A_9=Lct;Rj}89w*VH3+zcRSfi-2@{6iil6jWKF`E1zLGk$-?00I;)i+X|Q$W;2*|_QuIm$cz_=E`6A!} z|AT!ahT=LqauufZQk?w9hd8+Tg?TP6 zIXk=Y)2I6zoPrA8Axki_YrMhRDkIS4tSl^8kHZLm`q7pwG^s-j zYwjt3FEO+-gff5i_e1R~BCdOaS0clU(y9Xs17p$QSa?Ox`E`G}i>u>@dYIou*(i>%17@tso%)ia?@S%gSSMMyPqh-0$Gr69(botTq z582*y+W&|`^0e55mF_&3!E>+-#YRu6BF=Z*9v&VB{f|58@G>aqGr~unKw=<*Ep2U- z?aPr>&$UJaaMzam4PmCG^&|&y$#e_+l@rT*`cWn4G(Wz3giGoL(VV7 zWSk7I5l*4ou!Qz)T?Rt@wx0j<5SP!PHAn zY?svrhw<=BeWVgCg72Es(_Cg$f8VLMgy4;$yuAE{3+9W_2#OgnO989b7~4BJ<;WXs z_PV2NEGHx)@@sk#ec?R~_+b7+(kdF3(N zhaD)79%TB2v?$uT`jso#pr5DHArAFuO-v8gNt#8>cx;>r#KRB?1eE0;HLQlM=F7ac z^m9K$OheyE2;~2j%e1BndpYh=jxY%pbsgPwL(b|fj+WZzZmH>eWUt)$^9a@8<0M_C z$gYvb#xz4eWpbo~L>pAxHMg*E$Zv-OU?;|gfdf2gq~aR_(b~ibS)gE6QL;mi7v+6B`Zl?v2Oe$jGW5+s8^KE-okkhvI#2-@gJ2 z{|s;*&$O`!r}C0QUq(nl3IH5S28-N@`U(r}J-)!IzW>TJfcgLgAm^o;zneF0rvc=8 zGz%EvZi5?cW?r7yu0U|GTNrkbeu&PyFLYF4Hkz84{2CmDoW<$;QZ?>rZ0su1LS^M$ zgSPUdufvluBSS;L_UOt}&P4z_3MJ%?{u}vXIXOBCGNgy~h1@+nBzHdz^gRneftRKw zCquKz%FRW=V8PSjQHzUwm6a*i3)L4+v(aoMIW5;%85m$K_KuFGJbTvN-+u*J=Gl-B zhTn&0Hq!4u-1@8O0XdO6f^P^E1zh2AKf>c$v@u2^!Ww9Hz#Mo*rk=Gz6peQ%y}kVBqqr40#omF+gvmtdN8P0fd^l;VdDjDIvzUK3Te34H)agqrcK0CZ>||zMUR>P2q4`L@D(!uho^E4f z(^OyYy0Va2T3QOHMVOId`}a6`(Pi5TK4&*%?G64;)D{;PV}UVZ5g~>ROg8^})xzKs z!ZkUrFbag|NB5!|VGel94v&9X2(y3#;ZBckizP~;`HMq3;=`d9n41sd-Vu#&BdPgI zEUriDc@B?^6xa{!nA0~*|Bb&iaKWU5{)N_!OLIDz*pyw?%0ZxV($8|+l+khqj)0OU zGR3Z2b-6x1!@~?n{I~30R zaE3-C`Z`(_0!o(6LSmu>!ir+J-mXC4joGc)wEN{aL+{e;ZEbF*;6-$WsJcOph|bSL z;G~vn?IaMovuZ)S-*<$zp4tQOQUger4uYpetQ>cP&zVN2I0 z!o+N?o{UWShF@KW%n*vATMRiBzZF=s`+U(@pWxl>QgmldwbbJuUQ z7zG6=61X|v()<4wFg5!t;=Z(T2B@iPKYc=6)m&KH*qA%6t`xQ;4uPp@lAqrP=yC^& zytd+iCv_gJV&!_@ybL9zWjaiwH8E4D=)K zho^6k;g55oJ{ZC|KxSdTL|B}2I@LHCD7fGt^$BV{v5aOo&Gajj|eFqV4KSq zfQU{8ZJHv!s7SnQUGvjFLyHp<2wyu-@loSNcpwO{jfPELRkbQ@WfwCuY?;?DUy`>y zrENQC3*Cew9uy0`VQR{rjmAH*$YXg|G{4bKLw{_`s`eT#`JP-aqzFi}GOwTnD{iPn zIiHhos$FMq@`uXA4~>jqej?p4xd;L-i$I?*U4+7hzz9hd7!5g5gx=mS69_Z67hx*4 z!ZslD$00B88f(o~k!W}^h=p3FcLSL`_jQ*H=B;j1}2(1W2DkK}(zfxlrC6@l(KK#p4+-)}H zU)8rI zvi@K9{XXye{NLw(&(G&^d&G5}=W+aw-|xFF-}9=<)Re501OkEjl#1d-0)ZqM-**s6 z@%0+t0X6)G%tqmqI*~~1=u_*(|J`P#a>a%~psCpWA4!M+4I6>LML4B+T-`BhvdigO z?eYd;da+i_|C<=QX!N)1kM?KL+ZQY4@(kWOMag()HQ3NRK&a&trI%eu_2r6hQW_Eh zZZ`!KPwnjrRSdU%Veq7fGq!8_Np8eJhB@bBGBQJRF^j`%PK7<^(z;^}j&XLb*XHez zETbg*zBELAK~?9<6&4c0JzFlW=nLn}e;Ge%SX%0ny{{4+6cl8uLLf|sSD%d@Q*Zgs zKYExzkSCp{qDUxA@W`w+%G}FLO(3|cE)}o;Nq#pOd-O$0ikY!-q9GY6;a)w3TwCdl zH>>B(jw>k*_E!b4v$G#&ASbAhg>#=6_~3m&Z~L7)cdlN&>hJIW_3PKC8W@q|;($U@$N=v|U}AvF`t5*Fo-AdHVF} z2r(1-#DVF)@_5bBEQK`jBS+MtBm++-u**8zet&ZTPmcTj^XE^Y>AUpwhT7V*mo71A z@6Jij{jD!ULMZ$omuX?#JpQmH&2Kg~LrZX%-;eh8w{PAo4ad4as~LFyd{=Yv>$Bl^ z)>oIkwlneb^IuH*Ug^hlL|h!dEGH*-^ytx>H*a3Q-gWODVVB=W$C;l(+F9vZg4?(I zVM}bT`uO^0q^I|$-V!J4kMu6PL_|hPo41SE+1W8N zhL|+H{_*|04@bSuJSlfo^0lBO%?_U8i% zZ@4a+7&kI9QWLb#`{6?kb#=v)C-1Z@PEY69j?x>?{H*lj;NV!*rlO+S6I7$5q?D){ zO&^$IYHF&PdM!LGthKZAn!5UjyKBz$z7?1DadY=oak}rJ_a)8#*3fYN;>C;Cu3gjA zWZJ!3Fi%%I%WQdhIQHGUcc!;*KVg^t)YQJZJm==>Iy*Z%Ha;F56;)7JSYB49NPZ|i zQJr6$i|fVPw_`t&HOI!r;^N{|1{@dSnFs_ra>J6aFlI|jOV6jFp)E80Rk=NPY;0`o z?Dht#L_|c~y?Ylc7q6}R;Z|c;z5^Q@8=V3*HTA~YFLx%Ps};KEl$DJ;vdmH6t*)n; z`GVTo+G_L;(<-10XlQ6;7`uzy&LlPo2?{Q?n46d!wHc}{a$9+$&hLNH@6n@2{{H5s zrsLO(@kXc5oayT9q*d5MZ_@t3WO;cxUX!l%l913l>_g4x&sY$rxglAXg|qWxYaQDO zgneY|b3(mQQBkX_t0+4j&(5x{?Ua-`_1qqNBS8zl72$gdWn( z%FJXt<|^qfzJ87GX=sGU7KKR^Eg z=RYGuSX`W%NF0%HoHtQpV`ZI~oJ7@g$~p%}MzYb-HBQ>EWHS-&sfp;JpC~9OpdEZE zPQ9LQzrN~JclY^Wa?<-XhLos*fpj_@%Qx8t3b~E%NK#nV(y-w60yNH58$yqN?y!elgyXmZn?0 zjzbW@Dc4=-a^$`|?LJ3~9h}GZ1gfmBueV+}GZj(xDYM6gPt$vgoOM{^``4-$rlqQn*s! zXl-S6I9fHaY4rH<<6lA#?F*{;S;32{n5v7G-bPN!5s=t;3&r0`elDu_sF0Y1#L&>t zd##jwhhKMM&FCaz*1ES7Uhd|Q&ba66>w6{NUTCpHa<|3T2yvO=6HDf;>GxF=FC~57 z>^H^ZeSLuu5&ULMVY*sc%>E}u#l@-@y9p=#+w<(kAG3(6U%rgJWZ>kicREwyxL|OI zK*&kDk+C3ZyfT{EBOw+R77%PJqx*2n_Fb(V9cfoGA71*|-=C0>kZCurQL|+WVMI7b zRKYSVGIHO(eFjx4t!4}8DM8Pkp(=z%a|i@k-X(2o`43N@KK&YbMEmO1_gaE79CCLC zs*^R-9?elJ5K3Nh2S^9p`RMnah1HnD|_@RG?;o^WrztUgNk(l=quQ^S(o zv;?j~E{yV*EnHGewfY%2L+QVQPD$-*AVc-5^KY(A?{y~vb1lUM3PB;En}?ZEM);>^ zPquK8>U7$EG8DlCpK&ZG(T*iK9A^D%%UrkGplCwVXnTA6)Ab_B5XM0Vi=IzY9@|So zZ_<7xxgxl0nB$V(Q^!lXE#}b`6@J7x3(H@WC0yjj3IxKp?IK(RdFSJsgZ@zUJpy5L z3(Mv`PG_$dghWRR{S8kHU!RNqlj^tkzrc#*?ifWL>ht4OPuOkl++lt3X=^c>7S7<{ z;NWkANR*UL@m;qx&H682IzF0eq9ElSl9z;@dHB`H&R&F$NB;{BO=DxDaed770!Lwo z!tG249UUE0uI0{-G$uUrVc_;uIB_B}B0@?^%11FiFYix|bw3V?R9Nwe*$&HMj4?wa zqbD4)c?k);2M&zlU}ENf{`?tLWMN@Zcq=m}C+86NO(Ub{&!4X^bXf8#mtD#r$S)0O zXLB5LuDEV!VNti?SUWOu%Xg#h`;Q-Pt4o2E`gXRq>YAGS_U>Jq{c;G%>Y4xPFbtoF z2v*Yjy;D<9XiuxC69HgT_Ah-OFEFAlaD=qENg1nCBd1d9Q z_K&7X>ik{`)^>JyBOzl(3XcqvCO!;sR(}ci_0_z*sbY)04VY?+zj}&q|KL|rs(kzQ zt#-D>@6_n~3rjNwo()*5^x=x(fdMYhva&L)66>yA5||0~v?r{sg%{+dX#fT?461lM zot^&(45~&H1s+%|4wg1qW9BE&b9>ODkOzu{9uyR;VgMWH>+|sPW<0}MVW#p0)g&=6 zGq?UVy~~U;3kwT9JUq|{AJewKzj@~5$xmojSjT5UL7{?I^bHI=-qCY#tOF-Jct9!= zzMG!@=hRe8OiZ`m%7MNaN0D$db94XlKHOwPboAF6J~}$OA3uIzA@lO`baZseA5xzn zX0%OUoV|Ya%Ff;%$n)UU54WnHauYFSXix|RE{jj(xgN6}QN3_s2JHvK0%H#I>oR6k zyX$msDULIyJQ@zlP4-3^dCF>UsmCGRA~O?{(mt!#uV3Shv|jh`KXgc$c;)Iaxw&t=_urfd!PhfM#mNE_9tl)r?;kwiBonNK>~OX11XrV`oZ> z#=E<_?=DPS0lM5Z9((B%@Ev~MmTk!ya{5){tqT_}pgZEx%p_I-7qLnd6cma)jg^%* zr#f?6`Oor+iipgX+$U4#4^iYX@5mD3Jcg zg+PJLa9xOiCT5Mcb_X67%kek_C4;db!u%Lh>+$2qC@OJr@lEWwb7z#S%dX_0@NgCe zhPgk#P5FYBhrUKK>{G=t)VGucR>bXPW@h3z9y)YLSU7NB0Wc)5ClxhyMrF9DF^^|m ztXwgG&-d@@s^WB!Id=v>W5s$3U0MLISX`ehEiDb##|AJ9mz9^F(Bj-8A|mqBvxQfS zUh(OAiKgN-V-KH%k1wA;0}rAV zrbi1>J%357fN}z)#QYUw^*@;~IzA3O(%jOrxYt%9a?xG~qg~E^qE$_9&C{GtpulZK zLg7}^>vP=PC@_H6smuEM`sutk(FV5C>@Lv>eg0hkmrlMtHTS^is1wGpnwpwt!|(AH zCygCcREk7d_w}fKVK|!!?n5m^?t$K3+MPSa^ecQ&W_U&vkj0U}kPt6gyr7ix{2Ls7 zhyI$H8t@g|vuSe*U{(Bz<4@gIo?Z02bkuH~qW#9XbemWx{X8wr^6c5iiHXLxwqo^- zwl@~7K3$~e*eFiV_JAFZ!q%%$#DK}!$c%-Ex zOZBW`FDVe0|NQxBm4kj~W~`ybnUQcGo!~5AW=00xI4?GZgK$xGWcPU`rOl&PR8$0r z+aG@K{Qh7()Yh$AL4#Sj0dPOKF5j78a{2N0vfS$Q34Q(e=g&26-{#NS>QBo$;qaNc!s(;#e{{eZEXkcI<%x-m-&q|59rCkw0U{cf;AC$ z>|nCduB)rFwzdY%#-+8*UQ%s0sva{C16ZA(k=u5%UA(S`s>04yzJiZWHOg_a{bTFq zr3K13*^zCd0iNy(9HFoObA4?Eqs;4fBifpr+(xMG-O}dvOyd9ytE_#GONEK&VxmzLO_U0^~stDF5s*(JE|I%ZyjNeEA1P0ESa+=IL9v-gtX^ z=jZ1?c<>-3hw%=bg2rKJIr(Y+Z1Hg_J}@KJH)sUSX~>v`(u&QS+cHQf?BbSTZTcuk|$?)UHC zbS>OR85kJQwpdtLD82NJjZw5eCi#qjWNn7dg4^%}R?FRtl(HKO6E^5BZ~}v4x#2cH zJIg9+MCGfy4Vb_Fj~`={>|w9o zXl-l5BLRe}eY;OMyq_xGxYEt-q(7_IbsbU1#~iYMOr^dP54zUpUffAnm|#<6+s61qri3fS*f0i6z#q9YTsfXJSfYt zEQ)KqMaE7~ShE0-#GL@GKJxS9-bO?5`R#W+O-0fH3>rLhLV{=mH%Y@UfYyrs86eha zb0I>Bv8d0&0}?{7s0S61@Kon13CaJ5H`9*W9%SaOFv z^F|_pir+(k3~b=}S0hsslbUL()Dl8=YHI4khZMVMS_0||N#%JcT6Csy(t(;@79W42 zvgg~a56#UQr?!&H>r$suRqJPX$~se1@hkFNXgzU>Wa+_bki}B$F&YAdu`nx=e_`|o z|9FFc17dM5mWI~WrL^L8R-fm^w$SCqU!4iv!|tW$aa4jpLA0a*D+4GA#A6o}6hMn8 zF5Zw=rsd=;cHg*beVcFJzF!^LX~kI`#qX$XGuQMFS5e$koHi=Cl4*3{zyU}}mo+qE zWL=u;>MZ1s)az$Fd-kj%#r0QrA&NSySfcCS|IGEyjt3Cl(6u{rtWQ8Y;ePr0wFFSj z#O93KSSj9ESzGL(Q9K|1F#ugX5-?_6nId<%p>>V1)vgne!aliS; zk3vW~6RjC&V^ILO12sVzv!H)_@T6V&*^p&0Kte)7&hjxt7NWAaJTYSXhK7Jo`@etx zej(xHmaSWDviZ^#&Yy26^V*I9opG+S$W2;6KtN1vXR^%A&%w$89I{Tckefc?mI15S zC}WJ;%oYGzE?&BXf&r4zOwrnGI#V3mwmaf^A(UZ^0(Pk&ISKqavW zD|g$#p!~|KxVRfbwc!wmGPARliC*5`#f~%aFJ8RJ%F+O9@9K*FYNV{JtQI44R7~tc zd_0ec$VJ5$i&I?yM?rys%itoSqM}C!agbXJPF}cR-JEh|^GWZn<~)1$4YH4<9cYfY zVf9n8tu!ehtBK+_7!@S}DLuC_08ZnTv~_je2R}2ebI~baLgc$|tUsh?gKltlsc$PU zFK>*!B6(DB@CP6)QR6yEDJc#a$HQ1x85tP~2@M^cm`mq+$I2)YISt5qP0R9`pxV5u zsHmXhJvq^to0*zQBLH0dkFwSYqLQMbqLR`TZEZASXu10Z1PqdGZEZoeYNMqcpidIH z`GW9hPQ4{0{2`}#0<+9Jo(BeAxN_xyQ830nMosIX%|e`;o6FD^g~GIR*Dl}rF(Mw$Ew>YP_r4b5A%DZ>Iit&Kf2?++LPHl64 zN{quVx#1~r{GhchL1OTx88lH=ED74D2Bf!-mIyp6xNB1p0=(HnU(?-P6d$ip@jt8J zvabkyXxFY?II6KycKk9jtB`_esHg=0C7WrnU%GS&6i-6~&93?T_lh>{0sOuO_+HP( zI+Jz^)HieU!PF#l0$trS3^CQz(xM8 zRF(vS)1IGCY2ZD5l?S^7UKg;B4bUAEofPprP^U=xHz7i<+7}sF!cA z&H$WX_J8tc!z|By{~lx!N_9rlXCgNlnFq8*3J-3<9mnpjY5`$gx)gLt#CD`X*x*x? zjMJUkFyU5V!HL(C=#yp=`7d5@!6?!4Ue@k6HZ%-|3f9~VsRwO?Q^v7jQgT+zue=W! z#_rGj=-apaAYgxfj~}t@wrXLL)4Q*jQYR-Fi)mEE6>BJuGswmUeK0vbUfxkB+f_bdBt3CfO>H>#{kaIS19Eci-(H?-jmKfj&v$WjTzY@=OR7#` z9(wQ%_Fb*40Z`yzgrw>gcUM&nLq%<^+1PPi=qD5qo8kM0xs$K_eU6*;*GX1wAfkZOqKfDiRc2uV-iP2&);A9KKZ= zP4|CGT7SuI{{@MzvCsxo8T4>bcx?I)^`W68OZ0#XlGq>M+D2Ul3i>L&!vKQShVLQh zy+|YPWIOo)S|cXUZBtVqAR}_pPJJvz4AWiMMnj$y?Tdos(_f(UR~r~qrRiaL+3IOgxmCBH7wyU$k1BdF}=luHc(~f z!W&b<;ps@Ke*jUj50$kE<-Lb}3-kWzxh+0&WN33jS3jtrh;?+j8yXsV zdN>6F0s?w~Z;W^RVt~B91m|XJ>RQoaMso5vOt0%7Z!+n3zf zvIOM-NPEzR-eW+4)7#qH&wf}KY2=0N1UbrIrcPMta+Advk2 z{Veo)dwY8#_b$JX;NU&J)5l_q76Vliy}i5&p#UYWeowk|?%X*b!5%mnpbH8LqzZ3v zGXUnm27dnjYlES>z^@0d=T#JHz@*8w8NMZURab#D-gjg2q{$NFQ`J~kQq-m9`Sa;c zb4Eb#;^H5{ZXKPRxII_b)?nR&=ES9?72hbQ@O&B+bm{i(G0fiJ;NZ?pqlb#Z0LlS) zm>8=$tV1vmtw<*)CsCu?hVS1&_3(}3^6Xv>3<|fA25uZsIB)0^n7+F1YnRp30?zWO zg^Rq(%ez`jL+nV!8-O-~Kmn+rA3WQ826o<2?sMTHH_zgFE8iNHO% z`S}6|4kRTfySTVyfB4|zvqx042|TU5+#^3dGgDMnwyUK@6O#xX0mB+{{f)!Siagf1 zYe2m{^rx;|X=`kRb@|k#5>yd#B=?DjK1XR@Fpb#eB_|7bDa2h&g6eHyX{k)~=ah?a z`LzT@2i&>Jx#I?B0aRQqEiHJJxEFw-Cr@a6ZK-`mgQ(s>_ee`~pB*?Q5&88xCJB(; z0O|;WXmzzp%HhL@pPuD|L>et+N6EeOUwYw#_V%k#0v#M2Qt0?YSZQg`W7=Y>*xCIC zxl+x{x1W6UU#gBi4+07wSwR8|E}a}QUx zIl*tTm2v~3n_gWaVWgwW(64-iV+;*tXn5ElR!Ud5rzug*W(-y<>fdvtpL^OvQ(HS9 zCjm8p-@*ZaloX`0$JcI$&wYnOy%;gjx_D1MZq2pXH(Vbf4@DB#v#Fus#rggJDEhsB zPtX1G)hlthzPL@EKuOE)0_dLBSEpxYSfuR*168i&-q{;eL$!T-(_gyF;=)2*O%2^X zXSxn0VlJ+{JOC0LB{{j`loUbF^8h|3CI=)eVV|NE7kS=iRIvyHt-k_SOw*85!r%!+0bo?suU_hcNI)$v>3|6gEk6O_wstcprX z<`fiM>y6NAFVmAYef8=U^)(bC#?t?CMN7L#>yM}EblRx5+GjWn4h)dnGXI0AO50pi zvddW!V)DCp{+ZQAnXphXvN9^cso_LZ!CuDQYSo~lV!G6a?|48`86B5iPj7$54aE!1 z7{Uflxt@2Klh0D`JMHY$w{Jf;Hd=S(*`cz%*>=+0iLdhl8t^^KSM2-)Fw`+>A#XXPnx9*d>GWp1U?ayx%zZ^OPG(K2Je6&QZ+>v7obr6i0 zsVI!EKAMa}&-_cW!-k+pCj0x#lVZUyw6vB$dZ9DnYWeX4rZ0%uqNO^aeC>X1O-*2E zXw_XYv?+D|->66cu1uq^W&Bp|GK%ig`*(hZkqEAba04_{iF7xD+uSJ%Ab&ZBDZt1! zj1=7>*X1TPxeNPuf=GEjy?_5W0x%w>v|+r&|3H848*2`pn`XR$fq{j^LBGm8mqm-7 zL-LcLG%K1eF8S$`k6tGy=i3aclHR{p)o&se5gW_7;CT*%!Iy}Zo33v!Epl5}E3Sajw9F~3bt zh9RSwrt@{#W@LOk9~lF%N(>AAy`7vptdBWDZooD-G&QY6$&$+cK1Bh!1>!x#RSZXb z#puLfz>+Bw|K0Q@n(Y@8`wp$EtLysl#L>A~_G!Zkm0(yyeRu$=3vq9b3mq#Crj=QHWRHlYLm;hsV#c9Hk;G zDU|9Q{wIIr$hfhb5_%VBXv}oD?uXPrwBYze8a3h0>Y#?@c%gTsIWcTUH zxd$Xm3h;v4TU%A69vvrvbx~(s@|PeRo@vz4*0wE$U?Wc`QYVu-$|^(gArd;}(nXw; zQ&OJwH{|oTvC!T-#8^wRk{Tc&I7F(1|a!e zC(GD3fYu;>G%ucW&x(08l5h(@hg;6D)GSX`EkE9)OKGttesp$m5q5#|M)QO+nbg*u zuJ;G=+V4_QIAop0EIK6{$E&KUj);kolauTDg&w?)U>BRH(b*nemp}6+hK2)(Z=rj; ztQD{c_m6(bay#Mg71c!A%+A)k?&2$L^Zi>VGFfuM;Pcc6vA1`0KuQmJ_H1_O zD;qEx0N%|n&*47#THr(~*9tw-&E%YM$mHBscTZSY7}FJh#}thOfd;Y|$m>b&_1?ib zl~xTG`)h5jn7H`LH=nSXd1via-Uelv!1;bhO0x~Wre9>UEL7KOWt`&RX~1~^glg5t zWQGy=J~I<)*B>SK&?y_vt($^{tLrK_LVc`U4+!r8lnLfuCUm){+$Z3Wtgp_gxw~%+ z3=FVK+oPXZwx*M~SCCuAjrlzVUG!E6r>LLlSP9$n)LubM> zz*tp?%gM{zRHNMomU-#2684!10J5Z~rvr=O{V+ozkrc9BMhp;&RCFfK;(Ce?XRM?f zBvKY?z}aHXJkof-$po( zC+sw%+OW8!q*Jdh8rO!+%np9BSULDp$oiOP>&e8k;UX|1um&<5matO5+1GWf`j5)n zV~nq^y0ZE&jHeYtv4UisCdP^|B-E!1w$dKgva3igO}!jt3%|2*CO3%BsGn4%7bY8a z6>5;6pdf@#$wBnLRG_vNli*BrP=0tOX%Nl|7lyxEf%5f+I@X}=-%+x-@JPV z&THr3V4T^e|Kwh}UA9>pjF%atK0#@afKygfoc6Bb^gT?Peepj*^xW#;uf{hEw#=0i z2_7CNperr>!NkIxh@uLMi8Y+7vO=T8x6oq*@up0HJL*nW+T z@$=ln39x}!8N_!k0tycdpQD2iPm!SjSPU04`35Qs160xBrE=H65xYljFocbTrKFt4 zcDe|&F+C+gWCKx2ItAn!@S4NHSSiT1H#|&l+=v6DkM9Bo2L7Jt$PPID3VsO;QP91* z$KPNe{`i3afywRLf0mc+I!-jc8yy)j>&QBH;)I7noR5Wa)Fe`L)z#Hdr_U#;)BAov z)&Nm~&!10QpOkOS`^R`f{0YY6tr}rxjf{==d6dc%lis|Ml$6Aa&A)lXWrYpuM@d14 zOyBB{*wC6c=iR0L0J(J4HDJ0+ug{jg{TeOZQd#M>>FtPda>mxy*6L6Z)!6TQ@J<`Q z{r|a+j3BSih)cGmowPGf765arDm=Xi33FCsV-50{nhSPz;tC^?mPLKRdT9`0(<=e* zHfy`Ea1FBq;B65iwG-=y^mO?RjtQ5gX>J9T3hQ)8qvmbzU%h_)uvBl8Xo7S{$r&Mn ziJ*k*+8^-il;K0W8|OP)$s9^ElxT!OQNT-3jXIXUF+KBjg4J%+Sg5Q-#h z@_A@zzm+6(QnSYI-**O7g@%OO@WY^tiU2Ij3~0)4&Re@YOlzF~f5aI4L`lmKu}lUq zW|Ov0DN%7g-Kt@0XUEIKQ?xRb4=K2_z$wU>zC!I^i=7Y>!WgImRD59nerV<8pqMcB zW98gqf`WJj1il=--jJZ?lTOl?%4=oixpo#2)aM7U-^QpjF=3&lEpaoZqr30Rl38+l zC#4dyhmjS+;kBSczH_GaL53NsGd+~S!$DT)?1GCoirYJ3wbLrJ_OPW`)3F?ukl4k& zbNBA3=g%Kb%0dODcNs@RBgP?Ix5=nF{49K(cGI4DAbZ*!veT!EiVxY@$#35D&Nw2n zw6I`r#tK94>5EcEAm}p{`CTzlV;4*z_cLa)TW9(G-VChX_X9nXT z<&NRiRt;K({~bkD3WywW$hCg5L!X=`A|uD3f~SA)N}Xih^0t##=m-{#1{nJ*r^%L zM=J;Qj=xm+wV##S%`$Rw!fFgznVILsitgV!CkBZNW3euSp9ZJ5A`i0$dQ}v-#Iw5r zv?u;oPL^)chxzhmhE{qNq|G9MzBmAZ=*<%Y9*D4{KWzlc4d3VNAYBL^A?f=hDoN`8 z`oHO3>koyW^M$(CkPHOXgG1(oyfM_dZR85s$ z$TITUijURY`;Q>5s)|ZUpA|xhxbVFA~{JsClm!Z8$t41I4i9F(3@H&_e2}tLCBqlfg$M6 zA7^)Wcf{0?g)4TN`vmO`IV)S~)&aUmJHSF-PuM;8$X}^WMYOg(0R6|$;N&uK4-5`^ zT`o`E(E$=(8!lQoR-h95OPU+#5c%Z6gUHWqW|r(dPberL$`3^2O~XDmFrcoZ^Mtk? zoDOEn#UufZlwOlR{}~$@Kl5U(BjOeebAUFWAWBL~aJtr>BYV2Bln%hl2A>{h!0Wku zS=M#w@W%0xBIPC2F;XTItTg|fEcUZdZhZqT48;dp6*ODu6znpN=cC?KO!VVj!_N-E za?Dse4!!~Ng^ER_qPqIc))UhQZj{$?n^`Tnzy60fanJahicQiAzXj(3c^lZvaB88g zR8&^_>i8Mof!n-o=vgDY~MsD<5)-Mxi^LSOlgwdC&STV3`6h$8Ee zxqtl!D`{!r4Z_lAFHcV>Z3sZ4f8d)~8K+GS+jUo=5E3);dhlT|B?c*XY+>=%37 ztBP`4$LI)%<5F)=#2x}40+KGD}l?M$t}_y`U)8=N_3ju8m+WPeANhe7c~Q27&Y zT~2Kk+5fUTmv?C9IHi|}VKwcIUto#%4tYQcym|B0QqR!(Bj4C{B(ze@&ESH0UcPsf zi=ayZAs#FiSnS5)(laA|_4e8;nUzVW_R!Z*?=i-p zn%&iJ2!vjnrF~@fF5+Ciiq4q(r%w68158alxTyV~ab6GvbZ5Esr3C19C;~^v9BhoD zB6;N3BA717_d-Q@^=c5}k)llbHUfbnBF9+4s4mKvRtouNgsTw$$nCjpVS!rb^(aLK zLE2`BN}(F?i5segCoL43-e3sS!}y?;tyCdoLLfRIwW*dOEPTCBBnkWO-3X+ee9XLw zxd13}1e{DUlhANhMiXQI%8U}Zkv#M~ucN~;?4B|J2v3Ydt_x>?%M%~KSjiS85E^)8 z9W|mhCG%V-_+t0TwgNn4*p%W}f~>!N_pZ`n*t<*1YM?rh7>C)4@zOV{0Z()jI%6SrVv0o+Klqxs9n3ZTLBIquZ&DVOB@+;WWFxD8!9RkAt{|a`A{Ja z=`(ECjX`MY_+%Z**-=IZl6-{^oz~_@_cGS>!9h(;{TPv`{9l2+1qTNL;l);~718ly zy~HoxqTP)>5=Evgvd$k~o=_mhfh)mgQ<0)1lxWfvG5z0eCDcm5G>^X5o9TS`Ro^ZU z2t{|{cw-r`!y?R7r<6Qs!KAVHNKMl}CLwU`J+`dsgIdFf)2yvC$b(*huHe&IsL+?t y(NqG|M7THtAhO^JRu|j!Y)ivw@u`hJ?k?M^AGa#lTjJBDgi}hYim3{E5B?v1OfzTz diff --git a/admin_manual/images/antivirus-daemon.png b/admin_manual/images/antivirus-daemon.png index 9f3b9ed1ae0cdd5050f7f484483cc22c24b925a1..da1ea4640d2eebefb1c42aebc30a8cb6e6537c57 100644 GIT binary patch literal 14001 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 From 52c16d39703e8878e7052d4d8425feed711f1aa2 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Sat, 20 Sep 2014 10:40:16 +0200 Subject: [PATCH 11/13] add antivirus to TOC --- admin_manual/configuration/index.rst | 1 + admin_manual/index.rst | 1 + 2 files changed, 2 insertions(+) diff --git a/admin_manual/configuration/index.rst b/admin_manual/configuration/index.rst index b85248b56..a358393a1 100644 --- a/admin_manual/configuration/index.rst +++ b/admin_manual/configuration/index.rst @@ -12,6 +12,7 @@ Configuration background_jobs configuration_assets configuration_3rdparty + configuration-antivirus configuration_automation configuration_custom_clients configuration_database diff --git a/admin_manual/index.rst b/admin_manual/index.rst index 62536a581..27053c00d 100644 --- a/admin_manual/index.rst +++ b/admin_manual/index.rst @@ -72,6 +72,7 @@ contains the following topics: * :doc:`configuration/configuration_knowledgebase` * :doc:`configuration/configuration_logging` * :doc:`configuration/configuration_language` +* :doc:`configuration/configuration-antivirus` Maintenance =========== From 176aa389a3607e8c8158af2d86c44ca2cc90db4d Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Sat, 20 Sep 2014 10:42:23 +0200 Subject: [PATCH 12/13] proper heading styles --- admin_manual/configuration/configuration-antivirus.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/admin_manual/configuration/configuration-antivirus.rst b/admin_manual/configuration/configuration-antivirus.rst index 3e47d65d0..04c283859 100644 --- a/admin_manual/configuration/configuration-antivirus.rst +++ b/admin_manual/configuration/configuration-antivirus.rst @@ -17,7 +17,7 @@ are for Linux systems. You must first install ClamAV, and then install and configure the Antivirus App for Files on ownCloud. Installing ClamAV -================= +----------------- As always, the various Linux distributions manage installing and configuring ClamAV in different ways. @@ -75,7 +75,7 @@ That should take care of everything. Enable verbose logging in ``scan.conf`` and ``freshclam.conf`` until it is running the way you want. Installing the Antivirus App for Files -====================================== +-------------------------------------- Download the the Antivirus App for Files from the `ownCloud apps store `_ , and @@ -85,7 +85,7 @@ ownCloud Apps page to enable it. .. figure:: ../images/antivirus-app.png Configuring ClamAV on ownCloud -============================== +------------------------------ Next, go to your ownCloud Admin page and set your ownCloud logging level to Everything. From 9d1eb7925c4a326f1a00eba91b59ac367ef21c9f Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Sat, 20 Sep 2014 10:42:37 +0200 Subject: [PATCH 13/13] remove trailing whitespace --- .../configuration/configuration-antivirus.rst | 150 +++++++++--------- 1 file changed, 75 insertions(+), 75 deletions(-) diff --git a/admin_manual/configuration/configuration-antivirus.rst b/admin_manual/configuration/configuration-antivirus.rst index 04c283859..f824b7054 100644 --- a/admin_manual/configuration/configuration-antivirus.rst +++ b/admin_manual/configuration/configuration-antivirus.rst @@ -1,85 +1,85 @@ Configuring the ClamAV Antivirus Scanner ======================================== -You can configure your ownCloud server to automatically run a virus scan on -newly-uploaded files with the Antivirus App for Files. The Antivirus App for -Files integrates the open source anti-virus engine `ClamAV -`_ with ownCloud. ClamAV detects all forms -of malware including Trojan horses, viruses, and worms, and it operates on all -major file types including Windows, Linux, and Mac files, compressed files, -executables, image files, Flash, PDF, and many others. ClamAV's Freshclam -daemon automatically updates its malware signature database at scheduled +You can configure your ownCloud server to automatically run a virus scan on +newly-uploaded files with the Antivirus App for Files. The Antivirus App for +Files integrates the open source anti-virus engine `ClamAV +`_ with ownCloud. ClamAV detects all forms +of malware including Trojan horses, viruses, and worms, and it operates on all +major file types including Windows, Linux, and Mac files, compressed files, +executables, image files, Flash, PDF, and many others. ClamAV's Freshclam +daemon automatically updates its malware signature database at scheduled intervals. -ClamAV runs on Linux and any Unix-type operating system, and Microsoft Windows. -However, it has only been tested with ownCloud on Linux, so these instructions -are for Linux systems. You must first install ClamAV, and then install and +ClamAV runs on Linux and any Unix-type operating system, and Microsoft Windows. +However, it has only been tested with ownCloud on Linux, so these instructions +are for Linux systems. You must first install ClamAV, and then install and configure the Antivirus App for Files on ownCloud. Installing ClamAV ----------------- -As always, the various Linux distributions manage installing and configuring +As always, the various Linux distributions manage installing and configuring ClamAV in different ways. Debian, Ubuntu, Linux Mint - On Debian and Ubuntu systems, and their many variants, install ClamAV with + On Debian and Ubuntu systems, and their many variants, install ClamAV with these commands:: apt-get install clamav clamav-daemon - -The installer automatically creates default configuration files and launches the -``clamd`` and ``freshclam`` daemons. You don't have to do anything more, though -it's a good idea to review the ClamAV documentation and your settings in -``/etc/clamav/``. Enable verbose logging in both ``clamd.conf`` and + +The installer automatically creates default configuration files and launches the +``clamd`` and ``freshclam`` daemons. You don't have to do anything more, though +it's a good idea to review the ClamAV documentation and your settings in +``/etc/clamav/``. Enable verbose logging in both ``clamd.conf`` and ``freshclam.conf`` until you get any kinks worked out. Red Hat 7, CentOS 7 - On Red Hat 7 and related systems you must install the Extra Packages for + On Red Hat 7 and related systems you must install the Extra Packages for Enterprise Linux (EPEL) repository, and then install ClamAV:: yum install epel-release - yum install clamav clamav-scanner clamav-scanner-systemd clamav-server + yum install clamav clamav-scanner clamav-scanner-systemd clamav-server clamav-server-systemd clamav-update - -This installs two configuration files: ``/etc/freshclam.conf`` and -``/etc/clamd.d/scan.conf``. You must edit both of these before you can run -ClamAV. Both files are well-commented, and ``man clamd.conf`` and ``man -freshclam.conf`` explain all the options. Refer to ``/etc/passwd`` and -``/etc/group`` when you need to verify the ClamAV user and group. -First work through ``/etc/freshclam.conf`` and configure your options. -``freshclam`` updates your malware database, so you want it to run frequently to -get updated malware signatures. Run it manually post-installation to download +This installs two configuration files: ``/etc/freshclam.conf`` and +``/etc/clamd.d/scan.conf``. You must edit both of these before you can run +ClamAV. Both files are well-commented, and ``man clamd.conf`` and ``man +freshclam.conf`` explain all the options. Refer to ``/etc/passwd`` and +``/etc/group`` when you need to verify the ClamAV user and group. + +First work through ``/etc/freshclam.conf`` and configure your options. +``freshclam`` updates your malware database, so you want it to run frequently to +get updated malware signatures. Run it manually post-installation to download your first set of malware signatures:: - + freshclam - -The EPEL packages do not include an init file for ``freshclam``, so the quick -and easy way to set it up for regular checks is with a cron job. This example + +The EPEL packages do not include an init file for ``freshclam``, so the quick +and easy way to set it up for regular checks is with a cron job. This example runs it every hour at 47 minutes past the hour:: # m h dom mon dow command 47 * * * * /usr/bin/freshclam --quiet - -Please avoid any multiples of 10, because those are when the ClamAV servers are -hit the hardest for updates. - -Next, edit ``/etc/clamd.d/scan.conf``. When you're finished you must enable + +Please avoid any multiples of 10, because those are when the ClamAV servers are +hit the hardest for updates. + +Next, edit ``/etc/clamd.d/scan.conf``. When you're finished you must enable the ``clamd`` service file and start ``clamd``:: - + systemctl enable clamd@scan.service systemctl start clamd@scan.service -That should take care of everything. Enable verbose logging in ``scan.conf`` +That should take care of everything. Enable verbose logging in ``scan.conf`` and ``freshclam.conf`` until it is running the way you want. Installing the Antivirus App for Files -------------------------------------- -Download the the Antivirus App for Files from the `ownCloud apps store -`_ , and -unpack it into your ``owncloud/apps/`` directory. Then go to your +Download the the Antivirus App for Files from the `ownCloud apps store +`_ , and +unpack it into your ``owncloud/apps/`` directory. Then go to your ownCloud Apps page to enable it. .. figure:: ../images/antivirus-app.png @@ -87,62 +87,62 @@ ownCloud Apps page to enable it. Configuring ClamAV on ownCloud ------------------------------ -Next, go to your ownCloud Admin page and set your ownCloud logging level to +Next, go to your ownCloud Admin page and set your ownCloud logging level to Everything. .. figure:: ../images/antivirus-logging.png -Now find your Antivirus Configuration panel on your Admin page. +Now find your Antivirus Configuration panel on your Admin page. .. figure:: ../images/antivirus-config.png ClamAV runs in one of three modes: -* Daemon (Socket): ClamAV is running on the same server as ownCloud. The ClamAV - daemon, ``clamd``, runs in the background. When there is no activity ``clamd`` - places a minimal load on your system. If your users upload large volumes of +* Daemon (Socket): ClamAV is running on the same server as ownCloud. The ClamAV + daemon, ``clamd``, runs in the background. When there is no activity ``clamd`` + places a minimal load on your system. If your users upload large volumes of files you will see high CPU usage. - -* Daemon: ClamAV is running on a different server. This is a good option + +* Daemon: ClamAV is running on a different server. This is a good option for ownCloud servers with high volumes of file uploads. - -* Executable: ClamAV is running on the same server as ownCloud, and the - ``clamscan`` command is started and then stopped with each file upload. - ``clamscan`` is slow and not always reliable for on-demand usage; it is + +* Executable: ClamAV is running on the same server as ownCloud, and the + ``clamscan`` command is started and then stopped with each file upload. + ``clamscan`` is slow and not always reliable for on-demand usage; it is better to use one of the daemon modes. Daemon (Socket) - ownCloud should detect your ``clamd`` socket and fill in the ``Socket`` - field. This is the ``LocalSocket`` option in ``clamd.conf``. You can + ownCloud should detect your ``clamd`` socket and fill in the ``Socket`` + field. This is the ``LocalSocket`` option in ``clamd.conf``. You can run ``netstat`` to verify:: netstat -a|grep clam unix 2 [ ACC ] STREAM LISTENING 15857 /var/run/clamav/clamd.ctl - -.. figure:: ../images/antivirus-daemon-socket.png - The ``Stream Length`` value limits the size of files to be scanned. 10485760 - bytes, or ten megabytes, is the default. Files larger than this will not be - uploaded or scanned. The ClamAV documentation recommends setting this to the - same value as your limit for attachments on your email server. - - ``Action for infected files found while scanning`` gives you the choice of - logging any alerts without deleting the files, or immediately deleting - infected files. - -Daemon - For the Daemon option you need the hostname or IP address of the remote - server running ClamAV, and the server's port number. - .. figure:: ../images/antivirus-daemon-socket.png - + + The ``Stream Length`` value limits the size of files to be scanned. 10485760 + bytes, or ten megabytes, is the default. Files larger than this will not be + uploaded or scanned. The ClamAV documentation recommends setting this to the + same value as your limit for attachments on your email server. + + ``Action for infected files found while scanning`` gives you the choice of + logging any alerts without deleting the files, or immediately deleting + infected files. + +Daemon + For the Daemon option you need the hostname or IP address of the remote + server running ClamAV, and the server's port number. + +.. figure:: ../images/antivirus-daemon-socket.png + Executable - The Executable option requires the path to ``clamscan``, which is the + The Executable option requires the path to ``clamscan``, which is the interactive ClamAV scanning command. ownCloud should find it automatically. - + .. figure:: ../images/antivirus-executable.png -When you are satisfied with how ClamAV is operating, you might want to go +When you are satisfied with how ClamAV is operating, you might want to go back and change all of your logging to less verbose levels.