Управление телефоном с компа

Способ управления телефоном(android) с компьютера, с помощью мыши и клавиатуры(кириллица не работает*)

1. Установить VMLite VNC Server(доступ к удаленному управлению телефоном через браузер или VNC клиент). С 5ой версии андроида запускать через командную строку.

внешний вид

[свернуть]

2. Отключить спящий режим вовсе или отключить защиту от случайных нажатий, чтобы с компа была возможность пробудить устройство.

3. Создать задание в Tasker’е или из терминала под root’ом.  Запускатся(останавливается) служба vnc на телефоне :

[cc lang=»php»]/data/data/com.vmlite.vncserver/files/vmlitevncserver —start[/cc]

порты по-умолчанию для VNC-viewer’а: 5901, через браузер: 5801.

 

 

 

 

 

Lucky Patcher v7.4.2.apk

http://www.vmlite.com/vaac/

 

Прошивка S90 Lenovo

1. Разблокировка bootloader’а с помощью QFIL

К моему телефону драйвер com порта не подходил, я вручную добавил vid pid своего устройства:

Затем вручную установил драйвер, но теперь цифровой подаиси не хватило.

 

 

Отключить в Windows 7 проверку драйвера на цифровую подпись

1. Наберите в командной строке (или скопируйте) gpedit.msc
2. Зайдите в «Конфигурация пользователя»-> «Административные шаблоны» ->»Система» > «Установка Драйвера».
3. Дважды кликните по «Цифровая подпись драйверов устройств».

[свернуть]

 

 

делал на Windows XP, 7×64, 7×32

 

  1. Прошить  через QFIL прошивку S90-A_USR_S229_150428_ROW_PC_QFIL
  2. Прошить бутлоадер для андроида 4
  3.  Получить рут
  4. Поставить TWRP
  5. Прошить S90-A_RUS_7M.150408_SevenMaxs_Android_v4.4.4.4
Краткая инструкция по установке прошивки через TWRP Recovery

1. Копируем архив, например Resurrection-Remix-LP-v5.5.9_android_v5.1.1 на внутр. память
2. Загружаемся в Recovery(громкость ОБЕ клавиши+ кнопка включения)
3. Производим форматирование разделов Data и Cache
4. Нажимаем Instal
5. Выбираем архив на внутр. память с прошивкой
6. Свайп вправо и ждем окончания процесса заливки прошивки в устройство
7. Hажимаем Reboot System
7.1 Прошивки:
AOSP
  1. Resurrection Remix OS 5.8.5_android_v_7.1.2
  2. Resurrection-Remix-LP-v5.5.9_android_v5.1.1
Стоковые
  1. multirom_sisleyr_Global_V8.2.2.0.LXIMIDL_v5.0.2(MIUI)_android 5.1.1
  2. S90-A_RUS_7M.150408_SevenMaxs_Android_v4.4.4.4

Установка окончена! :thank_you:

[свернуть]

Подробная инструкция по получению root доступа и заливки новой прошивки на Lenovo S90-A.

Всего пройти 4 шага:
  1. Разблокировать bootloader
    а) выключить аппарат. Нажать «увеличение громкости» и подключить кабель к компу(просто черный экран);
    б)  скормить вручную определившемуся устройству (у меня типа»ADB Composit Lenovo«) дрова Qualcomm для QPST_2.7.472.4(прописать в inf файл свои VID и PID, если не увидит в этих дровах Lenovo S90), устройство должно появиться в разделе портов(COM…) здесь то у меня и случился «затык». Капризный драйвер, пришлось перезагружать);
    в) с помощью QFIL.exe из утилит QPST залить на телефон новый бутлоадер(для для Android 4.4.4 или для 5.0.2) .
  2. Прописать root права
    Включаем телефон, залить образ  и прошить этим батником, телефон перезагрузится и прошьется.Чтобы ускорить выполнение 4шага, в этом месте лучше скопировать выбранную прошивку на устройство в «Internal storage»:

    7.1 Прошивки:
    AOSP(открытый код):
    1. Resurrection Remix OS 5.8.5_android_v_7.1.2
    2. Resurrection-Remix-LP-v5.5.9_android_v5.1.1
    Стоковые:
    1. multirom_sisleyr_Global_V8.2.2.0.LXIMIDL_v5.0.2(MIUI 8.8.2.2.0_android 5.0)
    2. S90-A_RUS_7M.150408_SevenMaxs_Android_v4.4.4.4
  3.  Обновить меню recovery.
    Установку осуществить с помощью WRP-2.8.6.1_L_S90, запустив bat файл из архива. Более новый образ здесь: TWRP-3.0.2-0_x64-L-S90-A(заменить им прежний в папке img):

    После успешной установки, вход в меню восстановления осуществятся, через нажатие ОБОИХ клавиш громкости и кнопки включения
  4.  В открывшемся меню восстановления «Установка»-выбрать архив с прошивкой -> Свайп вправо. После завершения нажать «Очистка cache/dalvik -> свайп вправо. Отформатировать Data. Перезагрузка в ОС.

 

Я же после перепрошивки поверх 5го андроида 4ой его версии, получил тёмный экран ((, но в последствии выяснилось, что дисплей одновременно перестал работать, пришлось на другом тачскрине сделать.

Инструкция по раскирпичиванию Lenovo S90 :

Использую прошивку Lenovo S90-A_S239_151126_ROW_qfil.rar(Android 5.0.2) 1.7Gb, в т.ч. QFIL и  драйвера.

1.) Разбираем телефон (нужен опыт)

2.) Отщёлкиваем разъем акб.

