Backup системы (с sd-карты)
Чтобы не снимать образ флешки можно бакапить систему файлами, используя rsync. Так образ занимает меньше места и при регулярном бакапе обновляет только изменившиеся файлы.
Создаем файл rsync-exclude.txt, со списком каталогов, которые мы не будем бакапить
На внешнем диске создаем каталог для бакапа, к примеру /mnt/hdd1/backups/pi/
И запускаем команду для бакапа (указываем где лежит файл исключений и куда копируем).
Когда понадобится восстановить используем обратную команду и восстанавливаем на второй раздел
Если редактировали раздел boot то можно бакапить и его, сначала восстановить его, а потом второй раздел.
Установка сервера OpenVPN
Устанавливаем PiVPN
при установке спросит пароль, потом захочет статический ip (если настраивали ранее, то просто соглашаться), выбираем пользователя, которому настроить VPN соединение (пользователей можно будет потом добавить из командной строки
потом установщик будет пугать что без автоматических обновлений (unattended upgrades) будет несекьюрно и предложит их включить, нажимаем Yes.
Потом выбираем какой протокол будем использовать UDP или TCP (наш выбор UDP).
Далее вводим номер порта на котором будет слушать VPN сервер (лучше нестандартный).
Далее выбираем использовать ли лучшую защиту (если у нас клиентские версии openvpn от 2.4), нам старье не нужно, поэтому нажимаем Yes.
После этого выбираем скольки битным шифрованием ECDSA шифровать соединение (256 соответствует 3072 бит RSA), выбираем золотую середину 384 между рекомендуемым размером и размером для параноиков.
Далее выбираем внешний белый IP для соединения снаружи или динамический DNS если белого IP у нас нет.
Затем выбираем провайдера DNS для подключаемых клиентов VPN (есть готовый список или можно забить свой), просто не паримся и выбираем Google, он и так о нас всё знает.
Далее на запрос Custom Search Domain отвечаем No.
На этом установка закончена и будет предложено ребутнуть систему.
Можно прописать в файле /etc/openvpn/server.conf версию протокола, добавив 4.
Далее создаем .ovpn файл который включает в себя ключ доступа, и который нужен для vpn клиента:
далее будет запрошено имя пользователя, срок действия сертификата (1080 дней по умолчанию), пароль для ключа, который будет запрашиваться при каждом подключении по VPN (защита на случай если сопрут ключ).
Сгенерированный файл сохраняется в каталоге /home/Пользователь/ovpns.
Перетаскиваем файл конфигурации на устройство с клиентом и настраиваем на роутере форвардинг порта на внутренний ip raspberry.
Can pfSense Run on Raspberry Pi?
Even if FreeBSD runs well on Raspberry Pi and the pfSense source code is available, all pfSense releases are limited to the AMD64 architecture. There is no documentation or workaround to install it on a Raspberry Pi.
I’ve already installed FreeBSD on my Raspberry Pi (as you can read in this tutorial), but compiling pfSense on it is another level as it’s not intended to work, and I’m not the expert on BSD :).
There is a repository on the pfSense GitHub page including files about Raspberry Pi (here are the search results), so it’s probably not entirely a lost case. However, the pfSense developers haven’t released a Raspberry Pi version yet.In 2019, one of the developers gave us hope that it wouldcome one day, but no ETA was given (source).
In short, pfSense developers have seemed to consider the Raspberry Pi for a future release, but it isn’t currently available. If you are a BSD guru and not scared to compile it from source, you could try to install FreeBSD and download the whole pfSense repository in order to compile it from scratch. However, haven’t seen any indication in my research that this could work.
Raspberry Pi BootcampSale: 10% off today.Take it to the next level.I’m here to help you get started on Raspberry Pi.Learn all the skills you need in the correct order.Watch now!
So for now, the best option is to look for an alternative.
Шаг 2. Конфигурирование интерфейса
По умолчанию dhcpcd обрабатывает конфигурацию интерфейса. Поскольку мы собираемся настроить статический беспроводной IP-адрес, позже нам будет нужно, чтобы он игнорировал интерфейс wlan0, карту Wi-Fi по умолчанию и не позволял другим интерфейсам ее использовать. Это должно изолировать нашу точку доступа от чьего-либо вмешательства в ее работу. Откройте файл в редакторе nano.
sudo nano /etc/dhcpcd.conf
Вставьте следующую строку в конец файла. Если вы добавили какие-либо интерфейсы, поместите их выше этой строки, чтобы отказать им в доступе к wlan0.
denyinterfaces wlan0
В только что установленной системе мы просто вставляем ее в конце файла.
Чтобы сохранить наши изменения в nano, нам нужно нажать Ctrl + X, затем Y, затем Enter. Запомните эту комбинацию клавиш, так как мы будем часто ее использовать.
SquidGuard
Еще один очень полезный пакет для pfSense — SquidGuard — это высокоскоростной url-фильтр и URL-маршрутизатор.
Загрузив свой собственный черный список или используя один из свободно доступных списков, вы можете настроить, к каким сайтам пользователям вашей сети разрешен доступ и в какое время. Пакет также можно настроить с помощью расписаний для предоставления доступа в зависимости от времени суток.
SquidGuard также может принудительно использовать доменные имена, которые не позволяют пользователям обойти черный список, просто введя IP-адрес. Заблокированные URL-адреса могут быть перенаправлены на внешний веб-сайт или внутреннюю информационную страницу.
Шаг 1. Обновление системы и установка HostAPD
Прежде чем мы начнем, убедитесь, что Pi подключена и к Ethernet и к сети. Хорошей практикой считается первым делом удостовериться, что мы работаем на Pi с самыми новыми версиями программного обеспечения, поэтому сначала обновим систему. Откройте окно терминала и введите следующее:
sudo apt-get update sudo apt-get upgrade
После завершения обновления операционной системы установим hostapd и dnsmasq.
Hostapd — это пакет, который фактически позволит нам использовать Pi в качестве точки доступа Wi-Fi. Хотя в этой сборке мы используем внутренний Wi-Fi, мы могли бы использовать любое количество беспроводных сетевых адаптеров.
Dnsmasq — это простой в настройке пакет, который работает одновременно и как протокол динамической настройки узла (DHCP) и как сервер доменных имен (DNS). DHCP — это стандартизированный протокол, который динамически выдает параметры конфигурации сети. Мы будем использовать его для назначения IP-адресов интерфейсам и сервисам.
DHCP позволяет вам всего лишь ввести пароль, когда вы подключаетесь к новой беспроводной точке доступа, а после этого начинает для вас обрабатывать конфигурацию
DNS, с другой стороны, переводит IP-адреса в доменные имена и имеет жизненно важное значение для использования Интернета. Именно поэтому вы можете перейти на google.com, не зная IP-адрес, на котором фактически размещен веб-сайт
Давайте скачаем оба пакета, введя следующие команды в терминал:
sudo apt-get install hostapd sudo apt-get install dnsmasq
Если вы продвинутый пользователь Linux и считаете, что вам нужно что-то более надежное, то можете использовать isc-dhcp-сервер для DHCP и bind9 для DNS, поскольку они оба дают пользователю лучший контроль над происходящим и предлагают решения корпоративного уровня. Мы не будем использовать их в этой статье, чтобы максимально упростить процесс.
Какие впечатлений от работы Windows 11 на Raspberry
Произвел установку как на плату третьего поколения, так и на более мощную Pi 4B. В первом случае годится только для ознакомления с системой или экспериментов.
Одного ГБ оперативной памяти слишком мало для нормальной работы системы. “Малинка” сильно задумывается даже при запуске стандартных приложений Windows 11.
При использовании Raspberry Pi 4B все гораздо лучше. Нехватки ОЗУ замечено не было, можно полноценно использовать браузер, запускать стандартные утилиты и даже офисный пакет. Он уже получил адаптацию под ARM-архитектуру и работает вполне нормально.
Немного не хватает скорости накопителя. Хоть мы и выбрали быстрые карточки microSD, но лучше для полноценной системы воспользоваться SSD-диском. Его можно подключить через USB 3.0 порт на Raspberry Pi 4B. Это увеличит производительность и снизит время загрузки системы.
При таком сетапе гаджет вполне подойдет в качестве резервного компьютера.
Raspberry с Windows 11 можно подключить к свободному HDMI порту телевизора, чтобы иметь запасной компьютер в доме. Девайс пригодится школьникам на случай удаленного обучения или пользователям с несложными задачами.
Браузинг в сети, нечастый просмотр видео, работа с документами и почтой – это вполне реальный сценарий эксплуатации подобной сборки. Пожалуй, это самый доступный способ обзавестись компьютером, который может работать на полноценной распространенной ОС.
Вот так можно собрать запасной ПК с актуальной операционной системой практически из подручных материалов.
iPhones.ru
Собираем ПК из подручных материалов.
Как установить Windows на Raspberry Pi
Для самой быстрой и беспроблемной подготовки карты памяти для Raspberry потребуется операционная система Windows. Владельцы компьютеров Mac могут воспользоваться утилитой BootCamp, виртуальной машиной или средствами виртуализации приложений.
1. Переходим на сайт UUP dump для формирования и загрузки нужного образа Windows для Raspberry Pi.
2. Открываем раздел с актуальной сборкой для разработчиков под ARM-архитектуру.
3. Выбираем единственную доступную в списке сборку Windows 11.
4. Указываем подходящий язык системы и версию (Home или Pro).
5. Выбираем пункт Скачать и преобразовать в ISO после чего нажимаем кнопку Создать проект для скачивания.
6. Распаковываем загруженный архив и запускаем скрипт uup_download_windows.cmd.
7. Начнется загрузка и формирование образа для установки Windows 11. На это потребуется от 10 до 30 минут.
8. Скачиваем приложение Windows on Raspberry imager с сайта разработчика.
9. Распаковываем утилиту из архива и запускаем её.
10. Выбираем целевую карту памяти для записи образа и исходный файл образа Windows 11, который будет сформирован в папке с загруженной ранее программой.
11. В диалогах выбора драйверов, UEFI-прошивки и конфигурации ничего менять не нужно. Следует лишь указать используемую версию Raspberry 3 или 4.
12. Нажимаем кнопку Установить. Ждем пока произойдет форматирование карточки и распаковка образа.
13. Устанавливаем карту памяти в “малинку” и включаем одноплатник. Не забываем подключить монитор, клавиатуру и мышь.
14. Останется лишь произвести первоначальную настройку Windows 11 и дождаться установки и запуска системы.
Все зависит от используемой версии Raspberry и класса карты памяти. На установку может уйти от получаса до нескольких часов. На моей тестовой Raspberry четвертого поколения процесс занял около 40 минут, а вот вторая “малина” третьей генерации возилось с установкой почти два часа.
Recommended Hardware to Use Raspberry Pi as a Firewall
I haven’t written about this for now, but there is a major limitation in using a Raspberry Pi as a router/firewall: there is only one Ethernet port on it. In my tutorial, I’m using the Wi-Fi adapter to create a second interface, but maybe that’s not exactly what you need.
If you want other options, here are a few additional components you can consider:
- Ethernet HAT: Even if the Raspberry Pi board has only one Ethernet port, you can still add more by installing a HAT on top of it. This one on Amazon should be a great option. It’s the size of a Raspberry Pi Zero, but can work with any model.
- USB to Ethernet adapter: I tried this a few years ago, and it worked fine. You can plug a USB to Ethernet adapter (like this one) on your Raspberry Pi and plug a second Ethernet cable to it. As there are many models, I can’t guarantee it will work with all the solutions we’ve discussed in this article, but my model was working on RPI OS.
- 4G Module: For specific scenarios, you can also use a 4G HAT to skip the need of another Ethernet adapter. You can plug this module, insert your SIM card in it and connect to the Internet from wherever you are. As for the last one, it will probably work on Raspberry Pi OS, but not sure about IPFire and OpenWRT support.
You may also like:
- 25 awesome Raspberry Pi project ideas at home
- 15 best operating systems for Raspberry Pi (with pictures)
- My book: Master your Raspberry Pi in 30 days
Начальная установка
Качаем и устанавливаем программу для записи образа на SD карту Win32DiskImager (в дальнейшем ее же можно использовать для бакапа этой SD карты в файл образа).
Записываем скачанный образ этой программой на SD карту, вставляем ее в слот и загружаемся.
После загрузки жмем Enter и вводим логин pi и пароль raspberry.
Для первоначальной настройки можно использовать консольную программу настройки:
Через нее можно сразу сменить дефолтный пароль, расширить раздел на весь объем флешки, выставить локаль на ru (после выбора локали будет еще запрос на каком языке выводить сообщения — лучше там выбрать англ. язык, на русском выглядит всё как-то не очень привычно и неудобно), настроить таймзону, включить SSH, если будет используется только через консоль без графической оболочки, то для GPU можно выбрать минимальный размер выделяемой памяти (16Мб).
Ставим сразу для удобства Midnight Commander:
Squid
Squid является наиболее популярным пакетом для pfSense. Squid — это кэширующий прокси-сервер, который может повысить производительность вашего интернет-соединения.
Squid создает кэш часто используемых веб-страниц, изображений или других файлов, которые клиенты запрашивают из интернета. Если запрошенный элемент найден в кэше, Squid может доставить его непосредственно на запрашивающий компьютер, а не использовать подключение к глобальной сети.
Пакет Squid можно настроить для прозрачного запуска, это означает, что трафик в вашей сети будет автоматически маршрутизироваться через прокси-сервер без необходимости изменения какой-либо конфигурации на подключенных компьютерах.
Еще одним преимуществом установки этого пакета является то, что в сочетании с LightSquid вы можете просматривать отчеты о веб-сайтах, посещаемых компьютерами в вашей сети.
The boot Folder
Edit this on GitHub
In a basic Raspberry Pi OS install, the boot files are stored on the first partition of the SD card, which is formatted with the FAT file system. This means that it can be read on Windows, macOS, and Linux devices.
When the Raspberry Pi is powered on, it loads various files from the boot partition/folder in order to start up the various processors, then it boots the Linux kernel.
Once Linux has booted, the boot partition is mounted as .
Boot Folder Contents
bootcode.bin
This is the bootloader, which is loaded by the SoC on boot, does some very basic setup, and then loads one of the files. is not used on the Raspberry Pi 4, because it has been replaced by boot code in the .
These are binary blobs (firmware) that are loaded on to the VideoCore in the SoC, which then take over the boot process.
is the basic firmware, includes camera drivers and codec, is a debug version of the firmware, and is a cut-down version with no support hardware blocks like codecs and 3D, and for use when is specified in . More information on how to use these can be found in .
, , , and are firmware files specific to the Pi 4.
ssh or ssh.txt
When this file is present, SSH will be enabled on boot. The contents don’t matter, it can be empty. SSH is otherwise disabled by default.
wpa_supplicant.conf
This is the file to configure wireless network settings (if the hardware is capable of it). Edit the country code and the network part to fit your case. More information on how to use this file can be found in .
Device Tree files
There are various Device Tree blob files, which have the extension . These contain the hardware definitions of the various models of Raspberry Pi, and are used on boot to set up the kernel .
Kernel Files
The boot folder will contain various image files, used for the different Raspberry Pi models:
Filename | Processor | Raspberry Pi model | Notes |
---|---|---|---|
kernel.img |
BCM2835 |
Pi Zero, Pi 1 |
|
kernel7.img |
BCM2836, BCM2837 |
Pi 2, Pi 3 |
Later Pi 2 uses the BCM2837 |
kernel7l.img |
BCM2711 |
Pi 4 |
Large Physical Address Extension (LPAE) |
kernel8.img |
BCM2837, BCM2711 |
Pi 2, Pi 3, Pi 4 |
Beta . Raspberry Pi 2 with BCM2836 does not support 64-bit. |
Note | The architecture reported by is for 32-bit systems (i.e. everything except kernel8.img), and for 64-bit systems. The in the case refers to the architecture being little-endian, not as is indicated by the in the filename. |
The sub-folder contains Device Tree overlays. These are used to configure various hardware devices that may be attached to the system, for example the Raspberry Pi Touch Display or third-party sound boards. These overlays are selected using entries in — see .
Raspberry Pi Resources
Not sure where to start?Understand everything about the Raspberry Pi, stop searching for help all the time, and finally enjoy completing your projects.Watch the Raspberry Pi Bootcamp course nowMaster your Raspberry Pi in 30 daysDon’t want the basic stuff only? If you are looking for the best tips to become an expert on Raspberry Pi, this book is for you. Learn useful Linux skills and practice multiples projects with step-by-step guides.Download the e-bookVIP CommunityIf you just want to hang out with me and show your support, you can also join the Patreon community. I share behind-the-scenes content there and give you early access to my content. You’ll also get a shoutout when you join.More details hereNeed help to build something with Python?Create, understand and improve any Python script for your Raspberry Pi.Learn the essentials, step-by-step, without losing time understanding useless concepts.Get the e-book nowYou can also find all my recommendations for tools and hardware on this page.
This tutorial doesn’t work anymore? Report the issue here, so that I can update it!
Improve your Network with a Raspberry Pi
Let’s take a few minutes to list the other tools you can install on a Raspberry Pi, if your goal is to improve your network security. A Raspberry Pi can be very useful with this, even if pfSense is not available yet.In addition to IPTables, Snort and Squid, keep ready for few other services you should consider.
Fail2ban
Fail2ban is mainly an intrusion prevention tool, but not only. It works on the services log file, and use pattern to detect malicious activities. For example, you can check the SSH log file to list bad login and password attempts, and then block the IP address in your firewall.
Fail2ban can be installed with apt, as for any Raspberry Pi OS package. Then, the configuration files are under /etc/fail2ban. Editing them allows defining rules for each service hosted on the Raspberry Pi.
I have a tutorial here on how to install Fail2ban on your Raspberry Pi if needed.
VPN
A firewall will protect external access to your network (or even secure local networks), but a VPN can be a step further in some cases.In fact, you can use a VPN in two ways:
- To hide your browsing data inside an encrypted tunnel. A solution like NordVPN will be perfect for this.It works fine on Raspberry Pi, I have a tutorial here.
- Or to give you remote access to your home network. In this case, OpenVPN will be the fastest way to set this up.OpenVPN is available in the official repository, so it can be installed with apt as for any other package (more details here).
For the second option, WireGuard is another software you can try. You can read my comparison of OpenVPN vs WireGuard here.
Ad-Blocker
Master Python on Raspberry PiSale: 10% off today.Get the eBook.Do more with your Raspberry Pi, learn the useful concepts and take the shortcuts.You miss half of the fun of using a Raspberry Pi if you don’t know anything about Python.Download here
The last application is probably less important than VPN and Fail2ban, but that might be useful too for the same project.
Using a Raspberry Pi as an ad-blocker for the whole network is a popular project (you can use Pi-Hole to do this). Installing it on your router firewall is the easiest way, and shouldn’t require an additional device.
Once installed and configured as your primary DNS server on all your devices, ads will be a thing of the past.If you don’t mind the ads, you can also use your Raspberry Pi as a DNS server only. This is a good alternative if Pi-Hole and the router/firewall create conflicts by having them on the same device.
Сервер rsyslog для сброса логов с роутера
Для настройки сброса логов с роутера (например Zyxel Kinetic) или любого другого сетевого устройства, включаем 514 порт в файле /etc/rsyslog.conf , для этого нужно раскомментировать строчки
Далее создаем файл для лога
Теперь создаем в папке /etc/rsyslog.d/ файл с любым именем и расширением conf, например zyxel.conf, со следующим содержанием (меняем адрес 192.168.1.1 на ip роутера, который будет отправлять логи).
Возможно потребуется написать вместо , но пока работает и так.
Рестартуем сервис
Прописываем в роутере в качестве syslog сервера ip raspberry.
Теперь чтобы логи не раздувались, в папке /etc/logrotate.d/ создаем файл с любым именем (например, zyxel), с правилами архивации:
Шаг 3. Статический IP-адрес
Теперь мы готовы настроить статический IP-адрес для нашей точки доступа, так же как они используются с любым маршрутизатором. Если мы этого не сделаем, то все устройства, которые будут пытаться подключиться к нашей точке доступа, просто не смогут ее найти. Мы сделаем это, отредактировав файл interfaces, введя вот эту команду в терминал:
sudo nano /etc/network/interfaces
Настройки wlan0 являются очень важными для подключения к Pi. Если вы решите изменить их, то обязательно на каждом шаге делайте в точности то же самое, как описано ниже, в противном случае ваша точка доступа просто не будет работать. В nano прокрутитесь ниже и замените все, начиная со строки «auto lo» и далее вниз, следующим содержанием:
auto lo iface lo inet loopback
auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 8.8.4.4
allow-hotplug wlan0 iface wlan0 inet static address 192.168.220.1 netmask 255.255.255.0 network 192.168.220.0 broadcast 192.168.220.255 # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Для этой статьи мы также установили статический IP-адрес для Ethernet, но вы можете оставить его динамическим, введя в консоли эту команду: iface eth0 inet dhcp, и оставив адреса, которые идут после этого. Подробнее можно посмотреть в вики по конфигурации сети.
Наличие динамического IP-адреса важно, если вы планируете подключаться к неизвестной сети, к которой уже может быть подключено другое устройство, использующее этот же IP-адрес, в противном случае вы можете столкнуться с конфликтами IP-адресов. Конфликты IP-адресов — это ситуация, когда двум различным устройствам присваивается один и тот же IP-адрес, который может запутать сеть, и это приведет к игнорированию пакетов для обоих устройств
Когда вы закончите, файл должен выглядеть примерно так:
Когда он будет выглядеть точно также, то для сохранения файла нажмите Ctrl + X, затем Y, затем Enter.
После выхода из nano необходимо перезапустить dhcpd, чтобы изменения в файле конфигурации вступили в силу, а затем сделать то же самое для wlan0. Мы можем сделать это, введя следующие команды в консоли:
sudo service dhcpcd restart sudo ifdown wlan0; sudo ifup wlan0
pfBlockerNG
PfBlockerNG — это идеальный пакет для блокировки входящего и исходящего трафика на основе IP-адреса или доменного имени. Этот пакет предоставляет широкий спектр функций для защиты вашей сети от нежелательного трафика, включая блокировку страны, черный список IP/DNS и блокировку репутации IP.
Функция черного списка DNS позволяет добавлять несколько внешних черных списков для блокировки трафика, например рекламы, угроз и вредоносных программ.
Это отличный пакет, если вы используете почтовый сервер в сети. Добавляя черный список спама, такой как Spamhaus, вы можете блокировать спам еще до того, как он достигнет порта вашего сервера.
Заключение
Сегодня мы узнали, как быстро превратить наши Raspberry Pi 3 или Pi zero W в беспроводную точку доступа, используя несколько простых в установке пакетов. Несмотря на свою простоту, сейчас по-прежнему весьма полезно иметь беспроводной доступ к любой сети или же наоборот, в случае необходимости иметь возможность создать такую точку доступа. Этот проект также представляет собой отличный инструмент, который мы сможем расширить в будущем для создания более сложных вещей. Будущие проекты, такие как добавление OpenVPN для маршрутизации всего трафика через VPN или включение камеры наблюдения на основе Pi, будут основаны на этом методе.
Спасибо за чтение, и если у вас есть какие-либо вопросы, пожалуйста, оставляйте ваши комментарии!
Александр
Специалист по информационной безопасности с 10-ти летним опытом. Отец троих детей. Независимый консультант по вопросам кибер безопасности. 6 лет опыта интеграции решений кибербезопасности с другими продуктами в существующих инфраструктурах на корпоративном уровне.