Фряха | Частин https://chast.in Свободной памяти нет - приходится записывать Fri, 30 Aug 2024 20:39:02 +0000 ru-RU hourly 1 https://wordpress.org/?v=6.9.1 Error while fetching file MANIFEST https://chast.in/error-while-fetching-file-manifest.html https://chast.in/error-while-fetching-file-manifest.html#respond Wed, 13 Oct 2021 17:40:40 +0000 https://chast.in/?p=1738 При попытке установить FreeBSD через mfsbsd получаем ошибку: «Error while fetching file:///usr/freebsd-dist/MANIFEST» — no such file or directory. Для решения проблемы выходим из установщика и даем в консоли следующие команды

The post Error while fetching file MANIFEST first appeared on Частин.]]>

При попытке установить FreeBSD через mfsbsd получаем ошибку: «Error while fetching file:///usr/freebsd-dist/MANIFEST» — no such file or directory.

Для решения проблемы выходим из установщика и даем в консоли следующие команды

mkdir -p /usr/freebsd-dist
fetch https://download.freebsd.org/ftp/releases/amd64/`uname -r`/MANIFEST -o /usr/freebsd-dist/MANIFEST
bsdinstall
The post Error while fetching file MANIFEST first appeared on Частин.]]>
https://chast.in/error-while-fetching-file-manifest.html/feed 0
Qemu-KVM на host FreeBSD 13 https://chast.in/qemu-kvm-in-freebsd-13.html https://chast.in/qemu-kvm-in-freebsd-13.html#respond Mon, 23 Aug 2021 14:31:34 +0000 https://chast.in/?p=1709 Использование FreeBSD в качестве хостовой ОСи имеет многочисленные преимущества.. Во первых это мощный и гибкий файервол ipfw. Во-вторых специально созданная для снапшотов файловая система ZFS. В третьих — малая прожорливость и легендарная надежность фряхи существенно повышет аптайм ноды..Во FreeBSD есть виртуализация KVM, а не только jail. И работает вполне бодро, на момент написания доступна только ...

The post Qemu-KVM на host FreeBSD 13 first appeared on Частин.]]>

Использование FreeBSD в качестве хостовой ОСи имеет многочисленные преимущества.. Во первых это мощный и гибкий файервол ipfw. Во-вторых специально созданная для снапшотов файловая система ZFS. В третьих — малая прожорливость и легендарная надежность фряхи существенно повышет аптайм ноды..
Во FreeBSD есть виртуализация KVM, а не только jail. И работает вполне бодро, на момент написания доступна только 5-ая версия. В общем, если нужно быстро поднять виртуалку на Фре, действую так, как написано ниже

Устанавливаем нужное программное обеспечение:

pkg install qemu-devel

Создаем тестовую виртуальную машину:

# создаем диск для виртуальной машины
qemu-img create -f qcow2 hdd100.img 10G
# скачиваем образ ОСи для виртуальной машины
fetch https://download.grml.org/grml64-small_2021.07.iso -O grml.iso
# стартуем машину, устанавливаем через VNC на IP хостовой тачки, порт 5900
qemu-system-x86_64 -machine q35 -m size=4096 -cdrom grml.iso -hda hdd100.img -boot d -net nic,model=e1000,macaddr=00:e0:e1:12:13:fe -vnc :0

На этом уже всё! Виртуальная машина работает! Можно далее настраивать сеть, пробрасывать внутрь виртуалки интернет..

The post Qemu-KVM на host FreeBSD 13 first appeared on Частин.]]>
https://chast.in/qemu-kvm-in-freebsd-13.html/feed 0
Проброс порта во FreeBSD ipfw kernel nat на другой IP https://chast.in/freebsd-ipfw-kernel-nat-redirect-ip.html https://chast.in/freebsd-ipfw-kernel-nat-redirect-ip.html#respond Fri, 19 Feb 2021 20:49:58 +0000 https://chast.in/?p=1657 Потребовалось пробросить порт с одного сервера с ОС FreeBSD c ipfw на другой сервер. На всякий случай решил записать — мало ли еще кому-нибудь пригодится… В файл /boot/loader.conf допишем: В файле /etc/sysctl.conf укажем: В файле /etc/rc.conf допишем: И собственно, сам файл для файрвола /etc/ipfw.script: После всего этого перезагружаемся, проверяем редирект. При необходимости дописываем еще порты, ...