3.) Подключаем провод (без акб) реакции не будет

4.) Настраиваем QFIL на полную сервисную прошивку с ПК

5.) Жмём кнопку включения держим 1-2 секунды получим Qloader 9008

6.) Быстро жмём Download .. что-то проешьётся (boot), Qloader перезагрузится жмём Download еще раз

7.) Ждём окончания прошивки. Waiting for reset done игнорируем. Отключаем провод.

8.) Подключаем АКБ, включаем аппарат.

9.) ???

10.) PROFIT!

 

Инструкция по установке прошивок для устройств Lenovo на базе Qualcomm при помощи QFIL

Подготовка

1. Загрузить утилиты QPST и драйверы.
2. Установить «vcredist_x86.exe«. Файл вложен в комплект QPST.
3. Установить «прошивальщик» — «QPST.XX.msi«.
4. Установить драйверы для чипов Qualcomm (скачанные выше). Желательно отключить в данный момент интернет. Windows иногда устанавливает «RELINK HS-USB QDLoader…». Нужно их удалить, кликнув на драйвер, вызвать контекстное меню и кликнуть на «Удалить», поставить галочку: Удалить программы драйверов для этого устройства.
5. Полностью выключить прошиваемый аппарат.
6. Зажать клавишу увеличения громкости (Volume Up), либо качельку громкости (Volume Up & Down одновременно) и не отпуская ее подключить USB-шнур, который уже подключен в порт USB 2.0 вашего ПК.
7. В «Диспетчере устройств» должно появиться устройство «Qualcomm/Lenovo HS-USB QDLoader 9008«.

Скрыть контент

qf_2.png

 

Процесс прошивки

1. Распаковать прошивку на любой диск, желательно в корень и по кратчайшему пути.

Скрыть контент

qf_1.png

2. Запустить программу «QFIL«.

Скрыть контент

qf_3.png

3. В поле «Programmer patch» нажать на кнопу «Browse«, в открывшемся окне перейти до папки с прошивкой (в примере: ROW_S121), выбрать файл «prog_emmc_firehose_89XX.mbn«(в примере: prog_emmc_firehose_8916.mbn), нажать «Открыть«.
4. Нажать копку «Load XML…«, в открывшемся окне поочередно выбрать – сначала «rawprogram0.xml«, нажать «Открыть«, затем «patch0.xml» — «Открыть«.

Скрыть контент

qf_4.png

5. Открыть «Диспетчер задач«. Убедится, что программа QFIL определяет устройство как Qualcomm Lenovo HS-USB QDLoader 9008.

Скрыть контент

qf_5.png

6. Нажать на кнопку «Download» и дождаться окончания процесса. Устройство должно перезагрузиться при успешном процессе прошивки и загрузится в Android OS.

Скрыть контент

qf_6.png

Рекомендуется СМЕНИТЬ РЕГИОН КОД после прошивки с ПК (не для старых моделей).

 

включение ADB

1. Включить отладку по USB

2. Установить приложения: dvr, BusyBox, Init.D_Toggler.

3. Запуск vmliteVNCserver из командной строки терминала:

[cc lang=»php»]su
/data/data/com.vmlite.vncserver/files/vmlitevncserver —start[/cc]

 

 

[свернуть]

 

Как вставить php-код в WordPress на страницу или запись

Всем привет!
Сегодня я поделюсь кодом, с помощью которого можно будет вставлять любой код, написанный на php, в страницу или в запись.
Если у вас стоял плагин, с помощью которого вы решали все эти проблемы, можете его удалить (к примеру, плагин Inline PHP), если не ставили, то не устанавливайте, так как код имеет всего пару строчек.
Зачем выводить внутри статьи или записи работающий код php?
Бывают разные причины, вот например, вы хотите вывести кнопку «купить» в самой статье, где после нажатия, товар попадет в корзину, или хотите вывести форму в статье, где будет вестись подсчет символов и балов. Идей, как применить данную функцию, я думаю, вы найдете намного больше. Итак, добавьте в файл «functions.php» вашей темы вот такую функцию:

[cc lang=»php»]
/* чтобы вставить код php в статьях/страницах WordPress,
* поставьте шоркод: [exec]код[/exec]
*/
function exec_php($matches){
eval(‘ob_start();’.$matches[1].’$inline_execute_output = ob_get_contents();ob_end_clean();’);
return $inline_execute_output;
}
function inline_php($content){
$content = preg_replace_callback(‘/\[exec\]((.|\n)*?)\[\/exec\]/’, ‘exec_php’, $content);
$content = preg_replace(‘/\[exec off\]((.|\n)*?)\[\/exec\]/’, ‘$1’, $content);
return $content;
}
add_filter(‘the_content’, ‘inline_php’, 0);[/cc]

Теперь вставляйте шорткод прямо в статью или запись:
[cc lang=»php»][exec]здесь php код [/exec][/cc]

Внимание: при вставке php кода в шорткод, не используйте «»
То есть будет вот так:
[cc lang=»php»][exec]echo date(‘Y’);[/exec][/cc]

