CIFS
CIFS позволяет пользователю Linux устанавливать права разделения файлов в Windows менять ACL для файлов (под NT) и тому подобное. Вы можете получить CIFS для Linux с
http://www.linuxstart.com/~cifs
Back
Written by Kurt Seifried |
CIPE (Crypto IP Encapsulation)
CIPE свободная схема шифрования IP-уровня, предполагаемая для использования между маршрутизаторами. Это подходит для безопасного соединения сетей через опасную сеть (подобную Internet). Официальный сайт CIPE:
http://sites.inka.de/~W1011/devel/cipe.html.
COAS
Проект COAS (Caldera Open Administration System) очень честолюбивый проект, призванный обеспечить управление системами из командной строки (с псевдографическим интерфейсом), из X (использование набора qt widget) и по сети. Вышла версия 1.0. Сайт COAS:
http://www.coas.org.
Coda
Расширенная сетевая файловая система.
http://www.coda.cs.cmu.edu.
Colorlogs
colorlogs ракрашивает log-файлы, позволяя легко найти подозрительное. Основанный на файле конфигурации, он ищет ключевые слова и сопоставляет им цвета строк (red, cyan и другие), требуется ввод с STDIN, так что Вы можете использовать это средство чтобы сделать быстрый обзор журналов (используя ?cat?, ?tail? или другие утилиты, чтобы передать файл программе). Получить можно на
http://www.resentment.org/projects/colorlogs.
Confcollect
confcollect простой скрипт для сбора системной информации, например, таблиц роутинга, установленных пакетов rpm и прочего в таком духе. Загрузить его можно с
http://www.skagelund.com/confcollect.
Contributions
Если Вы можете помочь в разработке и редактировании LASG, пишите мне на seifried@seifried.org. Вы будете внесены в список contributor.
Contributors
Alan Mead ? amead@soltec.net
внес очень много поправок и пытался обучать меня языку (при переходе к письменности мои дела плохи).
Cops
Cops чрезвычайно устаревший сканер. Упомянут только для исторической точности.
Courier-IMAP
Courier-IMAP легкий сервер IMAP определенно для использования с почтовыми ящиками стиля Maildir (не /var/spool/mail). Скачать можно с
http://www.inter7.com/courierimap.
Crack
Первоначальный широко распространенный вскрыватель (насколько я знаю), доступен на
http://www.users.dircon.co.uk/~crypto.
CUPS
Common UNIX Printing System (CUPS) доступен по лицензии GPL и только что появился (версия 1.0). CUPS можно скаччать с
http://www.cups.org.
Common UNIX Printing System (CUPS), доступна по лицензии GPL, пока вышла версия 1.0. CUPS можно скачать с
http://www.cups.org.
Back
Written by Kurt Seifried |
Cut the crap
Cut the crap (CTC) ориентирован на блокировку баннеров и экономию трафика при работе в сети за счет отсечения явно лишних данных. Скачать можно с
http://www.softlab.ece.ntua.gr/~ckotso/CTC.
CVS
CVS используется, чтобы централизованно поддерживать исходный текст в архиве и позволить людям делать модификации, с акцентированием на способности отмены изменений, получения старой версии и тому подобного. Это очень популярно для больших программных проектов.
Back
Written by Kurt Seifried |
Cyclone
Cyclone является коммерческим сервером NNTP, нацеленный на транспортировку новостей между серверами, то есть прием статей с других NNTP-серверов и передачу их на другие сервера. Он не нацелен на использование конечными пользователями для чтения или отправки статей. Вы можете получить Cyclone на http://bcandid.com.
Cyrus
Cyrus является сервером imap (также поддерживает pop и kpop), нацеленным на ?закрытые? среды. То есть то, что пользователи не будут иметь никакого доступа к серверу, кроме imap или pop. Это позволяет Cyrus сохранять почту намного более безопасным способом и учитывает более простое управление больших инсталляций. Cyrus не GNU-лицензирован, но относительно ?free ?, и доступен на
http://asg.web.cmu.edu/cyrus/imapd. Набор дополнительных утилит для Cyrus можно скачать с
ftp://ftp.hr.vc-graz.ac.at/cyrus-tools.
Dante
Dante свободная начинка популярного сервера SOCKS. Доступен на http://www.inet.no/dante.
Debian GNU/Linux
Bugs: bugs@debian.org
http://www.debian.org/security
DeleGate
DeleGate многопротокольный proxy с поддержкой HTTP, NNTP, FTP, SSL proxying и другого. Имеет серьезные возможности защиты, доступен на
http://wall.etl.go.jp/delegate.
Dents
Dents представляет собой DNS-сервер, доступный по GPL, в настоящее время находится на тестировании (release 0.0.3). Dents написан с нуля с поддержкой SQL backends, интеграции с SNMP и использует CORBA для своих задач. В целом это должно создать хорошую конкуренцию Bind. Dents доступен на http://www.dents.org.
Back
Written by Kurt Seifried |
Дезинфекция
Резервируйтесь и присматривайте за всем подозрительным в системе. Если кто-то получил root-доступ, он может устроить многое, от троянца в gcc/egcs до загузки интересных модулей ядра. Не ставьте неизвестный софт как root. Проверяйте PGP-сигнатуры загружвемых файлов.
Самый простой метод для пресечения вирусов: использовать инструментальные средства целостности системы типа tripwire, L5 и Gog&Magog, Вы сможете легко узнать какие файлы были изменены и восстановить их. Имеется также много антивирусных сканеров, доступных для Linux (но вообще говоря, не имеется Linux-вирусов).
Diablo
Diablo свободный пакет, нацеленный на транспортировку новостей между серверами, то есть прием статей с других NNTP-серверов и передачу их на другие сервера. Он не нацелен на использование конечными пользователями для чтения или отправки статей. Вы можете получить Diablo с
http://apollo.backplane.com/diablo.
Для безопасности
Данная заплата (Secure Linux kernel patch) решает ряд проблем и обеспечивает другой уровень защиты для системы. Заплата доступна для ядер серий 2.0 и 2.2. Скачать можно с
http://www.openwall.com/linux.
Для национальных версий
Данная заплата (International kernel patch) более мегабайта в размере! Добавляет огромное количество сильного crypto и связанных элементов. Это включает несколько алгоритмов шифрования, которые были AES-кандидатами (включая MARS из IBM). Вы можете скачать патч с http://www.kerneli.org.
DMail
DMail коммерческий почтовый сервер, открытых исходников не имеет. Пробная версия доступна на
http://netwinsite.com/dmail_first.htm.
DNews
Коммерческий NNTP-сервер для разных платформ. Доступен на
http://netwinsite.com/dnews.htm.
DNi
DNi представляет собой online cgi для создания наборов правил для ipfwadm. Попробовать можно на
http://members.tripod.com/~robel/dni.
Back
Written by Kurt Seifried |
Добавочный CD
Данный диск содержит много дополнительных полезных программ (например, Tripwire):
Amanda (хороший пакет для резервирования)
ipmasqadm (пересылка порта на уровне ядра)
ipchains (установка firewall)
ProFTPD (сервер ftp, лучший чем WuFTPD)
Squid (ftp и www proxy-сервер)
Tripwire (создает контрольные суммы файлов и предупреждают Вас, если они изменяются
Доступ к файлам WWW-сервера
Теперь надо обновлять файлы на сервере... Зайти и использовать текстовый редактор (даже если у Вас shell-доступ) не самая лучшая мысль. Писать файлы на другой машине, а потом синхронизировать с сайтом... Бр-р, я сам этим занимаюсь, и должен сказать, что такая система заставляет о дальнейшем совершенствовании процесса. Есть несколько популярных пакетов HTML-разработки, способных обновлять сайт самостоятельно по FTP или windows file sharing.
Dpkg
Debian package system подобна RPM, однако испытывает недостаток по части функциональных возможностей, хотя и делает превосходную работу по управлению пакетами программ в системе. Oбъединив ее с утилитой dselect Вы можете соединяться с удаленными сайтами, просматривать доступные пакеты, устанавливать их, выполнять любые необходимые скрипты конфигурации, все из консоли. man-страница для dpkg "man dpkg" очень подробная.
Основной формат имени файла пакета Debian (.deb):
packagename_packageversion-debversion.deb
ncftp2_2.4.3-2.deb
В отличие от rpm-файлов, .deb-файлы не помечены для конкретной архитектуры, это надо помнить.
Команды и их функции:
-I Запрашивает пакет
-i Устанавливает пакет
-l Список установленных пакетов (аналог rpm -qa)
-r Удаляет пакет
Пример команды | Действие |
dpkg -i package.deb | Устанавливает package.deb |
dpkg -I package.deb | Информация о package.deb (аналог rpm -qpi) |
dpkg -c package.deb | Список всех файлов в package.deb (аналог rpm -qpl) |
dpkg -l | Показывает все установленные пакеты |
dpkg -r package-name | Удаляет пакет 'package-name' (имя соответствует указанному в выводе команды dpkg -l) |
Debian имеет 1500+ пакетов, доступных с системой. Вообще-то, dpkg имеет все необходимое для работы, но часто RPM удобнее.
Dpkg integrity
dpkg поддерживает MD5. MD5 входит во многие дистрибутивы.
Drall
Основанная на https система безопасного разделения файлов. Скачать можно с
http://www.edlund.org/hacks/drall/index.html.
Другие Identd daemons
Есть несколько версий identd, предположительно с расширенной безопасностью.
http://insecurity.net: Paul's secure identd, написан на Perl
http://www.tildeslash.org/nullidentd.html: null identd
http://www.ajk.tele.fi/~too/sw: fake identd
http://p8ur.op.het.net/midentd: midentd
http://www.nyct.net/~defile/programs/ident2: ident2
ftp://junker.org/pub/lidentd: lidentd
Другие перехватчики
Вот список еще нескольких перехватчиков пакетов (снифферов) для Linux, основанных на библиотеке libpcap:
http://www.mtco.com/~whoop/ksniff/ksniff.html - KSniff
http://ksniffer.veracity.nu - Ksniffer
http://mojo.calyx.net/~btx/karpski.html - karpski
http://www.ozemail.com.au/~peterhawkins/gnusniff.html - Gnusniff
http://www.xnet.com/~cathmike/mike/Software - ipgrab
DTK
Deception ToolKit представляет из себя набор программ, которые подражают известным услугам, чтобы обеспечить неправильные данные нападавшим. Есть надежда, что они должны запутаться и замедлиться за счет неправильных заключений, Вы можете скачать DTK с
http://all.net/dtk.
Два сервера с защищенным соединением
В нашем примере мы будем иметь следующую сеть:
Сервер A, где eth0 соединен с Internet и имеет IP-адрес 1.2.3.4, и eth1 соединен с внутренней сеткой и имеет IP-адрес 10.0.0.1.
Сеть A внутренняя: состоит из сервера A и машин подсети 10.0.0.*.
Сервер B, где eth0 соединен с Internet и имеет IP-адрес 5.6.7.8, и eth1 соединен с внутренней сеткой и имеет IP-адрес 192.168.0.1.
Сетьk B внутренняя: состоит из сервера B и машин подсети 192.168.0.*.
Сеть C Internet, с ним связаны серверы серверы A и B (по T1, давайте быть щедрыми).
Основная настройка серверов
На каждой машине установлена Red Hat Linux 6.1 со стандартным для нее ядром 2.2.12, удостоверьтесь что Вы устанавливаете ipchains, по умолчанию он обычно не ставится.
Идите на ftp.linux.org (или на Ваше любимое зеркало) и загрузите полное ядро Linux 2.2.10. Идите в /usr/src и удалите существующую ссылку linux, распакуйте ядро 2.2.10, переместите его в /usr/src/linux-2.2.10 и создайте ссылку "linux" на него. Теперь перейдите в каталог /usr/src/linux, настройте ядро, скомпилируйте и поставьте его. Удостоверьтесь, что Вы выбрали все элементы для IP-masquerading, и где возможно компилируйте их как статические компоненты, а не модули. Не забудьте использовать "make bzImage", так как новое ядро, вероятно, слишком большое для lilo, чтобы загрузиться.
cd /usr/src rm linux tar ?zvvxf /path/to/tarball/linux-2.2.10.tar.gz mv linux linux-2.2.10 chown ?R root:root linux-2.2.10 ln ?s linux-2.2.10 linux cd linux make menuconfig make dep make bzImage make modules make modules_install cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.10 rm /boot/System.* cp /usr/src/linux/System.map /boot/System.map |
Теперь мы должны редактировать lilo.conf, выполнить lilo и перезагрузиться для работы с новым ядром. Удостоверьтесь что сеть работает перед попыткой установить программное обеспечение IPSec.
Lilo.conf должен напоминать:
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=100 image=/boot/vmlinuz-2.2.10 label=linux root=/dev/hda1 read-only image=/boot/vmlinuz-2.2.5-12 label=linuxold root=/dev/hda1 read-only |
при перезапуске lilo Вы должны видеть нечто вроде:
linux * linuxold |
Теперь мы должны отредактировать правила firewall, на обеих серверах для использования masquerading для внутренних машин и применения запрета на forwarding:
Сервер A:
ipchains -P forward DENY ipchains -A forward -p all -j MASQ -s 10.0.0.0/24 -d 0.0.0.0/0 |
ipchains -P forward DENY ipchains -A forward -p all -j MASQ -s 192.168.0.0/24 -d 0.0.0.0/0 |
FORWARD_IPV4="no" |
FORWARD_IPV4="yes" |
Если все работает, можно начать установку IP Security.
Установка IPSec
Загрузите последний IPSec snapshot (версия 1.0 НЕ работает с ядрами 2.2.x). Перейдите в /usr/local/src (или куда Вы его положили), распакуйте исходники и запустите программу установки (обычно для ncurses-версий make menugo). Ядро будет пропатчено, после чего будет запущена настройка ядра и построение утилит IPSec и самого нового ядра.
cd /usr/local/src tar ?zvvxf /path/to/tarball/snapshot.tar.gz chown ?R root:root freeswan-snap1999Jun14b cd freeswan-snap1999Jun14b make menugo |
cd /usr/src/linux make bzImage cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.10-ipsec |
Lilo.conf должен выглядеть примерно так:
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=100 image=/boot/vmlinuz-2.2.10-ipsec label=linux-ipsec root=/dev/hda1 read-only image=/boot/vmlinuz-2.2.10 label=linux root=/dev/hda1 read-only |
linux-ipsec * linux |
Настройка IPSec
Мы первоначально используем ручной режим (то есть, пока мы игнорируем pluto IKE daemon) поскольку это делает жизнь более простой. Вы должны отредактировать файлы ipsec.conf и ipsec.conf. Эти два файла затем должны быть скопированы на другой сервер безопасным способом (ssh, гибким диском и т.д.).
Диаграмма сети:
Вы должны отредактировать файл ipsec.conf, большинство значений по умолчанию прекрасно, но Вы должны изменить следующее:
conn sample type=tunnel # left security gateway (public-network address) left= # next hop to reach right leftnexthop= # subnet behind left (omit if there is no subnet) leftsubnet= # right s.g., subnet behind it, and next hop to reach left right= rightnexthop= rightsubnet= # spibase=0x200 # (manual) encryption/authentication algorithm and parameters to it esp=3des-md5-96 espenckey= espauthkey= |
conn my-tunnel type=tunnel # left security gateway (public-network address) left=1.2.3.4 # next hop to reach right leftnexthop=1.2.3.1 # subnet behind left (omit if there is no subnet) leftsubnet=10.0.0.0/24 # right s.g., subnet behind it, and next hop to reach left right=5.6.7.8 rightnexthop=5.6.7.1 rightsubnet=192.168.0.0/24 # spibase=0x200 # (manual) encryption/authentication algorithm and parameters to it esp=3des-md5-96 espenckey=some_auth_key_here (ranbits 192) espauthkey=some_other_key_here (ranbits 128) |
Скоируйте исправленные файлы ipsec.conf и ipsec.secrets на другой сервер каким- нибудь безопасным способом. Теперь все, что остается, это добавление некоторых правил firewall так, чтобы пакеты не получили masqueraded (мы просто хотим их послать).
На сервере A добавьте такие правила:
ipchains -A forward -p all -j ACCEPT -s 10.0.0.0/24 -d 192.168.0.0/24 ipchains -A forward -p all -j ACCEPT -s 192.168.0.0/24 -d 10.0.0.0/24 |
# # FORWARD RULES # ipchains -P forward DENY # ipchains -A forward -p all -j ACCEPT -s 10.0.0.0/24 -d 192.168.0.0/24 ipchains -A forward -p all -j ACCEPT -s 192.168.0.0/24 -d 10.0.0.0/24 ipchains -A forward -p all -j MASQ -s 10.0.0.0/24 -d 0.0.0.0/0 |
ipchains -A forward -p all -j ACCEPT -s 192.168.0.0/24 -d 10.0.0.0/24 ipchains -A forward -p all -j ACCEPT -s 10.0.0.0/24 -d 192.168.0.0/24 |
# # FORWARD RULES # ipchains -P forward DENY # ipchains -A forward -p all -j ACCEPT -s 192.168.0.0/24 -d 10.0.0.0/24 ipchains -A forward -p all -j ACCEPT -s 10.0.0.0/24 -d 192.168.0.0/24 ipchains -A forward -p all -j MASQ -s 192.168.0.0/24 -d 0.0.0.0/0 |
Теперь Вы должны быть способны создать ipsec туннель на обеих машинах вручную и машины в сети A должны быть способны разговаривать с машинами в сети B без проблем.
ipsec manual ?up my-tunnel |
/usr/local/lib/ipsec/spi: message size is 36 /usr/local/lib/ipsec/spi: message size is 132 /usr/local/lib/ipsec/spi: message size is 132 |
Два сервера с защищенным соединением через Internet (или по другой сети)
В этом примере я буду объяснять настройку, не касаясь установки, как выше.
Диаграмма сети:
E-mail серверы
Обзор
E-mail серверы
Sendmail
Postfix
Sendmail Pro
Qmail
Zmailer
DMail
nullmailer
MasqMail
POP серверы
WU IMAPD
Cyrus
IDS POP
GNU pop3d
Qpopper
IMAP серверы
WU IMAPD
Cyrus
Courier-IMAP
Проверка почты на вирусы
AMaViS
Улучшение безопасности E-Mail пакетом Procmail
SSL в сочетании с серверами POP и IMAP
Некоммерческий софт для списков рассылки
SmartList
Majordomo
Minordomo
Sympa
Listar
Easy Firewall
Графическая программа на Tcl/Tk. Скачать можно с
http://www.linux-kheops.com/pub/easyfw/easyfwGB.html.
ECLiPt Secure Tunnel
Доступное по GNU licensed решение для Linux VPN. Пока на тестировании (и не рекомендуется для массового использования). Официальная страничка
http://eclipt.uni-klu.ac.at/projects/est.
Encrypted Home Directory
Encrypted Home Directory похож на CFS, но ориентирован на шифрование одиночного каталога. Обычно он создает файл размера X в /crypt с Вашим UID и монтирует его как loopback device, чтобы Вы могли к нему обратиться. Данные шифруются и дешифруются на лету по мере доступа к ним (аналогично CFS). Скачать можно с
http://members.home.net/id-est.
/Etc/groups
Файл groups хранит данные о принадлежности пользователей к группам и опциональные поля, вроде групповых паролей (сейчас обычно хранятся в файле gshadow), данный файл должен быть доступен на чтение всем пользователям для корректной работы системы. Его формат:
groupname:encrypted_password:GID:member1,member2,member3...
Группа может не содержать членов (не используется), одного члена или многих членов, а также опционально иметь пароль доступа (обычно не используется).
/Etc/gshadow
Аналогично файлу shadow, данный файл хранит группы и пароли для них. Данный файл должен быть доступен на чтение и запись только для root.
/Etc/inetd.conf
inetd.conf ответственен за запускаемые сервисы, обычно те, которые не должны выполниться непрерывно, или основаны на сеансе (например, telnet или ftpd). Для многих сервисов (например, DNS) имеет смысл не держать их запущенными постоянно. Для многих сервисов трата нескольких секунд на запуск некритична. man-страница по inetd.conf (?man inetd.conf?) рассматривает основы такого управления сервисами. Сам сервис называется inetd и вызывается при запуске системы, так что Вы можете легко менять форму работы сервисов, управляя процессом inetd. Всякий раз, когда Вы делаете изменения в inetd.conf, Вы должны перезапустить inetd, чтобы сделать изменения эффективными, killall -1 inetd перезапустит его правильно. Строки в inetd.conf могут быть закомментированы # как обычно (это очень простой и эффективный путь отключения сервисов подобных rexec). Желательно отключить так много сервисов в inetd.conf, как возможно, обычно единственные используемые будут ftp, pop и imap. Telnet и r-сервисы должны быть заменены на SSH. Доступ к программам, запущенным inetd может легко управляться использованием TCP_WRAPPERS.
/Etc/login.defs
Этот файл (/etc/login.defs) позволяет Вам определять некоторые полезные значения по умолчанию для различных программ типа useradd или окончания времени действия пароля. Он имеет тенденцию немного изменяться в разных дистрибутивах, но обычно хорошо прокомментирован и имеет тенденцию содержать нормальные значения по умолчанию.
/Etc/passwd
Файл паролей, возможно, наиболее критический системный файл в Linux (и большинстве других UNIX'ов). Он хранит сисок пользователей, соответствие их логинов, user ID и group ID. Он также может хранить зашифрованные пароли, но кудабезопасней хранить их отдельно в файле /etc/shadow (затенение паролей). Этот файл ДОЛЖЕН БЫТЬ открыт на чтение всем, иначе даже такая простая команда, как ls правильно работать не сможет. Поле GECOS (иногда пишут GCOS) может хранить реальное имя пользователя и его телефон. В данном файле также хранится информация о домашнем каталоге пользователя (в него он попадает при входе в систему) и его оболочке (shell, например, bash или программе menu), упомянутой в файле /etc/shells. Формат записей такой:
username:encrypted_password:UID:GID:GECOS_field:home_directory:login_shell
Пароли зашифрованы одним способом (обычно crypt, новые дистрибутивы поддерживают MD5, который является знаменательно более сильным). Пароли нельзя восстановить из зашрифованного вида, но можно попробовать шифровать слова из словаря (или просто перебором) и сравнивать результат с зашифрованным паролем. Как только совпал, пароль найден. Само по себе такое не очень плохо, хуже когда пользователи выбирают легко предполагаемые пароли. Самые современные результаты исследований показали, что 25% паролей можно найти за час или около того, и что намного хуже, 4% пользователей, выбирают их собственное имя как пароль. Пустые поля в поле пароля значат отсутствие пароля вообще. Так появляются записи вида ?::?, которые критичны для первых четырех полей в записи пользователя (имя, пароль, uid и gid).
/Etc/securetty
Данный файл хранит список терминалов с которых может зайти root. Консоли обычно обозначены с /dev/tty1 по /dev/tty6. Последовательные порты (если root может заходить по модему) обозначены обычно начиная с /dev/ttyS0 и выше. Если допускается вход root по сети (плохая идея, пользуйтесь лучше sudo), то добавьте /dev/ttyp1 и выше (если зашли 30 пользователей, а потом попытался зайти root, то он зайдет с /dev/ttyp31). Лучше всего ограничьте доступ root устройством /dev/tty1 и поставьте программу sudo: так оно безопасней.
Back
Written by Kurt Seifried |
/Etc/services
Файл services перечисляет номера портов, протоколы и связанные имена. Формат его строк:
service-name port/protocol aliases # optional comment
Например:
time 37/udp timserver rlp 39/udp resource # resource location name 42/udp nameserver whois 43/tcp nicname # usually to sri-nic domain 53/tcp domain 53/udp
Этот файл используется при запуске 'netstat -a' и не используется при запуске 'netstat -an'
/Etc/shadow
Файл shadow хранит пары "username:password" и дополнительные сведения о логине, например, время окончания его действия. Он должен быть доступен на чтение и запись только для root.
/Etc/shells
Файл shells хранит список доступных оболочек (shells), если оболочка пользователя в нем не упомянута, зайти в систему он не сможет. Подробности в разделе про telnetd.
Ethereal
Хороший анализатор протокола сети с интерфейсом, подобным сетевому монитору NT. Позволяет простой просмотр полезных грузов данных для большинства сетевых протоколов (tftp, http, Netbios...). Основан на GTK, таким образом, для работы с ним, вероятно, понадобится пакет gnome. Доступен для скачивания на http://ethereal.zing.org .