The post Проброс порта во FreeBSD ipfw kernel nat на другой IP first appeared on Частин.]]>

Потребовалось пробросить порт с одного сервера с ОС FreeBSD c ipfw на другой сервер. На всякий случай решил записать — мало ли еще кому-нибудь пригодится…

В файл /boot/loader.conf допишем:

# RUS
kern.vty=vt

# PIPE
ipdivert_load="YES"
dummynet_load="YES"
ng_pipe_load="YES"

# SETFIB
#net.fibs="2"'

# IPFW
ipfw_load="YES"
ipfw_nat_load="YES"
firewall_logif="YES"

В файле /etc/sysctl.conf укажем:

net.inet.ip.fw.verbose_limit=0
net.inet.ip.fw.verbose=1

В файле /etc/rc.conf допишем:

keymap="ru"
# IPFW
firewall_enable="YES"
firewall_script="/etc/ipfw.script"
firewall_logging="YES"
firewall_logif="YES"
firewall_nat_enable="YES"
dummynet_enable="YES"
gateway_enable="YES"

И собственно, сам файл для файрвола /etc/ipfw.script:

FW="/sbin/ipfw"
# Интерфейс, на котором слушаем
WAN="em0"
# Порт, который слушаем
FromPort="43389"
# IP, на который будем пробрасывать порт
ToIP="91.01.91.11"
# Порт, на который будем пробрасывать
ToPort="3389"
${FW} -f flush
${FW} enable one_pass
${FW} add allow all from any to any via lo0
${FW} add deny all from any to 127.0.0.0/8
${FW} add deny all from 127.0.0.0/8 to any
${FW} add deny all from any to any frag
${FW} add check-state
# Табличка тех IP, кто может зайти в ssh
${FW} table admin create missing
${FW} table admin add 46.0.0.0/8
${FW} table admin add 5.135.191.0/24
${FW} table admin add 188.138.9.0/24
${FW} table admin add 195.154.236.0/24
${FW} add allow ip from "table(admin)" to me 22
# Для них же - разрешаем пинг
${FW} add allow icmp from "table(admin)" to me in icmptype 8
${FW} add allow icmp from me to "table(admin)" out icmptype 0,8
# Ограничим скорость подключения с одного IP на защищенный адрес IP
# Входящая скорость
${FW} pipe 1 config bw 20Mbit/s queue 60 gred 0.002/10/30/0.1
${FW} queue 1 config pipe 1 queue 60 buckets 128  mask src-ip 0xffffffff gred 0.002/10/30/0.1
# Выходящая скорость
${FW} pipe 2 config bw 20Mbit/s queue 60 gred 0.002/10/30/0.1
${FW} queue 2 config pipe 2 queue 60 buckets 128 mask dst-ip 0xffffffff gred 0.002/10/30/0.1
# Собственно - редирект порта 
${FW} nat 1 config log if ${WAN} same_ports deny_in \
        redirect_port tcp ${ToIP}:${ToPort} ${FromPort}
${FW} add nat 1 ip from any to any via ${WAN} 

${FW} add allow tcp from any ${FromPort} to any via ${WAN}
${FW} add queue 1 ip from any to ${ToIP} in via ${WAN}
${FW} add allow  tcp from any to ${ToIP} in via ${WAN}
${FW} add queue 2 ip from me to any out via ${WAN}
${FW} add allow  tcp from me to any out via ${WAN}
${FW} add allow tcp from any to any established
${FW} add deny log all from any to any

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

redirect_port IP:Port Port_который слушаем на ${WAN} 

Если на интерфейсе несколько IP и редиректить нужно только с одного IP, то строчка NAT выглядит так:

${FW} nat 1 config log ip ${FromIP} same_ports deny_in \
        redirect_port tcp ${ToIP}:${ToPort} ${FromPort}

Конечно же, проверить все это можно на выделенных и виртуальных серверах компании vps-server.ru

