LINUX.ORG.RU

Сообщения NIR

 

Окупить собственный сервер

Есть некая машинка, которую я купил за собственные деньги, но дома её держать не могу (сервер шумный, да и перегреется). Размещение в ЦОД стоит 2500-4000 рублей в месяц, что для меня дороговато. На машинке FreeBSD с SSD дисками на ZFS.

Хочу вывести оборудование на точку безубыточности, чтобы оно приносило пользу.

Преимуществ перед другими игроками рынка не имею кроме того, что я резко негативно отношусь к агрегации персональных данных и метаданных, и, не буду никуда сливать и обрабатывать личную информацию.

Вопрос: может, кто из форумчан нуждается в каких-либо сервисах, за которые готов отчислять средства на обслуживание сервера? Я тоже буду пользователем, ну и админом заодно. При чём мне можно звонить круглосуточно и договориться о помощи в решении различных проблем. Полагаю, это приятнее, чем техподдержка обычных хостеров.

 , , , ,

NIR
()

Миграция на FreeBSD

Всем доброго дня.

В какой-то момент я решил мигрировать с Manjaro Linux на FreeBSD 11.1. Очень жду выхода релиза, а всё по одной причине:

Есть флешка eMMC (не сильно разбираюсь, но на ней написано UHS-I, Class 10, SDXC) на 64 Гб. Вроде в 11.1 как раз должны прикрутить поддержку таких флешек. И вот ОС я хочу установить на эту флешку.

Прошу совета у тех, кто сталкивался с FreeBSD плотнее:
- Надо ли создавать на флешке GPT-разметку, если буду ставиться на ZFS?
- Может ли оно ставиться/грузиться с UEFI?
- Есть ли смысл глядеть на TrueOS? Какие плюсы по сравнению с FreeBSD?
- Есть ли в портах/репозиториях такие вещи как: LibreSSL, OpenNTPD, fetchmail, procmail, tilde/jed, mutt/NeoMutt, abook, calcurse, OpenJDK, компилятор Rust, Tcl/Tk, sqlite3, PostgreSQL, Metasploit, dvtm, gnupg2, Mono, FreeCAD, LibreCAD, BRL-CAD, OpenSCAD, Inkscape, GIMP, ELinks, mpv, LibreOffice?
- Устраивает ли поддержка UTF-8 в консоли, или косячная?
- Есть ли поддержка AMD KVM (забыл, как оно правильно называется), qemu, libvirt?

P. S.: Нет, мне не лень искать ответы и хэндбук я читал (и не только его), но очень хочу услышать советы/мнение реальных пользователей. Буду рад любым рекомендациям по адаптации в новой среде.

 

NIR
()

Фильтрация DNS ANY через cBPF

Приветствую уважаемое сообщество.

Будучи обычным «админом локалхоста» столкнулся с задачей:
Необходимо на уровне файервола (до попадания пакета к демону BIND9) фильтровать пакеты с запросом DNS ANY. По сути надо в кадре DNS после доменного имени найти последовательность 0x00FF0001 (QTYPE ANY, CLASS IN).

Условия задачи и проблемы, с которыми я столкнулся:
- BIND9 не патчим, пользуемся ванильной сборкой;
- Модуль string для iptables отрабатывает не совсем хорошо, да ещё и создаёт большую нагрузку.
- Модуль u32 не даёт достаточной гибкости, чтобы вычислить требуемое смещение для сравнения.
- Кадр DNS QUERY содержит также анонс EDNS(0), так что прочитать последние 4 байта в пакете уже не канает.
- Надо рассчитывать на то, что доменное имя может иметь произвольную длину.

В ходе исследования вопроса я пришёл к выводу, что наиболее разумный вариант - написать код для регистровой машины cBPF. Писать решил сразу на ассемблере cBPF, так как на сишечке - лютый геморрой и куча промежуточных ступеней. Перевожу в опкоды с помощью компилятора bpfc из пакета netsniff-ng. Отлаживаю в bpf_dbg из сборки Cloudflare bpftools.

