установить openssh 7.6 на Red Hat 7.5

Представим, что у нас есть три компьютера:

  • сервер, на котором будет работать сервер wireguard, с IP-адресом wireguard 10.100.0.1
  • телефон с KDEConnect для Android и wireguard ip 10.100.0.2
  • ноутбук с KDE Plasma, на котором работает kdeconnect, с IP-адресом wireguard 10.100.0.3

Сначала настройте wireguard на сервере. Я лично решил использовать для этого nixos, но вы также должны иметь возможность настроить его вручную или с помощью файла .conf. Вот мой файл конфигурации nix:

# Source: https://nixos.wiki/wiki/Wireguard
#### Create keys, as root:
# mkdir ~/wireguard-keys
# umask 077 ~/wireguard-keys
# wg genkey > ~/wireguard-keys/private
# wg pubkey < ~/wireguard-keys/private > ~/wireguard-keys/public
{ config, pkgs, lib,... }:
let
  port = 51820;
in
{
  environment.systemPackages = with pkgs; [ wireguard ];

  networking.wireguard.interfaces = {
    # "wg0" is the network interface name. You can name the interface arbitrarily.
    wg0 = {
      # Determines the IP address and subnet of the server's end of the tunnel interface.
      ips = [ "10.100.0.1/24" ];

      # The port that Wireguard listens to. Must be accessible by the client.
      listenPort = port;

      # Path to the private key file.
      #
      # Note: The private key can also be included inline via the privateKey option,
      # but this makes the private key world-readable; thus, using privateKeyFile is
      # recommended.
      privateKeyFile = "/root/wireguard-keys/private";

      peers = [
        # List of allowed peers.
        {
          # Android
          publicKey = "myandroidpublickey=";
          # List of IPs assigned to this peer within the tunnel subnet.
          # Used to configure routing.
          allowedIPs = [ "10.100.0.2/32" ];
        }
        {
          # Laptop
          publicKey = "mylaptoppublickey=";
          # List of IPs assigned to this peer within the tunnel subnet.
          # Used to configure routing.
          allowedIPs = [ "10.100.0.3/32" ];
        }
      ];
    };
  };

  # Ensure IP forwarding is enabled.
  boot.kernel.sysctl."net.ipv4.ip_forward" = 1;

  # Add a masquerade rule to iptables so the clients can
  # talk to the internet
  networking.firewall.extraCommands = ''
   iptables -t nat -A POSTROUTING -s 10.100.0.0/24 ! -d 10.100.0.0/24 -j MASQUERADE
  '';
  # Make sure port is open
  networking.firewall = {
    allowedTCPPorts = [ port ];
    allowedUDPPorts = [ port ];
  };


}

Важная часть — убедиться, что IP-переадресация включена, и выполнить команду iptables -t nat -A POSTROUTING -s 10.100.0.0/24 ! -d 10.100.0.0/24 -j MASQUERADE. Действительно, если вы не делаете маскарад, то вы не сможете выйти в интернет со своего телефона, а если вы забудете перед выполнением маскарада убедиться, что пункт назначения находится вне сети, вы не сможете подключиться к KDEConnect со своего телефона (Я потратил много времени, прежде чем понял, что ).

Затем также настройте wireguard на своем ноутбуке, например, введя/etc/wireguard/wg0.conf:

# https://wiki.archlinux.fr/Wireguard
# To run, use:
# wg-quick up wg0
# ou systemctl enable --now wg-quick@wg0.service
# Sur le noeud 2, le "client"
[Interface]
# le /24 est important : on définit un réseau (/24) auquel l'interface appartient
Address = 10.100.0.3/24
PrivateKey = computerprivatekey

# On définit qui est le "serveur"
[Peer]
PublicKey = serverpublickey
# le /24 indique ici que tous les noeuds du VPN vont d'abord communiquer avec le serveur,
# qui va nous renvoyer ce qui nous concerne :
# on peut s'attendre à recevoir du trafic de la part d'hypothétiques nouveaux noeuds qui seraient dans 10.X.Y/24
AllowedIPs = 10.100.0.0/24
Endpoint = serverip.com:51820
# En général les clients sont derrière du NAT, et si on veut que le serveur puisse joindre le client à tout moment, il faut :
PersistentKeepalive = 15

На телефон Android установите приложение wireguard (, доступное в магазине Play и FDroid ), и создайте новый интерфейс, сгенерируйте новый закрытый ключ в интерфейсе адрес выбрал 10.100.0.2/32. В Peer добавьте публичный ключ сервера и введите Разрешенные IP-адреса0.0.0.0/0(на самом деле вы можете выбрать более строгий набор ips ). Настройте конечную точку на myserver.com:51820и сохраните/включите конфигурацию/протестируйте сеть.

Наконец, просто зайдите на своем телефоне в KDEConnect, выберите «Связать новое устройство», затем нажмите три точки вверху справа, «Добавить устройства по IP», а затем добавьте IP-адрес ноутбука 10.100.0.3. Наслаждаться!

NB :если вы не хотите настраивать ip на стороне телефона, вы также можете перекомпилировать KDEConnect, чтобы изменить адрес трансляции на ip ваших телефонов... Но это не очень практично.

-2
06.12.2018, 07:47
1 ответ

Проблема , указанная в комментариях , относится к CVE -2017 -15906 (, перечисленным на той же странице ).

Red Hat задокументировала этот CVE вместе с подробностями, которые доступны здесь:https://access.redhat.com/security/cve/cve-2017-15906

Согласно странице CVE, по этой проблеме были выпущены исправления для RHEL 7 (RHSA -2018 :0980 ). Пакеты OpenSSH на RHEL 5 и 6 не подвержены этой уязвимости. Опечатки доступны здесь:https://access.redhat.com/errata/RHSA-2018:0980

Согласно странице с исправлениями, эта проблема безопасности исправлена ​​в следующей версии OpenSSH и связанных с ней пакетов:7.4p1-16.el7.x86_64. Если у вас есть эта версия OpenSSH на RHEL 7, вы должны быть в безопасности от уязвимости. Более подробная информация об изменении, включая инструкции по обновлению, доступна на странице с исправлениями, ссылка на которую приведена выше.


Последняя версия OpenSSH согласно домашней странице проекта 7.9. Хотя пакет RHEL имеет более раннюю версию, он по-прежнему содержит все исправления безопасности из исходной версии. Это делается путем резервного копирования -, когда исправления безопасности изолируются от основного источника, а затем применяются к более старому пакету, распространяемому Red Hat. Это позволяет клиентам RHEL продолжать использовать определенную версию пакета, будучи защищенным от новых уязвимостей безопасности. Подробнее об этом процессе рассказывается на этой странице:Backporting Security Fixes .

Одной из проблем с бэкпортированием является проверка версии, используемая инструментами сканирования безопасности (, такими как Nessus Scanner,в этом случае ). Из приведенной выше ссылки:

Also, some security scanning and auditing tools make decisions about vulnerabilities based solely on the version number of components they find. This results in false positives as the tools do not take into account backported security fixes.

Это именно тот случай, поскольку страница выпуска CVE -2017 -15906 для Nessus документирует это явно:

Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version number.

2
28.01.2020, 05:15

Теги

Похожие вопросы