The post Проброс порта во FreeBSD ipfw kernel nat на другой IP first appeared on Частин.]]>
https://chast.in/freebsd-ipfw-kernel-nat-redirect-ip.html/feed 0
Сборка chan_dongle для Asterisk 13 на FreeBSD https://chast.in/chan_dongle-asterisk-13-in-freebsd.html https://chast.in/chan_dongle-asterisk-13-in-freebsd.html#comments Tue, 01 Sep 2020 20:32:23 +0000 https://chast.in/?p=1538 Однажды душным августовским вечером одному моему знакомому взгрустнулось. Внезапно он осознал, что время быстротечно, жизнь проходит, а минуты, которые ежемесячно предоставляет оператор Yota, не используются и пропадают!! в модеме.. Было решено собрать подзабытый всеми старинный модуль chan_dongle для Asterisk, чтобы пробалтывать, использовать эти минуты через 3G modem. По фигу с кем, но использовать их! Конечно ...

The post Сборка chan_dongle для Asterisk 13 на FreeBSD first appeared on Частин.]]>

Однажды душным августовским вечером одному моему знакомому взгрустнулось. Внезапно он осознал, что время быстротечно, жизнь проходит, а минуты, которые ежемесячно предоставляет оператор Yota, не используются и пропадают!! в модеме.. Было решено собрать подзабытый всеми старинный модуль chan_dongle для Asterisk, чтобы пробалтывать, использовать эти минуты через 3G modem. По фигу с кем, но использовать их!

Конечно же ,собрать его требовалось на FreeBSD 12. Описания присутствуют в этих ваших интернетах, но они не годятся, так как не приводят к нужному результату. Без лишних вопросов — приступаем..

Для начала обновляем пакеты FreeBSD и ядро оси. Теперь устанавливаем нужные для сборки пакеты, а именно — autotools и gmake:

# Установим нужный для сборки софт
#
pkg install -y autotools gmake git

Теперь клонируем пакет с GIT-хаба и готовим его к сборке :

# Клонируем пакет
#
git clone https://github.com/oleg-krv/asterisk-chan-dongle
cd dongle/
# Готовимся к сборке
#
aclocal
autoconf
automake -a
./configure

Теперь пара важных моментов — нужно внести исправления в конфиг файла Makefile, а именно — в опции компилятора добавить ключ -fblocks и указать компилятору верный путь до библиотеки libiconv. Для этого находим строчку CFLAGS в файле Makefile и добавляем туда опцию -fblocks

А также в строке LIB = указываем путь LIBS = /usr/local/lib/

# Редактируем нужный файл
#
vi Makefile

CFLAGS  = -g -O2 -O6 -I$(srcdir)  ... -fblocks

LIBS = /usr/local/lib/

Теперь компилируем пакет:

# Компилируем и устанавливаем пакет
#
gmake
gmake install

./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
strip chan_dongle.so
/usr/bin/install -c -m 755 chan_dongle.so /usr/local/lib/asterisk

Астериск получил плагин для звонков через 3G modem. Теперь можно настраивать его.

# Устанавливаем Asteriks
#
pkg search asterisk13
# В настоящий момент в пакетах собран asterisk13-13.34.0_1,
# устанавливаем его.
pkg install asterisk13-13.34.0_1
# Добавляем в rc.conf
sysrc asterisk_enable="YES"
# Добавляем пользователя asterisk в группу dialer 
# 
pw groupmod dialer -m asterisk
# Стартуем asteriks
#
/usr/local/etc/rc.d/asterisk start

Вероятнее всего, что астериск стартанет и будет работать. Теперь требуется создать конфиг для плагина chan_dongle — файл /usr/local/etc/asterisk/dongle.conf и написать в нем примерно следующее.

[general]
interval=15 
[defaults]
context=default
group=0
rxgain=0 
txgain=0
autodeletesms=yes
resetdongle=yes
u2diag=-1
usecallingpres=yes 
callingpres=allowed_passed_screen 
disablesms=no 
[beeline]
imei=35870507777777
context=beeline-incoming
exten=+79051111111
audio=/dev/cuaU0.1
data=/dev/cuaU0.2
group=1
rxgain=2
txgain=2
resetdatacard=yes
u2diag=0
usecallingpres=yes
callingpres=allowed_passed_screen
disablesms=no