Если вы хотите вывести код, как обычный текст, выведите php код вот таким шорткодом:
[cc lang=»php»][exec off]php код[/exec][/cc]
Это все! Удачи!

Источник: https://bloggood.ru/wordpress/kak-vstavit-php-kod-v-wordpress-na-stranicu-ili-zapis.html/

 

Перевод темы WordPress на русский язык

Примечание: и снова рекомендую начать с инструкции первоисточника(англ.): https://codex.wordpress.org/User:Lorelle/Installing

или читать первую часть. Более подробо о формате gettext см. в Части 2

Часть 1 «для чайников»

Перевод темы WordPress на русский язык

Оформление большей части шаблонов WordPress на английском языке. Конечно, имеются темы и на русском, а также других языках, но большинство все же остается на английском. В связи с этим может возникнуть необходимость в русификации темы на Вордпресс.

Как локализировать шаблон на русский язык.

Эта статья поможет разобраться, как локализировать шаблон на русский язык, используя программу Poedit, и как выполнить перевод тем WordPress при помощи одного плагина под названием CodeStyling Localization.

С самого начала следует обозначить, что перевод на русский язык английских строк внутри исходных файлов .php темы – ошибочное мнение. Данную ошибку допускают многие начинающие разработчики и пользователи WordPress.

Для локализации в WordPress используется GNU gettext технология, которая говорит о том, что исходный программный код должен быть прописан на английском языке. Почему так?

Это позволит, например, переводить на русский темы WordPress, не внося изменений в исходный код шаблона. Главное, при выходе обновлений к шаблонам, перевод никуда не исчезнет.

Русификация темы WordPress

Иногда, к сожалению, не каждую тему для WordPress возможно перевести «правильным» способом. Все зависит от того, провел ли разработчик подготовку своей темы к переводу.

Где найти шаблон, готовый к переводу? На самом деле, это несложно. Например, на сайте WordPress.org имеется специальная пометка translation-ready, указывающая на тот факт, что тема подготовлена разработчиком к переводу, и вы сможете перевести ее на русский язык, не изменяя исходный программный код.

Если вы выбрали тему не с официального сайта, то информацию о том, готов ли шаблон к переводу, уточняйте у разработчика.

Совет! Шаблоны для WordPress нужно скачивать с официального ресурса. Использовать темы с «левых» сайтов, особенно, если они бесплатные, очень рискованно.

Файлы .po и .mo

После скачивания темы переходим к этапу «Как перевести тему WordPress на русский язык?». Ищем в теме директорию languages. Именно в ней находятся нужные файлы для перевода темы шаблона на разные языки. Имя файла должно указывать на локаль. К примеру, ru_RU – это русский. Все эти файлы идут с расширением .po и .mo.

.po файлы хранят в текстовом формате переведенные строки. К этим данным обращается переводчик темы.

.mo файлы — те же строки, но в скомпонованном варианте. Данные файлы использует WordPress ядро для отображения выполненного перевода.

Отредактировав перевод в файле .po, его следует скомпилировать в .mo, чтоб подтвердить и применить исправления. Используя редактор Poedit, это можно делать автоматически.

Как русифицировать Вордпресс при помощи Poedit

Poedit — это редактор .po файлов (gettext каталогов), отвечающий за перевод программного обеспечения. Большая часть разработчиков отдает предпочтение gettext, чтоб локализовать программы Unix. Так, решив перевести любимые программы Linux, можно смело использовать Poedit.

Какие особенности имеет редактор Poedit:

  1. Имеется проверка орфографии.
  2. .mo файлы компилируются автоматически.
  3. Присутствует поддержка множественных форм.
  4. Есть возможность редактировать комментарии.
  5. В наличии удобный строчный поиск.

Скачать Poedit редактор можно по ссылке https://poedit.net/download.

Запустив программу для создания нового перевода, нужно (через раздел меню Файл) создать из POT-файла каталог.

Выбираем .pot файл (или .po) в директории languages вашей темы. Далее редактор предложит заполнить форму перевода и сохранить новый созданный каталог. Сохраняем его в той же languages директории под именем локали, к примеру, ru_RU.po.

Если нужно, то для внесения поправок в существующий перевод, нужно открыть соответствующий .po файл.

Poedit — это редактор .po файлов (gettext каталогов), отвечающий за перевод программного обеспечения.

Работа с редактором Poedit не вызывает дополнительных вопросов. Все просто и понятно. Исходный вариант текста расположен слева, а текст перевода — справа. Чтоб внести коррективы в перевод, нужно щелкнуть на нужную строчку и ввести правильный перевод. Нажав сохранить, редактор сам скомпилирует новый перевод и создаст соответствующий .mo файл.

Установка перевода в Вордпресс

После внесения окончательных изменений в перевод, помним, что его нужно сохранить. Следующий этап – это загрузка темы с русским переводом на сайт и его активация.

Если на сайте тема уже установлена, то достаточно загрузить файлы ru_RU.po и ru_RU.mo в ее директорию languages.

Примечание: файлы конкретной темы находятся в …./wp-content/languages/themes/.., для изменить исходный(английский) текст не получилось в Poedit, максимум можно взять чужой перевод и изменить русские названия. Пробую редактировать исходный текст в обычном редакторе сначала.

 

Это можно сделать, к примеру, через FTP.

