сервер нашего веб-сайта в последнее время часто взламывали. как я могу его защитить
Получите грамотного админа. Наемный, то есть.
Увольняйте своих некомпетентных разработчиков и нанимайте компетентных.
Что это за сервер? (Windows / Unix?) Размещается ли он удаленно? Какие приложения запущены? Вы используете дурацкие пароли? Вы используете брандмауэр?
Сейчас достаточно информации, чтобы даже начать вам помогать!
Платите кому-нибудь, кто сделает это за вас.
Я могу дать три предложения: 1. По возможности используйте нестандартные порты. Например, пусть ssh использует порт 3456, а удаленный рабочий стол - 4567. 2. Используйте длинные пароли. 3. Пусть программа прослушивает стандартный порт, такой как порт 80 или порт 21. Когда кто-то подключается к этому порту, запишите IP-адрес и запретите им доступ ко всему серверу.
Вот пример веб-страницы raspberry 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;
}
?>