Подождите немного, страница загружается.
Утром не хочется идти на работу? Откройте журнал "Форбс" и найдите там свою фамилию. Не нашли? Тогда собирайтесь на работу.

"Меня иногда спрашивают, как я справляюсь с бременем славы? Честно говоря, нет тут никакого «бремени»." Линус Торвальдс

Join Us

QR

Содержание:

Sudo

Устанавливаем sudo:

emerge --ask app-admin/sudo

Для установки vim редактором visudo в течение текущего сеанса:

EDITOR=vim visudo

Файл настроек /etc/sudoers всегда следует редактировать с помощью команды:

visudo

Чтобы суперпользователь имел все привелегии, добавляем следующую строку:

root ALL=(ALL) ALL

Чтобы nikolay получил права суперпользователа при вводе sudo добавляем следующее:

Defaults rootpw
nikolay ALL=(root) ALL


Делаем vim редактором по умолчанию при редактировании visudo:

Defaults editor=/usr/bin/vim, !env_editor

Командой можно узнать какими привилегиями обладает конкретный пользователь:

$ sudo -lU имя_пользователя

Tor

Если установлен, то удаляем USE-флаг bindist.
Добавляем флаги:
seccomp (режим безопасных вычислений) для выполнения фильтрации системных вызовов во время выполнения для повышения безопасности программ.
server включает релейный модуль tor, чтобы он мог работать как relay/bridge/authority.
Устанавливаем Tor:

emerge --ask net-vpn/tor

Создаём минимальную конфигурацию Tor:

vim /etc/tor/torrc
User tor
PIDFile /var/run/tor/tor.pid
Log notice syslog
DataDirectory /var/lib/tor

Запускаем Tor:

rc-service tor start

Добавляем в уровень запуска:

rc-update add tor default

Для systemd:

systemctl start tor.service
systemctl enable tor.service


Добавляем пользователя в группу «tor».

usermod -a -G tor user

Для любого браузера можно использовать pac-файл для направления запросов браузера к различным прокси. Создаём файл /usr/local/proxy.pac.
Здесь подключения к localhost обрабатываются напрямую (без прокси). Eepsites обрабатываются прокси i2p на порту 4444. Остальной трафик проходит через прокси Tor SOCKS при работе на порту 9050.

function FindProxyForURL(url, host)
{
if(host.match(/^(localhost|127[.]0[.]0[.]1|192[.]168[.]1[.]1)$/))
return 'DIRECT';
if(host.match(/[.]i2p$/))
return 'PROXY 127.0.0.1:4444';
return 'SOCKS 127.0.0.1:9050';
}


Сохраняем этот файл и указываем его в браузере.(Например в браузере Firefox "Правка ▶ Настройки ▶ Параметры сети ▶ Настроить... ▶ URL автоматической настройки прокси") Большинство браузеров принимают URL-адрес конфигурации прокси, где можно указать file:///usr/local/proxy.pac.
В браузере Firefox устанавливаем галочку:
"Правка ▶ Настройки ▶ Параметры сети ▶ Настроить... ▶ Ручная настройка прокси"
Переключая режимы в Firefox в "Ручная настройка сервиса прокси", переходим из не защищённого режима в защищённый и заполняем:

HTTP proxy port: 0
SSL proxy port: 0
FTP proxy port: 0
Узел SOCKS: 127.0.0.1 port: 9050
SOCKS 4 или SOCKS 5
No Proxy for: localhost, 127.0.0.1

В новой вкладке, в адресной строке браузера набираем:

about:config

Получаем предупреждение: "Будте осторожны, а то лешитесь гарантии!"
Нажимаем "Я обещаю, что буду осторожен!" и переключаем на следующие параметры:

network.dns.disableIPv6 true
network.dns.disablePrefetch true
network.proxy.socks_remote_dns true

Firefox будет разрешать имена узлов через tor, что предотвращает утечку DNS

media.peerconnection.enabled false

Это предотвращает утечку IP-адреса системы через запросы WebRTC.
Некоторые заголовки, такие как Referer или ETag, используются для отслеживания при просмотре различных веб-сайтов. Заголовок Referer можно отключить в Firefox, установив:

network.http.sendRefererHeader 0

Если необходимо разрешить Tor использовать только пространственные адреса , можно указать их. Например брандмауэр позволяет исходящее соединение только через https (443):

vim /etc/tor/torrc
# If 1, Tor will only create outgoing connections to ORs running on ports that your firewall allows
FascistFirewall 1
# A comma-separated list of IP addresses and ports that your firewall allows you to connect to.
ReachableAddresses accept *:443, reject *:*
ReachableORAddresses *:443

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

# web browser
SocksPort 127.0.0.1:9050
# gpg client
SocksPort 127.0.0.1:9100
# instant messenger
SocksPort 127.0.0.1:9150
SocksPort 9200 IsolateClientAddr IsolateSOCKSAuth IsolateClientProtocol IsolateDestPort IsolateDestAddr
# etc...

Tor может работать как прозрачный прокси.
Чтобы включить встроенный прозрачный прокси, добавляем:

## Transparent proxy
TransPort 127.0.0.1:9040

Перенаправляем все исходящие трафики на прозрачный прокси Tor:

iptables -t nat -A OUTPUT -p TCP -m owner ! --uid-owner tor -j DNAT --to-destination 127.0.0.1:9040

Для выхода от ECHELON, можно установить следующее:

StrictNodes 1
GeoIPExcludeUnknown 1
# ExcludeSingleHopRelays 1
# ExcludeNodes {au}, {ca}, {gb}, {nz}, {us}
ExcludeExitNodes {au}, {ca}, {gb}, {nz}, {us}
NodeFamily {by}, {au}, {ca}, {gb}, {nz}, {us}
# UseEntryGuardsAsDirGuards 1
# FastFirstHopPK 0
# AllowSingleHopCircuits 0
# UseNTorHandshake 1
PathsNeededToBuildCircuits 0.95


StrictNodes 1 вместе с ExcludeNodes {au}, {ca}, {gb}, {nz}, {us} полностью исключат узлы Tor из перечисленных стран, но также запрещает подключение к скрытым сервисам Tor, расположенным там. Лучше закомментировать ExcludeNodes или установить StrictNodes 0. Помечаём NodeFamily {au}, {ca}, {gb}, {nz}, {us} все эти узлы как "единое администрирование" Five Eyes. Директиву NodeFamily можно использовать несколько раз.
Для запрета стран выхода в сеть Tor:

StrictExitNodes {au}, {ca}, {gb}, {nz}, {us}

Блокировать ненужные IP адреса выбранных стран, чтобы Тор к ним больше не подключался:

ExcludeExitNodes {au}, {ca}, {gb}, {nz}, {us}, {??}

EntryNodes и ExitNodes могут использоваться для выбора пространственных узлов входа и конечного выхода из сети Tor соответственно.
Для добавления стран выхода в сеть Tor:

ExitNodes {at}, {be}, {de}, {gb}, {gr}, {fi}, {fr}, {pt}, {se}, {jp} # список разрешённых стран.
StrictExitNodes 1 # указание в случае недоступности выбранного сервера не пытаться подключиться к другому, а выводить ошибку

Если используетcя ExitNodes, то задавать StrictExitNodes (список запрещённых стран) нет смысла
Указывая слишком мало узлов или исключая много выходных узлов с помощью ExcludeExitNodes, можно снизить функциональность. Например, если ни один из перечисленных выходов не разрешает трафик через порт 80 или 443, будет невозможно просматривать веб-страницы.
Tor имеет собственные функции песочницы. Это может обеспечить дополнительную защиту системы, если Tor будет скомпрометирован с USE-флагом seccomp:

Sandbox 1

Только для TORDNS:
Для включения встроенный в систему DNS форвардер необходимо добавить следующие строки в файл /etc/tor/torrc и перезапустить демон:

...
## Torified DNS
DNSPort 127.0.0.1:9053 IsolateClientAddr IsolateSOCKSAuth IsolateClientProtocol IsolateDestPort IsolateDestAddr
AutomapHostsOnResolve 1
AutomapHostsSuffixes .exit, .onion
ClientDNSRejectInternalAddresses 1
ClientRejectInternalAddresses 1

rc-service tor restart
systemctl restart tor.service

Затем в файле /etc/resolv.conf устанавливаем:

nameserver 127.0.0.1

Если используется dhcpcd в файле /etc/dhcpcd.conf устанавливаем:

nohook resolv.conf

Если используется pppoe в файле /etc/ppp/pppoe.conf устанавливаем:

DNSTYPE=NOCHANGE

Перенаправляем все DNS-запросы в системе с порта 53 на 127.0.0.1:9053, где Tor DNS прослушивает запросы.

root # iptables -t nat -A OUTPUT -p TCP --dport 53 -j DNAT --to-destination 127.0.0.1:9053
root # iptables -t nat -A OUTPUT -p UDP --dport 53 -j DNAT --to-destination 127.0.0.1:9053

Мост - узел в сети Tor.
Большинство подключаемых транспортов, таких как obfs4, полагаются на использование "мостовых" реле. Как и обычные реле Tor, мосты управляются добровольцами; однако, в отличие от обычных реле, их список не публикуется, поэтому их не легко идентифицировать.
Устанавливаем obfs4:

emerge --ask obfs4proxy

В /etc/tor/torrc заменяем содержимое на:

# RunAsDaemon 1
BridgeRelay 1
DataDirectory /var/lib/tor
User tor


Меняем "TODO1" портом Tor по своему выбору. Этот порт должен быть доступен.
Избегаем порта 9001. Он обычно ассоциируется с Tor.

ORPort TODO1
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy


Меняем "TODO2" портом obfs4 по своему выбору. Этот порт должен быть доступен извне и отличаться от порта ORPort.
Избегаем порта 9001. Он обычно ассоциируется с Tor.

ServerTransportListenAddr obfs4 0.0.0.0:TODO2

Местный коммуникационный порт между Tor и obfs4. Всегда выбираем значение "auto".
"Ext" значит "расширенный", а не "внешний". Не пытаемся установить конкретный номер порта или слушать 0.0.0.0.

ExtORPort auto

Устанавливаем email, для связи, в случае проблем с мостом. Это необязательно, но желательно:

ContactInfo <address@email.com>

Выберите название для своего моста. Это необязательно:

Nickname PickANickname

При необходимости использовать фиксированный порт obfs4 со значением менее 1024 (например, 80 или 443), нужно дать obfs4 CAP_NET_BIND_SERVICE право связать порт с пользователем без прав суперпользователя:

setcap cap_net_bind_service=+ep /usr/bin/obfs4proxy

Для большей защиты systemd устанавливаем NoNewPrivileges=no ("yes" позволяет удостовериться, что приложение не получит дополнительных привилегий) в /lib/systemd/system/tor.service, а затем запустить:

systemctl daemon-reload
systemctl restart tor


Можно скомпилировать obfs4 из исходного кода.
Загружаем obfs4 исходный код
Компилируем obfs4proxy:

go build -o obfs4proxy/obfs4proxy ./obfs4proxy

Для установки копируем ./obfs4proxy/obfsproxy в постоянное место (например: /usr/local/bin)

cp ./obfs4proxy/obfs4proxy /usr/local/bin/

Конфигурируем torrc:
# Действовать как мостовое реле.
BridgeRelay 1
# Включить расширенный порт OR
ExtORPort авто
ORPort TODO1

# Используйте obfs4proxy для предоставления протокола obfs4.
ServerTransportPlugin obfs4 exec /usr/local/bin/obfs4proxy
# (Необязательно) Слушайте по указанному адресу/порту соединения obfs4 как
# против автоматического выбора порта.
ServerTransportListenAddr obfs4 0.0.0.0:TODO2
В современных системах Linux можно привязать obfs4proxy к зарезервированным портам (<=1024), даже если он не запущен от имени пользователя root, предоставив возможность CAP_NET_BIND_SERVICE с помощью setcap:

setcap 'cap_net_bind_service=+ep' /usr/local/bin/obfs4proxy

obfs4proxy также может действовать как клиент или сервер obfs2 и obfs3. Настройте строки ClientTransportPlugin и ServerTransportPlugin в torrc соответствующим образом.
obfs4proxy также может действовать как клиент ScrambleSuit. Измените строку ClientTransportPlugin в torrc соответствующим образом.
Автоматически сгенерированные параметры моста obfs4 помещаются в DataDir/pt_state/obfs4_state.json. Для упрощения развёртывания линия моста на стороне клиента записывается в DataDir/pt_state/obfs4_bridgeline.txt.
Date: Tue Jun 27 21:59:34 2023 +0100
В настоящее время net-proxy/lyrebird переименован из net-proxy/obfs4proxy
Проверяем данные о перемещении пакета:

$ grep obfs4proxy /var/db/repos/gentoo/profiles/updates/2Q-2023
move net-proxy/obfs4proxy net-proxy/lyrebird


Устанавливаем пакет:

emerge --ask net-proxy/lyrebird

Можно скомпилировать lyrebird из исходного кода.
Загружаем lyrebird исходный код
Компилируем lyrebird:

go build ./cmd/lyrebird

Для установки копируем ./lyrebird в постоянное место (например: /usr/local/bin).
Конфигурируем torrc:
# Действуйте как мостовое реле.
BridgeRelay 1
# Включаем расширенный ORPort
ExtORPort auto
ORPort TODO1
# Используем lyrebird для предоставления протокола obfs4
ServerTransportPlugin obfs4 exec /usr/local/bin/lyrebird
# в отличие от автоматического выбора порта
ServerTransportListenAddr obfs4 0.0.0.0:9100
Получение адресов мостов.
Поскольку адреса мостов не являются общедоступными, придётся запрашивать их самостоятельно. Имеется несколько вариантов:
Посетить "Get Bridges for Tor" и следовать инструкциям, или отправьте письмо на bridges@torproject.org, используя Gmail или Riseup, без темы с текстом: "get transport obfs4"
Добавляем мосты в файл torrc:
Bridge obfs4 <IP ADDRESS 1>:<PORT 1> <FINGERPRINT 1> cert=<CERTIFICATE 1> iat-mode=0
# Если это не сработает, можно попробовать другой мост:
Bridge obfs4 <IP ADDRESS 2>:<PORT 2> <FINGERPRINT 2> cert=<CERTIFICATE 2> iat-mode=0
# Если это не сработает, можно попробовать другой мост:
Bridge obfs4 <IP ADDRESS 3>:<PORT 3> <FINGERPRINT 3> cert=<CERTIFICATE 3> iat-mode=0
Если хотим подключиться к своему мосту вручную, необходимо знать obfs4-сертификат моста. Его можно найти в папке данных Tor:

vim /var/lib/tor/pt_state/obfs4_bridgeline.txt
Bridge obfs4 <IP ADDRESS>:<PORT> <FINGERPRINT> cert=<CERTIFICATE> iat-mode=0


Заменяем <IP ADDRESS>, <PORT> и <FINGERPRINT> актуальными значениями. Их можно найти в логе tor. Убедимся, что используем <FINGERPRINT>, а не <HASHED FINGERPRINT>, и что выбрали obfs4-порт <PORT> , а не OR. Теперь можно мониторить использование своего моста obfs4 в Relay Search. Просто вводим в форму <HASHED FINGERPRINT> своего моста и нажимаем "Search". После настройки моста нужно примерно три часа, чтобы его стало видно в Relay Search.

tor

Работоспособность Tor можно проверить щёлкнув по картинке.

Загрузка Gentoo без загрузчика

Устанавливаем "Gentoo" c EFI,
материнская плата должна поддерживать UEFI BIOS.
В ядре должно быть подключено:

CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_RELOCATABLE=y
CONFIG_FB_EFI=y
CONFIG_FRAMEBUFFER_CONSOLE=y

На системах с UEFI создаём каталог /boot/efi/boot/:

mkdir -p /boot/efi/boot

и копируем в него ядро, назвав его bootx64.efi:

cp /boot/vmlinuz-X.X.X-gentoo /boot/efi/boot/bootx64.efi:

копируем после каждой компиляции ядра.
Пакет "sys-boot/efibootmgr" должен быть загружен.
Настраиваем загрузку командой:

efibootmgr --create --gpt --disk /dev/sda --part 2 --label "Gentoo" --loader '\boot\efi\boot\bootx64.efi'

где:
--create -создаём загрузчик
--disk /dev/sda --part 2 -загрузочный диск и загрузочная партиция /boot/efi
--label "Gentoo"
-название загружаемой Gentoo
--loader '\boot\efi\boot\bootx64.efi
-путь к загрузчику
Перезагружаемся.
После удачной загрузки, можно удалить установленный ранее загрузчик.

Broadcom Corporation, Intel Corporation WiMAX/WiFi Link 5150 и iwlwifi, Realtek RTL8723DE, настройка wi-fi

Во многих ноутбуках присутствует аппаратный переключатель (или кнопка) питания беспроводной карты, однако она может быть также заблокирована и ядром. Этим можно управлять через rfkill:

rfkill list
0: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: yes


Если карта заблокирована аппаратно (hard blocked), используем переключатель (кнопку), чтобы разблокировать её. Если же карта заблокирована не аппаратно, a программно (soft blocked), используем следующую команду:

rfkill unblock wifi

Определяем wi-fi карту:

lspci -nnkv | sed -n '/Network/,/^$/p'

lspci -v или lspci -k

Вывод для Broadcom Corporation:

Network controller:
Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)
Kernel driver in use: bcma-pci-bridge

Вывод для Intel Corporation WiMAX/WiFi Link 5150:

Network controller: Intel Corporation WiMAX/WiFi Link 5150
Subsystem: Intel Corporation WiMAX/WiFi Link 5150 ABG


Вывод для Intel Corporation iwlwifi:

Network controller: Intel Corporation Wireless 3165 (rev 79)
Subsystem: Intel Corporation Wireless 3165
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi


Под них настраиваем ядро:

[*] Networking support --->
[*] Wireless --->
<*> cfg80211 - wireless configuration API
<*> Generic IEEE 802.11 Networking Stack (mac80211)
Совместимость беспроводных расширений cfg80211, также известный как WEXT, будет поддерживать инструменты беспроводной связи и iwconfig.
[*] cfg80211 wireless extensions compatibility

Device Drivers --->
[*] Network device support --->
[*] Wireless LAN --->
Для Broadcom Corporation BCM4313:
Select the driver for your Wifi network device, e.g.:
<M> Broadcom 43xx wireless support (mac80211 stack) (b43)
[*] Support for low-power (LP-PHY) devices
<*> Ralink driver support --->
<*> Ralink rt27xx/rt28xx/rt30xx (USB) support (rt2800usb)
Для Intel Corporation WiMAX/WiFi Link 5150 и iwlwifi:
[*] Intel devices
< > Intel PRO/Wireless 2100 Network Connection
< > Intel PRO/Wireless 2200BG and 2915ABG Network Connection
< > Intel Wireless WiFi 4965AGN (iwl4965)
< > Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945)
<M> Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)
<M> Intel Wireless WiFi DVM Firmware support
<M> Intel Wireless WiFi MVM Firmware support


