Руководство администратора Linux по безопасности

         

PFinger


PFinger проще Cfingerd, но тоже безопасная замена обычного fingerd. Вы можете скачать PFinger

http://www.xelia.ch/unix/pfinger.



PGP-ключи:


Пожалуйста обратите внимание, что я использую этот ключ для seifried@seifried.org и listuser@seifried.org (мой логин для списков рассылки).

-----BEGIN PGP PUBLIC KEY BLOCK----- Version: PGPfreeware 6.5.2 for non-commercial use <http://www.pgp.com>

mQGiBDd4BcsRBADUoqfo4M0lgxBJAdd/S2KTM7HjepPGzfwvjfXWK9TPQkmTYEwP P8OkXMk7XRhfO0QKJAVkrXlWtBp0R+mqQ3jmZ0G4j93qskEsSU9rl62GaafU236X t1b/lSoXQwQ4In/OvkwMnVzKbMApH0tlvugAv69HxNoIl4990kcqnPq5eQCg/2oU gsYP7/UrugRtZIKufr6XizED/3G7KGI7LJmJijCHbYcgPRscTCzb8XOTknb7lZyG /WPVLeYPO9C68i49KHZ1VqjlM5LxsfUvYDSDUZLYXrjYyh8Td/0rf3eV1thItmqk GiaQA1X3j+Xv4D/gT3w43thqiWtNKM+B/ULkJ/sO1xlKKyja97V08JTjO9UCUq0K D0CsBACFF5T/W3qI05e68F7qojwls71IiDA0E/x5HZd8OKM0qvHGko7pnkl/AFW+ 4MqOU6zj5qtRqB3H0gjkLwqiVCMasPMgBGSE+etrtG9acnk2qKo1uY3cnOK3cfTv Zp1Nm0e8Io2SXwLI+vxxm/KYCyPI+zVtKk56Vl04IPIoya/VE7QlS3VydCBTZWlm cmllZCA8c2VpZnJpZWRAc2VpZnJpZWQub3JnPokASwQQEQIACwUCN3gFywQLAwIB AAoJEIb9cm7tpZo3kbkAoKsXhmRFa7SgnLZ/FqaFrHdoBQPJAJ9hJ7N8AJh02+4d RlXBW3DIqbU6lIkAnAQQAQEABgUCOIVMzwAKCRA1LHNOSlL+VZKhA/9ih5eLXf6v o22EHyMY4P8sL1cgu+ucrmF0ATl99QD/QRDeIglmbep5heyJj3bvlL6QONKoWwL5 fGS7MtlIhQwaR/4o2W9u8bxffVHGkfVQ3mMsN1FpuD1bwS3szjYJo97UbAr6ZEsN oSKVKJGgvLNjjGcwoXr862T/YKX7+GhA47QlS3VydCBTZWlmcmllZCA8bGlzdHVz ZXJAc2VpZnJpZWQub3JnPokASwQQEQIACwUCODuCqAQLAwIBAAoJEIb9cm7tpZo3 fSsAn29Kdkl8s7W+giKw1VN9b0gjwnhZAJ4lewK2Lpc202L3q+SK0U7UFPA5LbQr S3VydCBTZWlmcmllZCA8c2VpZnJpZWRAc2VjdXJpdHlwb3J0YWwuY29tPokASwQQ EQIACwUCOG3kHwQLAwIBAAoJEIb9cm7tpZo3eJMAoPPAbfACMBQjUI6UGpZvm1i2 o7v4AKC2jqafvis99yZjvosEih3tUpgF2bkCDQQ3eAXMEAgA9kJXtwh/CBdyorrW qULzBej5UxE5T7bxbrlLOCDaAadWoxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX 1KHTUPj1WV/cdlJPPT2N286Z4VeSWc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFe xwGq01uejaClcjrUGvC/RgBYK+X0iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8 Wy2O9vPJI8BD8KVbGI2Ou1WMuF040zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18 hKcKctaGxAMZyAcpesqVDNmWn6vQClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV 6TILOwACAggAt5ZYjwTb3CviA8ECSRHXM0V6n5AjtyNiKHzay93Ac9bCL/dypY+C qRByzX31DY08h8UdfgHhs1ppZ/BfU5VHvPR/T69AkrXSyo4xAeyJ0VGY9RGzSO8P GcQQ9kehwavWc97f1aMTqYW+u8nQF2vi/kINOaEef7/JpNwNPadWmYA6zio9Gt3I 5SGquXMvEKsWJEjTsKhFAmkfWvC/XLswHyIaf7fs4wOpXhIaW4yxvMEPnvWh/NaE 3Njadml39MuPE6wLAC858SKgq8JWuk81lRpAUAktZacgfJyIiDzKNSPDgH/ikupc 012AkuFDd6SLaBGaJtGGK2bAflBc5K+bS4kARgQYEQIABgUCN3gFzAAKCRCG/XJu 7aWaN9vmAKDw9ZWdnej1n2sHUtyW7ffPFWHpgQCg8kVLzK9vEDGhyWP3PbwWaQ9/ NjE= =OJbD -----END PGP PUBLIC KEY BLOCK-----


Возможно, Вы заметили тэги FrontPage в LASG и задались вопросом: что они делали там. Хорошо, пришло время открыть мой ужасный секрет:

Изначчально я написал LASG в Word 97, затем конвертировал в HTML и поддерживаю его с использованием FrontPage.

Позор и ужас... Но я перебрал все доступные мне редакторы HTML и выяснил, что для новичка в HTML нет ничего лучше FrontPage с его полезными свойствами, типа поддержки отслеживания ссылок, проверки орфографии и прочего. Так что, мастер-копия LASG хранится на моем NT Server (который я использую как автоматизированное рабочее место) и поддерживается через FrontPage, но как это добирается для Вас?