Если шаблон установлен на русском языке, то изменения будут видны сразу. Если он на английском языке, следует поменять локаль в wp-config.php. Нужно найти в файле строчку WPLANG и изменить ее:

Загрузка темы с русским переводом на сайт и его активация.

Примечание: это работало для WordPress v3.9.2 и ниже. Для WordPress v4.0 и выше:

  • изменяй язык в настройках административной Консоли. Settings > General > Site Language.

 

В результате, тема на сайте будет отображена на русском языке. Однако это не единственный способ!

Как русифицировать WordPress, используя плагин?

Плагины для Вордпресс активно используются для настройки тех или иных функций. Этот случай не будет исключением. Плагин CodeStyling Localization, в данном случае, будет очень полезен.

    1. Чтоб воспользоваться плагином, первый шаг — это скачать его и установить. В консоли находим Плагины-Добавить новый.
    2. В окне поиска вводим CodeStyling Localization и жмем Поиск.
    3. Когда поисковик его найдет, нажимаем Установить, а далее Активировать.
    4. В меню консоли сбоку выбираем Инструменты-Локализация.

Плагин CodeStyling Localization, в данном случае, будет очень полезен.

    1. Появится список, состоящий из локализаций WordPress, установленных тем и плагинов. Внизу будет размещено название нужной темы.  Если ее нет, то русифицировать тему придется способом, указанным выше.

Список, состоящий из локализаций WordPress, установленных тем и плагинов.

При отсутствии в перечне русского языка, нажимаем Добавить новый язык и отмечаем русский. В появившейся строчке русского языка жмем Сканировать и Завершить. Далее в строчке русского языка выбираем Редактировать. Откроется перечень фраз и перевод для них.

При отсутствии в перечне русского языка, нажимаем Добавить новый язык и отмечаем русский.

Можно редактировать отдельно каждую фразу, выбрав соответствующее действие справа.

Многие фразы отображаются с %s в конце. От этих внешних ссылок в отдельных случаях можно избавиться. Например, перевод «Powered by %1$s and %2$s theme by %3$s» можно заменить «Сайт на WordPress» без ссылок.

Переводить все имеющиеся фразы не обязательно, только самые важные. Проверив и отредактировав перевод, нажимаем над списком фраз Генерировать mo-файл.

Выполнив все этапы и поняв как русифицировать шаблон wordpress, плагин CodeStyling Localization можно смело удалить, так как даже после этого все .po и .mo файлы сохранятся.

Итог

Многие пользователи, выбирая шаблон WordPress, пугаются, увидев английский язык интерфейса. Почему-то не все понимают, что это только шаблон, который можно настроить и модифицировать. Поэтому, подобрав подходящий шаблон на английском языке, не стоит от него отказываться, так как русифицировать WordPress сможет даже новичок.

Читать далее «Перевод темы WordPress на русский язык»

Двухпанельный файловый менеджер для debian

Похожий на Total Commander  файловый менеджер для линукс называется doublecmd (присутсвует в оф.репозитории), и создан русским товарищем, мне кажется. Если ставить в FXCE из Synaptic’а, то этот менеджер по-умолчанию станет использоваться в качестве файлового менеджера(удобно).

Плагины для Double Commender:

7ziphttps://github.com/ikk00/p7z-usr

 

 

yandex disk .deb

Установка клиента

Чтобы установить клиент автоматически, воспользуйтесь командой быстрой установки пакета.
echo "deb http://repo.yandex.ru/yandex-disk/deb/ stable main" | sudo tee -a /etc/apt/sources.list.d/yandex.list > /dev/null && wget http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG -O- | sudo apt-key add - && sudo apt-get update && sudo apt-get install -y yandex-disk Читать далее «yandex disk .deb»

Трём диски

Дано: Жесткие диски, которые нужно отдать/продать. Если можно выбросить, тогда быстрее и надежнее разобрать и магниты бонусом получить(например, для фиксации калитки здорово подходят).
Задача: Cтереть данные на них, чтобы затруднить восстановление информации третьими лицами.
Решение:
смотрим диски(разделы) в системе
sudo lsblk
затираем нулями диск sdb, блоками(bs) по 8Мб
sudo dd if=/dev/zero of=/dev/sdb bs=8M
посмотреть текущее состояние процесса:
killall -USR1 dd

 

Локальная инет радиостанция при помощи icecast +ices

Рылся в своих старых записях и решил поделится с Вами инструкцией как просто и быстро поднять нормальный сервер для он лайн транслирования своего радио (mp3 файлы) и для ретрансляции внешних радиостанций.
Кому интересно прошу под кат.

Я использовал сервер под управлением FreeBSD. Считаем, что у нас есть свежее дерево портов. Начнем установки icecast:

#cd /usr/ports/audio/icecast2
#make install clean

Далее создаем пользователя для инет радио radio и группу radio и создаем каталог где это все будет лежать.

#mkdir /var/icecast
#pw group add radio
# adduser
Username:radio
Full name: Radio user
Uid (Leave empty for default):
Login group [radio]:
Login group is radio. Invite jru into other groups? []:
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: nologin
Home directory [/home/radio]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : radio
Password : ****
Full Name : Radio user
Uid : 1001
Class :
Groups : radio
Home : /home/radio
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (radio) to the user database.
Add another user? (yes/no): no
Goodbye!

После копируем все файлы для веб интерфейса:

cp /usr/local/share/icecast /var/icecast

Cоздаем каталог для лога:

mkdir /var/icecast/log

Cоздаем файлы для логов:

cd /var/icecast/log
touch access.log
touch error.log

Меняем права:

chown -R radio:radio /var/icecast

Далее идем смотреть файл конфига:

cd /usr/local/etc
cp icecast.xml.sample icecast.xml

Конфигурим файл. Опишу только важные параметры
Аутентификация. Первое — это пароль на подключение для трансляции через ваш сервер icecast.Второе — это логин пароль на веб интерфейс по адресу icecast_ip:8000


123

123


admin
12345678

Далее выбираем IP сервера и порт так же точку монитрования потока с ices но это позже:

8000 192.168.1.7.
/ices.

Так же я собираюсь рестранслировать радиостанции украины Киссфм (+ Киссфм в АСС), наше радио, люкс фм, и хит фм:


91.201.37.42 8000 /kiss
/kiss
1
0


91.201.37.42 8000 /kissACC
/kissACC
1
0

….
……..
195.95.206.12 8000 /HitFM
/hitfm
1
0


77.120.104.251 8000 /
/luxfm
1
0


212.26.129.222 8001 /
/nashe
1
0

Далее меняем параметры нахождения каталогов в разделе

/var/icecast

/log
/web
/admin /var/run/icecast.pid

И последнее, но не последнее по значению. Icecast не работает от root вот и мы меняем разрешения на ранее созданого юзера и группу


1


radio
radio

Далее пробуем взлететь, смотрим что он ругается:

#/usr/local/bin/icecast -c /usr/local/etc/icecast.xml

Если все хорошо прерываем через Ctrl+c и идем дальше:

Я использовал iсes0 ибо мне нужно было воспроизводить mp3 а для ogg по идее нужно использовать ices2, вроде он тоже воспроизводить mp3, но я не проверял:

#cd /usr/ports/audio/ices
#make install clean

Тут что бы не мучатся с правами делаем проще (можете сами создавать каталог где хотите):

mkdir /tmp/radio

Складываем сюда файлы mp3 и создаем плейлист:

find /tmp/radio -name *.mp3 > /tmp/radio/playlist.txt

Должен получится файл playlist.txt с таким содержимым:

/tmp/radio/Far East Movement ft. The Cataracs & Dev — Like A G6.mp3
/tmp/radio/The_Prodigy_-_Voodoo_People_(Pendulum_Remix).mp3
/tmp/radio/1.mp3

Меняем права #chmod -R 777 /tmp/radio и идем ломать файл ices.conf

cd /usr/local/etc/
cp ices.conf.dist ices.conf

Редактируем. У меня вышел такой вид (коменты Афтора):





/tmp/radio/playlist.txt

0

builtin

ices0



1

1

/tmp




192.168.1.7

8000

123

http


/ices


mp3 stream

it

Local streaming

http://gate.mydomain.com/

0


128

0


2

Далее добавляем в /etc/rc.conf строки:

icecast_enable=»YES»
icecast_flags=»-c /usr/local/etc/icecast.xml»
ices0_enable=»YES»
ices0_flags=»/usr/local/etc/ices.conf»

И пробуем взлетать:

cd /usr/local/etc/rc.d
#./icecast2 start
#./ices0 start

Открываем в баузере ссылку:
192.168.1.7:8000/status.xsl

Скачиваем m3u нужного потока и вперед.
Интернет-радио поставлено «конект по требованию», так что первый конект медленный. Кому не жалко инет трафика — поменяйте значение
1 на 0.

Так же ices как проиграет весь плейлист выключается. Как сделать по кругу не нашел пока что. Но, если запустить ices через рандом то его игрища никогда не заканчиваются smile.
В файле ices.conf меняем параметр 0 на 1 и все.

Использованные материалы: https://habr.com/post/267351/

Установка ProFTPD на FreeBSD 11

portmaster -vda (обновление всех портов, которым это необходимо)

Установка и настройка FTP-сервера на FreeBSD 11.0 Release. Практика использования ProFTPD.

Задача: установить FTP-сервер для оперативного выкладывания для клиентов больших файлов, которые сложно переслать по почте. Будем использовать ProFTPD.

Введение

ProFTPD появился как безопасный и удобно настраиваемый FTP-сервер, используя Apache-подобный синтаксис файла конфигурации.

В то время когда начали создавать ProFTPD, наиболее часто используемым сервером был wu-ftpd. wu-ftpd обеспечивает отличную производительность, но испытывает недостаток в многочисленных функциях новых серверов Win32 FTP, а также имеет плохую историю безопасности. Многие люди, в том числе разработчиков, которые работают на ProFTPD, потратил много времени на исправление ошибок и дыр безопасности wu-ftpd. Но к сожалению, стало ясно, что необходим начать с нуля для реализации легкой конфигурируемости и обеспечения безопасности.

Есть и другие серверы FTP, который значительно более безопасные и менее ресурсоемкие, чем wu-ftpd. Но к сожалению, не предлагают набор расширенных функций, необходимых для более сложных FTP сайтов.

ProFTPD это безопасный FTP сервер разработанный с нуля, удобный и легко конфигурируемый. Очень много хорошо известных и высоконагруженных серверов используют ProFTPD.

Установка ProFTPD

Найдем нужный порт и установим его через portmaster.