Если драйвер встроен в ядро (<*>), а не в виде модуля (<M>), прошивка также должна быть встроена в ядро.
Device Drivers --->
Generic Driver Options --->
Firmware loader --->
-*- Firmware loading facility
(iwlwifi-xxxx.ucode) Build named firmware blobs into the kernel binary
(/lib/firmware) Firmware blobs root directory

Заменяем iwlwifi-xxxx.ucode на точное название прошивки.
Посмотреть можно командой:

dmesg | grep -i -E 'xx:xx.x|wlan|iwl|80211'
Заменяем: xx:xx.x с идентификатором (PCIID) из lspci, wlan с именем сетевого интерфейса и iwl с именем используемого драйвера ядра.
Для systemd:
journalctl -b 0 --dmesg | grep -i firmware

Для Realtek RTL8723DE:
Device Drivers --->
[*] Network device support --->
[*] Wireless LAN --->
[*] Realtek devices
<M> Realtek 802.11ac wireless chips support ----
<M> Realtek 8723DE PCI wireless network adapter (NEW)

Чтобы включить LED триггеры для различных пакетов приёма/передачи события,
собираем ядро со следующими опциями:

Device Drivers --->
[*] LED Support --->
<*> LED Class Support
[*] Networking support --->
[*] Wireless --->
[*] Enable LED triggers

Прошивка.
Для Broadcom Corporation, драйвер ядра b43 устанавливаем необходимый пакет sys-firmware/b43-firmware:

root # echo "sys-firmware/b43-firmware" >> /etc/portage/package.accept_keywords
root # echo "sys-firmware/b43-firmware Broadcom" >> /etc/portage/package.license

root # emerge --ask b43-firmware

Для Intel Corporation WiMAX/WiFi Link 5150 устанавливаем необходимый пакет sys-kernel/linux-firmware:

root # echo "=sys-kernel/linux-firmware-20191108 linux-fw-redistributable no-source-cod" >> /etc/portage/package.license

root # emerge --ask sys-kernel/linux-firmware


Для Intel Corporation iwlwifi и Realtek RTL8723DE> устанавливаем необходимый пакет sys-kernel/linux-firmware:

root # echo "sys-kernel/linux-firmware linux-fw-redistributable no-source-code" >> /etc/portage/package.license
root # echo "sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE" >> /etc/portage/package.license
root # emerge --ask sys-kernel/linux-firmware

Установка wpa_supplicant

Wpa_supplicant и Network Manager обычно не работают вместе.
Необходимо убедиться, что только одна из этих служб запущена.
Проверяем, если Network Manager установлен в ато загрузку убираем его оттуда:

rc-update del NetworkManager

В systemd:

systemctl disable NetworkManager

Устанавливаем Wpa_supplicant:

emerge --ask wpa_supplicant

Настраиваем конфигурационный файл:

vim /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
ap_scan=1
fast_reauth=1
update_config=1

network={
ssid="YourSSID"
psk="Your-secret-key"
scan_ssid=1
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}
# Подключение к любой не защищённой сети
network={
key_mgmt=NONE
priority=-999
}

wpa_supplicant включает в себя инструмент для быстрой записи сетевого блока из командной строки для сетей с предварительным общим ключом (WPA-PSK, он же пароль), wpa_passphrase.

wpa_passphrase '<ssid>' '[парольная фраза]'

Требуется SSID, парольную фразу можно ввести при появлении запроса.
Полученный результат затем можно скопировать в файл /etc/wpa_supplicant/wpa_supplicant.conf.
В файле /etc/conf.d/wpa_supplicant устанавливаем:

vim /etc/conf.d/wpa_supplicant
wpa_supplicant_args="-B -M -c/etc/wpa_supplicant/wpa_supplicant.conf"


В случае, если требуется аутентификация для проводного интерфейса, этот файл конфигурации должен выглядеть так:

wpa_supplicant_args="-ieth0 -Dwired -c/etc/wpa_supplicant/wpa_supplicant_wired.conf -B -M -c/etc/wpa_supplicant/wpa_supplicant.conf"

В файле /etc/conf.d/net добавляем:

modules_wlan0="wpa_supplicant"
config_wlan0="dhcp"

Разрешаем wpa_supplicant обрабатывать запуск/остановку интерфейсов, удалив их из /etc/init.d и включив демон wpa_supplicant:

/etc/init.d/net.eth0 stop
/etc/init.d/net.wlan0 stop
rm /etc/init.d/net.wlan0 /etc/init.d/net.eth0
rc-update add wpa_supplicant
/etc/init.d/wpa_supplicant start


Запускаем беспроводной сетевой адаптер:

ifconfig wlan0 up

Запускаем wpa_supplicant на установку соединения:

wpa_supplicant -B -Dnl80211 -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

здесь:
B - запускать команду wpa_supplicant в фоновом режиме;
-Dnl80211 - говорим утилите wpa_supplicant использовать драйвер nl80211 для интерфейса wlan0 (-Dwext для драйвера wext);
i - задаем настраиваемый сетевой интерфейс (wlan0 в нашем случае);
c - указываем путь к конфигурационному файлу wpa_supplicant.conf.
Получение IP адреса:

dhcpcd wlan0

Добавляем в уровень запуска:

rc-update add wpa_supplicant default

Systemd позволяет упростить настройку для каждого устройства без необходимости создания вышеуказанных файлов conf.d, wpa_supplicant@wlan0.service, в этом случае ищет отдельный файл конфигурации для управления устройством wlan0.
Чтобы настроить конкретное устройство таким образом, сначала скопируем или переименуем файл /etc/wpa_supplicant/wpa_supplicant.conf в /etc/wpa_supplicant/wpa_supplicant-DEVNAME.conf, где DEVNAME должно быть именем устройства, например, wlan0.

mv /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

Затем перейдём в /etc/systemd/system/multi-user.target.wants:

cd /etc/systemd/system/multi-user.target.wants

и создадим символическую ссылку:

ln -s /lib/systemd/system/wpa_supplicant@.service wpa_supplicant@wlan0.service

