Защита от хакеров Linux Ubuntu

3 апреля 2013

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

1. Есть подозрение, что кто-то подключился к рабочему столу

Смотрим:

who

r tty7 2013-03-11 06:52 (:0)

r pts/2 2013-04-03 05:21 (192.168.3.62)

r pts/6 2013-04-03 08:27 (192.168.3.62)

r pts/5 2013-04-03 07:58 (192.168.3.62)

(unknown) tty8 2013-04-03 06:16 (:1)

(unknown) tty9 2013-04-03 08:28 (:2)

(unknown) tty10 2013-04-03 08:47 (:3)

Прежде всего, обращаем внимание на подозрительных пользователей. Так, например, пользователь (unknown) - это странное явление. Значит, нужно его выкинуть и закрыться от возможности его подключения.

Выполняем:

who -a -p

завантаження системи 2013-03-11 06:54

рівень виконання 2 2013-03-11 06:54

ВХІД tty4 2013-03-11 06:54 1575 id=4

ВХІД tty5 2013-03-11 06:54 1581 id=5

ВХІД tty2 2013-03-11 06:54 1588 id=2

ВХІД tty3 2013-03-11 06:54 1589 id=3

ВХІД tty6 2013-03-11 06:54 1593 id=6

r + tty7 2013-03-11 06:52 да 4824 (:0)

ВХІД tty1 2013-03-11 06:52 5937 id=1

pts/2 2013-03-11 06:57 0 id=/2 термінал=0 вихід=0

r + pts/2 2013-04-03 05:21 01:26 2104 (192.168.3.62)

r + pts/6 2013-04-03 08:27 . 409 (192.168.3.62)

pts/7 2013-03-11 11:45 0 id=/7 термінал=0 вихід=0

pts/8 2013-04-03 09:21 15957 id=ts/8 термінал=0 вихід=0

pts/10 2013-04-03 09:13 14507 id=s/10 термінал=0 вихід=0

pts/12 2013-03-11 10:18 19235 id=s/12 термінал=0 вихід=0

pts/14 2013-03-11 10:31 21030 id=s/14 термінал=0 вихід=0

r + pts/5 2013-04-03 07:58 00:05 23871 (192.168.3.62)

pts/3 2013-04-03 07:36 5537 id=ts/3 термінал=0 вихід=0

pts/7 2013-04-03 09:17 10140 id=ts/7 термінал=0 вихід=0

pts/9 2013-04-03 09:14 14013 id=ts/9 термінал=0 вихід=0

pts/11 2013-03-19 18:33 6218 id=s/11 термінал=0 вихід=0

pts/13 2013-03-11 22:14 17281 id=s/13 термінал=0 вихід=0

pts/15 2013-03-11 22:33 18853 id=s/15 термінал=0 вихід=0

pts/17 2013-03-11 21:52 19310 id=s/17 термінал=0 вихід=0

pts/6 2013-03-25 07:43 0 id=/6 термінал=0 вихід=0

pts/8 2013-03-25 07:43 0 id=/8 термінал=0 вихід=0

(unknown) + tty8 2013-04-03 06:16 да 5873 (:1)

(unknown) + tty9 2013-04-03 08:28 да 813 (:2)

tty10 2013-04-03 09:10 7691 id=:3 термінал=0 вихід=0

Убиваем злодея:

kill 5873 813

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

2. Запрет удаленного подключения к X11 через ssh

По умолчанию, ssh разрешает запускать x11 через ssh. Т.е. можно запускать графические приложения linux на сервере, используя протокол ssh.

Как это делается, написано в статье: http://d51x.ru/page/udalennyj-dostup-x11-forwarding

Но, вопреки этому, советую все же данную возможность отключать.

Редактируем файл: /etc/ssh/sshd_config

Меняем выражение:

X11Forwarding no

Перезагружаем ssh:

<strong>/etc/init.d/ssh restart</strong>

3. Ограничиваем доступ по ssh

Редактируем все тот же конфигурационный файл для ssh: /etc/ssh/sshd_config

Желательно, сменить номер порта ssh (чтоб никто не знал, что там находится ssh :):

Port 22

Так же, можно изменить адрес, на котором слушает демон:

ListenAddress 0.0.0.0

Разрешаем вход по ssh только определенным пользователям:

AllowUsers user1 user2 user3

Перезагружаем ssh:

<strong>/etc/init.d/ssh restart</strong>

4. Настраиваем файервол

Устанавливаем расширение (настройки) для iptables:

apt-get install arno-iptables-firewall

Конфигурируем порты /etc/arno-iptables-firewall/conf.d

Например:

EXT_IF="eth0 ppp0"

EXT_IF_DHCP_IP=1

# 3343,4434 - Порты для администрирования svn

# 9000 - порт для darkstat

# 3389 - терминал Windows

# 1500 - ???

# 8080 - порт для доступа к svn

# 1500 - ISP админка

# 440 - новый номер порта для ssh

# 22 - был ssh УБРАН

OPEN_TCP="80,443,21,6543,47,3343,4434,8080,1500,440"

# 110,25,995

OPEN_UDP=""

INT_IF="eth1"

NAT=0

INTERNAL_NET="192.168.3.0/24"

NAT_INTERNAL_NET="eth1"

OPEN_ICMP=1

LAN_OPEN_TCP="80,443,21,6543,1723,47,3389,1500,9000,5900,440"

Перезагружаем:

invoke-rc.d arno-iptables-firewall restart

5. Из sudo удаляем лишних пользователей

Редактируем файл: /etc/sudoers

Комментарим root, перечисляем наших пользователей-админов и комментарим доступ к sudo для груп администраторов и т.п.

Вот пример, того, что у меня получилось:

# User privilege specification

#root ALL=(ALL:ALL) ALL

r ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges

#%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command

#%sudo<>ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

6. Делаем сложный пароль для пользователя root

Хакеры пытаются подобрать пароль супер-пользователя root простым перебором. Поэтому, делайте пароль для данного пользователя не менее 12 символом и посложнее.

Для изменения пароля пользователя root, выполняем:

passwd root

7. Защита дыр в Apache.

Выполните команду:

<strong>curl -I -H "Request-Range: bytes=0-1,0-2,0-3,0-4,0-5,0-6" -s Ваш домен/robots.txt | grep Partial</strong>

Если у Вас выдастся ответ 206 Partial Content, то это означает, что Ваш Apache имеет не плохую уязвимость.

Для того, чтоб убрать данную уязвимость, выполните:

sudo a2enmod headers

В Nginx пропишите:

<strong>proxy_set_header Range "";<br> proxy_set_header Request-Range "";</strong>

В Apache пропишите:

<strong>SetEnvIf Range (?:,.*?){5,5} bad-range=1<br> RequestHeader unset Range env=bad-range<br> RequestHeader unset Request-Range</strong>

Перезагрузите веб-сервис:

/etc/init.d/apache2 restart

03.04.13, 12:32

Автор сообщения: К2® Рудюк Сергей Анатольевич (Блог К2 - http://corp2.net)

Написать комментарий

Адрес и телефон
E-mail: rs@corp2.net Skype: rudjuk
г. Киев, ул. Белорусская 30, офис. К2Р (схема проезда)
Мы в сети
Меню
www.megastock.ru Здесь находится аттестат нашего WM идентификатора 000000000000
Проверить аттестат
Наверх