The post Сборка chan_dongle для Asterisk 13 на FreeBSD first appeared on Частин.]]>
https://chast.in/chan_dongle-asterisk-13-in-freebsd.html/feed 1
Печать громоздких PDF файлов на принтере Canon LBP-810 https://chast.in/print-pdf-files-on-canon-lbp-810.html https://chast.in/print-pdf-files-on-canon-lbp-810.html#respond Wed, 29 Jan 2020 12:51:56 +0000 https://chast.in/?p=1388 Оказывается, что формат PDF не всегда верно интерпретируют старинные принтеры типа Canon LBP-810, LBP-1120 и аналогичных. При попытке печатать страница «расползается» и текст становится не читаемым. Проблема решается конвертированием PDF в TIFF На Fedore моментально используем Ghostscript и действуем так: gs -r300 -o page-tiffg4.tif -sDEVICE=tiff24nc source.pdf где: -r — разрешение в DPI, -sDEVICE=tiff24nc — глубина ...

The post Печать громоздких PDF файлов на принтере Canon LBP-810 first appeared on Частин.]]>

Оказывается, что формат PDF не всегда верно интерпретируют старинные принтеры типа Canon LBP-810, LBP-1120 и аналогичных. При попытке печатать страница «расползается» и текст становится не читаемым. Проблема решается конвертированием PDF в TIFF

На Fedore моментально используем Ghostscript и действуем так:

gs -r300 -o page-tiffg4.tif -sDEVICE=tiff24nc source.pdf

где:

-r — разрешение в DPI,

-sDEVICE=tiff24nc — глубина цвета, может быть tiff32nc или tiff4

-o новый файл

source.pdf исходный файл

The post Печать громоздких PDF файлов на принтере Canon LBP-810 first appeared on Частин.]]>
https://chast.in/print-pdf-files-on-canon-lbp-810.html/feed 0
Gammu daemon во FreeBSD https://chast.in/gammu-daemon-in-freebsd.html https://chast.in/gammu-daemon-in-freebsd.html#respond Fri, 23 Aug 2019 13:45:37 +0000 https://chast.in/?p=1354 Внезапно выяснилось, что во FreeBSD нет демона gammu. Сама gammu присутствует, порт ведется, обновляется. Но daemon gammu-smsd отсутствует. А мне потребовалось отправлять SMS через старенький модем ZTE MF112, установленный в компьютер с ОС FreeBSD 12. Причем таким образом, что SMS эти поступали на FTP пользователя gammu этого же компьютера. Пришлось быстренько накалякать свой.. Установка самой ...

The post Gammu daemon во FreeBSD first appeared on Частин.]]>

Внезапно выяснилось, что во FreeBSD нет демона gammu. Сама gammu присутствует, порт ведется, обновляется. Но daemon gammu-smsd отсутствует. А мне потребовалось отправлять SMS через старенький модем ZTE MF112, установленный в компьютер с ОС FreeBSD 12. Причем таким образом, что SMS эти поступали на FTP пользователя gammu этого же компьютера. Пришлось быстренько накалякать свой..

Установка самой gammu не представляет никаких сложностей, элементарно:

# Устанавливаем gammu:
pkg install gammu

После установки втыкаем модем, у меня это ZTE, в /dev сразу же появилось несколько новых устройств, в их числе те, что интересуют нас:

# Смотрим устройства модема.
ls -al /dev/cuaU*
crw-rw----  1 uucp  dialer  0x93 22 авг.  15:55 /dev/cuaU0.0
crw-rw----  1 uucp  dialer  0x94 22 авг.  15:49 /dev/cuaU0.0.init
crw-rw----  1 uucp  dialer  0x95 22 авг.  15:49 /dev/cuaU0.0.lock
crw-rw----  1 uucp  dialer  0x99 22 авг.  16:02 /dev/cuaU0.1
crw-rw----  1 uucp  dialer  0x9a 22 авг.  15:49 /dev/cuaU0.1.init
crw-rw----  1 uucp  dialer  0x9b 22 авг.  15:49 /dev/cuaU0.1.lock
crw-rw----  1 uucp  dialer  0x9f 23 авг.  00:10 /dev/cuaU0.2
crw-rw----  1 uucp  dialer  0xa0 22 авг.  15:49 /dev/cuaU0.2.init
crw-rw----  1 uucp  dialer  0xa1 22 авг.  15:49 /dev/cuaU0.2.lock

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