Обращаем внимание на знаки @ для обоих аргументов на шаге символической ссылки.
Протестируем систему:

systemctl daemon-reload
systemctl start wpa_supplicant@wlan0
systemctl status wpa_supplicant@wlan0

Установка сканера Canon LIDE 110 на Gentoo

В ядре устанавливаем поддержку USB:

Device Drivers --->
USB support --->
< > OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support

Подсоединяем сканер к компьютеру и проверяем его подключение

lsusb

Bus 002 Device 005: ID 04a9:1909 Canon, Inc. CanoScan LiDE 110

В названии сканера видим два 4-х значных пароля: Vendor (в данном случае, 04a9) и
ProdID (в данном случае, 1909) Сохраняем их. Они могут понадобиться в процессе настройки.
Проверяем наличие флагов, если их нет, добавляем:

vim /etc/portage/package.use
>=media-gfx/sane-backends-1.2.1 usb
>=media-gfx/xsane-0.999-r5 jpeg lcms png tiff


Загружаем

emerge --ask sane-backends xsane

Проверяем

sane-find-scanner -q

found USB scanner
(vendor=0x04a9 [Canon], product=0x1909 [CanoScan], chip=GL124) at libusb:002:005
could not fetch string descriptor: Pipe error
could not fetch string descriptor: Pipe error

Добавляем пользователя username в группу scanner

gpasswd -a username scanner

reboot

Запускаем

Scanner Tool

Если сканер не запускается, создаём директорию 70-libsane.rules

vim /etc/udev/rules.d/70-libsane.rules

Устанавливаем

ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="1909",
MODE="0664", GROUP="scanner", ENV{libsane_matched}="yes"

и опять запускаем

Scanner Tool

Подключение беспроводного принтера "HP LaserJet Professional P1102w" в Gentoo

Принтер должен быть подключён к беспроводной сети.
В верхней части устройства, индикатор должен гореть синим цветом.
Проще это сделать через ОС "Windows..."
Заходим на сайт "Продукты HP", поддержка, Программы и драйверы.
Определяем ваш продукт, чтобы начать работу.
Выбираем "Принтер".
В ячейке "Введите название продукта" набираем
"HP LaserJet Pro P1102w" щёлкаем, Отправить.
Щёлкаем "Принтер HP LaserJet Pro P1102w", выбираем операционную систему, Далее.
Выбираем: "Драйвер - ПО для установки устройств" щёлкаем Загрузить.
Соединяем компьютер и принтер кабелем.
Запускаем загруженую программу.
В окне "Способ подключения принтера", выбираем "Настройка на печать через беспроводную сеть"
В окне "Беспроводной способ обнаружения" выбираем "Автоматически".
В окне "Учётные данные беспроводной сети" будет найден наш SSID, щёлкаем Далее.
После окончания работы программы, щёлкаем Готово.
Для печати страницы конфигурации, на панели управления принтера нажимаем и удерживаем кнопку X в течение 5 секунд, а затем отпускаем её.
На этой странице отображаются адрес IP, в разделе "Информация о сети".
Вытаскиваем кабель и переходим в ОС Linux.
В /etc/portage/make.conf должен быть установлен Use флаг ...cups...
Соответственно CUPS будет загружен автоматически.
Для подсоединения к удалённо подключённому принтеру через протокол межсетевой печати (IPP),
ядро должно быть сконфигурировано с поддержкой сети.
Для подключения принтера через USB, в ядре необходимо включить следующее:

Device Drivers -->
USB Support -->
<*> Support for Host-side USB
(...)
*** USB Host Controller Drivers ***
(Select the HCD that your system uses. If you do not know which one
to select, run "lspci -v | grep HCI" from another terminal)
<*> EHCI HCD (USB 2.0) support
< > OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support

Устройства, подключённые через USB, требуют базовой поддержки USB:

Device Drivers --->
[*] USB support --->
<*> USB Printer support


Локально подключенный принтер (LPT). LPT порт обычно используется для идентификации параллельного порта принтера.

Device Drivers -->
<*> Parallel port support ----
<*> PC-style hardware
[*] IEEE 1284 transfer modes
Character Devices -->
<*> Parallel printer support


CUPS может поддерживать печать через USB, если включен usb флаг.
Проверяем текущие настройки USE-флагов:

emerge -pv net-print/cups

Для изменения текущих настроек USE-флагов для CUPS, добавляем подходящие USE-флаги в файл /etc/portage/package.use.
Удалённо подключенный принтер (CIFS)

File systems -->
Network File Systems -->
<*>SMB3 and CIFS support (advanced network filesystem, SMBFS successor)


Собираем ядро.
Все действия для беспроводного подключения, также относятся и к подключению принтера через USB.
Устанавливаем драйвер "foo2zjs".

vim /etc/portage/package.accept_keywords
=net-print/foo2zjs-99999999
=net-print/foo2zjs-20200221 ~amd64


emerge --ask net-print/foo2zjs

Второй вариант:

Заходим в папку opt:

cd /opt

Загружаем драйвер foo2zjs:

wget -O foo2zjs.tar.gz https://github.com/koenkooi/foo2zjs.git

Распаковываем файл foo2zjs.tar.gz:

tar xvfz /opt/foo2zjs/foo2zjs.tar.gz

Заходим в папку /foo2zjs:

cd ./foo2zjs

Устанавливаем драйвер foo2zjs:

make install

Все пользователи, которым требуется печатать документы, должны быть добавлены в группу lp:

gpasswd -a username lp

Все пользователи, которым требуется добавлять или редактировать принтеры через веб-интерфейс CUPS, должны быть добавлены в группу lpadmin:

gpasswd -a username lpadmin

Устанавливаем автоматический запуск CUPS:

/etc/init.d/cupsd start
rc-update add cupsd default

Для systemd:

systemctl start cups.service
systemctl enable cups.service


Запускаем CUPS по адресу http://localhost:631/
Заходим в "Администрирование"
Устанавливаем галочки:
"Разрешить совместный доступ к принтерам, подключенным к этой системе" и
"Разрешить печать из Интернета"
Нажимаем "Сохранить"
Нажимаем "Добавить принтер"
После обнаружения нашего принтера появится страница: "Установленные принтеры".
Найденные сетевые принтеры.
Выбираум наш принтер "HP LaserJet Pro P1102w"
Продолжить. Расположение: на пример "Home" Устанавливаем галочку:
"Разрешить совместный доступ к принтерам"
Продолжить.
Выбираем модуль: HP LaserJet Pro P1102w Foomatic/foo2zjs-z2(en)
Нажимаем "Добавить принтер"
Настраиваем необходимые параметры для печати.
Сохранить параметры.
Перезапускаем CUPS:

/etc/init.d/cupsd restart

Для systemd перезапускаем юнит:

systemctl restart cups.service

Всё, можно печатать!
Вариант настройки с использованием HPLIP.
HPLIP рекомендуется для большинства принтеров HP inkjet и laserjet.
Проверяем наличие USE - флага hpcups, если флаг отсутствует, устанавливаем и загружаем hplip:

emerge --ask hplip

В терминале набираем:

hp-plugin

Дойдя до установки плагина, набираем d:

------------------------------------------
| PLUG-IN INSTALLATION FOR HPLIP 3.18.12 |
------------------------------------------
Option Description
---------- --------------------------------------------------
d Download plug-in from HP (recommended)
p Specify a path to the plug-in (advanced)
q Quit hp-plugin (skip installation)

Enter option (d=download*, p=specify path, q=quit) ? d


Настраиваем CUPS.
Выбираем модуль: HP Laserjet Professional p 1102w, hpcups 3.18.12, requires proprietary plugin(en).
Перезапускаем CUPS:

rc-service cupsd restart

Для systemd:

systemctl restart cups.service

Каждый раз после обновления HPLIP рекомендуется выполнить hp-setup -r, чтобы удалить все принтеры и настроить их заново.

Файловая система exFAT

exFAT (Extended File Allocation Table), файловая система от Microsoft, оптимизированная для устройств хранения данных, основанных на памяти flash, таких, как USB, Micro SDXC - накопители.
Проверяем, что поддержка для Filesystem in Userspace (FUSE) включена в ядре:

File systems --->
<*> FUSE (Filesystem in Userspace) support


Устанавливаем пакет FUSE exfat:

emerge --ask sys-fs/fuse-exfat

Для реализации функций создания и работы с файловой системой, устанавливаем пакет sys-fs/exfat-utils:

emerge --ask sys-fs/exfat-utils

Создаём файловую систему на сменном носителе, например, /dev/sde1 с использованием "Flash" в качестве метки:

mkfs.exfat -n Flash /dev/sde1

Файловую систему можно смонтировать с помощью команды mount.exfat-fuse:

mount.exfat-fuse /dev/sde1 /mnt/flash

Размонтирование:

umount /mnt/flash

Проверяем целостность данных файловой системы exFAT:

fsck.exfat /dev/sde1

Non-Volatile Memory Express

NVMe это спецификация для доступа к дискам через PCI Express, специально разработанная для энергонезависимой памяти. Подключение через PCIe Gen3 x4 не только обеспечивает скорость обмена данными (до четырех раз быстрее скорости доступа через интерфейс SATA), но и обеспечивает меньшие задержки, чем традиционные интерфейсы SATA. Высокий уровень параллелизма и низкое энергопотребление обеспечивает текущие и будущие потребности в хранении информации. Способ именования NVMe-SSD отличается от SATA-дисков. Первый NVMe-SSD имеет имя /dev/nvme0n1, а не /dev/sda. Здесь n после nvme0 означает пространство имён (namespace). Первый раздел на таких дисках имеет имя /dev/nvme0n1p1 вместо /dev/sda1.
Общая схема имеет вид: /dev/nvme(номер контроллера)n(пространство имён)p(раздел).
Для управления NVMe-SSD под Gentoo можно использовать nvme-cli.

echo "=sys-apps/nvme-cli-1.5 ~amd64" >> /etc/portage/package.accept_keywords
emerge --ask sys-apps/nvme-cli

Полный перенос операционной системы на другой жёсткий диск

К компьютеру, с которого хотим перенести данные подключаем диск на который переносим данные.
Разбиваем его.
Создаём файловые системы на разделах.
Монтируем раздел rootfs в /mnt:

mount /dev/sdb4 /mnt

Копируем все разделы из "/" в /mnt, кроме /home, /mnt, /proc, /sys, /dev, /tmp, /lost+found:

rsync -auvcP --include-from=/bin /--cmd /etc /lib /lib64 /media /opt /root /sbin /usr /ZFS-gentoo /boot /lib32 /run /srv /var /mnt

Создаём новые директории:

mkdir /mnt/home /mnt/mnt /mnt/proc /mnt/sys /mnt/dev

Монтируем раздел boot:

mount /dev/sdb2 /mnt/boot/efi/

Монтируем proc, sys и dev:

mount --types=proc /proc /mnt/proc
mount --rbind /sys /mnt/sys
mount --rbind /dev /mnt/dev
mount --make-rslave /mnt/sys
mount --make-rslave /mnt/dev


Изменяем корневой каталог для перехода в новую среду chroot:

chroot /mnt /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"


Определяем UUID разделов:

blkid
/dev/sdb2: UUID="..."
/dev/sdb3: UUID="..."
/dev/sdb4: UUID="..."
/dev/sdb5: UUID="..."


В fstab заменяем /dev/sdbX на полученые UUID="..."

vim /etc/fstab

Удаляем директорию /grub:

rm -r /boot/grub/

Переустанавливаем загрузчик Grub.
Перезагружаемся:

exit
reboot


Проверяем возможность загрузки с нового диска:
Для входа в режиме редактирования, в момент загрузки нажимаем клавишу "e", увидим список команд, которые выполняет Grub2 во время загрузки, при необходимости редактируем. После загрузки проверяем файл /etc/default/grub, при необходимости редактируем.
Если всё нормально, перезагружаемся и загружаемся со старого диска.
Монтируем раздел home нового диска:

mount /dev/sdb5 /mnt

Синхронизируем разделы home старого диска с mnt:

rsync -auvcP --delete-during /home /mnt

При этом обновится приёмник, если он был уже чем то заполнен - удалится то, чего нет в источнике, но не затронет файлы которые новее, выведет статистику и состояние по каждому файлу, проверит контрольные суммы.
Перезагружаемся.
Rsync программа, которая выполняет синхронизацию файлов и каталогов.
Позволяет передавать только изменения в файлах, кроме того, rsync производит сжатие на лету, перед обработкой информации, записывает её во временный файл, чтобы ничего не случилось с оригиналом, поддерживает специальный режим безопасной отладки команд.Она поддерживает ssh
Синтаксис утилиты:

rsync [опции] [источник] [приёмник]

-n, --dry-run - выполнить пробный запуск без внесённых изменений;
-P - с этим ключем rsync покажет процесс копирования отдельных файлов и продолжит копирование если оно было прервано;
Ключ -P нужно указывать каждый раз, иначе rsync удалит файлы которые не успели полностью закачаться.
-v, --verbose - для вывода информации о работе утилиты;
Чем больше опций -v, тем боле информативным будет вывод утилиты. Максимальная информативность достигается при четырех опциях -v.
-u, --update - применяем, если на приёмнике есть более свежие файлы, и мы не хотим что бы они были перезаписаны старыми из источника;
Не стоит пугаться если изменились даты директорий, т.к. сами файлы небыли перезаписаны.
-c, --checksum - можно использовать проверку контрольной суммы;
-a - опция задаёт архивный режим работы утилиты, и является эквивалентом набора опций;
-e - использовать другой транспорт, например, ssh;
-g, --group - установить группу конечного файла таким же, как и у исходного;
-h, -- human-readable - информация на выводе в формате, удобном для чтения;
-r, --recursive - рекурсивный режим;
-l, --links - пересоздание symlinks, это значит, что символические ссылки будут так же переноситься;
-o, --owner - установить владельца конечного файла таким же, как и у исходного;
-p, --perms - перенос прав;
-t, --times - передача времени модификации и его обновление на удалённой системе. Этот ключ должен быть установлен для точной синхронизации;
-z - сжимать файлы перед передачей;
-D, - same as --devices --specials - установить тип файла устройства и файла специального типа таким же, как у исходного;
--progress - показать % выполнения во время передачи.
Если в директории источника содержится актуальная информация, то чтобы не засорять приёмник информацией, которая в процессе работы была удалена или перемещена в источнике, нужно старые файлы и директории удалить. Для этого есть несколько опций удаления, каждая из которых предоставляет свой алгоритм удаления:
--delete - просто удалить посторонние файлы из приёмника;
--delete-before - приёмник удаляет перед передачей;
--delete-during - приёмник удаляет в процессе передачи, но не перед;
--delete-delay - отложенное удаление/найти файлы для удаления в процессе передачи, но удалить после передачи;
--delete-after - приёмник удаляет после передачи, но не перед ней;
--delete-excluded - так же удалить исключённые файлы в приёмнике, для этого задаётся шаблон (--exclude=PATTERN);
--exclude=PATTERN - позволяет выборочно исключать определённые файлы из процесса передачи;
--exclude-file=FILE - позволяет исключать фалы, перечисленные в файле FILE;
Пустые строки вместе со строками, начинающимися с ';' или '#', игнорируются. Если FILE указан как -, то список шаблонов читается со стандартного ввода.
--include=PATTERN - указывает шаблоны для имён тех файлов, которые нельзя исключать из процесса;
Полезен тем, что позволяет строить довольно сложные правила включения/исключения.
--include-from=FILE - указывает список обязательно включаемых в передачу файлов из файла FILE;
Если FILE указан как -, то список шаблонов читается со стандартного ввода.
Параметры --include и --exclude допускают только по одному шаблону каждый. Для добавления множества шаблонов используйте параметры --include-from и --exclude-from или множество параметров --include и --exclude соответственно.
Если шаблон начинается на "+ " (плюс с последующим пробелом), то это всегда рассматривается как включающий шаблон, даже если указан как часть параметра исключения. Сама часть "+ " не учитывается при проверке на соответствие.
Если шаблон начинается на "- " (минус с последующим пробелом), то это всегда рассматривается как исключающий шаблон, даже если он фигурирует как часть параметра включения. Сама часть "- " не учитывается при проверке на соответствие.
Завершающий исходный путь слэш означает скопировать внутреннее содержимое. Например, если в конце /home/ есть слэш, rsync скопирует содержимое /home/ в /mnt/. Но если слэш в конце /home отсутствует, то rsync создаст директорию /home внутри /mnt/ и скопирует все содержимое /home в /mnt/home/.
Копирование/синхронизация каталога с локального компьютера на удалённый сервер:

rsync -avz /home/mnt/ nikolay@192.168.XX.XXX:/home/

Копирование/синхронизация удалённого каталога на локальный компьютер:

rsync -avz nikolay@192.168.XX.XXX:/home/ /mnt/

Вместе с Remote Sync можно использовать SSH (Secure Shell). Используя протокол SSH данные передаются в защищённом соединении с шифрованием:

rsync -avze ssh nikolay@192.168.XX.XXX:/home/ /mnt/

Гибернация

Hibernation (зимняя спячка) - энергосберегающий режим операционной системы компьютера, при котором содержимое оперативной памяти сохраняется на энергонезависимое устройство хранения данных (жёсткий диск) перед выключением питания. В отличие от ждущего режима, в режиме гибернации после сохранения данных оперативной памяти подача электроэнергии полностью прекращается. После включения питания компьютера содержимое памяти восстанавливается (загружается с диска в память), и пользователь сможет продолжить работу с того же места, на котором он остановился, так как все запущенные ранее программы продолжат выполняться.
Hybrid suspend (гибридный спящий режим)
Гибрид ждущего и спящего режимов, иногда называется suspend to both. Сохраняет состояние машины в подкачку, но не выключает её. Вместо этого выполняется переход в обычный ждущий режим. Поэтому, если батарея не разряжена, система может возобновить работу мгновенно. Если батарея разряжена, система может восстановить своё состояние с диска, что намного медленнее, чем возобновление работы из ОЗУ, но состояние не будет потеряно.
Убедимся, что поддержка приостановки и гибернации активирована (CONFIG_SUSPEND) и (CONFIG_HIBERNATION):

Power management and ACPI options --->
[*] Suspend to RAM and standby
[*] Hibernation (aka 'suspend to disk')


Один из следующих пакетов можно использовать для управления встроенной в ядро ​​реализацией приостановки/гибернации по умолчанию, а именно, swsusp.
sys-auth/elogind предоставляет следующие команды, которые можно запускать от имени пользователя root или из учётной записи пользователя.
Во многих средах рабочего стола уже устанавливают это, если не используется systemd:

