"Меня иногда спрашивают, как я справляюсь с бременем славы? Честно говоря, нет тут никакого «бремени»." Линус Торвальдс
"Меня иногда спрашивают, как я справляюсь с бременем славы? Честно говоря, нет тут никакого «бремени»." Линус Торвальдс
Join Us
Устанавливаем 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 имя_пользователя
Если установлен, то удаляем 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 можно проверить щёлкнув по картинке.
Устанавливаем "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 -путь к загрузчику
Перезагружаемся.
После удачной загрузки, можно удалить установленный ранее загрузчик.
Во многих ноутбуках присутствует аппаратный переключатель (или кнопка) питания беспроводной карты, однако она может быть также заблокирована и ядром. Этим можно управлять через 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 и 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
В ядре устанавливаем поддержку 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
Принтер должен быть подключён к беспроводной сети.
В верхней части устройства, индикатор должен гореть синим цветом.
Проще это сделать через ОС "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 (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
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
Николай: Люди тратили уйму своего времени и труда, чтобы создать этот софт и дарят его Вам. Найдите, пожалуйста, немного времени, чтобы прочитать документацию и научиться это использовать!
Николай: Не понравился сайт, хотите научить меня администрировать? Пожалуйста, с удовольствием буду учиться.
Отзывы в Вашем распоряжении!
Николай: Я знаю, у Вас уйма вопросов! На многие из них можете получить ответы прямо сейчас.