Сам код фильтра такой:

; Check if we've got the IP packet on top of Ethernet frame:
check_ip:
	ldh [12]                ; Load the value from offset 12 into A register.
	jneq #0x800, pass       ; Check if we're dealing with IP packet or pass it AS IS.

; Check the protocol field for packet type == 17 (UDP)
check_proto:
	ldb [23]                ; Check. tcpdump has advised me to use offset 23 instead of 27.
	jneq #0x11, pass        ; Pass the packet if it's type is not UDP.

; Check for the packet dport == 53.
check_dport:
	ldh [36]                ; Load the u16 into A register from offset 36.
	jneq #0x35, pass        ; Check if the dport is 53.

; Check if we have the unfragmented packet (or the first fragment).
check_fragmentation:
	ldh [20]                ; Skip all headers right to UDP payload (Load UDP Fragment Offset).
	jset #0x1fff, pass      ; Returns 0. Test if we have the unfragmented packet or packet's first fragment, drop the packet otherwise.
	ldxb 4*([14]&0xf)
	ldb [x + 24]
	jset #0x80, pass

; Check for DNS QTYPE == ANY and QCLASS == IN
find_qtype:
	ldb [54]               ; Load first byte of the query RR into A. It contains relative count/offset of query bytes or 0x00 in the end.
	add #0x37              ; Add 54 (query offset byte position) + 1 (+ 1 byte forward) to the offset value in A to make the offset absolute.
	tax                    ; Move the absolute offset to X.
	ldb [x + 0x0]          ; Load the value from the absolute offset.
	jeq #0x00, check_qtype ; Move to the QTYPE check code if it's the end of the query string.
	add x                  ; Add the absolute offset from A to relative offset in X.
	add #0x1               ; Move the absolute offset 1 byte forward, to the next offset value.
	tax                    ; Move the new (adjusted) absolute offset from A to X.
	ldb [x + 0x0]          ; Load the value by the new calcaulated offset.
	jeq #0x00, check_qtype ; Check against end of the query once again.
	add x
	add #0x1
	tax
	ldb [x + 0x0]
	jeq #0x00, check_qtype ; And again, and again...
	jmp pass               ; Pass the packet if we were unable to find the desired value. A little failover.

; Check the query type in case we were able to find the end of the string!
check_qtype:
	txa                     ; Move the absolute offset from X into A.
	add #0x1                ; Move the offset 1 byte forward from query end.
	tax                     ; Move the absolute offset value to the X register from A.
	ld [x + 0x0]            ; Load the u32 from absolute offset specified in X register.
	jeq #0x00FF0001, drop   ; Drop the packet if the value in A is 0x00FF0001 or else pass the packet.

pass:
	ret #-1           ; Label/Return code signaling to pass the inspected packet.

drop:
	ret #0            ; Label/Return code signaling to drop packet.


Код гружу в xt_bpf командой iptables -I INPUT 1 -m bpf --bytecode '<байт-код>'.

Проблема: В отладчике оно пакет матчит и исправно уходит на метку drop:, но в реальности, как BIND9 ругался на избыток таких пакетов, так и ругается. Может, не всё матчит, а, может, неправильно правило прописываю.

Если у кого есть идеи, но нет знания тематики вопроса, то в комментариях я готов пояснить нюансы размещения данных в пакете и описанные в коде действия. Сам я, конечно, не великий специалист.

 , ,

NIR
()

Gopher over stunnel

Товарищи, я в отчаянии. Всё, что работает по HTTP/HTTPS вызывает чувство жжения в заднем проходе, которое с каждым релизом WebAssembly и ухудшением поддержки XUL усиливается.

Доктор прописал лекарство: Снова поднять Gopher-сервер (некоторое время уже держал, но на своём хосте и через DynDNS). Теперь я решил для этого разжиться VPS/VDS. Но просто так поднимать Gopher в наше время не хочется, а хочется прокинуть его через stunnel.

Проблема: Не получается прокинуть соединение для демона gophrier и клиента ddwarf по stunnel. Демон запускаю на 71 порту на 127.0.0.1. Конфиг stunnel:

setuid = nobody
setgid = nobody

pid = /run/gophrier-stunnel.pid

foreground = yes
debug = info
output = /var/log/gophrier-stunnel.log

CApath = /var/net/cert
CAfile = /var/net/cert/gophrier-cert.pem

[gophrier]
accept = 0.0.0.0:400
connect = 127.0.0.1:71
cert = /var/net/cert/gophrier-cert.pem
key = /var/net/cert/gophrier-key.pem

[ddwarf]
client = yes
accept = 70
connect = 127.0.0.1:400


Документацию stunnel не осилил в виду её неинтуитивности и отсутствия. Хуже мануалов я ещё не видел. Потому, прошу помощи уважаемого сообщества в попытке решить данную проблему.

P. S.: Раздавать файлы через Gopher неудобно, потому думаю над Heimdal/SMB или Heimdal/FTP или SFTP. У кого какие предпочтения на этот счёт?

 ,

NIR
()

Приобретение ЗИП для сервера

В очередной раз приветствую уважаемое сообщество и обращаюсь с вопросом.

Задача: Приобрести набор запчастей для сервера Supermicro для организации ЗИП.
Проблема: Отсутствует система ТОиР/ППР на предприятии, в документации к серверу как таковой список запчастей отстутствует.

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

Вопрос: Что написать в обосновании на приобретение всего этого мусора? На документацию сослаться не могу (ибо там ничего нет), на систему ТОиР тоже.

Знающих людей прошу поделиться шаблоном текста и собственным опытом в данной теме.

P. S.: У кого существует система ППР на IT-предприятии - поделитесь способом/методом организации, пожалуйста.

 , ,

NIR
()

CoovaChilli сбросить авторизацию

Приветствую уважаемое сообщество.

Судя по результатам поиска рискую остаться без ответа, но всё же задам вопрос.

Проблема: Есть система с CoovaChilli с UAM авторизацией и принудительная страничка для авторизации пользуна. Изменились настройки подключения и они применяются только к авторизовавшимся после этого пользователям.

Задача: Применить настройки к уже залогиненным пользунам.

Вопрос: Как достичь поставленной задачи?

Думал, что для поддержания соединения ставится печенька, но нет. Предполагаю, что надо послать серверу от пользователя как-то команду logoff и заставить пользователей авторизоваться заново.

С CoovaChilli раньше не работал. Степень понимания чуть выше нуля.

 

NIR
()

iptables rules-save - сохранить структуру

Приветствую уважаемое сообщество и обращаюсь к опытным пользователям Gentoo Linux.

Пришлось мне столкнуться со старой инсталляцией Gentoo Linux и настройкой iptables.

Проблема: Файл настроек iptables лежит в /var/lib/iptables/rules-save. Файл с комментариями был перезаписан то ли после перезагрузки машины (при выключении сохранился), то ли ещё каким скриптом, и в результате были потёрты оставленные в файле комментарии.

Задача: Похоже, необходимо отключить принудительное сохранение rules-save. Файл написан и сохранён один раз, впоследствии нет необходимости его править/пересохранять, так как рабочая среда стабильна. Необходимо только грузить при старте. Раньше в файле были комментарии, а теперь комментарии потёрты и приходится долго думать - что ради чего сделано.

Вопрос: Как достичь желаемого результата - получить единоразово записанный rules-save с комментариями?

В системе возможно присутствует systemd и есть скрипты в /etc/init.d/ .

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

P. S.: Что за числа в квадратных скобках в конфиге:

[265312738:63786718643] -A INPUT -p icmp -j ACCEPT

ну и полно аналогичных строчек.

 ,

NIR
()

Победить поставщика некондиции

Добрый день.

Произведя в серверном hardware RAID массиве замену винчестера и посмотрев его данные SMART обнаружил, что винчестер уже отмолотил 5 из заявленных 9 лет срока службы. Винчестер HP GB0500EAFJH SATA (Он же Seagate ST3500320NS). С голограммной наклеечкой-серийником от HP. Я расстроился, что деньги ушли на новое оборудование, а вместо этого получен очередной геморрой.

