LINUX.ORG.RU

Форум

Активные теги:

 , , , , , , , , , , , , , , , , , , ,

Asterisk vs openvpn

Форум — Admin

Подскажите плз по астериску (я мало с ним сталкивался, что-то не могу понять)

Есть asterisk с IP в локалке (192.168.0.0/24), есть pptp-сервер (выдающий IP из этой же локалки). Голос замечательно работает во всех направлениях (но софтофоны неудобны).

Возникла теперь хотелка подключить телефоны, но голой попой asterisk выставлять не хочется.

Поднял в локалке виртуалку с openvpn-сервером (сеть 10.8.0.0/24), выкинул его порт через роутер, соединение устанавливается, телефон на астериске регистрируется, но UNREACHABLE и, соответственно, звонки на него не проходят, а при исходящем звонке - тишина. Ткните плз в сторону документации, что надо делать на openvpn-сервере, чтобы ходили звонки? Я правильно понял, что надо и nf_conntrack_sip/nf_nat_sip загружать и пробрасывать 5060/udp и 10000:20000/udp со стороны «внешнего» IP? Но телефон то на asterisk видится как 10.8.0.2:5060

 , ,

Dimez ()

8 Кбайт хватит всем!

Форум — Talks

Расшифрован геном коронавируса (SARS–CoV–2). Мы атакованы ~8-килобайтным вирусом (ссылка на код). Подобно компьютерным вирусам, у него есть удалённый эксплоит, живучесть, средства маскировки от антивирусов, он работает на нескольких несовместимых платформах (летучие мыши, люди, собаки, и т.д.), и все это вмещается в ~8 Кбайт. Для сравнения, код генома HIV.

Мораль: срочно пишите патчи, пилите ебилды, ибо последняя строчка какбэ намекает:

29881 aaaaaaaaaa aaaaaaaaaa aaa
//

(с)

 , ,

Gonzo ()

А воз и ныне там (с 2013)

Форум — Talks

Новость 2013 года.

В unzip появилась возможность выбора кодировки имен файлов внутри архива

В экспериментальной ветке проекта Info-Zip, в состав которого входит инструмент для распаковки архивов zip unzip, появилась возможность выбора кодировки для распаковываемого файла.

Почему-то до сих пор, например, в debian нет такой возможности указать опцию для кодировки имен файла.

Помню как-то распаковывал архивы такие пару лет назад, но забыл как. Сейчас опять роюсь, вспоминаю.

 , ,

praseodim ()

Аэродинамическую задачу надо?

Форум — Talks

На дворе сами знаете что. Безопасно ли открывать окна в многоэтажном доме?

В чём симулировать такое?

 , ,

TooPar ()

libvirt guest: запретить смену IP

Форум — Admin

Категорически приветствую! Есть сервер с centos 7 где установлен libvirt и существуют 2 бриджа br0 (192.168.0.1/24) и br1 (8.8.8.8/24). При создании гостей интерфейсы последних просто добавляются в бридж и внутри устанавливается адрес. Так вот вопрос: А как запретить менять/удалять/добавлять адреса? Если, допустим, я создам какой-нить virbr средствами libvirt со встроенным его dhcp и при загрузке машина будет получать адрес оттуда, его ж всё равно можно будет руками сменить? И как в этом случае быть с машинами, где нужен только внешний адрес (Без NAT’a во всех его проявлениях) из br1 ?

 , ,

Grotesque ()

Не собирается firefox 75.0 (раунд 2)

Форум — Desktop

Я проапгрейдил clang до 10.0 и переустановил bindgen теперь другая ошибка:

 0:32.76 checking for clang for bindgen... /usr/lib/llvm/10/bin/clang++
 0:32.76 checking for libclang for bindgen... /usr/lib/llvm/10/lib64/libclang.so
 0:32.90 checking that libclang is new enough... yes
 0:32.90 checking bindgen cflags... -x c++ -fno-sized-deallocation -fno-aligned-new -DTRACING=1 -DIMPL_LIBXUL -DMOZILLA_INTERNAL_API -DRUST_BINDGEN -DOS_POSIX=1 -DOS_LINUX=1 -std=gnu++17
 0:32.90 checking for llvm_profdata... /usr/lib/llvm/10/bin/llvm-profdata
 0:32.97 checking for libffi > 3.0.9... yes
 0:32.99 checking MOZ_FFI_CFLAGS... -I/usr/lib64/libffi/include
 0:33.01 checking MOZ_FFI_LIBS... -lffi
 0:33.19 checking for nodejs... no
 0:33.19 ERROR: NODEJS must point to node 10.19 or newer; found node location: /usr/bin/node.