# whereis proftpd
proftpd: /usr/ports/ftp/proftpd
# portmaster /usr/ports/ftp/proftpd

Либо через порты:

#cd /usr/ports/ftp/proftpd && make install clean

===> SECURITY REPORT:
This port has installed the following files which may act as network
servers and may therefore pose a remote security risk to the system.
/usr/local/libexec/proftpd/mod_snmp.so
/usr/local/sbin/proftpd
/usr/local/libexec/proftpd/mod_radius.so
/usr/local/bin/ftpdctl

This port has installed the following startup scripts which may cause
these network services to be started at boot time.
/usr/local/etc/rc.d/proftpd

If there are vulnerabilities in these programs there may be a security
risk to the system. FreeBSD makes no guarantee about the security of
ports included in the Ports Collection. Please type ‘make deinstall’
to deinstall the port if this is a concern.

For more information, and contact details about the security
status of this software, see the following webpage:
http://www.proftpd.org/

===>>> Installation of ftp/proftpd (proftpd-1.3.5b) complete

Установка завершена, перейдем к настройке.

Настройка ProFTPD

Посмотрим файл конфигурации, который создал установщик /usr/local/etc/proftpd.conf

#
# For more information about Proftpd configuration
# see http://www.proftpd.org/
#
# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use. It establishes a single server
# and a single anonymous login. It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.

ServerName "ProFTPD Default Installation"
ServerType standalone
DefaultServer on
ScoreboardFile /var/run/proftpd/proftpd.scoreboard

# Port 21 is the standard FTP port.
Port 21

# Use IPv6 support by default.
UseIPv6 on

# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022

# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
MaxInstances 30

CommandBufferSize 512

# Set the user and group under which the server will run.
User nobody
Group nogroup

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
#DefaultRoot ~

# Normally, we want files to be overwriteable.
AllowOverwrite on

# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
 DenyAll
</Limit>

# A basic anonymous configuration, no upload directories. If you do not
# want anonymous users, simply delete this entire <Anonymous> section.


#########################################################################
# #
# Uncomment lines with only one # to allow basic anonymous access #
# #
#########################################################################

#<Anonymous ~ftp>
# User ftp
# Group ftp

### We want clients to be able to login with "anonymous" as well as "ftp"
 # UserAlias anonymous ftp

### Limit the maximum number of anonymous logins
 # MaxClients 10

### We want 'welcome.msg' displayed at login, and '.message' displayed
 ### in each newly chdired directory.
 # DisplayLogin welcome.msg
 # DisplayFirstChdir .message

Limit WRITE everywhere in the anonymous chroot
 # <Limit WRITE>
 # DenyAll
 # </Limit>
#</Anonymous>

По сути все должно уже работать с этим конфигом.

Запуск ProFTPD

В файл /etc/rc.conf добавляем строку

proftpd_enable="YES"

Запускаем без перезагрузки сервера сервис ProFTPD:

# service proftpd start

Вышла ошибка:

# service proftpd start
Starting proftpd.
2016-12-19 11:26:14,483 srv01 proftpd[14406]: fatal: UseIPv6: Use of the UseIPv6 directive requires IPv6 support (--enable-ipv6) on line 19 of '/usr/local/etc/proftpd.conf'
/usr/local/etc/rc.d/proftpd: WARNING: failed to start proftpd

Закомментировал строку:

# Use IPv6 support by default.
# UseIPv6 on

Запустил заново, вышла ошибка:

# service proftpd start
Starting proftpd.
2016-12-19 11:31:07,047 srv01 proftpd[14439]: warning: unable to determine IP address of 'srv01'
2016-12-19 11:31:07,047 srv01 proftpd[14439]: error: no valid servers configured
2016-12-19 11:31:07,047 srv01 proftpd[14439]: fatal: error processing configuration file '/usr/local/etc/proftpd.conf'
/usr/local/etc/rc.d/proftpd: WARNING: failed to start proftpd

Имя сервера у меня srv01, добавляю в hosts

192.168.146.252 srv01

Теперь все успешно запустилось:

# service proftpd start
Starting proftpd.

Перезапустить можно командой:

# service proftpd restart

Теперь можно на любом клиенте проверить доступ к серверу по следующему адресу (в адресной строке любого браузера набираете):

ftp://192.168.146.252/

Появляется запрос на вводи имени и пароля, вводите необходимые данные и попадаете в домашнюю папку пользователя.

Естественно вводите существующего пользователя системы FreeBSD 11.0

По сути вот мы и произвели простейшую настройку ФТП-сервера для использования в локальной сети.

Думаю надо остановиться на вопросах прописывания правил для файерволла ipfw, для того, чтобы открыть доступ снаружи к установленному фтп-серверу.

Русские символы в название файла

Проблема: на FreeBSD 11.0 установлена локаль UTF-8, при доступе к файлу, которые именован русскими буквами произошла ошибка.

Решение: добавил в конфигурационный файл следующие строки

<IfModule mod_lang.c>
    UseEncoding utf8 cp1251
</IfModule>

Полезные команды ProFTPD

Проверка правильности синтаксиса конфигурационного файла

# proftpd -t
Checking syntax of configuration file
Syntax check complete.

Проверка поддерживаемых модулей

