LINUX.ORG.RU

Сообщения Atlant

 

более или менее полноценный typedef в c#

Залез тут в древний код на c# дабы немного подшаманить.
Просто тупо сменить тип используемой переменной вместо одного базового типа (int) сделать другой базовый тип (Int64 ).
А поскольку код разбит по разным файлам хотел сделать новым «типом» аля typedef в «С».
Оказалось фиг вам, можно ввести «using NewType = OldType» и это в каждом файле нужно вводить. Но это же дикость! Или я не достаточно смотрел справку?

Как это сделать для всех файлов разом??
P.S. общий namespace - не помогает для «базовых» типов.

 

Atlant
()

Знатокам С/С++

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

Есть ли подвижки по этому весьма неплохому «синтаксическому сахару»?

 

Atlant
()

Непонятка с ядром...

Кратко:
- серверное железо древних лет(>10).
- 4 hdd(3 * raid5mdadm +1 spare)
- ядро версии 6.13 и ниже - всё ок...
- накатываю ядра 6.17,6.18 - проблема.
Выглядит загрузка следующим образом:
- старт grub - ok
- загрузка ядра + initramfs - ок, сообщения ядра без проблем вижу.
- старт загрузочных скриптов с initramfs - фиг вам, ни одного сообщения.

Графического режима или там quiet - не стоит. Паники - тоже нет.
Ждал минут 15 - без изменений.
Сравнивал ".config" от ядер - ничего подозрительного,только новые устройства в основном отключенные. Отрубил защиту от процессорных уязвимостей - без результата. Посмотрел краткие изменения в выпуске ядер - вроде ничего по отношению к block devices не анонсировалось.

Если смотреть в момент загрузки на активность жестких дисков - то явно видно в первые секунды все 4, потом только диски что уже участвуют в raid секунд 40 активно синхронно мигают и после редко .

Пробовал поставит параметр loglevel=3 или loglevel=7 - ни чего интересного.
Думал может где то библиотека забыта для программ initramfs - посмотрел, все ок.

Попробую ещё запустить ядро в qemu.
Что ещё может подскажите?
P.S. netconsole - пока не хочу городить, да и думаю смысла нету.

 ,

Atlant
()

make - смешаны неявные и обычные правила: устаревший синтаксис

Краткая суть.
Решил потестить новое ядро linux-2.6.17.14

cd /usr/src/ 
git clone git://git.homelab/git.kernel.org.stable.git --depth 1  --branch v2.6.17.14 --single-branch linux-2.6.17.1
cd linux-2.6.17.1
zcat /proc/config.gz > .config
make  oldconfig


выдает

Makefile:406: *** смешаны неявные и обычные правила: устаревший синтаксис
Makefile:1306: *** смешаны неявные и обычные правила: устаревший синтаксис
make: *** Нет правила для сборки цели «oldconfig».  Останов.


версия make - «GNU Make 4.3\nЭта программа собрана для x86_64-pc-linux-gnu»

Может кто потестить у себя?

 ,

Atlant
()

Длинные имена... как хранить?

Собственно суть в subj.
Не редкость в торрентах и/или рабочих корпоративных системах хранятся файлы с длинными именами на русском языке. Для себя переименовать обычно не проблема, исключая торренты(вроде и там можно переименовать, но не все клиенты поддерживают это).
Из файловых систем поддерживающие длинные имена (Linux) был reiserfs - которого ныне удалили из ядра.
Из оставшихся - по сути только ZFS наверное.. Да ещё привлекательно выглядит HAMMER под DragonFly BSD.
Для ext4 готовят установку кодировки, но ещё не доделана, поэтому только UTF8, соответственно длинна режется вдвое.

Сижу перед выбором...

Кто как решает проблемы(кроме административных способов)?
Оптимально также сообщить - для дома или для конторы.

 , , long filenames,

Atlant
()

TLS Gateway для произвольного TCP потока.

Тут в очередной раз смотрел на RDP и его вариантом gateway под windows. Нашел даже некие варианты gateway под GPL без windows server.

И возникла мысль «а есть ли TLS Gateway для _произвольного_ протокола TCP/IP»?

Т.е. TLS соединение на порт XXX с клиентским сертификатом с CN=XMAN и/или subjectAltName=XMAN.HOST.LAN на Gateway, который пересылает на сервер XMAN.HOST.LAN:XXX .

При поиске в инете, выскакивают некие варианты для ГОСТ шифрующего шлюза, а для классического шифра мало.

Из осмотренного:
- nginx + stream = что то сомнения в преобразовании TLS в обычный TCP, нужно проверять, но возможно сгодится. Хотя вариант прописывания в конфиге ассоциации между клиентским сертификатом и требуемым сервером не оптимально.
- HAproxy - тоже не вариант похоже.

 ,

