Установка PiVPN
Включите Raspberry Pi и откройте терминал. Чтобы начать установку PiVPN, введите эту команду:
curl -L https://install.pivpn.io | bash
Эта команда сделает все за вас. Если вы давно не обновляли Pi, установка займет несколько минут.
После выполнения всех необходимых обновлений Raspberry Pi программа PiVPN попросит Вас продолжить. Нажмите Enter.
Затем она сообщит, что будет использовать статический IP-адрес. Снова нажмите Enter.
Затем она запросит разрешение на использование текущего IP-адреса и шлюза. Нажмите Enter на yes, чтобы разрешить.
Далее показана заметка о том, что маршрутизатор может назначить этот IP-адрес другим устройствам, что приведет к конфликту. Игнорируйте это сообщение и нажмите Enter.
Затем программа попросит вас выбрать пользователя, который будет сохранять ваши конфигурации ovpn. Нажмите Enter, чтобы перейти к выбору пользователя.
Выберите пользователя, для которого хотите сохранить данные. В большинстве случаев есть только один пользователь, выбираем его.
После выбора пользователя PiVPN показывает примечание о том, что рекомендуется разрешить автоматическое обновление, т.е. при появлении нового пакета безопасности система будет автоматически обновляться. Нажмите Enter.
Нажмите «да», если вы хотите разрешить ему автоматически обновлять любые новые пакеты. Поскольку это рекомендуется, я нажал «да» и настоятельно рекомендую вам последовать моему примеру.
Есть два протокола, по которым работает OpenVPN. Мы выберем UDP-соединение, потому что оно быстрее.
После выбора протокола предлагается выбрать номер порта. По умолчанию порт 1194, но я рекомендовал вам изменить его, чтобы добавить больше безопасности и затруднить кому-нибудь возможность узнать, что вы используете VPN.
Однако, если вы новичок, я рекомендую использовать номер порта по умолчанию.
Нажмите Enter на yes, чтобы использовать номер порта, который вы выбрали на последнем шаге.
Далее, он просит у вас ключ шифрования. Рекомендуемый размер ключа шифрования 2048 даст вам хорошее шифрование без ущерба для скорости.
Этот шаг займет некоторое время, чтобы установить размер ключа 2048. Если вы хотите, чтобы всё было быстрее, то выберите размер ключа шифрования 1024.
Далее еще один контрольный вопрос.
После выбора степени шифрования, проявится возможность использовать публичный IP или использовать DNS запись. Перейдите к записи DNS и нажмите Enter.
Если у вас есть собственный домен, введите здесь DNS имя сервера. В противном случае перейдите на np-ip.org и создайте там бесплатное доменное имя.
Далее запрашивается DNS-провайдер. Для простоты мы выберем Google. Однако, вы можете выбрать любого провайдера.
На этом установка OpenVPN завершена.
Настройка сервера Minecraft
После завершения загрузки перейдите в каталог и запустите сервер Minecraft:
При первом запуске сервер выполняет некоторые операции, создает файлы и и останавливается.
Для запуска сервера вам необходимо согласиться с лицензионным соглашением Minecraft. Откройте файл и измените на :
~ / Сервер / Eula.txt
Закройте и сохраните файл.
Затем отредактируйте файл чтобы включить протокол rcon и установить пароль rcon. Откройте файл с помощью вашего текстового редактора:
Найдите следующие строки и обновите их значения, как показано ниже:
Не забудьте сменить надежный на более безопасный. Если вы не хотите подключаться к серверу Minecraft из удаленных мест, убедитесь, что ваш брандмауэр блокирует порт rcon.
Здесь вы также можете настроить свойства сервера по умолчанию. Для получения дополнительной информации о доступных настройках, посетите страницу server.properties.
Настройка Privoxy
Откройте браузер и перейдите на config.privoxy.org.
Щелкните «Просмотреть и изменить текущую конфигурацию» на домашней странице Privoxy. Страница сводки конфигурации позволяет просматривать конфигурацию действий и фильтров.
Вы можете редактировать файлы прямо в редакторе (пути к файлам указаны на экране). Намного проще использовать возможности настройки интерфейса браузера
Обратите внимание, что изначально вы не можете редактировать настройки default.action
Нажмите «Изменить», чтобы открыть настройки «Match-All.Action».
Появятся параметры редактирования. Если щелкнуть любой светло-синий текст, откроется ссылка на страницу справки, описывающую этот элемент.
Кнопки «Установить на осторожность», «Установить на средний» и «Установить на расширенный» увеличивают или уменьшают гибкость Privoxy с его фильтрацией. Вы можете включить параметр паранойи Privoxy, чтобы он агрессивно фильтровал все, что даже слегка подозрительно
Или вы можете расслабить его и позволить ему работать с умеренной степенью доверия.
Нажмите «Редактировать», чтобы настроить каждый из параметров индивидуально.
Щелкните переключатели рядом с каждым параметром, выбрав «Включено», «Отключено» или «Без изменений».
В столбце «Описание» приводится краткое объяснение каждого параметра. Однако, если вы щелкнете по любой из ссылок в столбце «Действие», вы сможете просмотреть полную страницу «Справка» для этого элемента.
Чтобы сохранить настройки, нажмите «Отправить» вверху или внизу страницы.
Механизмы записи SPF
В таблице ниже перечислены механизмы, используемые при создании записей SPF. Почтовые серверы получателей проверяют письма на соответствие механизмам в том порядке, в котором они указаны в записи SPF.
Полезно знать
- Помимо механизмов можно использовать необязательные .
- В записи TXT для SPF можно упоминать не более 10 других доменов и серверов. Эти упоминания называются запросами. Подробнее о том, …
Механизм | Описание и допустимые значения |
---|---|
Версия SPF. Этот тег является обязательным и должен быть первым тегом в записи. Этот механизм должен иметь следующее значение: |
|
Задает разрешенные почтовые серверы на основе IPv4-адреса или диапазона адресов. Значение должно представлять собой IPv4-адрес или диапазон в стандартном формате. Например: или |
|
Задает разрешенные почтовые серверы на основе IPv6-адреса или диапазона адресов. Значение должно представлять собой IPv6-адрес или диапазон в стандартном формате. Например: или |
|
Задает разрешенные почтовые серверы на основе доменного имени. Например: |
|
Задает один или несколько разрешенных почтовых серверов на основе записи MX домена. Например: Если в записи SPF нет этого механизма, по умолчанию используются записи MX домена, в котором создана эта запись SPF. |
|
Задает разрешенных сторонних отправителей электронной почты на основе домена. Например: |
|
Указывает, что механизм применяется ко всем входящим письмам. Рекомендуем всегда включать его в запись SPF. Механизм должен быть последним в записи. Механизмы, следующие за ним, игнорируются. Какой вариант следует использовать: ~all или -all?Если запись SPF содержит элемент (), как правило, серверы получателей принимают письма от отправителей, которые не включены в запись SPF, но помечают их как подозрительные. Если запись SPF содержит элемент (), серверы получателей могут отклонять письма от отправителей, которые не включены в запись SPF. Если запись SPF настроена неправильно, наличие квалификатора отказа может привести к тому, что подлинные письма из вашего домена будут попадать в спам. Совет. Чтобы защитить от спуфинга домены, которые не отправляют почту, задайте для домена запись SPF . |
Установка NAS-сервера
Перейдём к основной процедуре, благодаря которой Raspberry Pi сможет функционировать в качестве NAS- сервера. Для этого вам необходимо инсталлировать программное обеспечение Samba находящееся в стандартном репозитории. Для этого в Raspbian предусмотрена соответствующая команда, а именно:
Безусловно, эту операцию необходимо производить в sudo. После инсталляции вам надо будет изменить файл конфигурации. Для его изменения воспользуйтесь любым удобным для вас консольным редактором. Например, вы можете применить консольный редактор Nano. Теперь вам потребуется, обладая правами суперпользователя набрать в консоли команду:
Затем найдите строчки Authentication и security=user. В этих строках перед названием операндов настроек будет содержаться знак диеза. Удалите в каждой строке этот знак. После этого нужно определить путь к сетевым ресурсам посредством имеющейся переменной path. Для этого присвойте этой переменной следующее значение: /nas/shares/public.
В следующей нижней строке найдите булеву переменную read only и присвойте ей значение: “no”. Благодаря последнему изменению вы сможете производить запись в хранилище. Сохраните сделанные вами изменения.
Настройка почтового сервера
Обмен данными между NGINX прокси и почтовым сервером идут в открытом виде. Необходимо добавить в исключение возможность аутентификации по механизму PLAIN. Например, для настройки dovecot, делаем следующее:
vi /etc/dovecot/conf.d/10-auth.conf
Добавляем строки:
remote 192.168.1.11 {
disable_plaintext_auth = no
}
* в данном примере мы разрешили PLAIN-запросы на аутентификацию с сервера 192.168.1.11.
Также проверяем:
ssl = yes
* если ssl будет иметь значение required, проверка не будет работать, так как получится, что с одной стороны сервер разрешает запросы в открытом виде, но требует шифрование ssl.
Перезапускаем Dovecot сервис:
systemctl restart dovecot
Выбор сервера отправки в зависимости от адреса получателя
Итак, в sender_bcc_map всю локальную почту я оставляю локально, просто указывая адрес отправителя (каждый сайт шлет почту от своего ящика) и локального пользователя, к которому она будет складываться. Если у вас много сайтов, то для каждого сайта будет свой локальный пользователь. Чаще всего это так, потому что разные сайты лучше всего запускать под разными пользователями, от которых работает веб сервер. Файл с записями для sender_bcc_map выглядит так:
[email protected] user1 [email protected] user2
Если у вас использует разные ящики для отправки, то можете настроить правило для всего домена сразу:
*@site1.ru user1 *@site2.ru user2
Дальше вам нужно выяснить, как выглядит полностью адрес домена для локальной доставки почты. Это имя задается в параметре mydomain в конфиге postfix main.cf. Допустим, там указано имя сервера — websrv.site.ru. Это не принципиально, в нашем случае там можно написать все, что угодно, но лучше использовать полное доменное имя (fqdn) самого веб сервера, которое указано в DNS записи типа А.
Теперь создаем файл transport_map, в котором пишем следующее:
websrv.site.ru local
Мы явно указываем, что всю почту для домена websrv.site.ru отправлять локально. Не забываем построить индексированный файл:
# postmap /etc/postfix/transport_map
Отправляемся в конфиг main.cf и добавляем туда параметр:
transport_maps = hash:/etc/postfix/transport_map
Перезапускаем postfix и проверяем работу. При отправке почтового сообщения от имени пользователя [email protected] там должно быть примерно следующее:
websrv postfix/smtpd: CC8F0602E205: client=localhost websrv postfix/cleanup: CC8F0602E205: message-id=<[email protected]> websrv postfix/qmgr: CC8F0602E205: from=<[email protected]>, size=874, nrcpt=2 (queue active) websrv postfix/smtpd: disconnect from localhost ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5 websrv postfix/local: CC8F0602E205: to=<[email protected]>, relay=local, delay=0.07, delays=0.06/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox) websrv postfix/smtp: CC8F0602E205: to=<[email protected]>, relay=smtp.yandex.ru:465, delay=0.93, delays=0.06/0.01/0.23/0.63, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued on myt6-9bdf92ffd111.qloud-c.yandex.net as 1608951012-xOUj8gBhbE-oCJSqvIX) websrv postfix/qmgr: CC8F0602E205: removed
[email protected] | адрес, с которого сайт ведет отправку почты |
[email protected] | итоговый локальный адрес, куда идет пересылка почты |
[email protected] | внешний почтовый адрес, куда идет отправление через внешний smtp |
smtp.yandex.ru | адрес внешнего smtp сервера |
Получили в итоге то, что хотели. Внешняя почта отправляется через внешний smtp адрес, указанный в relayhost, а копии сообщений падают в локальный ящик, который находится в файле /var/mail/user1. Конкретно мне это нужно было для отладки, чтобы понять, что именно отправляет сайт.
Если вам нужно пересылать почту не локально, а на какой-то свой почтовый сервер, который вы используете для сбора и анализа отправленной почты, то настройки у вас будут немного другие.
sender_bcc_maps:
*@site1.ru [email protected] *@site2.ru [email protected]
transport_map:
backupmail.ru relay::25
В данном случае backupmail.ru это отдельный почтовый домен и почтовый сервер для него для сбора всей вашей почты. Это не обязательно может быть собственноручно настроенный почтовый сервер. Можете использовать ящик в какой-то готовой службе почты. Но имейте ввиду, если это будет какой-то бесплатный сервис, то он вас быстро заблокирует, если будете слать слишком много почты на этот ящик.
Выбор сетевого хранилища
На сегодняшний момент времени в специализированных магазинах можно приобрести стационарный NAS-сервер с различными конфигурациями. Его можно подключить ко всем имеющимся у вас устройствам и после этого вы будете иметь полный доступ ко всем файлам, хранящимся на нём. Тем не менее, прежде чем приобретать относительно дорогостоящий стационарный NAS-сервер, сначала лучше всего протестировать возможности таких девайсов.
Затем вы сможете решить, есть ли у вас необходимость в приобретении стационарного NAS-сервера, или можно обойтись более дешёвым и по некоторым параметрам не менее эффективным решением в виде NAS на Raspberry Pi 3.
Как избежать ошибок при составлении и отправке писем
Причинами возникновения ошибок и, как следствие, неполучения сообщений могут служить разные факторы. Одни из них связаны с неправильным составлением исходящих писем самим пользователем, другие относятся к более глобальным программным настройкам со стороны получателя.
Самый простой способ это понять – отправить тестовое сообщение на свой ящик. Затем следует протестировать его отправку и получение, используя разные внешние почтовые сервисы: gmail, yandex, mail, rambler и другие. Если сообщение получено, следует ответить на него, проверив корректность исполнения команды «RE» вашим почтовым сервером и принятие ответа условным отправителем.
Довольно часто проблемы с попаданием писем в папку «Спам» или программной блокировкой на стороне получателя лежат в неверном оформлении ключевых полей. Особенно это касается массовых рассылок коммерческого характера. Для отправки большого количества однотипных сообщений как минимум потребуется выполнение следующих параметров настройки:
- выделенный IP-адрес с целью исключить блокировку на стороне сервера-ретранслятора или почтовой программы конечного получателя;
- криптографические подписи DKIM и SPF, помогающие подтвердить подлинность домена и минимизировать количество писем, воспринимаемых как спам.
Некорректное использование бота для отправки писем может привести к блокировке отправителя и другим нежелательным последствиям. Даже если информация, которую вы отправляете потенциальным клиентам, реально интересна им, система спам-фильтрации может воспринять данную рассылку как вредоносную. Чтобы избежать этого, лучше всего воспользоваться услугами специализированных компаний.
В моей практике был случай, когда никак не удавалось добиться получения моей электронной корреспонденции одним из сотрудников компании «Лукойл». Письма я отправлял самые простые, используя корпоративный ящик. Только после того, как мой респондент обратился в IT-службу своего предприятия, выяснилось, что данный адрес находится в блэк-листе. Попал он туда из-за каких-то ошибок, допущенных моим предшественником. Понадобилось больше недели, чтобы адрес включили в «белый список». Все это время письма, высылаемые с личного [email protected], доходили без проблем.
Полезно: Почему не приходят письма с сайта. Пример частного случая.
Как установить веб-сервер на RPi3
Установить web-server на Raspberry Pi 3 предельно просто. После того, как было выполнено подключение к «Малине», нужно вести из-под sudo команду установки (apt-get install), а после нее указать перечень ПО, которое требуется установить: apache2 php5 libapache2-mod-php5. При желании можно инсталлировать и более свежие версии.
Когда указанные пакеты будут установлены, потребуется перезапустить службу. Для этого из-под суперпользователя нужно ввести команду service apache2 restart. Она должна начать работать. Чтобы проверить функционирование Apache, следует в браузере компьютера указать IP-адрес RPi. Если появилась страница, на которой написано: It Works!, тогда все работает.
После этого можно установить СУБД. Чтобы поставить MySQL, потребуется инсталлировать 3 пакета: mysql-server, mysql-client и php5-mysql (если используется другая версия PHP, то после соответствующей аббревиатуры нужно указать иную цифру).
DNS Configuration
IP Address
If you don’t have a static public IP address, you will need to use a free dynamic DNS service like No-IP to redirect a domain to your dynamic IP address.You’ll have to install a tool to regularly give them your current IP address, and they will redirect a domain like myserver.ddns.net to your last known IP address (more details about this here).If you don’t have a domain name, I think that you can use this alias directly.
DNS zone configuration
Now you need to go to your domain name registrar and change these zones to match your current IP address (or your dynamic DNS provider domain name):
- MX
- pop.domain.com
- smtp.domain.com
- imap.domain.com
- mail.domain.com
Changes may take up to 24 hours before applying.You can monitor the progress of the changes with an online tool like Network-Tools.com.Choose “DNS” in the “Tool” dropdown, and type the domain or subdomain you want to check.
Команды Linux
На случай, если эту статью будут читать пользователи, которые ранее не работали с Linux, я решил описать несколько команд, которые вам пригодятся в работе.
- sudo — ставится перед командой и выполняет ее с правами пользователя root
- sudo reboot — перезагрузка
- sudo halt — выключение
- Ctrl+C — выход из открытой консольной программы (если не предусмотрено других клавиш)
- Shift+Ins — вставить текст в консоль
- Ctrl+Ins — копировать выделенный текст из консоли
- cd — переход в нужную папку. Например cd /home/pi
- dir — покажет содержимое текущей папки
- pwd — покажет ваше текущее расположении
- date — покажет время и дату
- cal — покажет календарь на текущий месяц
- cal -y — покажет календарь на текущий год
-
wget — скачать файл в текущую директорию. Например wget http://mysite.com/myfile.deb
- sudo apt-get update — обновит список пакетов с репозитария
- sudo apt-get upgrade — обновит установленные пакеты
- sudo apt-get install — установит нужный пакет. Например sudo apt-get install mc
- стрелки вверх и вниз — листают набранные ранее команды
Положительные и отрицательные сообщения SMTP-сервера
Данные коды являются трехзначными, каждая его часть несет в себе определенную информацию, расшифровывающую причину сбоя.
Первая цифра комбинации содержит информацию о качестве доставки:
- сообщение доставлено («SMTP OK»);
- возникла неизвестная или временная проблема («SMTP unknown»);
- критическая ошибка («SMTP error»).
Существует четыре варианта значений для первой цифры кода:
- 2xx – положительный результат, есть возможность передачи следующей команды;
- 3xx – отложенный результат, необходимо осуществление дополнительных действий;
- 4xx – сообщение не принято, но проблема носит временный характер, и запрос может быть повторен через какое-то время;
- 5xx – категорический отказ выполнения команды, отправка запроса со стороны передающего сервера в том же виде невозможна.
Вторая цифра в коде сообщает о категории ответа:
- 0 – синтаксические ошибки;
- 1 – ответы на запросы информации;
- 2 – ошибки канала передачи;
- 3 и 4 – неизвестный тип ошибки;
- 5 – статус почтовой системы.
Третья цифра дает более расширенную информацию о значении, указанном во второй цифре SMTP-ответа.
Помимо цифровой комбинации, SMTP-сообщение может содержать дополнительную текстовую информацию.
Полную информацию о кодах, их компоновке и значениях можно найти в спецификациях RFC 5321 и RFC 1893.
Следует учитывать, что SMTP-message говорит об успешном или неудачном варианте доставки именно на уровне взаимодействия почтовых серверов. Положительный ответ вовсе не означает, что ваше письмо не попало в папку «Спам».
How to use PiServer
The client machines
So that you can use a Pi as a client, you need to enable network booting on it. Power it up using an SD card with a Raspbian Lite image, and open a terminal window. Type in
and press Return. This adds the line to the end of the file in . Now power the Pi down and remove the SD card. The next time you connect the Pi to a power source, you will be able to network boot it.
The server machine
As a server, you will need an x86 computer on which you can install x86 Debian Stretch. Refer to Simon’s blog post for additional information on this. It is possible to use a Raspberry Pi to serve to the client Pis, but the file system will be slower, especially at boot time.
Make sure your server has a good amount of disk space available for the file system — in general, we recommend at least 16Gb SD cards for Raspberry Pis. The whole client file system is stored locally on the server, so the disk space requirement is fairly significant.
Next, start PiServer by clicking on the start icon and then clicking Preferences > PiServer. This will open a graphical user interface — the wizard — that will walk you through setting up your network. Skip the introduction screen, and you should see a screen looking like this:
If you’ve enabled network booting on the client Pis and they are connected to a power source, their MAC addresses will automatically appear in the table shown above. When you have added all your Pis, click Next.
On the Add users screen, you can set up users on your server. These are pairs of usernames and passwords that will be valid for logging into the client Raspberry Pis. Don’t worry, you can add more users at any point. Click Next again when you’re done.
The Add software screen allows you to select the operating system you want to run on the attached Pis. (You’ll have the option to assign an operating system to each client individually in the setting after the wizard has finished its job.) There are some automatically populated operating systems, such as Raspbian and Raspbian Lite. Hopefully, we’ll add more in due course. You can also provide your own operating system from a local file, or install it from a URL. For further information about how these operating system images are created, have a look at the scripts in .
Once you’re done, click Next again. The wizard will then install the necessary components and the operating systems you’ve chosen. This will take a little time, so grab a coffee (or decaffeinated drink of your choice).
When the installation process is finished, PiServer is up and running — all you need to do is reboot the Pis to get them to run from the server.
Connecting to the Raspberry Pi using SSH
Step 1
Connect to your Raspberry Pi by Secure Shell (SSH) or connect your Raspberry Pi to a computer monitor via HDMI. Before you can access your Raspberry Pi using SSH, you would need to know the IP address of the Raspberry Pi. In this example, PuTTY was used to SSH into the Raspberry Pi.
Feel free to try some of the methods in Raspberry Pi documentation to find the IP address of your Raspberry Pi: Raspberry Pi IP Address.
Step 2
Enter the IP address of your Raspberry Pi in the Host Name (or IP address) field. Ensure that the port is 22 and SSH is selected as the Connection Type. Click Open to start the session.
Step 3
A PuTTY Security Alert will appear. Click Yes to continue with the connection.
Step 4. You will be prompted with a login. Enter the username root and raspberry as the default password.
It is recommended to change your password when you are logged in. Use the passwd command to change your password.
Виды почтовых сервисов
На программном уровне существует несколько видов обработки электронной почтовой корреспонденции. К первой группе относятся виртуальные сервисы, доступные чаще всего в бесплатном исполнении через интернет-соединение на сайте почтового сервера. Это всем известные ресурсы:
- Gmail/Google Suite (почта от Google.com);
- Yandex.ru;
- Mail.ru;
- Rambler.ru и другие.
Более подробную информацию о значениях ответов SMTP можно получить на сайтах популярных почтовых сервисов:
- Коды ошибок SMTP почтового сервиса Gmail (Google Suite) (support.google.com)
- Создание и отправка писем на сервисе Яндекс
- Ошибки отправки писем при использовании сервера и сервиса Mail.ru
Ко второй группе относятся почтовые клиенты – программы, обладающие более расширенным функционалом, чем виртуальные сервисы. Наиболее популярными и универсальными почтовыми клиентами для Windows являются:
- Opera Mail;
- Mozilla Thunderbird;
- Koma-Mail;
- SeaMonkey;
- The Bat!;
- Microsoft Outlook.
Принципы работы почтовых клиентов несколько отличаются от процесса обработки корреспонденции виртуальными серверами. При отправке сообщения программа отсылает его не напрямую конечному получателю, а ретранслирует через сервер-релей. Этот процесс осуществляется чаще всего с использованием протокола SMTP, а получение корреспонденции обычно происходит с помощью IMAP или POP.
Коды SMTP-ответов определяются стандартом. Администратор почтового сервера может создать собственные настройки, в том числе и в части кодировки ответов сервера. Особенно это касается локальных почтовых программ, установленных непосредственно на сервере какой-нибудь компании.
О вариантах выбора и способах создания корпоративных почтовых сервисов более подробно можно прочитать здесь: Что такое почтовый сервер и зачем он нужен.
Подключение жестких дисков
Диски подключаем через USB3.0, через один или два порта. Если диски NTFS нужно поставить пакет (если еще не установлен).
Список подключенных дисков получаем командой:
Создаем каталоги, в который будем монтировать наши USB HDD (название можно придумать любое):
Устанавливаем права на запись на эти каталоги (либо другие если нужно ограничить)
Прописываем в конец файла /etc/fstab команду авто монтирования нашего USB HDD:
Названия дисков смотрим из команды получения дисков, описанной выше (тип файловой системы указываем тот который присутствует на дисках, в данном случае NTFS).
После этого перезагружаемся и получаем примонтированные диски.
Параметр nofail позволяет загрузиться даже если не удастся примонтировать диск (без него придется проделать шаги, описанные ниже, но есть и отрицательный момент — если диск не примонтируется, а мы будем на него писать — по факту будет литься на нашу SD-карту, причем файлов будет не видно, чтобы их увидеть выполняем команды:
В этом случае в /mnt/ будет отображаться наша флешка и можно оттуда удалить файлы, которые должны были литься на HDD, но попали на флешку.
Если мы не прописали nofail и при редактировании fstab косякнули, то при загрузке можем получить такую надпись:
В этом случае вытаскиваем SD карту, подключаем через картридер к компу, находим диск boot и в нем файл cmdline.txt.
Дописываем в конец первой строки с параметрами init=/bin/sh (создавать новую строку не надо, просто дописываем в конец).
Вставляем карту обратно и загружаемся.
Чтобы отредактировать fstab монтируем раздел для записи:
Вносим правки, исправляя косяки
Подключаем карту обратно к картридеру и убираем внесенный ранее текст init=/bin/sh
После этого перезагружаемся в обычном режиме.
Можно добавить пользователей под которым лить файлы на диски по FTP:
Форматируем диск в ext-4
Для секьюрности можно отформатировать диски в ext4.
Если диск уже примонтирован, то нужно размонтировать
Запускаем fdisk для нужного диска
Дальше выбираем команду d и удаляем раздел (если разделов несколько то несколько раз запускаем команду d и выбираем нужный раздел, если раздел только один то удаляется без лишних вопросов).
Затем создаем новый раздел командой n, первый сектор выбираем 2048.
Далее сохраняем изменения командой w
После этого форматируем созданный раздел в ext4
Создание скелета веб-интерфейса на HTML
Если вы совершенно незнакомы с HTML, то первое, что нужно понять, это иерархию этого языка разметки.
Итак, содержимое любой веб-страницы лежит в контейнере, заключенном между тегами <html> (открывающий тег) и </html> (закрывающий тег).
Внутри этого основного контейнера будут еще 2 контейнера — шапка страницы и тело страницы. В шапке страницы содержится служебная информация. А тело страницы — это то, что мы в конечном счете будем видеть у себя на экране в браузере.
В папке /var/www/html/ на Raspberry Pi создадим (или откроем для редактирования) файл index.html:
sudo nano /var/www/html/index.html
Поставим открывающий тег <html> и запишем шапку сайта:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Raspberry Pi</title> </head>
Что находится в шапке? Информация для браузера о кодировке страницы и ее заголовок. Позднее шапка страницы у нас расширится, но не будем забегать наперед и для начала ограничимся этим.
Теперь создадим тело страницы:
<body> <h1 align="center">Домашний сервер на Raspberry Pi 3</h1> <nav role='navigation'> <a href="ССЫЛКА1">Медиасервер Plex</a> <a href="ССЫЛКА2">Электронная библиотека</a> <a href="ССЫЛКА3">RPi-Monitor</a> <a href="ССЫЛКА4">Transmission</a> <a href="ССЫЛКА5">Nextcloud</a> </nav> <ul id="navbar"> <li><a href="ССЫЛКА6"></a></li> <li><a href="ССЫЛКА7"></a></li> <li><a href="ССЫЛКА8"></a></li> <li><a href="ССЫЛКА9"></a></li> </ul> </body> </html>
Тело страницы заключено между открывающим и закрывающим тегами <body>.
Сверху находится заголовок — «Домашний сервер на Raspberry Pi 3». Он заключен в теги заголовка первого уровня H1 и выровнен по центру страницы.
Далее идут два меню. Первое из них по задумке будет располагаться вертикально, а второе горизонтально. Заметьте, что оба меню тоже заключены в своеобразные контейнеры из открывающего и закрывающего тегов. И в самом конце идет закрывающий тег общего контейнера </html>, внутри которого находятся и шапка страницы (head) и тело страницы (body). В этом вся суть HTML-разметки.
Скелет страницы создан. Я включил в него гиперссылки на основные выполняемые моей «малиной» как сервером функции — медиасервер, каталог электронной библиотеки, мониторинг показателей системы, торрент-качалку и облачное хранилище. Поскольку эти функции на сервере будут задействованы часто, то доступ к ним будет удобно организован с помощью вертикального меню.
За вертикальным меню идет меню горизонтальное, отображающееся одной строкой.
В нем находятся кнопки вывода краткого статуса системы (температура и аптайм), перезагрузки, перезапуска демона Transmission (иногда он начинает тупить, что лечится его перезапуском) и доступа к панели управления управления CUPS.
Это вспомогательные команды. Они не нужны постоянно, и в идеальных условиях к их использованию не придется прибегать вообще. Но поскольку идеальных условий не существует, то просто сделаем так, чтобы они занимали минимум места на странице, но все еще сохраняли свою доступность.
Теперь настало время прописать в пунктах меню конкретные ссылки вместо заглушек «ССЫЛКА1», «ССЫЛКА2» и т.п., которые я написал в примере кода выше.
И тут появляется небольшая проблема.
Дело в том, что веб-доступ к некоторым запущенным на Raspberry Pi процессам осуществляется через обращение к портам, которые они прослушивают. RPi-Monitor, например, доступен по адресу http://ip-адрес-raspberry-pi:8888, на 9091 порту подвешен веб-интерфейс Transmission, а по адресу http://ip-адрес-raspberry-pi/web/index.html:32400 находится интерфейс медиасервера Plex.
Стандартными средствами HTML сделать обращение к порту невозможно. Поэтому придется задействовать яваскрипты, которые будут подставлять номер порта в ссылку непосредственно в момент клика по ней.
В общем, вертикальное меню после прописывания ссылок в моем случае будет выглядеть так:
<a href="/web/index.html" onclick="javascript:event.target.port=32400">Медиасервер Plex</a> <a href="/ebooks/">Электронная библиотека</a> <a href="" onclick="javascript:event.target.port=8888">RPi-Monitor</a> <a href="" onclick="javascript:event.target.port=9091">Transmission</a> <a href="/nextcloud/">Nextcloud</a>
А вот так будут прописаны ссылки на пункты дополнительного горизонтального меню:
<li><a href="/status.php"></a></li> <li><a href="/com-reboot.php"></a></li> <li><a href="/com-transreload.php"></a></li> <li><a href="" onclick="javascript:event.target.port=631"></a></li>
Внесите эти поправки в тело страницы index.html, и на этом процесс создания скелета веб-интерфейса можно будет считать законченным.
Объяснение работы проекта
Принцип работы нашего проекта достаточно прост. Пироэлектрический датчик движения (PIR датчик) используется для обнаружения человека/нарушителя в поле своего действия, а камера делает фото в случае обнаружения человека/нарушителя. Более подробно про принципы работы PIR датчика можно прочитать в статье про детектор движения с использованием Arduino и PIR датчика.
В имя сохраняемого изображения мы будем добавлять информацию о дате и времени снимка, поэтому вы легко сможете определить когда был сделан тот или иной снимок. Подобный подход мы использовали и в предыдущей статье про счетчик посетителей на основе платы Raspberry Pi, в которой вы можете ознакомиться с принципами работы с камерой в плате Raspberry Pi.
Настройка FTP на Raspberry Pi
Хотя вы можете проверить в браузере, что ваш Pi работает как веб-сервер, предлагаемая страница будет очень простой. Это типичный файл-заполнитель index.php, который вам придется заменить собственным документом PHP или HTML.
Начните с создания каталога www и установки программного обеспечения FTP:
После установки приложения FTP vsftpd («Очень безопасный FTP-демон») вам нужно будет внести некоторые изменения в конфигурацию. Сначала откройте файл конфигурации в nano…
… И внесите следующие изменения в разрешения и безопасность:
Во-первых, измените anonymous_enable = YES на anonymous_enable = NO
Затем раскомментируйте следующие строки (удалив символ #)
Это включает настройки, к которым относятся строки. Наконец добавьте эту строку в конец файла:
Это приведет к отображению файлов сервера, начинающихся с «.», Например, важного файла .htaccess. Нажмите Ctrl + X сохранить и выйти, подтвердив с Y а также Войти,
Нажмите Ctrl + X сохранить и выйти, подтвердив с Y а также Войти,
Наконец, перезапустите FTP с помощью:
Используя стандартный настольный FTP, вы сможете подключиться к вашему Raspberry Pi. Загрузить файлы на / Var / WWW / HTML,
Installing Webmin on the Raspberry Pi
Some commands we will be using can be found on this page. For the most updated commands, refer to the link provided.
Step 1
Enter the following command to install dependencies. When prompted to continue, press y on your keyboard to continue.
sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python
Step 2
Enter the command below to download the DEB version of Webmin into the Raspberry Pi. A DEB file extension is a Debian Software Package file. This is mainly used in Unix-based operating system which contains archives for executable files, documentation, and libraries.
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.900_all.deb
Step 3
Enter the command below to install Webmin.
The administration username is set to root and the password is your current root password.
dpkg --install webin_1.900_all.deb
You should have successfully installed Webmin on your Raspberry Pi.