# proftpd -l
Compiled-in modules:
mod_core.c
mod_xfer.c
mod_rlimit.c
mod_auth_unix.c
mod_auth_file.c
mod_auth.c
mod_ls.c
mod_log.c
mod_site.c
mod_delay.c
mod_facts.c
mod_dso.c
mod_ident.c
mod_auth_pam.c
mod_ctrls.c
mod_lang.c

Описание настроек ProFTPD

Все что написано выше, это простейшая конфигурация ProFTPD сервера. В реальной жизни может использоваться только в локальной сети.

К сожалению в жизни все не просто так. Начнем с того, что сам протокол FTP не является безопасным, поэтому используют различные ухищрения, чтобы  его использование не дискредитировало вас и ваш сервер.

Начнем, будем создавать виртуальных ftp-пользователей. То есть они не имеют системной учетной записи в самой системе FreeBSD. Есть несколько вариантов хранения учетных записей виртуальных пользователей.

Предлагаю начать с использования альтернативного файла имен и паролей пользователей, также можно использовать базу данных MySQL.

Выполним начальные настройки, которые нам советуют сделать в дефолтном конфигурационном файле.

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~
ServerIdent on "FTP Server ready."

Подготовительный этап

Создаем место для хранения файлов, я использую zfs поэтому производим следующие манипуляции:

 # zfs list
NAME USED AVAIL REFER MOUNTPOINT
bootpool 121M 1,80G 121M /bootpool
zroot 3,59G 888G 96K /zroot
zroot/ROOT 1,58G 888G 96K none
zroot/ROOT/default 1,58G 888G 1,58G /
zroot/tmp 144K 888G 144K /tmp
zroot/usr 2,01G 888G 96K /usr
zroot/usr/home 136K 888G 136K /usr/home
zroot/usr/ports 1,41G 888G 1,41G /usr/ports
zroot/usr/src 608M 888G 608M /usr/src
zroot/var 736K 888G 96K /var
zroot/var/audit 96K 888G 96K /var/audit
zroot/var/crash 96K 888G 96K /var/crash
zroot/var/log 232K 888G 232K /var/log
zroot/var/mail 120K 888G 120K /var/mail
zroot/var/tmp 96K 888G 96K /var/tmp

Смотрим как сейчас, затем создаем файловую систему:

# zfs create zroot/data

Смотрим что получилось

# zfs list
NAME USED AVAIL REFER MOUNTPOINT
bootpool 121M 1,80G 121M /bootpool
zroot 3,59G 888G 96K /zroot
zroot/ROOT 1,58G 888G 96K none
zroot/ROOT/default 1,58G 888G 1,58G /
zroot/data 96K 888G 96K /zroot/data
zroot/tmp 144K 888G 144K /tmp
zroot/usr 2,01G 888G 96K /usr
zroot/usr/home 136K 888G 136K /usr/home
zroot/usr/ports 1,41G 888G 1,41G /usr/ports
zroot/usr/src 608M 888G 608M /usr/src
zroot/var 736K 888G 96K /var
zroot/var/audit 96K 888G 96K /var/audit
zroot/var/crash 96K 888G 96K /var/crash
zroot/var/log 232K 888G 232K /var/log
zroot/var/mail 120K 888G 120K /var/mail
zroot/var/tmp 96K 888G 96K /var/tmp

Выделенным место для хранения файлов сервера фтп.

Можно назначить квоту, зарезервировать необходимое место и включить автоматическое сжатие хранимых данных. Команды ниже не обязательны, это опции. Если не понимаете, что они значат не выполняйте их, значит оно вам не нужно.

#Резервируем место под свою файловую систему
zfs set reservation=800m zroot/data

#Устанавливаем квоту для вашей файловой системы, которую вы не сможете превысить
zfs set quota=800m zroot/data

#Включаем компрессию.
zfs set compression=on zroot/data

Настройка доступа ftp-пользователей к директориям

Изменяем владельца директории /zroot/data (необходимо указать нужную группу и пользователя ниже)

Создаем сначала реального пользователя через adduser

# adduser
Username: proftp
Full name:
Uid (Leave empty for default):
Login group [proftp]:
Login group is proftp. Invite proftp into other groups? []:
Login class [default]:
Shell (sh csh tcsh bash rbash nologin) [sh]: nologin
Home directory [/home/proftp]: /zroot/data
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : proftp
Password : *****
Full Name :
Uid : 1002
Class :
Groups : proftp
Home : /zroot/data
Home Mode :
Shell : /usr/sbin/nologin
Locked : no

Затем права папке присваиваем

 # chown proftp:proftp /zroot/data

Выставляем права доступа к директории, иначе увидим permission denied

# chmod 775 /zroot/data

Теперь виртуальные пользователи могут создавать, редактировать и удалять файлы и папки.

Смотрим в файле /etc/passwd uid и gid созданного юзера, у меня вышло 1002

Сохраняем учетные записи виртуальных пользователей в текстовом файле

Необходимо, чтобы ftp-пользователь имел возможность редактировать и удалять файлы.
Создаем нового виртуального ftp-пользователя с логином ftpuser, идентификатором 1002, группой 1002 и домашним каталогом /data.

ftpasswd --passwd --file=/usr/local/etc/proftpd/ftpd.passwd
--name=ftpuser --uid=1002 --gid=1002 --home=/zroot/data
--shell=/usr/sbin/nologin