Вопрос: Могу ли я обратиться за данными по оборудованию к HP (дата выпуска, регион реализации) и потом забодать поставщика, что он поставил б/у оборудование вместо нового? Ранее с таким не сталкивался, и, возможно, что я неправильно подхожу к решению вопроса. Прошу коллег по цеху поделиться собственным опытом и советами в решении подобных проблем.

 , , ,

NIR
()

Документальное оформление обслуживания сервера

Всем привет.

В связи с окончанием срока службы мне пришлось заменить один из НЖМД в сервере. Так как я ранее не сталкивался с обслуживанием и ремонтом ОС (основных средств) в сфере IT, то прошу помощи у уважаемого сообщества.

Как правильно документально оформлять обслуживание и/или ремонт серверов, замену комплектующих и прочие вещи? По актам сдачи-приёмки, с оформлением дефектных ведомостей или иначе?

Всем заранее спасибо.

 , , ,

NIR
()

Указать линкеру искать свежесобранную либу в target/release/deps

По следам этой темы:
Собрать бинарник + cdylib (комментарий)
разбираюсь с Rust FFI и линковкой с генерируемыми solibs.

В одном дереве исходников лежит код cdylib и bin. Как передать для ld данные о том, что для компиляции bin необходимо искать шагом ранее собранную cdylib в папке target/release/deps ?

 

NIR
()

Собрать бинарник + cdylib

Всем привет.

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

Задача такая:
cdylib («mylib») использует xml-rs с помощью extern crate xml;. Сама по себе (с отдельным Cargo.toml) компилится и работает отлично.

Проблема: Не могу написать Cargo.toml так, чтобы из src/main.rs делающий extern crate mylib; получить исполняемый файл, а из src/mylib/lib.rs получить solib (с вкомпиленной в него xml-rs).

P. S.: Мануал по секциям [lib] и [dependencies] для Cargo.toml смотрел и экспериментировал. Похоже, я готовлю их как-то не так.

P. P. S.: Возможно, описал задачу плохо. Пишите, какие данные нужны для диагностики проблемы.

 

NIR
()

D-Link - нужен SNMP OID и/или команды по IGMP Snooping

Добрый день.

На коммутаторе D-Link выполняю команду типа:
show igmp_snooping host
и вижу список мультикастовых адресов в колонке Group.

Вопрос: существует ли OID для получения тех же самых данных? Необходимо массово тянуть данные по SNMP и анализировать впоследствии.

P. S.: В отображаемом списке видны только активные подключения. Можно ли получить список всех групп и количество подписчиков на них?

 , , ,

NIR
()

Взаимодействие с libfwbuilder

Всем привет.

В связи со спецификой моей работы требуется использовать Firewall Builder. Автор неактивен года так с 2015-го. Я решил вдохнуть немного жизни в проект, а именно реализовать компилятор правил в формат nftables используя библиотеку libfwbuilder из состава программы.

План такой:
1) Собрать проект.
Уже оказалось проблемой. На GitHub два репозитория от одного автора. Пришлось скачать оба и сделать git diff, чтобы понять какой более актуальный. С компиляцией, в связи с обновлением gcc тоже вылезла проблема, так как куча Makefile использует -isystem /usr/include (регрессия: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129 ).
2) Изучить работу libfwbuilder и fwcompiler.
Шестистраничного architecture_overview.pdf явно недостаточно. Надо написать документацию. С форматом документации не определился. Предложения приветствуются.
3) Написать консольную утилиту для формирования правил.
Это, собственно, будет финиш всей работы. Для меня актуален выбор ЯП, так как это говно надо будет ещё и поддерживать потом. Смотрю в сторону Rust, Mono (C#) и Go (Go особенно не доверяю, ибо гуглоподелие, но всё же.). Предложения по выбору ЯП приветствуются.

Задача максимум (спецолимпиадные):
4) Перевести систему с Git на Fossil.
Так-то безразлично, но Fossil меня вдохновляет. Особенно однофайловостью репозитория и встроенной Wiki.
5) Избавить Firewall Builder от automake в пользу CMake.
Вообще, я довольно плохой программист и в теме сильно не ориентируюсь. Есть какие-нибудь свежие системы сборки кода для нормальных людей, а не для инопланетян?
6) Избавить Firewall Builder от GUI.
Qt это хорошо, но в силу того, что народ активно пилит Wayland и не очень активно Mir, а Qt больно часто обновляется - я бы предпочёл реализовать весь интерфейс на какой-нибудь curses, чтобы было стабильно.

