Когда Вы - корень, Вы становитесь ленивыми о полномочиях, так как у Вас есть доступ ко всему все время, Вы не заботитесь, когда вещи 777 или 644 или что бы то ни было. Таким образом, если Вы когда-либо позволяете кому-либо еще в своей системе, что Вы не хотите иметь доступ ко всему, все это внезапного становится реальной трудностью сделать машину безопасной использовать другими людьми.
три предложения, которые я могу дать: 1. Использовать нестандартные порты, когда это возможно. Используйте ssh порт 3456, а удаленный рабочий стол, например, 4567. 2. Использовать длинные пароли. 3. Пусть программа прослушивает стандартный порт, например, порт 80 или порт 21. Когда кто-то соединяется с этим портом, запишите ip адрес и запретите его со всего сервера.
Вот пример прослушивания малиновой pi php веб-страницы на 80 порту и запрета любому, кто соединяется с ней с помощью iptables:
Чтобы запустить iptables с php, добавьте следующее в /etc/sudoers www-data ALL=(ALL) NOPASSWD: /sbin/iptables
<?php
// Get the ip address of the client.
$remote_addr = $_SERVER['REMOTE_ADDR'];
// Ban them.
if (is_ip($remote_addr)) {
ban_ip($remote_addr);
// Save the banned IP address.
$logfile = '/run/shm/banned.txt';
file_put_contents($logfile,$remote_addr."\n",FILE_APPEND);
}
// Returns true if $ip is a valid ip address.
function is_ip($ip)
{
$count = strlen($ip);
$valid = '0123456789.:';
for($loop=0;$loop<$count;$loop++) {
if (strpos($valid,substr($ip,$loop,1))===false) {
return false;
}
}
return true;
}
// Bans an ip address.
function ban_ip($ip)
{
$cmd = 'sudo /sbin/iptables -A INPUT -s ' . $ip . ' -j DROP';
exec($cmd);
return;
}
?>