Atlant
()

выбор server-side фреймворка

Есть древнее не сильно крупное поделие на ASP.NET локального разлива.
Похоже добираемся до переделки поделия.
Вопрос - что есть из схожего по функционалу ASP.NET с работой под linux.
Выбор «mono/dotnetcore» - не предлагать.
Особо ценно мнение тех кто работал с asp.net.
Выбор языка - вторично.

 ,

Atlant
()

git - как найти в какую ветку интегрирован патч с определенной хеш-суммой.

Тема для продвинутых в GIT, к которым я никак не отношусь.

Subj! Т.е. есть патч ядра к примеру с хэшем f8dfda798650241c1692058713ca4fef8e429061.
Как определить в какой версии он принят?
Речь не идет о конкретном патча, а об общем случае!

 ,

Atlant
()

Выбор фильтрующего DNS resolver'а

Краткое описание текущей ситуации - в качестве ресольвера в многогранной локальной сети NAMED/BIND.
Проблема - порой сервисы имеют несколько адресов, к примеру host.domain.xxx с адресами (10.0.0.1, 192.168.0.1,192.168.2.1, 5.6.7.8 , 1.2.3.4 и т.д.)

В named есть возможность по приоритезации ответов, т.е. можно настроить если с адреса 10.0.0.0/24 запрашивают http://www.domain.xxx - то первым отправляют адрес 10.0.0.1. Увы, но этого не хватает. Нужна полноценная фильтрация - т.е. для сети 10.0.0.0/24 выдавать только адрес 10.0.0.1 , а другие не отправлять.

Видел модуль для фильтрации IPv6, а вот того что нужно, пока не встречал.

Может есть у кого предложения по этому поводу?

 , ,

Atlant
()

А че случилось с Gentoo?

И https://wiki.gentoo.org/ и https://bugs.gentoo.org/ - отвечают сбоями.

 

Atlant
()

Обновление корневого сертификата(с тем же приватным ключем)

Краткая суть:
- Есть свой самодельный корневой сертификат. Выпущено и используется приличное количество как клиентских, так и промежуточных сертификатов.
- В корневом сертификате в свое время указали почту (emailAddress=ABC@EXAMPLE.COM). Почта на текущий момент корректная, но планируется сменить домен.
- При попытке перевыпустить корневой (с тем же номером, публичным ключем и т.д.) оказывается что он не пригоден для проверки поскольку emailAddress становится другим.

ВОПРОС:
- это действительно правильная проверка , т.е. идет сравнение не по CommonName && SerialNumber && Autority Key Identificator && Subject Key Identificator/Issuer , в так же и по «emailAddress=ABC@EXAMPLE.COM,CN=XX,OU=CA XX,O=XXCorp,L=XX City,ST=XX Locationy,C=XX Country»? Или это некорректность конкретной программы?

 ,

Atlant
()

PostgreSQL домены как хранятся?

Вопрос:
Влияет введенные ограничения на домен или просто колонку в postgresql на способ хранения или нет?
Т.е. если колонка может хранить только числа 1, 2 и 3. И это ограничение встроено или в таблицу или в домен, то означает ли что реально это значение храниться КОМПАКТНО в два бита.
Или все эти ограничения на это никак не влияют?

Так же интересно по иным СУБД?

 ,

Atlant
()

openrc && ppp(pppoe) && (статус 'starting', а не 'started', хотя уже давно стартовало!)

кратко:
- операционка с openrc & netifrc
- сетевое подключение PPPOE
ppp уже давно соединилось и свободно сеть работает, а вот сервис /etc/ini.d/net.ppp1 все так в статусе «starting» вместо «started».
Соответственно зависимые сервисы - не стартуют.
Куда лезть и на что смотреть?

P.S. В логи pppd - смотрел, всё прекрасно стартовало.

 ,

Atlant
()

Quad-rank memory && (BIOS || UEFI) - may be add support?

кратко:
Досталась оперативка на 32Гига, ставлю в сервер - не понимает, ругается на «Invalid DIMM Type».
Судя по доке на сервер, он понимает максимум двух-ранговую память.
А плашки quad-rank, увы =(.
Вопрос:
Технически их можно завести, или это «full unreal» и требует аппаратных изменений. Или это чисто программное и стоит поискать модификацию биоса?

P.S. оперативка DDR3 REG ECC (как рабочая так и неопознаваемая), сервер тестовый(крутить биос можно).

P.P.S. не охота возвращять планку, объем очень хороший ;).

 , quad-rank

Atlant
()

Нет входящих пакетов UDP на DNS сервер.