Собственно, главный вопрос:
Нужен кто-то, кто уже сталкивался с libfwbuilder и libfwcompiler, чтобы ткнуть меня в примеры кода или сколь либо куцую документацию. Буду очень признателен любой помощи, так как для моей квалификации проект будет достаточно трудный.

 , , , ,

NIR
()

MP-BGP, нужен OID-аналог для команды терминала

Всем добрый день.

Подключаюсь к Cisco route reflector и ввожу команду:
show ip bgp vpnv4 rd <циферки>:<циферки>
и ещё
show ip bgp vpnv6 unicast rd <циферки>:<циферки>

Вывод данной команды очень неудобен для разбора и я хочу запрашивать аналогичную информацию через SNMP, но не могу найти соответствующий OID.

Так как я не сетевик, то документация Cisco мне как китайская грамота. Пожалуйста, подскажите где посмотреть подходящий OID и формат того, что оно мне должно выдать.

 , ,

NIR
()

Хирургия и нубы

Всем привет.

Захотел я, значит, научиться основам хирургии. Задачи:
- Зашить рану от ножа, осколка стекла, гвоздя в полевых условиях.
- Обработать рану.
- Правильно наложить жгуты на вену/артерию.
- Правильно применить обезбаливающее/анальгетики/анестезию в полевых условиях.

Пообщавшись с врачами я понял, что без специальных знаний никто меня учить не будет, но мне уже достаточно одного высшего образования.

Вопросы:
- Что читать, чтобы получить базовые знания и их углубить?
- Какой инструмент, шовный материал и препараты нужны полевому (или как это называется) медику?
- На чём начать тренироваться? (как вариант рассматриваю куски мяса из магазина и напроситься в морг с какими-нибудь студентами).
- С кем, где и как можно попробовать договориться на счёт обучения?

Ссылки на скачивание книг, покупку инструмента, препаратов и интересные конторы приветствуются.

 

NIR
()

XULRunner или Tcl/Tk

Добрый день.

Передо мной стоит задача переписать написанную когда-то на VB.NET (с привязкой к M$ Excel) программу в связи с тем, что код громоздкий, плохо поддаётся поддержке, да ещё и много за собой тянет. Плюс, есть необходимость делать отдельные сборки под WinXP и Win7+, что сильно напрягает.

Я рассматриваю два интерпретируемых ЯП: XULRunner и Tcl/Tk. Tcl/Tk привычен и я знаю его возможности. XULRunner решил рассмотреть в том ключе, что приложение можно будет запускать в браузере, а дополнительные окна можно будет открыть во вкладочках, что позволит людям проще адаптироваться к интерфейсу.

P. S.: Требования: нормальные regexp, хотя бы зачаточное ООП, списки, нормальное подключение к sqlite, работа с текстовыми файлами, ZIP-архивами (библиотеки). Многопоточность по вкусу. Как-то так.

P. P. S.: В свете последних сообщений рассматриваю ещё и Lazarus ибо независимость бинарника - большой плюс для меня.

 , , ,

NIR
()

ПО для организации документооборота

Сап, котаны. Есть некая организация, которая работает с документами. Организация состоит из десятка отделов и имеет «одноранговую» структуру (то есть все отделы равноценны и подчинённых нет). В процессе работы формируются документы в форматах: Word, Excel, PowerPoint, Writer, Calc, Impress, Corel Draw, JPEG, ZIP, RAR, PDF. Документы представляют собой всякие приказы, ведомости и отчёты.