Через TCP-IP и ряд методов передачи файлов.

Первая стадия должна переместить документ с внутренней NT-машины, что выполняется через ftp и perl-скрипт "mirror". Этот сценарий также позволяет мне легко управлять каталогами vti для FrontPage. Затем на моем Linux-сервере создается ежедневный tarball и обновляется ссылка на него. С одного из серверов SecurityPortal.com ежедневно он просто зеркалируется (локальное время 4am) через rsync (который работает действительно хорошо). Так что все серверы SecurityPortal.com захватывают свежую версию через rsync,

Причина создания такой схемы в том, что она хорошо автоматизируется (фактически на 100%) и работает без проблем (никаких сбоев за несколько месяцев).

Back



Written by Kurt Seifried


PGP (Pretty Good Privacy)




Это одна из популярнейших программ для публичного шифрования. Она перенесена на Unix, Windows и Macintosh. К сожалению, это теперь коммерциализировано, что закончилось потерей качества для пользователей. Я лично полагаю, что любое программное обеспечение используемое, чтобы шифровать или иначе защищать данные ДОЛЖНО иметь открытые исходные коды (а как еще Вы убедитесь что это безопасно?). PGP сейчас продан Network Associates и я не могу его честно рекомендовать. PGP можно скачать с ftp://ftp.zedz.net, http://www.pgp.com и с http://www.pgpi.org.



PGP VPN


Авторы (Network Associates) теперь создали пакет ?PGP VPN?. Он поддерживает IPSec и (по сообщениям) работает с Linux FreeS/WAN. Вы можете скачать его с

http://www.nai.com/asp_set/products/tns/pgp_vpn.asp. Свободная версия PGP из NAI также поддерживает IPSEC VPN и доступна на http://www.pgpi.com.



Pgp4pine


pgp4pine PGP-shell для pine, позаоляет легко работать с PGP/GnuPG из pine. Скачать можно с

http://www.rhrk.uni-kl.de/~lamm/pgp4pine.



Phoenix Adaptive Firewall


Я только изучаю этот пакет, но уже считаю его очень хорошим. Он польностью заменяет ipchains и добавляет много умного и полезного в процесс firewall. Это коммерческий продукт (около $3000 US), и это первый firewall, который ICSA сертифицировала для Linux. Доступен на

http://www.progressive-systems.com/products/phoenix.



Pikt


Pikt чрезвычайно интересный инструмент, это фактически язык скриптов для администрирования системы. Pikt позволяет Вам делать многое: уничтожать неактивные процессы пользователя, устанавливать квоты почты, контролировать систему на предмет подозрительных действий и многое другое. Единственной проблемы с Pikt будет трудность изучения, поскольку он использует собственный язык создания скриптов, но в конечном счете я думаю этот язык того стиот, особенно если Вы имеете много систем (тем более, что Pikt сейчас работает на Solaris, Linux и FreeBSD). Pikt доступен на http://pikt.uchicago.edu/pikt.



Поддержка IPSec ядром


Чтобы использовать IPSEC, Вы нуждаетесь в поддержке IPSEC в ядре. К сожалению ни один дистрибутив American Linux не может включать в свой состав сильный crypto вне Северной Америки, так что они не включают это вообще. Международные версии Linux в настоящее время не имеют поддержки IPSEC встроенной в ядро. Вы должны получить исходный текст ядра (я рекомендую 2.2.13, от декабря 1999), и исходный текст Linux IPSEC, доступный на http://www.freeswan.org

(текущий стабильный snapshot 1.2, от декабря 1999).

Установите исходник ядра (обычно в /usr/src/linux) и затем скомпилируйте новое ядро, установите его, загрузитесь в нем и проверьте его. Удостоверитесь, что Ваша сеть работает правильно, если она не работают, IPSEC работать не будет. Теперь Вы должны загрузить последний вариант IPSEC (версия 1.0 не будет работать с ядрами 2.2.x!). Затем идите в /usr/local/src (или туда, где Вы помещаете исходные тексты для программ), распаковывайте исходник и выполняйте программу установки (make menugo обычно для конфигурации, основанной на ncurses). Это исправит файлы ядра, затем выполнит настройку ядра и сформирует инструментальные средства IPSEC и ядро.

cd /usr/local/src tar ?zvvxf /path/to/tarball/snapshot.tar.gz chown ?R root:root freeswan-snap1999Jun14b cd freeswan-snap1999Jun14b make menugo

Удостоверьтесь, что Вы сохраняете настройки ядра, даже при том, что параметры выбраны, они не были сохранены. Вам возможно также придется восстанавливать ядро, поскольку команда "make menugo" иногда выполняет "make zImage", а она обычно терпит неудачу из-за больших размеров ядеер серии 2.2.x. Сразу после комиляции в таком случае будет выдано сообщение об ошибке. Если оно есть, просто скомандуйте:

cd /usr/src/linux make bzImage cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.13-ipsec

Теперь Вы должны отредактировать lilo.conf, выполнить lilo и перезагрузиться, чтобы использовать новое ядро. lilo.conf должен выглядеть примерно так:

boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=100 image=/boot/vmlinuz-2.2.13-ipsec label=linux-ipsec root=/dev/hda1 read-only image=/boot/vmlinuz-2.2.13 label=linux root=/dev/hda1 read-only

При выполнении lilo Вы должны видеть нечто вроде:

linux-ipsec * linux