# Пробуем подключиться через screen  к устройствам модема.
screen /dev/cuaU0.2
Подключаемся поочередно к устройствам модема и пробуем ввести туда команды.

Поняв, что нужное нам устройство — /dev/cuaU0.2, сочиняем конфиг gammu, файл /etc/gamurc:

nano /etc/gamurc
port = /dev/cuaU0.2
gammucoding = utf8
connection = fbus
name = ZTE
synchronizetime = no
model = MF112 (MF112)
connection = at9600
synchronizetime = yes
logfile =
logformat = notify
use_locking =
gammuloc =
unicode

Проверяем, сможет ли gammu использовать модем:

# Gammu говорит: все в порядке, вижу модем
gammu --identify
Устройство : /dev/cuaU0.2
Производитель : ZTE
Модель         : MF112 (MF112)
Прошивка     : BD_MF112V1.0.0B01
IMEI                 : 355434042361354
Номер SIM IMSI  : 250996656699529

Пробуем отправить SMS на телефон, раз все так здорово:

# Пробуем отправить SMS на телефон через GAMMU:
/usr/local/bin/gammu sendsms TEXT +910667XXXX -unicode -textutf8 "Горячий привет всем работникам связи!"

SMS уходит, и, что важно — приходит адресату! 😉 Теперь нужно автоматизировать процесс отправки SMS, организовать простенький шлюз. Я решил написать собственный демон для отправки SMS. Для этого создадим файл нашего демона в каталоге /usr/local/etc/rc.d/ и сделаем его исполняемым. Открываем редактор nano /usr/local/etc/rc.d/gammud
И добавляем текст туда:

#!/bin/sh
#
# PROVIDE: gammud
# REQUIRE: networking
# KEYWORD:

. /etc/rc.subr

name="gammud"
rcvar="gammud_enable"
command="/usr/local/gammud/gammud"
command_interpreter=/bin/sh
gammud_user="root"
pidfile="/var/run/${name}.pid"

start_cmd="gammud_start"
stop_cmd="gammud_stop"
status_cmd="gammud_status"


gammud_start() {
        /usr/sbin/daemon -P ${pidfile} -r -f -u $gammud_user $command
}

gammud_stop() {
        if [ -e "${pidfile}" ]; then
                kill -s TERM `cat ${pidfile}`
        else
                echo "${name} is not running"
        fi

}

gammud_status() {
        if [ -e "${pidfile}" ]; then
                echo "${name} is running as pid `cat ${pidfile}`"
        else
                echo "${name} is not running"
        fi
}

load_rc_config $name
: ${gammud_enable:=no}

run_rc_command "$1"

Делаем его исполняемым:
chmod +x /usr/local/etc/rc.d/gammud

Добавляем демон в файл /etc/rc.conf, добавим туда строку gammud_enable=»YES»

Теперь пишем скрипт, который будет мониторить каталог с поступающими файлами SMS и отправляет сообщения абонентам. Для этого создаем каталог демона mkdir /usr/local/gammud и файл
/usr/local/gammud/gammud, в который помещаем следующий текст:

#!/bin/sh
#
homeDir="/home/gammu"
outDir=$homeDir"/out"
sentDir=$homeDir"/sent"
inDir=$homeDir"/in"

log="/var/log/gammu.log";

while true; do
    for f in "$outDir"/OUTA_*.txt; do
        sms_number=$(echo $f | /usr/local/bin/perl -n -e '/.*OUTA_([+\d]*)_[\d]*.txt/is && print "$1"' );
        sms_text=$(cat "$f" | xargs );
        if [ ! -z "$sms_number" ] && [ ! -z "$sms_number" ]; then
            echo $(date "+%Y-%m-%d %H:%M:%S" ) " $f $sms_number $sms_text"  >> $log
            /usr/local/bin/gammu sendsms TEXT $sms_number -unicode -textutf8 "$sms_text" | xargs >> $log
            /bin/mv $f $sentDir
        fi
    done
    sleep 10
done

