Я реализовал стук порта, и имейте несколько датчиков в день. Они не получают соединение, таким образом, они уходят. Я регистрирую и сообщаю обо всем доступе к включенным портам.
Я также выполнил fail2ban с Shorewall как брандмауэр для временного помещения в черный список персистентных взломщиков.
Если Вам не нужен доступ в Интернет к SSH, отключают его. Если у Вас есть несколько известных адресов, которые нуждаются в удаленном доступе, ограничивают доступ к тем адресам.
Ограничение доступа к авторизованным ключам может также быть полезным.
Проблема в вашем случае заключается в использовании access ()
.
На странице man 2 access
говорится:
Проверка выполняется с помощью вызывающего процесса ' чем эффективные идентификаторы, как это делается при фактической попытке операции (например, откройте (2)) в файле. Это позволяет упростить программы установки идентификатора пользователя. Легко определить полномочия вызывающего пользователя.
При запуске с двоичными файлами setuid вы изменяете только свой эффективный UID, а не свой настоящий. Таким образом, вызов access ()
всегда завершается ошибкой.
Вам следует удалить access ()
. В данном случае это излишне, поскольку вы все равно используете команду fopen для открытия файла, также необходимо выполнить такую проверку доступа, а затем выполнить чтение.