Рассмотрим здесь несколько действий, которые полезно предпринять в контексте защиты своего
web-сайта под управлением
cms joomla.
1. Файл .htaccess
Добавляем в файл
.htaccess, который уже содержится в корне вашего сайта, следующие строчки:
<Filesmatch ".(php)$">
order deny,allow
deny from all
</Filesmatch>
<Filesmatch "^index.php">
order allow,deny
allow from all
</Filesmatch>
<Filesmatch "^index2.php">
order deny,allow
allow from all
</Filesmatch>
, тем самым запрещая выполнение любых скриптов корня, кроме
index.php . Зачем? Если в корне сайта каким-либо образом появляется иной скрипт, представляющий потенциальную опасность для вашего сайта, таковой не сможет быть выполнен.
Во все подкаталоги первого уровня помещаем файл
.htaccess, содержащий -
<Files ~ ".(php)$">
Deny from all
</Files>
, пресекая возможность запуска скрипта, озаглавленного
index.php, и находящегося в любом из этих подкаталогов.
В каталоге
Администратор помещаем третий файл, носящий название
.htaccess -
<Filesmatch ".(php)$">
order deny,allow
deny from all
</Filesmatch>
<Files index.php>
order deny,allow
deny from all
allow from 11.11.11.11
allow from 22.22.22.22
allow from 33.33.33.33
</Files>
<Files index2.php>
order deny,allow
deny from all
allow from 11.11.11.11
allow from 22.22.22.22
allow from 33.33.33.33
</Files>
<Files index3.php>
order deny,allow
deny from all
allow from 11.11.11.11
allow from 22.22.22.22
allow from 33.33.33.33
</Files>
Теперь администрирование вашего сайта возможно лишь с тех адресов, что вы указали (замените 11.11.11.11 и другие на ip-адреса, с которых вы заходите в административную панель).
И, наконец, во все каталоги первого уровня папки
Администратор также помещаем файл
.htaccess:
<Files ~ ".(php)$">
Deny from all
</Files>
2. Защищаем доступ по FTP
Разрешаем доступ по
FTP только с определенных ip-адресов, отредактировав на сервере файл
"/etc/proftpd.conf " (вместо 11.11.11.11 и др. подставляем разрешенные адреса, оставляем возможность доступа с
localhost):
<Limit LOGIN>
Order allow,deny
Allow from 11.11.11.11
Allow from 22.22.22.22
Allow from 33.33.33.33
Allow from 127.0.0.1
Deny from all
</Limit>
3. Блокируем доступ к сайту с определенных ip
Войдя по
ssh, вводим (например) -
/sbin/iptables -I INPUT -s 88.147.196.0/88.147.253.255 -j DROP
Блокируем, при необходимости, как отдельные ip, так и диапазоны адресов.
4. Безопасные атрибуты для файлов и каталогов
Зайдя по
ssh, выполняем, находясь в корне сайта, следующую команду (владельцем всех каталогов и файлов являетесь только вы, каталоги имеют атрибут 755, файлы - 644):
chown -R user:group ./
chmod -R 0644 ./
find . -type d -exec chmod 755 {} ;
После этого присваиваем три семерки вручную - каталогам с кешем и директориям резервного копирования.
Неплохим окончанием нашего труда будет являться установка
RS Firewall
либо иного аналогичного компонента.