Делаем файл исполняемым, cmod +x /usr/local/gammud/gammud Практически готово. Осталось только добавить пользователя gammu командой adduser и создать необходимые директории для работы демона. Выполняем следующие команды:

# Добавим пользователя в систему
adduser
# Создадим каталоги для получения/отправки SMS
# Каталог для исходящих SMS
mkdir /home/gammu/out 
# Каталог для отправленных SMS
mkdir /home/gammu/sent
mkdir /home/gammu/in 

Теперь запускаем daemon:

# Run daemon
service gammud start
# Check daemon status
service gammud status
gammud is running as pid 1261

Все в порядке, демон работает..Теперь кладем в каталог исходящих сообщений специально сформированный файл, например: nano /home/gammu/out/OUTA_+7910667XXXX_42221.txt. В имени файла указываем номер телефона, это +7910667XXXX, а 42221 — ID SMS, его можно придумать от балды. Я через него веду учёт отправленных SMS. Внутри файла пишем текст нашего сообщения. Например: «Привет, всё хорошо, работает gammu daemon». Через некоторое время файл исчезнет из каталога out и будет перемещен в каталог sent. При этом на телефон +7910667XXXX поступит сообщение.

Если сообщение отправляется, приходит абоненту, то на этом всё. Если нет, то смотрим логи нашего демона, которые находятся в /var/log/gammu.log. Могу еще добавить, что сообщения исходящие можно класть в каталог out по FTP, SSH, HTTP и другими способами, которых десятки. Есть даже mail2sms — конвертер писем в SMS.

Конечно же, написанный демон не совершенен, например — он не умеет читать входящие SMS, но это неплохая заготовка для думающих людей, которая позволит сделать то, что нужно добавлением нескольких строк в код скрипта. Кроме того, во FreeBSD имеется smstools, который умеет это всё, и даже больше. Но мне было быстрее сделать самому. Всем спасибо за внимание, используйте подручные средства для оповещений пользователей ваших сайтов.

The post Gammu daemon во FreeBSD first appeared on Частин.]]>
https://chast.in/gammu-daemon-in-freebsd.html/feed 0
Использование модемов во FreeBSD. https://chast.in/howto-use-modem-in-freebsd.html https://chast.in/howto-use-modem-in-freebsd.html#respond Mon, 12 Aug 2019 16:37:02 +0000 https://chast.in/?p=1304 Внезапно потребовалось отправлять СМС-уведомления через сервер с FreeBSD. Естественно, что требовалось установить модем. Под рукой оказался старенький, но весьма и весьма работоспособный модем Huawei E3131 с прошивкой Hi-link. Прелесть этого модема в наличии crc9-разъема в боку для подключения внешней антенны. При подключении модем увиделся, как флешка.. Пришлось пользоваться google, чтобы найти решение. Подключаем модем в ...

The post Использование модемов во FreeBSD. first appeared on Частин.]]>

Внезапно потребовалось отправлять СМС-уведомления через сервер с FreeBSD. Естественно, что требовалось установить модем. Под рукой оказался старенький, но весьма и весьма работоспособный модем Huawei E3131 с прошивкой Hi-link. Прелесть этого модема в наличии crc9-разъема в боку для подключения внешней антенны. При подключении модем увиделся, как флешка.. Пришлось пользоваться google, чтобы найти решение.

Подключаем модем в USB компьютера и смотрим в dmesg:

ugen3.2:  at usbus3
umass0 on uhub0
umass0:  on usbus3
umass0:  SCSI over Bulk-Only; quirks = 0x0100
umass0:7:0: Attached to scbus7
cd0 at umass-sim0 bus 0 scbus7 target 0 lun 0
cd0:  Removable CD-ROM SCSI-2 device
cd0: 40.000MB/s transfers
cd0: 128MB (65536 2048 byte sectors)
cd0: quirks=0x10<10_BYTE_ONLY>

Понимаем, что это совсем не то, чего бы мы хотели… Начинаем действовать:

# Для работы с модемом сразу ставим необходимый софт:
pkg install -y usbutils usb_modeswitch
# смотрим, как у нас определился модем при включениии в USB:
lsusb
Bus /dev/usb Device /dev/ugen3.2: ID 12d1:1f01 Huawei Technologies Co., Ltd. E353/E3131 (Mass storage mode)

