И пользовался кто-нибудь portsentry? У кого какие отзывы. Просто боюсь слусайно забанить нужные хосты.
Работает себе и работает
А "забанить" невиновных им достаточно тяжело - нужно постараться так криво его отконфигурировать ...
Пользователь решил продолжить мысль 20 Января 2011, 15:20:16:
Попробую его немного прикрыть с помощью .htacces
Открыть доступ на phpmyadmin только для определенных хостов либо по авторизации пропускать?
Обогнали мой ответ - именно так. А как и что разрешить - ну дык Вы админите - Вам и виднее.... Допустим у меня - разрешение по хостам - внутренняя сеть и мои ВПН-клиенты....
1. Защита с помощью .htaccess
В корне сайта лежит файл htacces.txt , переименуйте его в .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>
<Filesmatch "^index3.php">
order deny,allow
allow from all
</Filesmatch>
<Filesmatch "^livezilla.php">
order deny,allow
allow from all
</Filesmatch>
<Filesmatch "^phpinfo.php">
order deny,allow
allow from all
</Filesmatch>
Эти изменения запретят запуск любых PHP файлов кроме index.php. Если хакер и сможет загрузить файл на сайт , то он всёравно не сможет запустить его.
Если хакер сможет загрузить файл с именем index.php и поместить в другой каталог на сайте, то он будет доступен. Для этого надо поместить файл .htaccess во все первые от корня сайта поддиректории со следующим кодом.
<Files ~ ".(php)$">
Deny from all
</Files>
Это запретит запуск любых 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.22.33.44 это ИП адрес с которого разрешён доступ к админке. Если хакер и узнает пароли от админки , он всёравно не получит доступ.
Также надо поместить файл .htaccess во все первые от корня админки поддиректории со следующим кодом.
<Files ~ ".(php)$">
Deny from all
</Files>
Защита по .htaccess настроена
2. Защита ФТП доступа
Вы знаете что Joomla сохраняет информацию в configuration.php. Если хакер прочитает этот файл , то получит много дополнительной информации. Нам надо защитить ФТП и разрешить доступ только с определённых АйПи адресов. Даже если хакер получит ФТП логин , то он не сможет зайти на ФТП. Если вы используете на сервере proftpd, то вот пример защиты в конфиге.
В /etc/proftpd.conf добавте следующий код:
<Limit LOGIN>
Order allow,deny
Allow from 11.22.33.44
Allow from 127.0.0.1
Deny from all
</Limit>
Где 11.22.33.44 - это IP с которого разрешен логин на FTP. Не забудте добавить 127.0.0.1 , это IP сервера позволит вашей Joomla через PHP зайти на FTP и получить доступ к файлам.
3. Блокирование IP пользователей , запрещая доступ на сервер
Если вы используете личный сервер и имеете доступ к шелу , то можете блокировать некоторые IP или целые страны , запрещая им доступ к вашему сайту. Это можно сделать с помощью iptables. Для этого нужен SSH. Если у вас нет доступа , то можно спросить доступ у администратора сервера. Запустите эту команду в шеле.
/sbin/iptables -I INPUT -s 88.147.196.0/88.147.253.255 -j DROP
4. Права доступа на директории и файлы
Следующий шаг , это защита файлов и дерикторий. Обычно настройки сделаны так , что права принадлежат FTP пользователю. Права доступа на директории 755 и на файлы 644 . Если у вас есть доступ через SSH , то выполните следующуу команду.
Перейдите в корневую директорию Joomla
chown -R user:group ./
chmod -R 0644 ./
find . -type d -exec chmod 755 {} ;
Если вы выполните эти команды , то директории и файлы будут не доступны для записи через PHP.
Незабудте, что для директории cache и backups , надо сделать права 777 потом вручную.
5. Установить компоненты защиты написаные для Joomla
Если у вас ограниченные права управления сервером , то можно купить и установить компоненты написанные для защиты типо : Defender, RS Firewall, X-Defender и т.д. Эти компоненты защищают доступ к Joomla через index.php и дают возможность контролировать некоторые происходящие процессы работы в Joomla.
Заключение
Выполнив эти 5 шагов вы можете предотвратить 99.9% атак.