четверг, 25 февраля 2010 г.

Ботнет

Давно хотел написать уже да все не доходили руки.
Давно уже наблюдаю весьма интересную картину на своих серверах
(под freebsd, solaris, ubuntu,opensuse и конечно же gentoo)
Постоянно идет брутофорс атака, при чем как выяснилось не на определенные сети, ну скажем не только на рашкинские адреса, но и
на финские и чешские, прозреваю что брутофорсят по всему миру.
А теперь перейду к непосредственно примерам.

Вчера на виртуальной машине убунтовой сменил рутовый пароль
на пароль "test" в надежде того что меня взломают и о чудо в 4.04
сегодня ночью неизвестный проник в систему

Feb 25 04:04:30 ubuntuserv sshd[26946]: Accepted password for root from 69.125.24.107 port 1199 ssh2
Feb 25 04:04:30 ubuntuserv sshd[26946]: pam_unix(sshd:session): session opened for user root by (uid=0)

Адрес принадлежит провайдеру из USA штат Texas дальше становится еще интереснее

Feb 25 04:07:00 ubuntuserv passwd[27013]: pam_unix(passwd:chauthtok): password changed for irc

Новый рут сменил пароль на пользователя irc, пользователя такого у меня не было, логов заведения такого  я не нашел, видать что-то таки затерли за собой
Feb 25 04:07:15 ubuntuserv sshd[27015]: Accepted password for irc from 69.125.24.107 port 1210 ssh2
Feb 25 04:07:15 ubuntuserv sshd[27015]: pam_unix(sshd:session): session opened for user irc by (uid=0)
Следущим действием злоумышленника было заведение пользователя oracle
и такой же группы видимо для маскировки в системе в надежде, что администратор не станет сносить вроде как "системного" пользователя оракл
Feb 25 04:07:39 ubuntuserv useradd[27071]: new group: name=oracle, GID=1002
Feb 25 04:07:39 ubuntuserv useradd[27071]: new user: name=oracle, UID=0, GID=1002, home=/home/oracle, shell=/bin/sh
Но палево же!Зачем системному юзеру папка в /home ?


Дальше было еще более палевное действие

Feb 25 04:51:58 ubuntuserv passwd[27155]: pam_unix(passwd:chauthtok): password changed for root

То бишь сменили пароль руту это самая главная ошибка злоумышленника,
сегодня в систему я пытался зайти именно под рутом, тут напрашиваются два вывода: либо кулхацкеры расчитывали на то что администратор будет работать от sudo, так как рутового пароль в бубунте какбе нет, либо они настолько тупые...

/var/log/messages

Feb 25 04:08:37 ubuntuserv kernel: [369655.619943] device eth0 entered promiscuous mode
Feb 25 04:40:46 ubuntuserv kernel: [371584.196912] device eth0 left promiscuous mode
Feb 25 04:52:56 ubuntuserv kernel: [372314.970670] device eth0 entered promiscuous mode
Feb 25 05:16:21 ubuntuserv kernel: [373719.422946] device eth0 left promiscuous mode
Сетевую карту перевели в промискус мод, для чего такая манипуляция
сказать не могу, так что велком в комментарии со своими предположениями.


А теперь выясним был ли это человек или  просто скрипт
last root

root     pts/0        ool-457d186b.dyn Thu Feb 25 04:52 - 06:56  (02:04)   
root     pts/0        ool-457d186b.dyn Thu Feb 25 04:51 - 04:52  (00:00)   
root     pts/0        ool-457d186b.dyn Thu Feb 25 04:04 - 04:40  (00:36)


Рут провел в системе 2 часа 40 минут, то есть явно это не скрипт.

Теперь повторюсь еще раз подобные брут-атаки я испытываю на всех своих серверах ежедневно, бывают перерывы по несколько дней но всегда продолжают долбить.

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

воскресенье, 21 февраля 2010 г.

гипервизор virtualbox работа без gui