Ситуация кратко:
- есть два собственных авторитарных DNS сервера с внешними адресами IP1_SRV_RT (провайдер Ростелеком) и IP2_SRV_ALT (провайдер Транстелеком).

- есть несколько сторонних тестовых клиентов с разными провайдерами(как Ростелеком, так и иные, в том числе мобильные операторы).

- при тестирование с клиентов вижу запросы(на сервере) и ответы (на сервере и клиенте) при обращении на IP_SRV_ALT и по TCP и по UDP. [ИТОГ - ОК]

- при тестирование с клиентов вижу запросы(на сервере) и ответы (на сервере и клиенте) ТОЛЬКО при обращении на IP_SRV_RT по TCP. [ИТОГ - FAIL]
По протоколу UDP - нет вообще входящих запросов от тестовых клиентов(смотрю через tcpdump, т.е. до firewall). Но если смотреть в целом через TCPDUMP я вижу запросы по UDP и TCP от других систем.

Т.е. в tcpdump нету вообще запросов от тестовых клиентов по протоколу UDP, а только если включаю TCP - то тогда есть и запросы и ответы.

Если есть сотрудники RT - просьба прокомменировать ситуацию, поскольку официальным путем будет очень долго.

Для всех остальных владельцев собственных авторитарных DNS(с провайдером RT) - просьба проверить у себя корректно ли вы получаете запросы UDP на свой сервер.

Проверить можно командой

 dig -t A ВАШ_ДОМЕН @ВАШ_СЕРВЕР_DNS 

 

Atlant
()

Нужна ссылка на документацию - как определяется для Исходящего запроса Исходящий IP адрес

subj!
Когда то давно видел немного сотносящееся с данным вопросом - видел в связке с «source-based routing». Но это было «давно и неправда». А сейчас снова понадобилось.
P.S. в основном конечно нужна дока на linux, но и по остальным системам не откажусь.

 

Atlant
()

Как перекинуть логи из контейнера LXD на другой внешний SYSLOG сервер, если в контейнере debian 11 с systemd-journald.

Базовый вопрос:
Как перекинуть логи из контейнера LXD на другой внешний SYSLOG сервер, если в контейнере debian 11 с systemd-journald.
Желательные условия - не менять journald на syslog-подобные внутри контейнера и не ставить доп программы в контейнер.

По сути можно настроить journald на вывод в «/var/...../socket» формата SYSLOG.
А вот как этот «/var/...../socket» теперь хотя бы получить на HOST чтобы его прочесть HOSTовым syslog-демоном?

Т.е. базовый вопрос можно решить перекинув именованый socket от HOST в CONTAINER , но вот как?

P.S. возможно тема избитая, но пока я новичек в LXC/LXD.

P.P.S. на HOST стоит только SYSLOG сервер без какого либо systemd. Поэтому перекинуть по протоколу journald - не получится.

 ,

Atlant
()

вопрос спецам по микротикам

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

# :foreach item in=[ /ip firewall filter find dynamic=no ] do { /ip firewall filter remove $item }
/ip firewall filter remove [/ip firewall filter find dynamic=no]
# :foreach item in=[ /ip firewall nat find dynamic=no ] do { /ip firewall nat remove $item }
/ip firewall nat remove [/ip firewall nat find dynamic=no]
# :foreach item in=[ /ip firewall address-list find dynamic=no ] do { /ip firewall address-list remove $item }
/ip firewall address-list remove [/ip firewall address-list find dynamic=no]

/ip firewall address-list
add address=1.1.1.1 list=ALLOW_IP
add address=2.2.2.2 list=ALLOW_IP

# разрешить уже установленные и ассоциированные с установленными
/ip firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=accept chain=output comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related
add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=established,related,untracked

# выкинуть сбойные пакеты
/ip firewall filter
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=output comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid

/ip firewall filter
add action=accept chain=input comment="defconf: accept to local loopback" dst-address=127.0.0.0/8 src-address=127.0.0.0/8
add action=accept chain=input comment="allow from LAN to mictotik" in-interface-list=LAN
add action=drop   chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN

add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec
add action=accept chain=forward connection-type=ftp dst-port=21 dst-address-list=ALLOW_IP protocol=tcp
add action=drop   chain=forward comment=" drop any another packages by manages instruction 2022-06-27"

/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" disabled=yes ipsec-policy=out,none out-interface-list=WAN
add action=masquerade chain=srcnat comment="defconf: Masquarade output packages for WAN" out-interface-list=WAN

# внешнее логгирование
:if ([/system logging print count-only where action=syslogexternal]=1) do {
	/system logging action add name=syslogexternal remote=XXX.XXX.XXX.XXX target=remote
	/system logging add action=syslogexternal
	}
	