Вот как? Как они так зависимости прописывают? Как надо прописать более правильно?

 , ,

Einstok_Fair ()

OpenVPN, как получить доступ к двум локальным сетям, через два интерфейса на сервере?

Форум — General

Добрый день! на сервере, где установлен openvpn подключены две локальные сети. enp6s0 - 172.16.116.207/22 - 1 локальная сеть enp7s0 - 192.168.16.3/24 - 2 локальная сеть OpenVpn слушает 192.168.16.0 и клиент может получить доступ к машинам в данной сети Во второй же сети, можно достучаться только до хост машины 172.16.116.207

Хотел получить доступ ко всем серверам во второй локальной сети)

route на сервере

default         _gateway        0.0.0.0         UG    0      0        0 enp7s0
default         _gateway        0.0.0.0         UG    100    0        0 enp6s0
10.8.0.0        10.8.0.2        255.255.255.255 UGH   0      0        0 tun0
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
172.16.116.0    10.8.0.2        255.255.255.255 UGH   0      0        0 tun0
172.16.116.0    0.0.0.0         255.255.252.0   U     0      0        0 enp6s0
_gateway        0.0.0.0         255.255.255.255 UH    100    0        0 enp6s0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.16.0    0.0.0.0         255.255.255.0   U     0      0        0 enp7s0

На клиенте

0.0.0.0         10.8.0.1        128.0.0.0       UG    0      0        0 tun0
default         192.168.123.1   0.0.0.0         UG    100    0        0 enp3s0
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
91.238.231.83   192.168.123.1   255.255.255.255 UGH   0      0        0 enp3s0
128.0.0.0       10.8.0.1        128.0.0.0       UG    0      0        0 tun0
172.16.116.0    10.8.0.1        255.255.252.0   UG    0      0        0 tun0
192.168.123.0   0.0.0.0         255.255.255.0   U     100    0        0 enp3s0

Сам server.conf

port 5543
proto tcp
dev tun
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
client-to-client
push "route 10.8.0.0 255.255.255.0"
push "route 172.16.116.0 255.255.252.0"
route "10.8.0.0 255.255.255.0"
route "172.16.116.0 255.255.252.0"
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 1.0.0.1"
push "dhcp-option DNS 1.1.1.1"
push "redirect-gateway def1 bypass-dhcp"
dh none
ecdh-curve prime256v1
tls-crypt tls-crypt.key 0
crl-verify crl.pem
ca ca.crt
cert server_F83Sk5qKWpZKL5Xb.crt
key server_F83Sk5qKWpZKL5Xb.key
auth SHA256
cipher AES-128-GCM
ncp-ciphers AES-128-GCM
tls-server
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
status /var/log/openvpn/status.log
verb 3

 ,

eljaja ()

Помогите с XOR

Форум — Development

Привет всем!

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

Я изучаю формат двоичных данных одного из оффлайн-словарей, чтобы встроить его поддержку в свою свободную программу. В программе используется XOR, однако есть возможность добавлять свои данные. Данные кодируются без компрессии, байт-в-байт, кодировка cp1251. Например, вот какой фрагмент добавится, если в словаре создать комментарий и вписать в него нули (3 кавычки добавлены, чтобы не экранировать при необходимости):

"0000000000"
b'''\x18\x9f\xf0!\xec\xa0}\xefxq'''

NO  ORIG  INT1  INT2  OFFSET  DELTA
1   "0"   48    24    -24     -24  
2   "0"   48    159   111     135  
3   "0"   48    240   192     81   
4   "0"   48    33    -15     -207 
5   "0"   48    236   188     203  
6   "0"   48    160   112     -76  
7   "0"   48    125   77      -35  
8   "0"   48    239   191     114  
9   "0"   48    120   72      -119 
10  "0"   48    113   65      -7   

