По воводу SSH
1. запретить ssh login для root
2. изменить порт, на котором работает sshd c 22 на любой другой.
3. явно указать в конфиг файле, что будет использоваться ssh version 2.
4. ограничить доступ по SSH только для конкретных пользователей (директива AllowUsers).
5. использовать KeyBased Authentication с сильным ключом.
6. В iptables разрешить доступ по ssh/sftp только с определенных ip адресов.
7. Используй chroot jails для пользователей, которые будут логиниться по ssh/sftp.
Что касается прав доступа и вебсервера:
1. Создать учетную запись (sftp_uploader), которая будет использоваться для загрузки и обновления файлов на веб сервере.
2. Создать отдельную группу (site_operations), выдать группе права на папку с картинками /var/www/pictures
3. Добавить в группу пользователя site_operations и www-data.
4. Выставить права chmod -R 2770 /var/www/pictures. 2 означает SGID. Все файлы, которые будут изменяться/добавляться в папке /var/www/pictures будут иметь ID группы site_operations. Так как пользователи www-data и sftp_uploader состоят в этой группе, то оба аккаунта будут иметь доступ к файлам, также не потребуется переустанавливать права доступа.
5. Для предоставлния прав доступа вместо группы можно использовать ACL.
6. Для пользователя www-data изменить дефолтный shell на /sbin/nologin
Общесистемные:
1. Дроп ICMP пакетов (не отвечать на ping)
2. Обновить ядро, yum.
3. Держать как можно меньше софта на машине.