ХАРДЕНИНГ
WHOAMI
Аринов Ильяс Бейбитович
( determination )
Системный администратор
+7 708 9801532
ХАРДЕНИНГ
0
Процесс усиления защищенности системы,
направленный на снижение рисков информационной
безопасности. Дословно — закаливание (по
отношению к металлу или сплаву).
ХАРДЕНИНГ
1
Пользоваться услугами дата-центров
ХАРДЕНИНГ
2
Глушить радиосигналы в серверной
ХАРДЕНИНГ
3
Опломбировать оборудование
ХАРДЕНИНГ
4
Закрыть на ключ защитные панели серверов
ХАРДЕНИНГ
5
Защитить BIOS/UEFI
ХАРДЕНИНГ
6
Защитить загрузчик GRUB
ХАРДЕНИНГ
7
Использовать множество разделов
( /, /boot, /home, /tmp, /var )
ХАРДЕНИНГ
8
Использовать LVM
ХАРДЕНИНГ
9
Использовать RAID
ХАРДЕНИНГ
10
Модифицировать настройки fstab
( nosuid, nodev, noexec )
ХАРДЕНИНГ
11
Шифровать разделы на блочном уровне
( LUKS )
ХАРДЕНИНГ
12
Использовать технологию PGP
ХАРДЕНИНГ
13
Устанавливать только необходимые пакеты
ХАРДЕНИНГ
14
Автоматизировать обновления безопасности
[ yum-cron ]
ХАРДЕНИНГ
15
Отключить CTRL+ALT+DEL
( # systemctl mask ctrl-alt-del.target )
ХАРДЕНИНГ
16
Удалить неиспользуемые пакеты
( # yum list installed >> mypacks )
ХАРДЕНИНГ
17
Ввести профилактический перезапуск служб
( crontab )
ХАРДЕНИНГ
18
Остановить и уничтожить неиспользуемые службы
( # systemctl list-units -t service )
ХАРДЕНИНГ
19
Шифровать передачу данных
SSH, SFTP
( # ssh -L 5902:localhost:5901 remote_machine )
ХАРДЕНИНГ
20
Сканировать порты
( # nmap -sT -O 192.168.0.0/24 )
ХАРДЕНИНГ
21
Использовать сетевой экран
( # firewall-cmd --list-all )
ХАРДЕНИНГ
22
Делать периодический анализ трафика
( # tcpdump -i eth0 -w tcpdump.pcap )
ХАРДЕНИНГ
23
Использовать resolv.conf
ХАРДЕНИНГ
24
Отключить SUID и SGID
ХАРДЕНИНГ
25
Уничтожить файлы и директории без хозяина
ХАРДЕНИНГ
26
Исключить использование 777
ХАРДЕНИНГ
27
Использовать стойкие пароли
( pwmake 128 )
ХАРДЕНИНГ
28
Применить стойкую парольную политику
( password required pam_pwquality.so retry=3 )
ХАРДЕНИНГ
29
Назначить срок жизни пароля
( # chage -M 45 username )
ХАРДЕНИНГ
30
Блокировать неиспользуемые учетные записи
( # passwd -l username )
ХАРДЕНИНГ
31
Предотвратить доступ к оболочке
( # usermod -s /bin/false username )
ХАРДЕНИНГ
32
Блокировать виртуальные консоли
( vlock )
ХАРДЕНИНГ
33
Централизованное управление учетными записями
( Kerberos )
ХАРДЕНИНГ
34
Переключить USB накопители в режим «RO» в UDEV
( SUBSYSTEM=="block",ATTRS{removable}=="1",RUN{program}="/sbin/blockdev --setro %N" )
ХАРДЕНИНГ
35
Отключить доступ суперпользователя к TTY
( # cat /dev/null > /etc/securetty )
ХАРДЕНИНГ
36
Отключить доступ суперпользователя по SSH
( PermitRootLogin no )
ХАРДЕНИНГ
37
POSIX ACL
( # setfacl -m u:user:rw file )
ХАРДЕНИНГ
38
Использовать SELinux
( # setenforce 1 )
ХАРДЕНИНГ
39
Использовать расширения SELinux
( # setsebool -P httpd_enable_ftp_server on )
ХАРДЕНИНГ
40
Применить централизованное логирование
( rsyslog )
ХАРДЕНИНГ
41
Наблюдать за активностью пользователей
( ac, lastcomm, accton, sa, lastb )
ХАРДЕНИНГ
42
Настроить параметры работы ядра
( /etc/sysctl.conf )
ХАРДЕНИНГ
43
Использовать VPN
ХАРДЕНИНГ
44
Использовать дополнительные меры защиты
( AIDE, Fail2Ban, OSSEC, Lynis, Rkhunter )
ХАРДЕНИНГ
45
Модифицировать переменные окружения
( # echo 'HISTTIMEFORMAT="%d/%m/%y %T "' >> .bashrc' )
( # echo ‘PROMPT_COMMAND="history -a"’ >> .bashrc )
ХАРДЕНИНГ
46
Автоматически отключать SSH при простое
ХАРДЕНИНГ
47
Автоматизировать резервное копирование
( tar, cat, scp, rsync, duplicity, lvm )
ХАРДЕНИНГ
48
Изменить служебные порты по умолчанию
ХАРДЕНИНГ
49
Защитить от сканирования портов
ХАРДЕНИНГ
50 APACHE + PHP
Скрыть версии служебного ПО
ХАРДЕНИНГ
51 APACHE
Запретить листинг директорий глобально
ХАРДЕНИНГ
52 APACHE
Отключить неиспользуемые модули
ХАРДЕНИНГ
53 PHP
Запретить неиспользуемые функции
ХАРДЕНИНГ
54 PHP
Отключить отображение ошибок
ХАРДЕНИНГ
55 APACHE
Настроить удаленное логирование веб сервера
ХАРДЕНИНГ
56 APACHE
Еще раз: Исключить использование 777
ХАРДЕНИНГ
57 APACHE
Управлять доступом к директориям
( Order, Deny, Allow )
ХАРДЕНИНГ
58 APACHE
Задействовать mod_evasive
ХАРДЕНИНГ
59 APACHE
Задействовать mod_security
ХАРДЕНИНГ
60 APACHE
Игнорировать симлинки
ХАРДЕНИНГ
61 APACHE
Установить ограничение на размер запроса
ХАРДЕНИНГ
62 APACHE
Установить ограничение по времени для событий
( TimeOut )
ХАРДЕНИНГ
63 APACHE
Установить ограничение одновременных подключений
( MaxClients )
ХАРДЕНИНГ
64 APACHE
Установить время ожидания последующего запроса
( KeepAliveTimeout )
ХАРДЕНИНГ
65 APACHE
Ввести ограничения для запросов
( LimitRequestFields, LimitRequestFieldSize )
ХАРДЕНИНГ
66 APACHE
Произвести тонкую настройку логирования
( TransferLog, CustomLog, LogFormat )
ХАРДЕНИНГ
67 APACHE
Задействовать SSL
ХАРДЕНИНГ
68 APACHE
Отключить HTTP, включить HTTPS
ХАРДЕНИНГ
69 MYSQL
Использовать mysql_security_installation
ХАРДЕНИНГ
70 MYSQL
Запретить чтение и запись файлов
( local-infile=0 )
ХАРДЕНИНГ
71 MYSQL
Переключить работу на сокеты
( для локальных систем )
ХАРДЕНИНГ
72 MYSQL
Использовать SSL
( для удаленных систем )
ХАРДЕНИНГ
73 MYSQL
Отключить использование симлинков
ХАРДЕНИНГ
74 MYSQL
Переименовать административную учетную запись
ХАРДЕНИНГ
75 MYSQL
Настроить логирование ошибок
ХАРДЕНИНГ
76 MYSQL
Уничтожить неиспользуемые базы данных
ХАРДЕНИНГ
76 MYSQL
Изменить порт по умолчанию
ХАРДЕНИНГ
77 MYSQL
Использовать список разрешенных IP адресов для
удаленного подключения
ХАРДЕНИНГ
78 MYSQL
Отключить возможность удаленного подключения
административных учетных записей
ХАРДЕНИНГ
79 MYSQL
Никогда не выдавать FILE, PROCESS или SUPER
ХАРДЕНИНГ
80 MYSQL
Уничтожать учетные записи без паролей
ХАРДЕНИНГ
Обратитесь к эксперту в области информационной
безопасности, чтобы он попытался осуществить
попытку проникновения и оценил уровень
защищенности вашего сервера.
ХАРДЕНИНГ
Создайте, поддерживайте, используйте и
усиливайте эталонную конфигурацию системы для
новых проектов.
ХАРДЕНИНГ
Практический пример: Нестандартный SSH порт
# vi /etc/ssh/sshd_config [Port 2222]
# firewall-cmd --permanent --zone=public --add-port=2222/tcp
# firewall-cmd --permanent --zone=public --remove-service=ssh
# semanage port -a -t ssh_port_t -p tcp 2222
# systemctl restart sshd
# firewall-cmd --reload
ХАРДЕНИНГ
Практический пример: Против shell'ов
# cd /var/www/site/uploads/
# vi ./.htaccess
Options -Indexes -FollowSymLinks
<FilesMatch "(?i).(php|php3?|phtml|pl)$">
Order Deny,Allow
Deny from All
</FilesMatch>
<IfModule mod_php5.c>
php_flag engine off
</IfModule>
# service httpd restart
*FilesMatch можно переписать так, чтобы доступен был только один тип файлов
*php_flag engine off отключает возможность исполнения шелла в этой директории
ХАРДЕНИНГ

ХАРДЕНИНГ (Аринов Ильяс (determination))