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