После выполнения команды система попросит ввести дважды пароль пользователя.
В итоге, у нас появится файл /usr/local/etc/proftpd/ftp.passwd с записью о пользователе.

Изменить пароль пользователя можно следующей командой:

ftpasswd --passwd --name=ftpuser --change-password

Изменяем /usr/local/etc/proftpd.conf, для подключения виртуального пользователя:

RequireValidShell off
AuthUserFile /usr/local/etc/proftpd/ftpd.passwd

Перезапускаем ftp-сервер:

service proftpd restart

 Мониторинг работы ProFTPD

ftpcount — показывает число соединений в настоящий момент (с разбивкой по виртуальным хостам).

ftpwho — показывает информацию о каждом текущем соединении (—verbose показывает также текущую рабочую директорию).

ftptop — аналог программы top для процессов ProFTPD.

Настройкалогов

Добавляем в/usr/local/etc/proftpd.conf

ExtendedLog /var/log/ftp.log
TransferLog /var/log/proftpd
SystemLog /var/log/proftpd/proftpd.log

Создаем необходимые файлы.

touch /var/log/ftp.log
mkdir /var/log/proftpd
touch /var/log/proftpd/xferlog
touch /var/log/proftpd/proftpd.log

Выпускаем наружу FTP-сервер через шлюз с помощью NAT (ProFTPD)

Читаем документацию и пробуем.

Сначала добавляем строку в ваш конфигурационный файл proftpd.conf. Прописываем днс-имя или ip-адрес, в зависимости от того, как вы будете обращаться к серверу снаружи.
Добавляем директиву MasqueradeAddress

  MasqueradeAddress	ftp.mydomain.com  # если используете DNS-имя
  MasqueradeAddress	123.45.67.89      # если используете IP-адрес

Естественно используете публичный адрес, а не локальный.

Существует одна большая проблема, дело в том что при пассивном режиме фтп используются порты от 1024 и выше, что означает , что вы должны направить все порты 1024-65535 от NAT к FTP-серверу. Скажем так, это не очень безопасно.

Для решения этой проблемы, используйте директиву PassivePortsв вашем конфигурационном файле proftpd.conf, чтобы контролировать , какие порты proftpd будут использоваться для передачи данных в пассивном режиме:

  PassivePorts 50000 50200 # Эти порты должны быть безопасными

Обратите внимание, что если сконфигурированный диапазон портов слишком мал, то соединенные клиенты могут испытывать задержки или даже не подключаться, когда они запрашивают подключение через пассивный режим передачи данных.

Перезапускаете proftpd сервер.

# service proftpd restart
Stopping proftpd.
Waiting for PIDS: 18273.
Starting proftpd.
2016-12-22 11:20:09,680 srv01 proftpd[23575] srv01: 192.168.146.252:21 masquerading as 123.45.67.89

Увидите примерно такую же запись, которая приведена выше. С первой частью задания вы справились.

Настройка директории для хранения файлов proftpd.conf

<Directory ~>
 AllowOverwrite on
 AllowStoreRestart on
 <Limit Write>
 AllowAll
 </Limit>
 <Limit READ>
 AllowAll
 </Limit>
</Directory>

Немного теории: принцип работы протокола FTP

Существует два режима работы протокола FTP:

  • активный режим работы протокола FTP;
    Это когда клиент соединяется на 21 порт сервера, затем сервер  при необходимости создает  DATA соединение с 20 порта на указанный порт клиента (от 1024 и выше).
  • пассивный режим работы;
    Клиент соединяется на 21 порт сервера, затем клиент при необходимости создает DATA соединение на указанный порт сервера. Диапазон портов сервера для данного режима как раз прописывается в конфигурационном файле ProFTPD, параметр PassivePorts.

Клиенту удобнее использовать пассивный режим, а серверу удобнее использовать активный режим, так как проще настройка  ipfw.

Правила IPFW для проброса FTP на внутренний сервер локальной сети

Для активного режима:

#NAT
$ipfw nat 1 config log if $internet_interface reset same_ports deny_in \
redirect_port tcp 192.168.146.252:21 21 

$ipfw add 00500 nat 1 ip from any to any via $internet_interface

$ipfw add 00605 allow tcp from any to 192.168.146.252 21 setup
$ipfw add 00606 allow tcp from me 20 to any setup

(надо еще проверить, не забыть про параметр в /etc/sysctl.conf net.inet.ip.fw.one_pass=0 )

Для  пассивного режима:

#NAT
$ipfw nat 1 config log if $internet_interface reset same_ports deny_in \
redirect_port tcp 192.168.146.252:21 21 \
redirect_port tcp 192.168.146.252:50000-50200 50000-50200 

$ipfw add 00500 nat 1 ip from any to any via $internet_interface

(проверено работает,net.inet.ip.fw.one_pass=0)

 

Использованы материалы: http://www.andrewblog.ru/ustanovka-i-nastrojka-ftp-servera-na-freebsd-11-0-release-praktika-ispolzovaniya-proftpd/

 

Создание загрузочной флешки Windows 7 в Debian

Дано: iso-образ Windows 7, USB-флешка и работающий Debian GNU/Linux (или Ubuntu).
Задача: Создать загрузочную флешку для установки Windows.

Решение: Форматируем флешку в NTFS и затем с помощью dd заливаем на неё iso образ.

Читать далее «Создание загрузочной флешки Windows 7 в Debian»