Ищем target-конфиг для модема, чтобы переключить его в сетевую карту. К всеобщему счастью, во FreeBSD предусмотрительно присутствуют конфиги для перевода в нужный нам режим «как сетевая карта» для всех поддерживаемых модемов:

# Ищем модем E3131:
grep -R "E3131" /usr/local/share/usb_modeswitch/
/usr/local/share/usb_modeswitch/12d1:15ce:# Huawei E3531s-2, E3131 (Variant)
/usr/local/share/usb_modeswitch/12d1:151a:# Huawei E392u-12, E3131 (Variant)
/usr/local/share/usb_modeswitch/12d1:15ca:# Huawei E3131
/usr/local/share/usb_modeswitch/12d1:15d0:# Huawei E3131 (Variant)
# я использовал в качестве целевого переключения файл /usr/local/share/usb_modeswitch/12d1:15ca
# даем команду переключения модема, в качестве параметров даем 
# входные параметры из lsusb, а target содержится в файле usb_modeswitch/12d1:15ca
/usr/local/sbin/usb_modeswitch -v 0x12d1 -p 0x1f01 --config-file /usr/local/share/usb_modeswitch/12d1:15ca

Теперь смотрим в dmesg и в сетевые устройства:

dmesg
..........................
umass0: detached
ugen3.2:  at usbus3 (disconnected)
ugen3.2:  at usbus3
cdce0 on uhub0
cdce0:  on usbus3
ue0:  on cdce0
ue0: Ethernet address: 58:2c:80:13:92:63
ifconfig ue0
ue0: flags=8802 metric 0 mtu 1500
	ether 58:2c:80:13:92:63
	nd6 options=29

Видим, что всё получилось.. Модем у нас теперь видится, как сетевая карта. Конечно же, таким образом можно подключить любой модем, в том числе huawei E3372, huawei E352 и прочими. Отличие в исходных и целевых параметрах usb_modeswitch.

Для подключения интернет достаточно только получить ip от сетевой карты и можно бороздить просторы сети…

dhclient ue0
The post Использование модемов во FreeBSD. first appeared on Частин.]]>
https://chast.in/howto-use-modem-in-freebsd.html/feed 0
Замена редактора по-умолчанию во FreeBSD https://chast.in/change-default-editor-in-freebsd.html https://chast.in/change-default-editor-in-freebsd.html#respond Tue, 06 Aug 2019 18:34:25 +0000 https://chast.in/?p=1293 По-умолчанию во Фряшечке установлен редактор vi. Это очень хороший и удобный редактор. Однако по целому ряду причин он не всегда годится, как редактор FreeBSD по-умолчанию. Мне лично больше нравится VIM. Для смены редактора достаточно заменить его в списке переменных окружения и перезайти в сессию. В общем, действуем так: # Найдем редактор, установленный сейчас по-умолчанию в ...

The post Замена редактора по-умолчанию во FreeBSD first appeared on Частин.]]>

По-умолчанию во Фряшечке установлен редактор vi. Это очень хороший и удобный редактор. Однако по целому ряду причин он не всегда годится, как редактор FreeBSD по-умолчанию. Мне лично больше нравится VIM.
Для смены редактора достаточно заменить его в списке переменных окружения и перезайти в сессию. В общем, действуем так:

# Найдем редактор, установленный сейчас по-умолчанию в системе:
grep -r "EDITOR" ~
/root/.cshrc:setenv	EDITOR	vi
# Видим, что переменная EDITOR определена в файле /root/.cshrc
# Отредактируем его:
ee /root/.cshrc
# исправляем переменную EDITOR на ваш любимый редактор, хоть на mcedit ))

Заодно в этом же месте можно русифицировать нашу консоль, для этого нужно добавить переменные локализации в файл ~/.cshrc:

# редактируем ~/.cshrc
ee ~/.cshrc
setenv LANG ru_RU.UTF-8
setenv MM_CHARSET UTF-8
# Редактируем /boot/loader.conf:
kern.vty=vt
The post Замена редактора по-умолчанию во FreeBSD first appeared on Частин.]]>
https://chast.in/change-default-editor-in-freebsd.html/feed 0
Монтирование диска FreeBSD zfs https://chast.in/mount-freebsd-zfs.html https://chast.in/mount-freebsd-zfs.html#comments Mon, 05 Aug 2019 14:20:16 +0000 https://chast.in/?p=1287 Выяснилось, что монтировать диск FreeBSD zfs требуется в два этапа. Например, у меня имела место ситуация, когда монтируемый пул называется, как и текущий — zroot. При загрузке ОС видит на двух дисках одинаковые пулы и упорно грузилась не с того, что нужно… Решение было такое: я на ходу, после загрузки ОС я находу подключил диск. ...

The post Монтирование диска FreeBSD zfs first appeared on Частин.]]>

Выяснилось, что монтировать диск FreeBSD zfs требуется в два этапа. Например, у меня имела место ситуация, когда монтируемый пул называется, как и текущий — zroot. При загрузке ОС видит на двух дисках одинаковые пулы и упорно грузилась не с того, что нужно…

Решение было такое: я на ходу, после загрузки ОС я находу подключил диск. Фряха его увидела, а дальше уже было дело техники:

# Импортируем zpool и получаем имя zpool  
# вероятнее всего, что zroot
zpool import
#создаем точку монтирования zpool:
mkdir -p /mnt/zroot
#Импортируем zpool:
zpool import -fR /mnt/zroot zroot
#создаем точку монтирования для корня zfs /:
mkdir /mnt/root
#монтируем корень /:
mount -t zfs zroot/ROOT/default /mnt/root

На этом всё. Всем удачи и спасибо за внимание!

The post Монтирование диска FreeBSD zfs first appeared on Частин.]]>
https://chast.in/mount-freebsd-zfs.html/feed 1
Проброс трафика ipfw fwd ip https://chast.in/ipfw-fwd-ip-or-ports.html https://chast.in/ipfw-fwd-ip-or-ports.html#respond Thu, 25 Jul 2019 20:18:14 +0000 https://chast.in/?p=1270 Иногда требуется пробросить трафик и/или порт внутри сервера или локальной сети. Это требуется например тогда, когда в локальной сети сервера находится web-сервер или высунуть windows RDP 3389 локального сервера наружу Итак, имеется FreeBSD сервер с установленным для теста nginx, который слушает только localhost (127.0.0.1) . При этом в конфиге nginx присутствуют следующие строки: listen 127.0.0.1:80; ...

The post Проброс трафика ipfw fwd ip first appeared on Частин.]]>

Иногда требуется пробросить трафик и/или порт внутри сервера или локальной сети. Это требуется например тогда, когда в локальной сети сервера находится web-сервер или высунуть windows RDP 3389 локального сервера наружу

Итак, имеется FreeBSD сервер с установленным для теста nginx, который слушает только localhost (127.0.0.1) . При этом в конфиге nginx присутствуют следующие строки:

listen 127.0.0.1:80;
server_name  localhost;
location / {
    root   /usr/local/www/nginx;
    index  index.html index.htm;
    try_files $uri $uri/ /index.html;
}

В этом конфиге nginx присутствует редирект всех страниц на страницу index.html

Для работы проброса (forward) в ipfw необходимо выполнить команду sysctl net.inet.ip.forwarding=1

#!/bin/sh

N='igb0'
IP='195.154.95.95'
F='/sbin/ipfw -q'

$F -f flush

$F add pass all from any to any via lo0
$F add deny all from any to 127.0.0.0/8
$F add deny all from 127.0.0.0/8 to any
$F add accept tcp from any to any established
$F add check-state
$F add accept ip from me to any keep-state

$F add accept icmp from any to me in via $N keep-state
$F add deny all from any to any frag

$F add fwd 127.0.0.1,80 tcp from any to $IP 80 keep-state
$F add fwd 127.0.0.1,443 tcp from any to $IP 443 keep-state

ipfw add allow in
ipfw add allow out

ipfw add deny log logamount 3 tcp from any to any
Готово! Теперь весь трафик, приходящий на 80 порт $IP будет уходить на 80 порт 127.0.0.1
The post Проброс трафика ipfw fwd ip first appeared on Частин.]]>
https://chast.in/ipfw-fwd-ip-or-ports.html/feed 0