INT1 обозначает позицию кодируемого символа («0») в кодировке cp1251, INT2 - финальную позицию, OFFSET - смещение, DELTA - разницу между смещениями.

Заметил следующие особенности.

1) Кодирование зависит от длины фрагмента. Один и тот же символ будет закодирован по-разному в зависимости от длины фрагмента.

2) Если фрагменты одинаковой длины и отличаются, например, только конечные байты, то начальные байты будут одинаковы.

3) Обнаружил алгоритм для кодирования разных байтов, стоящих на одинаковых позициях (например, b"abc" -> b"abd"). За редким исключением, там зациклено смещение -2, -2, -2, +6, -2, -2, +10 для всей кодировки cp1251. Проблема в том, что мне надо знать, как меняются байты на разных позициях, т.е., не b"abc" -> b"abd", а, например, от чего зависит смещение b"d" в b"abcd", если смещение a, b и c известно.

Например:

"bbbbbb"
b'''`\xbe\xe4\x81\x19\x97'''

NO  ORIG  INT1  INT2  OFFSET  DELTA
1   "b"   98    96    -2      -2   
2   "b"   98    190   92      94   
3   "b"   98    228   130     38   
4   "b"   98    129   31      -99  
5   "b"   98    25    -73     -104 
6   "b"   98    151   53      126  

"bbcbbb"
b'''`\xbe\xfb\x81\x19\x97'''

NO  ORIG  INT1  INT2  OFFSET  DELTA
1   "b"   98    96    -2      -2   
2   "b"   98    190   92      94   
3   "c"   99    251   152     60   
4   "b"   98    129   31      -121 
5   "b"   98    25    -73     -104 
6   "b"   98    151   53      126  

"abc"
b'''JD%'''

NO  ORIG  INT1  INT2  OFFSET  DELTA
1   "a"   97    74    -23     -23  
2   "b"   98    68    -30     -7   
3   "c"   99    37    -62     -32  

"abcdef"
b'''a\xbeB\xd1f\xb1'''

NO  ORIG  INT1  INT2  OFFSET  DELTA
1   "a"   97    97    0       0    
2   "b"   98    190   92      92   
3   "c"   99    66    -33     -125 
4   "d"   100   209   109     142  
5   "e"   101   102   1       -108 
6   "f"   102   177   75      74   

Какой алгоритм используется? Извините, если туплю, но у меня небольшой опыт работы с бинарниками, а в шифровании вообще не разбираюсь.

 ,

anonymizer ()

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

Форум — Development

Визуалам, таким как я, зайдёт норм. Рассказывает про базовые, но тем не менее фундаментальные вещи. (Хотя я только 4 ролика глянул , может я не прав).

Вот ещё от @xaizek ваще крутые визуализации

 ,

LINUX-ORG-RU ()

all.me| Data engineer (проектная работа 2-3 месяца)

Форум — Job

О компании:

Мы международная IT-компания со штаб-квартирой в Ирландии. Уже больше 5 лет наша профессиональная команда занимается разработкой проектов в области финтех, социальных медиа и e-commerce.

Продукты, над которыми мы работаем:

meNetwork социальная сеть с системой вознаграждения пользователей meMarket торговая площадка mePay платежный сервис

На данный момент мы ищем на фриланс Data engineer (проектная работа 2-3 месяца)

Обязанности:

Сбор и обработка (структурирование, анализ) информации, поступающей из разных источников; Разработка архитектуры статистике и аналитике в системах Android и iOS; Формирование аналитических отчетов по полученным данным; Проверка и утверждение результатов сбора информации; Подготовка презентационных материалов; Изучение и анализ современных информационно-коммуникационных технологий.

Стек: Android: Kotlin Clean Architecture RxJava 2, RxAndroid KOIN iOS: Swift MVVM + Clean RxSwift Realm Moya Верстка UI в коде

Требования:

Наличие высшего образования (информационные технологии, информационная безопасность, прикладная математика, программирование); Релевантный опыт работы от 2 лет; Технические знание в области внедрение разных систем аналитики и их настройка; Навык работы с большим массивом данных; Знание принципов компьютерной и сетевой безопасности; Опыт разработки технической и аналитической документации; Навыки делового письма, опыт подготовки аналитических докладов, отчетов; Системное мышление, аналитические способности; Исполнительность, коммуникабельность, умение работать в команде, пунктуальность.

Сумма вознаграждения обсуждается индивидуально.

По всем вопросам вы можете обратиться по контактам указанным ниже: тел. +7 (996) 009-06-82 (Telegram, WhatsApp, Viber) E-mail. Oleg.Oltybaev@all.me

 ,

Oleg_Oltybaev ()

Vim + Markdown.

Форум — Desktop

Доброго времени!
Как «научить» Vim корректно понимать разметку файлов Markdown (*md)?
Т.е. объясню «на пальцах». На данный момент, к примеру, заголовки в тексте файлов .md, которые выделены «#» отображаются в Vim следующим образом.

# Заголовок 1 - нормально.
## Заголовок 2 - нормально.
### Заголовок 3 - курсив!!!
#### Заголовок 4 - курсив!!!
##### Заголовок 5 - курсив!!!
###### Заголовок 6 - курсив!!!

Хотя курсива там быть не должно.
Вот наглядный пример.

https://b.radikal.ru/b39/2004/4b/54634e206ee3.png

Так же хотелось бы, чтобы Vim «научился» обображать не только курсивный шрифт, но и жирный. Про зачеркнутый (я так думаю) речь заводить не стоит, ибо вряд ли он поддерживает его отображение.

 ,

parnyagan ()

Внешний NAT на Debian

Форум — General

Здравствуйте. Нужно настроить внешние сервера NATa, которые подключены к Juniper mx240.

Абоненты с браса mx240 - 10.10.0.0/16

Траф с mx240 заворачиваю в NAT-1.

eth1 - in

eth2 - out

Подробней на схеме

Схемка - http://i.piccy.info/i9/036637ad856ee48762c520e4d91e7e13/1586351056/89438/1371817/1.png

Настройки NAT-1

# ip r
default via 10.250.0.1 dev eth1 onlink 
10.0.0.0/8 dev eth2 scope link 
10.250.0.0/30 dev eth1 proto kernel scope link src 10.250.0.2 
10.250.1.0/30 dev eth2 proto kernel scope link src 10.250.1.2

# iptables -S -t nat
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -o eth1 -j MASQUERADE

Но что-то нет кина

 , ,

khobta ()

firewalld и форвард.

Форум — General

Всем доброго времени суток. Ребят подскажите, плз, по firewalld. Есть машина на CentOS 8, у которой 2 адаптера (ens1 и ens2) смотрят в публичную сеть(172.16.0.101 и 172.16.0.102) и 1 (ens0) в приватную (192.168.0.100). В приватной сети есть 2 мультипортовых сервера (задействовано много портов, в том числе и динамически), с ip 192.168.0.201 и 192.168.0.202. Так вот задача, весь трафик пришедший на интерфейс ens1 (172.16.0.101) пробросить на ip 192.168.0.201 через ens0. А трафик на ens2 (172.16.0.102) должен уходить на 192.168.0.202. Как это реализовать на firewalld?

 ,

GrafAtRuss ()

chroot /mnt permission denied /bin/bash ?

Форум — Linux-install

Здравствуйте,запутался в трех соснах. Ситуация такая, решил перенести систему (Ubuntu 18.4) c одного ноута на другой + вынести home, root, tmp, var на отдельный диск т.к корень будет размещаться на ssd. Утилитой gparted разметил диски, tar-ом создал архивы корня и перечисленных папок, загрузился c одноименного установочного диска (Ubuntu 18.4) и вроде бы как казалось дело осталось за малым, установить загрузчик Grub. Пытался следовать данной инструкции https://losst.ru/ustanovka-zagruzchika-grub.

Делаю: $ sudo -i

sudo mount /dev/sdb1 /mnt

sudo mount /dev/sda3 /root