# :do {/system watchdog set no-ping-delay=15m ping-timeout=2m watch-address=YYY.YYY.YYY.YYY.YYY; } on-error={:put "fail add watchdog #1"}
# :do {/system watchdog set ping-start-after-boot=15m ping-timeout=2m watch-address=YYY.YYY.YYY.YYY.YYY; } on-error={:put "fail add watchdog #1"}



Но не прошло.
Только после полного разрешения для IP и без указания «connection-type»
/ip firewall filter
add action=accept chain=forward  dst-address-list=ALLOW_IP protocol=tcp


Почему?
P.S. скрипт несколько почищен от иных частных правил.

 

Atlant
()

есть проблема с networkd+bridge+gw(давняя)

Суть:
Использую для настройки проводной сети systemd-networkd. Если я включаю бридж для сетевой карты(автоподхват), то у меня теряется маршрут по умолчанию(в логах его видно, а в системе после загрузки - нету)
Обычный системник+gentoo, проверялись разные версии systemd - разницы не заметно.

Если убирать бридж, то все без проблем. Но поскольку активно использую виртуалки - бридж нужен.

Текущие логи

июн 20 16:29:07 gentoo systemd[1]: Starting Network Configuration...
июн 20 16:29:07 gentoo systemd-networkd[380]: lo: Link UP
июн 20 16:29:07 gentoo systemd-networkd[380]: lo: Gained carrier
июн 20 16:29:07 gentoo systemd-networkd[380]: Enumeration completed
июн 20 16:29:07 gentoo systemd[1]: Started Network Configuration.
июн 20 16:29:14 gentoo systemd[1]: Stopping Network Configuration...
июн 20 16:29:14 gentoo systemd[1]: systemd-networkd.service: Deactivated successfully.
июн 20 16:29:14 gentoo systemd[1]: Stopped Network Configuration.
июн 20 09:29:23 mycomp systemd[1]: Starting Network Configuration...
июн 20 09:29:29 mycomp systemd-networkd[516]: /etc/systemd/network/81-brlocal.network: Route section without Gateway=, Destination=, Source=, or Prefe>
июн 20 09:29:29 mycomp systemd-networkd[516]: brlocal: netdev ready
июн 20 09:29:29 mycomp systemd-networkd[516]: lo: Link UP
июн 20 09:29:29 mycomp systemd-networkd[516]: lo: Gained carrier
июн 20 09:29:29 mycomp systemd-networkd[516]: Enumeration completed
июн 20 09:29:29 mycomp systemd[1]: Started Network Configuration.
июн 20 09:29:30 mycomp systemd-networkd[516]: enp3s0: Link UP
июн 20 09:29:33 mycomp systemd-networkd[516]: enp3s0: Gained carrier
июн 20 09:29:33 mycomp systemd-networkd[516]: brlocal: Link UP
июн 20 09:29:34 mycomp systemd-networkd[516]: brlocal: Gained carrier
июн 20 09:29:34 mycomp systemd-networkd[516]: brlocal: DHCPv4 address 10.0.0.6/16, gateway 10.0.0.254 acquired from 10.0.5.254
июн 20 09:29:44 mycomp systemd-networkd[516]: virbr0: Link UP



Конфигурационные файлы(все что есть в /etc/systemd/network/ )
P.S. не смотрите на лишние записи в конфигах - это были попытки устранить данную проблему

80-brlocal.netdev
 
[NetDev]
Name=brlocal
Kind=bridge
MACAddress=XX:XX:XX:XX:XX:XX


81-brlocal.network
[Match]
Name=brlocal

[Network]
DHCP=ipv4
BindCarrier=enp3s0
LinkLocalAddressing=no

[DHCPv4]
MaxAttempts=3

[Route]
GatewayOnlink=true


enp3s0.network
[Match]
Name=enp3s0
[Network]
Bridge=brlocal

 

Atlant
()

Сокеты. Определить адрес IP сервера при подключении клиента.

Суть : Есть программа-сервер слушающие по TCP/IP все интерфейсы(их достаточно много, в том числе несколько интерфейсов от провайдеров.
Задача : отследить на сервере на какой адрес (IP) сервера подключается клиент.

server_address.sin_family = AF_INET;
server_address.sin_addr.s_addr = htonl(INADDR_ANY);

Вопрос : Как можно (желательно кроссплатформенно, но не критично, достаточно linux) определить на какой именно IP сервера пришел подключающийся клиент.
В «accept» есть информация похоже только о клиенте.

P.S. Альтернативный вариант логгирования через iptables, пока не интересует, надо средствами самого программы1-сервера.

 

Atlant
()

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