На сервере про который я писал ниже возникла необходимость поднять несколько виртуалок, сначала был выбран vmware но из-за своей матерой проприетарности
да и просто из-за того что офигеть как странно работал на анстейбле попробовал
в качестве системы виртуализации VirtualBox и мне очень понравилось, да так что решил оставить все это дело на сервере.

Так как это сервер то естественно возникла потребность, чтобы все виртуалки поднимались автоматически после ребута, а так же чтобы ими можно было управлять через
/etc/init.d/ как и любым нормальным демоном.
Недолго покурил примеры runscript и заделал вот такую штуку



#!/sbin/runscript
# polovinamozga.blogspot.com
depend() {
use dns logger
need net
provide cron
}

start() {
ebegin "Starting VBox"
/bin/su -l -c "/opt/bin/VBoxManage startvm xp --type headless" user
/bin/su -l -c "/opt/bin/VBoxManage startvm ubuntu --type headless" user
/bin/su -l -c "/opt/bin/VBoxManage startvm freebsd --type headless" user
eend $?
}

stop() {
ebegin "Stopping VBox"
/bin/su -l -c "/opt/bin/VBoxManage controlvm xp savestate" user
/bin/su -l -c "/opt/bin/VBoxManage controlvm ubuntu savestate" user
/bin/su -l -c "/opt/bin/VBoxManage controlvm freebsd savestate" user
eend $?
}



А теперь по пунктам, что вся эта черная магия значит.
depend() {
use dns logger
need net
provide cron
}
Говорит о том что нужно запускать когда включилась сеть, работает логгер,крон это если совсем вкртаце, кто хочет
большего то лучше наверное почитать что пишут по этому поводу на официальном сайте генты.
start() {
ebegin "Starting VBox"
/bin/su -l -c "/opt/bin/VBoxManage startvm xp --type headless" user
/bin/su -l -c "/opt/bin/VBoxManage startvm ubuntu --type headless" user
/bin/su -l -c "/opt/bin/VBoxManage startvm freebsd --type headless" user
eend $?
}


Так как виртуалбокс мы не будем запускать от рута в целях безопасности и по причинам особенностей разбиение дисков
то естественно его нужно запускать от пользователя итак :

/bin/su -l -c "/opt/bin/VBoxManage startvm xp --type headless" user

В переводе на русский означает:
запустить su с логином пользователя передав команду  /opt/bin/VBoxManage startvm xp --type headless 

Команда эта означает что нужно запустить виртуальную машину без окна.
Потом делаем chmod +x /etc/init.d/vbox

и rc-update add vbox default

И теперь у нас после перезапуска системы стартует демон виртуабокса.

суббота, 13 февраля 2010 г.

SETI@home

Совершенно внезапно мне в доступ попал сервер
Intel(R) Xeon(R) CPU E5540 @ 2.53GHz на котором аж целых 16ядер
























И пока сервер простаивает решено было принести пользу человечеству и накатить
туда BOINC.
 Если кто не в курсе, то это прога для организации распределенных вычислений


















Подписался я на SETI
И теперь объясню как сделать такое же в качестве демона на вашем сервере.
У меня в качестве оси стоит linux gentoo на ядре 2.6.32-r5

Итак начнем











Видно юз-флаги X и cuda х  включаем по вкусу а cuda по видеокарте
если она NVIDIA и моделей от 7ххх то наверное все же поддерживает
CUDA(если вкртаце то это обработка процессорных вычислений на GPU)
У меня на сервере нет такого, так что -cuda -X
теперь

/etc/init.d/boinc attach
    Enter the Project URL: http://setiathome.berkeley.edu/
    Enter your Account Key: 72401881112dde767ff10199blablabla

 
Теперь вкратце откуда брать аккаунт кей.
Для этого нужно регистрироваться в боинке и брать из личного профиля.

добавляем демон  в автозагрузку если еще не добавили

rc-update add boinc default