sudo mount /dev/sdb4 /home

sudo mount –bind /proc /mnt/proc

sudo mount –bind /dev /mnt/dev

sudo mount –bind /sys /mnt/sys

sudo chroot /mnt /bin/bash

chroot filed to run command ‘/bin/bash’: Permission denied

Предполагаю что либо как то не так распаковал архив. Не понимаю откуда запускается ‘/bin/bash’ из /mnt/bin/bash или из текущего корня?

Больше конечно же запутался с разметкой дисков (машина на которую пытаюсь перенести систему - ASUS REPUBLIC OF GAMERS вроде как с BIOS, хотя предустановленная на ней Windows 8 стояла на разделе gpt если верить выводу parted). Я верно понимаю что BIOS умеет работать с gpt, (вроде как в самой gpt предусмотрена совместимость с mbr)?

Так же попытался следовать данной инструкции (https://itproffi.ru/vosstanovlenie-zagruzchika-grub-v-linux/) загрузить ОС из консоли grub c LiveCD, но дальше initramfs дело не пошло.

Помогите разобраться хотяб c chroot?

 

ivi81 ()

Настройка Nginx

Форум — Admin

Всем привет коллеги. Прошу помощи у экспертов по настройке nginx. Данный сервис у меня поднят на centos 7. Разобрался с самой базовой настройкой сервиса, на текущий момент удачно проксирую https запросы снаружи внутрь. Но есть одна особенность, которую я пока не знаю как разрулить. Объясню по-этапно

  1. имеется nat трансляция на cisco маршрутизаторе по 443 порту на LAN адрес прокси сервера с nginx.
  2. имеется множество A записей во внешних dns зонах, которые смотрят на внешний транслируемый ip адрес.
  3. Собственно сама проблема. При переходе по https://внешний_ip_адрес/ открывается первый настроенный .conf на nginx, а конкретнее Битрикс, который я настроил в первую очередь.

Теперь вопрос, можно ли как то настроить nginx, чтобы при переходе по транслируемому ip адресу просто показывал к примеру 403 ошибку, да что угодно, только не сам сервис.

Заранее спасибо!

 , ,

gidrotormoz ()

L2TP/IPsec - пропадает связь

Форум — Admin
$ inxi -S
System:    Host: ryzen Kernel: 4.20.12-042012-generic x86_64 bits: 64 Desktop: KDE Plasma 5.12.6
           Distro: Ubuntu 18.04.1 LTS

Подключаюсь к VPN по L2TP/IPsec, но через некоторое время связь пропадает, просто перестают пинговаться ip-адреса в той локалке. В качестве обхода удается поднять сеть переподключением.

Использую вот это

$ dpkg -l | grep 'libreswan'
ii  libreswan                                                   3.23-4                                                      amd64        Internet Key Exchange daemon
$ dpkg -l | grep 'l2tp'
ii  xl2tpd                                                      1.3.10-1ubuntu1                                             amd64        layer 2 tunneling protocol implementation
Настроенное вот так
$ cat /etc/ipsec.conf
# /etc/ipsec.conf - Libreswan IPsec configuration file
#
# Manual:     ipsec.conf.5

config setup
        # Normally, pluto logs via syslog. If you want to log to a file,
        # specify below or to disable logging, eg for embedded systems, use
        # the file name /dev/null
        # Note: SElinux policies might prevent pluto writing to a log file at
        #       an unusual location.
        #logfile=/var/log/pluto.log
        #
        # Do not enable debug options to debug configuration issues!
        #
        # plutodebug "all", "none" or a combation from below:
        # "raw crypt parsing emitting control controlmore kernel pfkey
        #  natt x509 dpd dns oppo oppoinfo private".
        # Note: "private" is not included with "all", as it can show confidential
        #       information. It must be specifically specified
        # examples:
        # plutodebug="control parsing"
        # plutodebug="all crypt"
        # Again: only enable plutodebug when asked by a developer
        #plutodebug=none
        #
        # NAT-TRAVERSAL support
        # exclude networks used on server side by adding %v4:!a.b.c.0/24
        # It seems that T-Mobile in the US and Rogers/Fido in Canada are
        # using 25/8 as "private" address space on their wireless networks.
        # This range has never been announced via BGP (at least up to 2015)
        virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v4:100.64.0.0/10,%v6:fd00::/8,%v6:fe80::/10
        nat_traversal=yes
        protostack=netkey            # default is auto, which will try netkey first
        plutoopts="--interface=enp30s0" # Replace eth0 with your network interface or use %defaultroute to use default route

# For example connections, see your distribution's documentation directory,
# or https://libreswan.org/wiki/
#
# There is also a lot of information in the manual page, "man ipsec.conf"
#
# It is best to add your IPsec connections as separate files in /etc/ipsec.d/

conn L2TP-PSK
     authby=secret
     pfs=no
     auto=add
     keyingtries=3
     dpddelay=30
     dpdtimeout=120
     dpdaction=clear
     rekey=yes
     ikelifetime=8h
     keylife=1h
     type=transport
     left=192.168.1.2           # Replace with your local IP address (private, behind NAT IP is okay as well)
     leftprotoport=17/1701
     right=X.X.X.X            # Replace with your VPN server's IP
     rightid=10.0.0.207
     rightprotoport=17/1701

include /etc/ipsec.d/*.conf
$ cat /etc/xl2tpd/xl2tpd.conf
[lac vpn-name]
lns = X.X.X.X
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
length bit = yes
Про настройку сервера ничего сказать не могу, к нему нет доступа, знаю только что там Оффтопик Сервер. Подключаюсь таким скриптом
systemctl start ipsec.service
sleep 2
systemctl start xl2tpd.service
ipsec auto --up L2TP-PSK
echo "c vpn-name" > /var/run/xl2tpd/l2tp-control
sleep 2
ip route add 10.0.0.0/21 via 10.10.0.1 dev ppp0

 , ,

damix9 ()

Middle+ Разработчик С++/Rust

Форум — Job

Вакансия на hh: https://spb.hh.ru/vacancy/36445992

О проект

Мы занимаемся разработкой probe monitoring решения и около этой темы. Довольно подробно описано здесь. https://www.radcom.com/uploads/pdf/NFV/RADCOM%20Service%20Assurance.pdf

Вакансия больше под С++, но фактически решение пишется на 2х языках.

От Вас мы ждём:

  • Отличное знание современного C++ и STL;
  • Опыт разработки для GNU/Linux;
  • Понимание архитектуры современных компьютеров и операционных систем;
  • Опыт разработки многопоточных приложений;
  • Опыт работы с lock/wait-free алгоритмами и структурами данных;
  • Опыт разработки нагруженных систем;
  • Навыки оптимизации производительности (по времени выполнения и по используемой памяти);
  • Опыт написания структурированного и понятного (другим людям) кода;
  • Опыт работы в команде. Возможность простой коммуникации.

Будет плюсом:

  • Знакомство с Rust;
  • Опыт разработки высоконагруженных распределённых систем;
  • Опыт работы с MySQL и Clickhouse;
  • Linux на уровне продвинутого пользователя;
  • Готовность делать изменения или даже начать все с нуля.

ЗП

Вилка на руки 130-180тр

Коммуникации

лучше ответить здесь же личным сообщенем, либо написать мне на почту askashi7 аt mts точка ru

 , ,

kasans ()

Развернуть.

Форум — Development

Здравствуйте всем.

Коллеги подскажите пож. Нарисовал конструктором небольшое окно с парой фреймов, кнопок прочих виджетов. Однако при нажатии =Развернуть= увеличивается только внешние границы программы. Остальное внутри остается прежним. Как победить?

Tcl/Tk Паковщик place.

 ,

Bootmen ()

Софт для замера fps в играх + датчики температур

Форум — Desktop

Есть что-то похожее на виндовый FPSMonitor?

 

KRex ()

Deus Ex начался

Форум — Talks

Старстрайпнутым морпехам будут вживлять имплант в задний проход. Чтобы спали 8 часов и не гадили от филлипинских бургеров с лягушками

https://www.darpa.mil/news-events/2020-04-06

 

TooPar ()

RSS подписка на новые темы