loginctl suspend
loginctl hibernate
loginctl hybrid-sleep
loginctl suspend-then-hibernate


sys-power/suspend provides:

s2ram
s2disk
s2both


sys-power/hibernate-script
Чтобы просмотреть доступные режимы приостановки, используем:

cat /sys/power/state
freeze mem disk


Приостановить работу в режиме ожидания.
На современном оборудовании традиционная приостановка S3 заменяется набором возможностей детального управления питанием во время выполнения для состояния сна S0. Intel называет это S0ix, а Microsoft - Modern Standby.
Чтобы проверить доступные режимы ожидания, используем:

cat /sys/power/mem_sleep
[s2idle] shallow deep


Убедимся, что оборудование не испытывает проблем с режимом S3, протестировав несколько циклов сна после изменения режима:

echo "deep" > /sys/power/mem_sleep

Чтобы S0ix работал, s2idle должен быть активен.
Приостановить работу в оперативной памяти.
Предпочтительные команды для приостановки:

s2ram

или, если используется sys-auth/elogind:

loginctl suspend

См. настройки в файле /etc/elogind/logind.conf в разделе [Sleep]. SuspendMode должен быть глубоким, если необходимо отключить шум вентилятора во время сна.
Альтернативный способ использования s2idle доступен через SuspendState:

vim /etc/systemd/sleep.conf
[Sleep]
SuspendState=freeze


Для приостановки (в RAM) для пользователей sys-power/hibernate-script:

hibernate-ram
или
hibernate

в спящий режим (на диск).
Более «грубый» метод прямого взаимодействия с ядром:

echo mem > /sys/power/state

Это не опция конфигурации! Вместо этого он показывает все доступные состояния, и при отображении одного из них это состояние немедленно выполняется.
Приостановить на диск.
Чтобы приостановить работу диска, должен существовать раздел подкачки или файл подкачки.
Файл подкачки должен быть активен заранее и должен отображаться в соответствующем файле перед любой попыткой приостановки/гибернации.

echo /dev/sda3 > /sys/power/resume

Более «грубый» метод заключается в следующем:

echo disk > /sys/power/state

Приостановить работу на диске и затем перезагрузиться.
Если необходимо сохранить текущий сеанс и загрузиться в другую ОС, нет необходимости выполнять обычный спящий режим, включая выключение.
Достаточно просто создать образ спящего режима (внутри подкачки или файла подкачки) и после этого перезагрузиться:

echo reboot > /sys/power/disk
echo disk > /sys/power/state

Когда перезагрузка доступна, после ее повторения вы увидите что-то вроде этого (активный/выбранный параметр находится в скобках):

cat /sys/power/disk
platform shutdown [reboot] suspend test_resume


При повторной перезагрузке системы, находящейся в спящем режиме, выбранный параметр в /sys/power/disk остается прежним (перезагрузка). Измените его еще раз, если вы захотите в следующий раз выключить систему, используя спящий режим, таким образом.
Ни KDE/Plasma, ни loginctl не учитывают значение (перезагрузка) в /sys/power/disk при переводе системы в спящий режим и выключении питания.
Приостановить запись на диск с помощью sys-auth/elogind
Сначала убедитесь, что раздел подкачки установлен, grub.cfg перестроен и initramfs (если есть) обновлен, как показано выше.
Перезагружаем систему:

loginctl reboot

Далее попробуем запустить:

loginctl hibernate

Можно использовать приостановку диска с файлом подкачки. Если у вас есть функциональный файл подкачки, вам необходимо настроить параметры ядра (через GRUB и т.д.).
Находим UUID устройства, на котором находится файл подкачки. Например /dev/sda3.

blkid /dev/sda3

Находим смещение файла подкачки в данном разделе, используя утилиту swap-offset из sys-power/suspend:

swap-offset /path/to/swapfile

Файловая система Btrfs требует вычисления смещения файла подкачки другим способом, см. Arch Linux, Hibernation в файле подкачки в Btrfs.
осле этого редактируем конфигурацию GRUB и добавляем необходимые параметры в строку загрузки:

vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=<UUID_of_partition> resume_offset=<offset_of_swapfile>"


Пересобераем конфигурацию GRUB:

grub-mkconfig -o /boot/grub/grub.cfg

Перезагружаем систему и проверяем используемые параметры ядра:

user $ cat /proc/cmdline

Теперь должна быть возможность перевести систему в спящий режим.

Полезные ссылки

Настройка тачпада
Централизованная аутентификации с помощью OpenLDAP
Руководство администратора OpenLDAP 2.4
Установка SELinux
Hardened Gentoo
Создание Gentoo LiveUSB
Initramfs/Руководство
Документация Calculate Linux

Мосье, же не манж па сис жур. Гебен зи мир битте этвас копек ауф дем штюк брод.
Подайте что-нибудь бывшему депутату Государственной думы.

0123 4567 8910 1112 LINUX TOSHA cardholder name expiration card number 01/23 VALID THRU
985 security code LINUX TOSHA
настройка wifi

Продаются
книги

Оставить отзыв

Установи и
БУДЕШЬ СЧАСТЛИВ!

Добивается своего тот, кто умеет ждать

opensuse
Помощь сайту!
Номер счёта: P1033771335
lightning
Приму в добрые руки!
Bitcoin bc1qs8ljgufm0r4yj0swp43yya30yq0l5scl8ntc0e
Dash XhaN3NWmxSXKK8dMpzotWSBk5As6KvFxog
Dogecoin DL1LyCQkKEUrgBBuWBbgvzb2RR5yeW5RQ9
Litecoin ltc1qr5ntqxafw9jcmq5jfgdhrm0uq306mqntntmhwf
Ethereum 0x0A476b0Fa1DF5a97c911AF4271897153800D23Db
Solana 4AzHdrArwh4c42D6FtfXZXWSxxE9L5ocmEqmgSumXXxk
Cardano
addr1q8q2ratx2fj3gnfj7y8vmggaj0wmyxs0r2lh6v5sfvkqeuwfwcteneggk0dhkv42u75ykq0f2vlgac5738urscf0ef6sr65rsw
Monero
4B8tc66Y136YHHEGSioVnpSAW7H5qU5W5MSaXH9RX2QSW6Uy6fFba2S7SndPsJqCXaH7Q4mLduGgZ1UXDx1FAgpoK4Rzvow
Scrooge
Dollar
Ruble
Ruble
Gold