SSH представляет из себя среду без графического интерфейса с командной строкой системы Unix. Не люблю работать без графического интерфейса, но недавний взлом сайта вынудил меня и приобрести внешний IP с помесячной оплатой 130 рублей в месяц, и изучить SSH, и даже сделать кое-что полезное.
Задача: защитить файлы на FTP самостоятельно, отказавшись платить мастерхосту 56 рублей за эту услугу (год назад было бесплатно). Метод: использование SSH для создания файла .ftpaccess в корне виртуальной площадки. Заключение: на FTP можно заходить теперь только с одного IP-адреса. Расписываю методику: - заходите в панель управления вашего хостера и включаете услугу доступа по SSH; - скачиваете и запускаете программу Putty; - вводите сервер для подключения к SSH, порт оставляете без изменений (если ваш провайдер не считает иначе); - авторизуетесь посредством ввода отображаемого на черном экране логина и неотображаемого пароля; - команда "touch .ftpaccess" создаст в корне виртуальной площадки файл .ftpaccess; - команда "cat > .ftpaccess" откроет созданный файл для записи данных; - вводите построчно: <Limit ALL> Allow from (нужный IP) Deny from all </Limit>; - закрываете окно Putty; - заходите на FTP, проверяете корректность содержимого файла .ftpaccess и стираете в корне виртуальной площадки файлы ".bash_history" и ".msgsrc", если имеются; - выключаете в панели управления вашего хостера услугу доступа по SSH. Список основных команд при работе с SSH: ls — список файлов и каталогов; ls -al — форматированный список со скрытыми каталогами и файлами; cd dir — сменить директорию на dir; cd — сменить на домашний каталог; pwd — показать текущий каталог; mkdir dir — создать каталог dir; rm file — удалить file; rm -r dir — удалить каталог dir; rm -f file — удалить форсированно file; rm -rf dir — удалить форсированно каталог dir *; cp file1 file2 — скопировать file1 в file2; cp -r dir1 dir2 — скопировать dir1 в dir2; создаст каталог dir2, если он не существует; mv file1 file2 — переименовать или переместить file1 в file2. если file2 существующий каталог — переместить file1 в каталог file2; ln -s file link — создать символическую ссылку link к файлу file; touch file — создать file; cat > file — направить стандартный ввод в file; more file — вывести содержимое file; head file — вывести первые 10 строк file; tail file — вывести последние 10 строк file; tail -f file — вывести содержимое file по мере роста, начинает с последних 10 строк; view file — вывести файл на экран. (добавлено 28.03.2012): некоторые неудобства с WordPress получились при использовании защиты данного типа. Так как у сервера IP отличается от нашего - при попытке обновить плагин столкнулся с разного рода ошибками (CMS не могла определить директорию wp-content, писать файлы в папки с доступом 777 и т.д.). При удалении файла .ftpaccess ошибки самоустранились. Предполагаю, что не хватает строчки в .ftpaccess вроде "Allow from IP_адрес_сервера". Через 10 минут после подачи заявки получил ответ от хостера. Оказывается, в .ftpaccess можно писать не только IP, но и DNS-имена. Т.к. IP сервера может быть непостоянен - для устранения проблем удобнее и правильнее вводить "Allow DNS_имя_сервера_FTP" и "Allow DNS_имя_сервера_MySQL". Также в ответе хостера было упомянуто добавление "Allow 127.0.0.1". Смысла не понял; но я думаю, стоит сделать. (добавлено 24.02.2014): вместо внешнего IP можно спросить у провайдера диапазон IP серверов, которые обеспечивают лично вам доступ в интернет. В итоге в файл .ftpaccess будет записан диапазон IP вида 192.168.0.0/28. |