Затем перезагрузитесь, и Вы должны получить ядро 2.2.13 с поддержкой IPSEC. При перезагрузке будут сообщения об ошибках. Дело в том, что по умолчанию IPSEC установлен так, чтобы использовать интерфейс eth999, который конечно не существует. Вы должны также добавить /usr/local/lib/ipsec к Вашей инструкции path, или Вы будете должны каждый раз набирать полный путь.



Поиск софта


Проблема с Linux возникает при поиске софта, не поставляемого в дистрибутиве. Поиск через Internet особыми прелестями не отличается. Но есть несколько приятных ресурсов:

http://www.rpmfind.net

http://www.linuxapps.com

http://www.freshmeat.net



POP серверы


POP (post Office Protocol) является относительно простым протоколом, который позволяет Вам получать почту с сервера и удалять ее. Основные команды: USER, PASS (используется для регистрации), LIST (для получения списка писем и их размеров), RETR (для получения почты) и DELE (для удаления почты).



Portmap


Один сервис, который часто надо закрыть, portmap. Он используется некоторыми сервисами, например, nfs, и имеет длинный список проблем. Его запрет в OpenLinux связан с некоторыми проблемами, поскольку он запускается из того же скрипта, что и inetd. Вы можете или удалить portmap (?rpm ?e portmap?) или исправить в /etc/rc.d/init.d/inet:

NAME1=inetd DAEMON1=/usr/sbin/$NAME1 NAME2=rpc.portmap DAEMON2=/usr/sbin/$NAME2

на:

NAME1=inetd DAEMON1=/usr/sbin/$NAME1 #NAME2=rpc.portmap #DAEMON2=/usr/sbin/$NAME2

и заменить:

# Bail out if neither is present [ -x $DAEMON1 ] || [ -x $DAEMON2 ] || exit 2

на:

# Bail out if neither is present [ -x $DAEMON1 ] || exit 2

еще замените:

[ -x $DAEMON1 ] && ssd -S -n $NAME1 -x $DAEMON1 -- $INETD_OPTIONS [ -x $DAEMON2 ] && ssd -S -n $NAME2 -x $DAEMON2 -- $PORTMAP_OPTIONS

на:

[ -x $DAEMON1 ] && ssd -S -n $NAME1 -x $DAEMON1 -- $INETD_OPTIONS # [ -x $DAEMON2 ] && ssd -S -n $NAME2 -x $DAEMON2 -- $PORTMAP_OPTIONS

Затем закомментируйте весь фрагмент:

NFS="" cat /etc/mtab | while read dev mpoint type foo; do [ "$type" = "nfs" ] && NFS="$mpoint $NFS" done if [ -n "$NFS" ]; then echo -n "Unmounting NFS filesystems: " POLICY=I # Ignore 'device busy' during shutdown [ "$PROBABLY" != "halting" ] && POLICY=1 # exit on 'busy' for mpoint in $NFS; do SVIrun S $POLICY "$mpoint" "!$mpoint" \ umount $mpoint done echo "." fi



Portscanner


Portscanner очень маленькая утилита с настраиваемыми уровнями вывода, что делает его удобным для использования в скриптах. Имеет открытые исходники и свободен, скачать можно с

http://www.ameth.org/~veilleux/portscan.html.



Postfix


Postfix агент передачи почты (mail transfer agent, MTA) нацеленный на защиту, быстродействие и легкость конфигурации. Единственная часть Postfix, который выполняется как root главная управляющая программа, точно названная ?master?, она вызывает несколько других программ, чтобы обработать почту к очереди (?pickup?), управлять очередью, ждать входящих подключений, доставлять отсроченную почту и так далее (?qmgr?), чтобы фактически посылать и получать почту (?smtpd?) и так далее. Каждая часть Postfix очень хорошо обдумана, и обычно делает одну или две задачи, но очень хорошо. Например, вместо модели sendmail, где поставленная в очередь почта просто выбрасывается в /var/spool/mqueue, в Postfix имеется общедоступный каталог ?maildrop?, который проверяется ?pickup?, который скармливает данные ?cleanup?, который перемещает почту (если она правильно сформатирована и так далее) в безопасный каталог очереди для фактической обработки.

Главные файлы настройки лежат в /etc/postfix, и имеется несколько файлов конфигурации, которые Вы должны иметь:

master.cf

Управляет поведением различных программ ?помощников?: они chroot'ed, максимальное число процессов, которые они могут выполнять и т.д. Вероятно самое лучшее оставить значения по умолчанию на большинстве серверов почты, если Вы не должны делать некоторую настройку для высоких загрузок или повышенной безопасности сервера.

main.cf

Этот файл близок к sendmail.cf (цель похожа, что касается формата, разница огромна). Он хорошо прокомментирован и устанавливает все главные переменные, расположения и формат различных файлов, содержащих информацию типа виртуальных адресов пользователей и связанной информации.

Имеется список переменных и расположений файлов, которые Вы будете обычно должны установить, файл /etc/postfix/main.cf часто плохо прокомментирован. Пожалуйста обратите внимание, что следующие примеры записей в main.cf не полный main.cf.

# what is the machines hostname? myhostname = mail.example.org

# what is the domain name? mydomain = example.org


# what do I label mail as ?from?? myorigin = $mydomain

# which interfaces do I run on? All of them usually. inet_interfaces = all

# a file containing a list of host names and fully qualified domains names I # receive mail for, usually they are listed like: # mydestination = localhost, $myhostname, etc # but I much prefer to keep them listed in a file. mydestination = /etc/postfix/mydestination

# map of incoming usernames. ?man 5 virtual? virtual_maps = hash:/etc/postfix/virtual

# alias mappings (like /etc/aliases in sendmail), ?man 5 aliases? alias_maps = hash:/etc/postfix/aliases

# alias database, you might have different settings. ?man 5 aliases? alias_database = hash:/etc/postfix/aliases