Проблема: отсутствует вообще какая либо структура хранения документов, отсутствует возможность эффективного обмена документами и отсутствует система резервного копирования.

Решение: рассматриваю возможность поднятия сервера с веб-мордой по типу Exchange, где для каждого отдела была бы своя папочка с документами. Samba не рассматриваю, ибо у всех выглядит по разному, а нужно, чтобы в любом браузере висел просто красивенький сайтик с кучей документов и тегами к ним для удобного поиска. Система должна быть простой в поддержке и эксплуатации и возможность работать в нагруженной среде не требуется. Есть предложения?

 ,

NIR
()

Раздать интернет для Win 7

ALT Linux 7.0.5 Centaurus x64, NetworkManager, два интерфейса:

enp1s0 имеет адрес 192.168.137.1 и смотрит в проводную локалку, где есть ещё 192.168.137.2 и 192.168.137.3 с Win 7 на борту.

wlp2s6 имеет адрес 192.168.8.102 и смотрит в WiFi локалку, которая также выходит в сеть.

Как сделать так, чтобы одновременно нормально работали оба подключения и как настроить мост для того, чтобы машины с Win 7 из 192.168.137 могли выходить в 192.168.8 и в интернет?

Мануалы читал (на LOR и на форуме ALT), поиском пользовался, но так настройку и не осилил. Недостающие данные готов предоставить. Помогите, котаны. С меня лучи добра.

 , , ,

NIR
()

7z + скрипт Tcl: как прочитать stdout?

Собственно, сабж. Пишу небольшой набор обёрток для файлового архива. Есть задача: когда прохожу директорию и натыкаюсь на ZIP-архив необходимо получить список файлов в него входящих.

Данную задачу пытаюсь решить вызовом из скрипта 7z l <archive.zip> и последующим чтением stdout, но код вываливается с ошибкой «channel stdout wasn't opened for reading». Как сделать правильно?

Собственно, код (тестовый):

proc ::flc::util::zipcontent { zipfile } {
fconfigure stdout -blocking 0 -buffering none;
set zipdata [read stdout];
open «|7z l $zipfile» r;
puts «$zipdata»;
}

 ,

NIR
()

Работа и разработка в среде Firefox OS

Нашёл в продаже у Мегафона смартфон «Alcatel One Touch Fire E 6015X Chocolate» с Firefox OS 1.3. Сейчас пользуюсь МТС 950 с Android 2.2, но, так как страдаю гуглофобией, хочу пересесть на Firefox OS. Хотелось бы услышать отзывы от тех, кто сталкивался с подобными изделиями, касательно возможных проблем или просто личные впечатления. Также интересует возможно ли писать под F. OS не только HTML5/JS приложения, но и сколь-либо нативные. Кстати, на сайте Mozilla очень интересено написано про «раскирпичивание» данных девайсов в случае проблем с прошивками, это порадовало.

Задачи, которые требуется выполнять с помощью девайса:
- Звонить;
- Писать SMS;
- Вести заметки;
- Делать среднего качества фотки по работе (качество iPhone->Photoshop->Instagram->сцать_кипятком не требуется);
- Иметь калькулятор;
- Иметь браузер для доступа к несложным сайтам;
- Иметь софт для работы с GPS;
- Иметь будильник;
- Беспроблемно монтироваться, для копирования данных с флешки, Linux-машиной при подключении через USB-проводок;
Отдельным списком идут специфичные задачи:
- Запуск Overbite;
- Запуск E-NUM для работы с WebMoney;
- Запуск WebMoney Keeper какой-нибудь версии.

Если есть ещё и вменяемый способ своими руками обновить прошивку, то будет вообще гут.

От девайса не требуется:
- Иметь офигенные шрифты;
- Иметь радио/мегаплеер;
- Иметь Skype и аналогичные проприетарные извращения;
- Смотреть YouTube.

 , , ,

NIR
()

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