# where to deliver email, Mailbox format or Maildir (traditional # /var/spool/mail). home_mailbox = Maildir/

# where to keep mail, usually /var/spool/mail/ but you can easily change it mail_spool_directory = /var/spool/mail

# what command do we use to deliver email? /usr/bin/procmail is the default # but if you want to use scanmail which is the AMaViS anti-virus tie in # software simply put: mailbox_command = /usr/sbin/scanmails

# who do I relay email for, again you can list them, or keep them in # a file (one per line). relay_domains = /etc/postfix/relaydomains

# list of local networks (by default we relay mail for these hosts). mynetworks = 10.0.0.0/24, 127.0.0.0/8

# what do we display to people connecting to port 25? By default it displays # the version number which I do not. smtpd_banner = $myhostname ESMTP $mail_name

Вообще говоря, любые файлы, которые просто вносят в список один элемент на строку (подобно /etc/postfix/mydestination или /etc/postfix/relaydomains) обычно сохраняются как плоские текстовые файлы. Файлы, которые содержат отображения (то есть псевдонимы, где Вы имеете записи вроде ?root: someuser?) должны быть превращены в hashed-файлы базы данных для быстродействия (Вы можете определять тип файла как hash, dbm, и т.д.).

Подобно большинству IBM-программ, Postfix имеет очень замороченную лицензию, но обычно имеет открытые исходники и свободен. Postfix доступен на http://www.postfix.org. Двоичный пакет postfix можно скачать с:

ftp://contrib.redhat.com/contrib/libc6/i386



ftp://ftp.debian.org/pub/debian/dists/potato/main/binary-i386/mail




ftp://ftp.suse.com/pub/suse/i386/6.2/suse/n1



PPDD


PPDD позволяет создать зашифрованный раздел на диске. Это может быть настоящий раздел или loopback device (который расположен в файле, но монтируется как файловая система). Он использует довольно хороший и быстрый алгоритм. Скачать PPDD можно с

http://linux01.gwdg.de/~alatham.



PPTP (Point to Point Tunneling Protocol)


PPTP, составляющий собственность протокол, созданный Microsoft для VPN решений. До настоящего времени показал многожество дефектов. Однако, если Вы должны интегрировать Linux в PPTP среду, еще не все потеряно:

http://www.moretonbay.com/vpn/pptp.html содержит Linux реализацию PPTP.



Преобразование форматов файлов


Другой способ иметь дело с пакетами: преобразовывать их. Имеется несколько утилит, чтобы преобразовать rpm-файлы в tarballs, rpm в deb и тому подобное.



A: Книги и журналы


Sendmail -

http://www.oreilly.com/catalog/sendmail2

Linux Network Admin Guide (NAG):

http://www.oreilly.com/catalog/linag

Running Linux -

http://www.oreilly.com/catalog/runux2/noframes.html

DNS & BIND -

http://www.oreilly.com/catalog/dns3

Apache -

http://www.oreilly.com/catalog/apache2

Learning The Bash Shell -

http://www.oreilly.com/catalog/bash2

Building Internet Firewalls -

http://www.oreilly.com/catalog/fire

Computer Crime -

http://www.oreilly.com/catalog/crime

Computer Security Basics -

http://www.oreilly.com/catalog/csb

Cracking DES -

http://www.oreilly.com/catalog/crackdes

Essential System Administration:

http://www.oreilly.com/catalog/esa2

Linux in a nutshell -

http://www.oreilly.com/catalog/linuxnut2

Managing NFS and NIS -

http://www.oreilly.com/catalog/nfs

Managing Usenet -

http://www.oreilly.com/catalog/musenet/

PGP -

http://www.oreilly.com/catalog/pgp

Practical Unix and Internet Security:

http://www.oreilly.com/catalog/puis

Running Linux -

http://www.oreilly.com/catalog/runux2

Using and Managing PPP -

http://www.oreilly.com/catalog/umppp/

Virtual Private Networks -

http://www.oreilly.com/catalog/vpn2/

Red Hat/SAMS also publish several interesting books:

Maximum RPM (available as a postscript document on http://www.rpm.org)

Red Hat User's Guide (available as HTML on ftp://ftp.redhat.com)

SNMP, SNMPv2 and RMON - W. Stallings (ISBN: 0-201-63479-1)

Magazines:

Linux Journal (of course, monthly)

Sys Admin (intelligent articles, monthly)

Perl Journal (quarterly) 

Information Security -

http://www.infosecuritymag.com



C: Прочие сведения по безопасности в Linux


Firewalling and Proxy Server HOWTO

http://metalab.unc.edu/LDP/HOWTO/Firewall-HOWTO.html

Linux IPCHAINS HOWTO

http://metalab.unc.edu/LDP/HOWTO/IPCHAINS-HOWTO.html

Linux NETFILTER HOWTO

http://netfilter.kernelnotes.org

Linux Security HOWTO

http://metalab.unc.edu/LDP/HOWTO/Security-HOWTO.html

Linux Shadow Password HOWTO

http://metalab.unc.edu/LDP/HOWTO/Shadow-Password-HOWTO.html

The Linux CIPE + Masquerading mini-HOWTO

http://metalab.unc.edu/LDP/HOWTO/mini/Cipe+Masq.html

Firewall Piercing mini-HOWTO

http://metalab.unc.edu/LDP/HOWTO/mini/Firewall-Piercing.html

Quota mini-HOWTO

http://metalab.unc.edu/LDP/HOWTO/mini/Quota.html

Secure POP via SSH mini-HOWTO

http://metalab.unc.edu/LDP/HOWTO/mini/Secure-POP+SSH.html

The VPN HOWTO (using SSH)

http://metalab.unc.edu/LDP/HOWTO/mini/VPN.html

Red Hat Knowledge Base

http://www.redhat.com/cgi-bin/support?faq



D: Интерактивная документация по безопасности


Bugtraq Archives

http://www.geek-girl.com/bugtraq

CERT Incident Reporting Guidelines

http://www.cert.org/tech_tips/incident_reporting.html

SECURITY RISK ANALYSIS AND MANAGEMENT

http://www.norman.com/local/whitepaper.htm

An Introduction to Information Security

http://www.certicom.com/ecc/wecc1.htm

Site Security Handbook

http://sunsite.cnlab-switch.ch/ftp/doc/standard/rfc/21xx/2196

Guidelines for the Secure Operation of the Internet

http://sunsite.cnlab-switch.ch/ftp/doc/standard/rfc/12xx/1281

How to Handle and Identify Network Probes

http://www.network-defense.com/papers/probes.html

Free Firewall and related tools (large)

http://sites.inka.de/sites/lina/freefire-l/index_en.html

Internet FAQ Consortium (You want FAQ?s? We got FAQ?s!)

http://www.faqs.org

An Architectural Overview of UNIX Network Security

http://www.alw.nih.gov/Security/Docs/network-security.html

The human side of computer security (an article on social engineering)

http://www.sunworld.com/sunworldonline/swol-07-1999/swol-07-security.html

IBM Redbooks

http://www.redbooks.ibm.com/

AES Algorithm Efficiency

http://www.seven77.demon.co.uk/cryptography_technology/Aes/index.htm

General security research and development

http://www.sekure.net/

Some general whitepapers and articles

http://www.enteract.com/~lspitz/pubs.html

COAST Library

http://www.cerias.purdue.edu/coast/coast-library.html

Coast hotlist (hugelist of resources)

http://www.cerias.purdue.edu/coast/hotlist

D.O.E. Sysworks

http://members.aol.com/jpeschel/index.htm



E: Основные сайты по security


SecurityPortal, has a Linux section, this document and my weekly column (it's a great site!).

http://www.securityportal.com

Open Security Solutions

http://www.opensec.net

SANS

http://www.sans.org

Security Mailing Lists

http://www.iss.net/vd/mail.html

Computer Security Information

http://www.alw.nih.gov/Security/security.html

8 Little Green Men

http://www.8lgm.org

Robert's Cryptography, PGP & Privacy Links

http://www.interlog.com/~rguerra/www

Open Security Solutions

http://www.opensec.net

Cryptome
http://cryptome.org

PacketStorm

http://packetstorm.securify.com

COAST

ftp://coast.cs.purdue.edu/pub

.rain.forest.puppy

http://www.wiretrip.net/rfp



F: Основные сайты по Linux


Linux.com

http://www.linux.com

Linux.org

http://www.linux.org

Linux Administration Made Easy (LAME)

http://www.LinuxNinja.com/linux-admin/

Back

Written by Kurt Seifried



Приложения


Приложение A: Книги и журналы

Приложение C: Прочие сведения по безопасности в Linux

Приложение D: Интерактивная документация по безопасности

Приложение E: Основные сайты по security

Приложение F: Основные сайты по Linux



Проект Linux ACL


Проект Linux (ACL) ряд заплат и утилит, чтобы конфигурировать ACL-доступ к файловой системе. Это решение все еще немного ненадежно, поскольку хранит разрешения в файле и действует как уровень фильтрации между файлом и пользователями, что не соответствует ACL (но это начало). Вы можете получить пакет на

http://www.braysystems.com/linux/trustees.html.



ProFTPD


ProFTPD доступный по GPL ftp-сервер, который может выполняться на многих UNIX-платформах. Он поддерживает новые свойства типа виртуальных ftp, индивидуальной настройки каталогов (в каждом каталоге используется файл .ftpaccess, аналог файла .htaccess в Apache), выдыхающиеся логины и многое другое. Он также поддерживает действительно полезные свойства типа ограничения загрузок и намного более жесткие средства управления защитой, чем WU-FTPD.

Основной файл конфигурации ПроФТПДа называется /etc/proftpd.conf, он имеет Apache-стиль, который я нахожу приятным. ProFTPD может быть выполнен из inetd (и использовать TCP_WRAPPERS) или выполнен как самостоятельный сервер. Он также поддерживает файлы конфигурации каталога, чтобы ограничить доступ и т.д. ProFTPD также поддерживает виртуальные ftp (хотя в отличие от виртуального www-сервера нужен лишний IP-адрес), причем каждый сайт может быть конфигурировано по-своему (различный анонимный доступ и другие параметры). Файл proftpd.conf обычно имеет раздел глобальных параметров настройки (inetd или автономный, максимальное число процессов, от какого имени работать и тому подобное), сопровождаемый заданной по умолчанию конфигурацией плюс настройка для конкретного сайта (или набора вирьуальных сайтов).

Пример настройки сервера ProFTPD для запуска из inetd без анонимного доступа:

ServerName "ProFTPD Default Installation" ServerType inetd DefaultServer on Port 21 Umask 022 MaxInstances 30 User nobody Group nobody <Directory /*> AllowOverwrite on </Directory>

Доустим, Вы хотите управлять доступом к серверу ftp исходя из IP-адресов, имен хостов и доменов (хотя лучше полагаться только на IP). Вы могли бы достичь этого через правила firewall, но это имеет тенденцию замедлять машину (особенно, если Вы добавляете большое количество правил как обычно и бывает). Вы могли бы использовать TCP_WRAPPERS, но Вы не будете способны выборочно ограничить доступ к виртуальным и анонимным сайтам. Но всего этого можно достичь в файле proftpd.conf директивой ?<Limit LOGIN>?.


Пример ниже разрешает доступ всем машинам 10.1.*.* и машине 1.2.3.4, всем остальным доступ запрещен.

<Limit LOGIN> Order Allow,Deny Allow from 10.1., 1.2.3.4 Deny from all </Limit>

Если Вы помещаете это внутри директив ?<VirtualHost>? или ?<Anonymous>? это применяется только к соответствующему виртуальному или анонимному сайту, при помещении в директиву ?<Global>? это будет применено ко всем секциям ?< VirtualHost>? и ?<Anonymous>?, а при помещении в настройки сервера (с ?ServerName? и связанными данными) это будет вести себя подобно TCP_WRAPPERS, любая машина не из диапазона 10.1.*.*, и не 1.2.3.4 получат отказ ри соединении с портом 21, в противоположность тому, что им просто было бы отказано в соединении, если бы эти ограничения были бы в секциях ?<Global>?, ?<VirtualHost>? или ?<Anonymous>?.

Если нужен анонимный доступ, просто допишите:

<Anonymous ~ftp> User ftp Group ftp RequireValidShell off UserAlias anonymous ftp MaxClients 10 DisplayLogin welcome.msg DisplayFirstChdir .message <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>

Это назначит ?ftp? домашний каталог, как и прочим пользователям, (при нормальной настройке ?~ftp? скорее всего он будет /home/ftp) в качестве корневого каталога для анонимных пользователей, ProFTPD выполнится как пользователь ?ftp? группы ?ftp?, когда пользователь заходит анонимно (в противоположность регистрации нормального пользователя), и число анонимных входов в систему будет ограничено 10. Также будет отображен файл /home/ftp/welcome, а при переходе в любой каталог, содержащий файл .message, его содержимое также будет отображаться. Директива ?< Directory *>? охватывает /home/ftp/* и не дает заисывать что-либо в данную иерархию. Если нужен каталог incoming (для входящих файлов) просто допишите после директивы ?<Directory *>?:

<Directory incoming> <Limit WRITE> AllowAll </Limit> <Limit READ> DenyAll </Limit> </Directory>

Это позволит записывать файлы в /home/ftp/incoming/, но не читать их. ProFTPD с его богатыми возможностями требует больше времени на настройку, чем WU-FTPD, но, видимо, того стоит. Загрузить ProFTPD с документацией на английском можно с

http://www.protftpd.net
.

proftpd-ldap

proftpd-ldap позволяет Вам управление паролем, используя LDAP. Доступен на

http://horde.net/~jwm/software/proftpd-ldap
.


Проникновение за Firewall


Иногда защита может наделать много проблем, особенно при неправильной настройке. Например, не пустить Вас к Вашим же данным. Есть mini-HOWTO по этим вопросам:

http://www.linuxdoc.org/HOWTO/mini/Firewall-Piercing.html. Кроме того, есть дополнения по IP Masquerading и VPN, доступные на

ftp://ftp.rubyriver.com/pub/jhardin/masquerade/ip_masq_vpn.html.



Протоколирование системы


Одно свойство Linux средства syslog и klog, которые позволяют программному обеспечению генерировать сообщения для протоколов, которые затем передаются log daemon и обрабатываются (пишутся в локальный файл, пересылаются на другой сервер, посылаются программе или обрабатываются как-то еще).



Протоколы ядра


Самый низкий уровень регистрации идет на уровне ядра. Вообще говоря, пользователи не могут отключить этот тип регистрации и даже обычно не знают, что такое существует.



Проверка целостности файлов


Обычно скачав пакет Вы его ставите. Но недавно ftp.win.tue.nl был вскрыт, и пакет TCP_WRAPPERS (и не он один) был заменен трояном. Прежде чем это заметили, пакет скачали 59 раз. Так что обязательно проверяйте целостность свежескачанного пакета до его установки.



Проверка почты на вирусы


Linux нечувствительна к вирусам, но они могут доставить МНОГО проблем на Windows-клиентах.


Данная тема подробно описана в разделе email-серверах и подразделе о проверке входящей почты (очень важно при наличии windows-клиентов).

Back

Written by Kurt Seifried



Proxy Gallery


Набор proxy, написаных для разных применений vja2@cornell.edu. Поддержижвают UDP, TCP, HTTP, Hand-off (для игры в Ultima Online) и tunneling. Доступны на

http://www.home.ctc.shadowlan.net/~vinny/projects/proxy.

Back

Written by Kurt Seifried



Ps


Программа ps показывает статус процессов (информацию из файловой системы /proc). Наиболее используемые параметры ?ps -xau?, которые показывают практически всю информацию, которую Вы когда-либо хотели бы узнать. Пожалуйста обратите внимание: эти параметры изменяются в разных UNIX-системах, Solaris, SCO, и другие ведут себя по-другому (что невероятно раздражает). Ниже приведен типичный вывод для машины (команда ?ps ?xau?).

USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND bin 320 0.0 0.6 760 380 ? S Feb 12 0:00 portmap daemon 377 0.0 0.6 784 404 ? S Feb 12 0:00 /usr/sbin/atd named 2865 0.0 2.1 2120 1368 ? S 01:14 0:01 /usr/sbin/named -u named -g named -t /home/named nobody 346 0.0 18.6 12728 11796 ? S Feb 12 3:12 squid nobody 379 0.0 0.8 1012 544 ? S Feb 12 0:00 (dnsserver) nobody 380 0.0 0.8 1012 540 ? S Feb 12 0:00 (dnsserver) nobody 383 0.0 0.6 916 416 ? S Feb 12 0:00 (dnsserver) nobody 385 0.0 0.8 1192 568 ? S Feb 12 0:00 /usr/bin/ftpget -S 1030 nobody 392 0.0 0.3 716 240 ? S Feb 12 0:00 (unlinkd) nobody 1553 0.0 1.8 1932 1200 ? S Feb 14 0:00 httpd nobody 1703 0.0 1.8 1932 1200 ? S Feb 14 0:00 httpd root 1 0.0 0.6 776 404 ? S Feb 12 0:04 init [3] root 2 0.0 0.0 0 0 ? SW Feb 12 0:00 (kflushd) root 3 0.0 0.0 0 0 ? SW Feb 12 0:00 (kswapd) root 4 0.0 0.0 0 0 ? SW Feb 12 0:00 (md_thread) root 64 0.0 0.5 736 348 ? S Feb 12 0:00 kerneld root 357 0.0 0.6 800 432 ? S Feb 12 0:05 syslogd root 366 0.0 1.0 1056 684 ? S Feb 12 0:01 klogd root 393 0.0 0.7 852 472 ? S Feb 12 0:00 crond root 427 0.0 0.9 1272 592 ? S Feb 12 0:19 /usr/sbin/sshd root 438 0.0 1.0 1184 672 ? S Feb 12 0:00 rpc.mountd root 447 0.0 1.0 1180 644 ? S Feb 12 0:00 rpc.nfsd root 458 0.0 1.0 1072 680 ? S Feb 12 0:00 /usr/sbin/dhcpd root 489 0.0 1.7 1884 1096 ? S Feb 12 0:00 httpd root 503 0.0 0.4 724 296 2 S Feb 12 0:00 /sbin/mingetty tty2 root 505 0.0 0.3 720 228 ? S Feb 12 0:02 update (bdflush) root 541 0.0 0.4 724 296 1 S Feb 12 0:00 /sbin/mingetty tty1 root 1372 0.0 0.6 772 396 ? S Feb 13 0:00 inetd root 1473 0.0 1.5 1492 1000 ? S Feb 13 0:00 sendmail: accepting connections on port 25 root 2862 0.0 0.0 188 44 ? S 01:14 0:00 /usr/sbin/holelogd.named /home/named/dev/log root 3090 0.0 1.9 1864 1232 ? S 12:16 0:02 /usr/sbin/sshd root 3103 0.0 1.1 1448 728 p1 S 12:16 0:00 su -root 3104 0.0 1.3 1268 864 p1 S 12:16 0:00 -bash root 3136 0.0 1.9 1836 1212 ? S 12:21 0:04 /usr/sbin/sshd

Здесь интересны: portmap, named, Squid (и порожденные им процессы dnsserver, unlinkd и ftpget), httpd, syslogd, sshd, rpc.mountd, rpc.nfsd, dhcpd, inetd и sendmail (эти серверы предоставляют шлюзовые сервисы, почту и доступ к файлам по NFS). Самый простой способ понять вывод команды ps, это почитать ее man-страницу, которая детально все объясняет (многие поля понятны и так, например %CPU показывает сколько квантов времени процессора занимает процесс, SIZE сколько 4k ?страниц? памяти использует программа). Чтобы узнать что делает та или иная программа, наиболее безопасно использовать ?man <command_name>?; там почти есть вся необходимая информация о сервисе (например, по httpd). Обратите внимание, что некоторые сервисы подобные telnet, ftpd, identd и ряд других не обнаруживаются даже при том, что они включены. Это потому, что они выполнены из inetd, ?суперсервера?. Чтобы их найти, посмотрите файл /etc/inetd.conf или вывод команды ?netstat ?vat?.



Psionic HostSentry


Поскольку это программное обеспечение еще не готово для массового потребления, я упоминаю его только как часть большого проекта (проект Abacus, http://www.psionic.com/abacus). В основном Psionic HostSentry формируетпрофили доступа пользователей и затем сравнивает их с текущими действиями, чтобы пометить любое подозрительное действие. Psionic HostSentry доступен на

http://www.psionic.com/abacus/hostsentry.



Psionic Logcheck


Psionic Logcheck регулярно (можно из crontab) изучает файл messages (и другие) и посылает по e-mail отчет о всем подозрительном. Он легко настраивается с помощью ?классов? событий: которые нужно игнорировать, активные попытки проникновения, просто плохие действия. Psionic Logcheck доступен на

http://www.psionic.com/abacus/logcheck.



Psionic PortSentry


Третий компонент набора Abacus, обнаруживает и регистрирует сканирование портов, включая тайные сканирования, может быть конфигурирован, чтобы блокировать машину с которой пришли запросы. Поскольку этот инструмент находится в состоянии тестирования, пока лучше воздержаться от его применения, но со временем... Psionic PortSentry доступен на

http://www.psionic.com/abacus/portsentry.



Putty


putty Windows SSH-клиент, очень удобный, свободный и очень маленький (184k всего). Скачать можно с

http://www.chiark.greenend.org.uk/~sgtatham/putty.html.



PyCA


pyCA совокупность программных скриптов, написанных на python для установки авторизации сертификатов. Загрузить можно с:

http://sites.inka.de/ms/python/pyca/.

Back

Written by Kurt Seifried



QMAIL


Qmail (аналог postfix) был создан как прямой ответ для устранения дефектов Sendmail. Qmail распространяется по GPL, но только в исходниках, так что Вам придется их компилировать. Вы должны также получить разрешение авторов прежде, чем Вы сделаете и распространите любые изменения (ничего хорошего, но таковы жизнь и авторы...). Очень небольшой код в Qmail выполняется как root, , и это очень модульно сравнено с Sendmail (который является довольно монолитным куском кода). Вы можете загрузить исходники с http://www.qmail.org.



Qpopper


Qpopper freeware-продукт Qualcomm (разработчика пакета Eudora). Я его не рекомендую (исходники можно скачать с

ftp://ftp.qualcomm.com/eudora/servers/unix/popper/). Доступен на

http://eudora.qualcomm.com/freeware/qpop.html.



Queso


Queso не сканер, но сообщит Вам с довольно хорошей степенью точности под какой ОС работает удаленный компьютер. При использовании ряда допустимых и ошибочных пакетов tcp он сравнивает получаемые ответы со списком известных ответов для разных ОС. Скачать Queso можно с

http://www.apostols.org/projectz/queso.



Quickstart


Quickstart больше нацелен на изготовление образа системы так, чтобы когда жесткий диск накроется, Вы могли бы быстро заполнить пустой диск и получить рабочую систему. Это может также использоваться, чтобы размножить одну систему на несколько машин. Программа получила неплохой отзыв в Linux Journal (Nov 1998, page 50). Получить можно с

http://www.estinc.com/qsdr.html.



Quota


Quota является системой для ограничения использования диска пользователями. Она встроена в большинство дистрибутивов. Справка доступна на man-странице командой ?man quota?.



R-сервисы


R-сервисы (rsh, rcp, rexec и подобные) небезопасны. Защитить их трудно, так что лучше не используйте их! Их собственная защита основана на hostname/IP-адресе машины, с которой устанавливается соединение, что легко можно подделать. По умолчанию они не все заблокированы, пожалуйста выключите их немедленно. Поправьте /etc/inetd.conf, найдите в нем rexec, rsh и тому подобное и закомментируйте эти строки, после чего перезапустите inetd: "killall -1 inetd".

Если Вы абсолютно должны использовать эти сервисы, используйте TCP_WRAPPERS, это немного поможет. Также надо использовать firewall, так как от правильно поставленной атаки TCP_WRAPPERS защитит далеко не всегда. Доступ к различным R-сервисам управляется через файлы rhosts, обычно каждый пользователь имеет собственный файл rhosts, к сожалению, это восприимчиво к спуфингу пакетов. Проблема с r-сервисами в том, что есть маленькая дырка в защите системы, которая позволяет править файлы и редактировать данные о пользователях (как root) .rhost-файлы делают систему очень доступной.

Если Вы нуждаетесь в удаленных инструментальных средствах администрирования, которые являются легкими в использовании и подобными rsh, я рекомендую NSH (Network SHell) или SSH: они поддерживают шифрование и намного более высокий уровень защиты. Альтернатива: использование программного обеспечения VPN уменьшит часть риска, поскольку Вы можете блокировать пакеты спуфинга (IPSec-авторизация отправителя и источника, что является в некоторых случаях более важным, чем шифрование данных).

Back

Written by Kurt Seifried



Radius


Radius часто используемый протокол, чтобы опознать заходящих по модему пользователей, и другие типы сетевого доступа.



RearSite


RearSite представляет собой cgi-программу для предоставления пользователям доступа к их каталогам через обычный web-браузер. Скачать можно с http://listes.cru.fr/rs/fd.



Red Hat Linux


Bugs:

http://developer.redhat.com/bugzilla

Security:

http://www.redhat.com/support 

Support: support@redhat.com



В течение установки Red Hat


В течение установки Red Hat 6.0 позволит Вам установить теневые пароли и поддержку MD5-паролей. Обновите ядро Red Hat 6.0, поскольку оно уязвимо для атак denial of service (на основе icmp).

Back

Written by Kurt Seifried


Red Hat Secure Server


Red Hat Secure Server основан на Apache. По существу, это Apache с RSA cryptographic модулями (которые являются тем, за что Вы платите по существу) и можете также обслуживать стандартные (не cryptographic) http запросы. Из-за бюрократии, он продается только в США и Канаде, но реально сильная криптография давно используется всеми и везде. Red Hat Secure Server стоит $100 US и Вы получает скидку в $25 на Thawte-сертификат сайта (в результате такой сертификат будет стоить еще $100 US). Купить Red Hat Secure Server можно на

http://store.redhat.com/commerce.



Решения для VPN


Имеется ряд VPN решений для Linux. Очень советую при возможности использовать IPSec, поскольку он представляет собой прообраз стандарта для if VPN в Internet, и будет включен в IPv6. С другой стороны, если Вы защищены firewall, и Вам нужен туннель, пользуйтесь SSH, поскольку из-за изменения заголовков пакетов IPSec обычно проваливается.



Резервирование


Обзор

Некоммерческие программы резервирования для Linux

Tar и Gzip

rsync

Amanda

afbackup

Burt

Коммерческие программы резервирования для Linux

BRU

Quickstart

Backup Professional

CTAR

CTAR:NET

PC ParaChute

Arkeia

Legato Networker

Perfect Backup

Носители для резервных копий



Rhlupdate


Rhlupdate также соединяется с ftp-сайтом и захватывает любые необходимые модификации, те же самые проблемы, что и в предыдущем случае, имеются и с ним. Также требуется, чтобы Вы установили пакет libnet Net::FTP для Perl. Скачать можно с

ftp://missinglink.darkorb.net/pub/rhlupdate.



Routed


routed один из стандартных пакетов маршрутизации для Linux. Он поддерживает RIP (самый старый протокола маршрутизации, все еще используется). RIP очень прост, роутеры просто передают таблицы маршрутизации соседним маршрутизаторам, создавая в результате (в теории) полную таблицу маршрутизации, которая содержит записи для каждого адресата в Internet. Этот метод опасен и очень неэффективен вне маленьких безопасных сетей. Вы можете использовать firewall для портов 520 и 521, которые использует RIP для передачи данных, но атакующие все еще могут применить спуффинг маршрутов.