convmv – конвертер кодировок

Консольная утилита для перекодировки.

cd /usr/ports/converters/convmv
make install clean

Посмотреть поддерживаемые кодировки:

convmv --list

Использование:

convmv -r -f utf8 -t koi8-r --notest "п■п╬п©п╬п╩п╫п╣п╫п╦я▐ п╨ п╡п╦п╢п╣п╬я┐я─п╬п╨п╟п╪/"

где  -r - рекурсивно, 
     -f - с кодировки, 
     -t - на кодировку
     --notest - начать перекодировку имен файлов без запроса подтверждения

 

image_pdfimage_print

Popa3d – простой POP3 сервер

portsnap fetch && portsnap update
cd /usr/ports/mail/popa3d/
make install clean

1. Edit your /etc/inetd.conf to use popa3d. The line should look like this:

pop3 stream tcp nowait root /usr/local/libexec/popa3d popa3d

Note: when started via an inetd clone, the logging of connections is left
up to that inetd clone or TCP wrappers.

2. Reload inetd

# /etc/rc.d/inetd reload

Или

echo 'popa3d_enable="YES"' >> /etc/rc.conf
/usr/local/etc/rc.d/popa3d start
netstat -an | grep 110
tcp4 0 0 *.110 *.* LISTEN

 

 

image_pdfimage_print

IPFW NAT

Начнем

uname -a
FreeBSD roller.amo.ka 10.3-STABLE FreeBSD 10.3-STABLE #0: Thu Nov 9 22:33:21 
EET 2017 svm@roller.amo.ka:/usr/obj/usr/src/sys/ROLLER i386

Собираем ядро с такими опциями:

IPFW NAT ########################
options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=50
options IPFIREWALL_NAT
options LIBALIAS
options ROUTETABLES=2
options DUMMYNET
#####################################

и добавляем в sysctl и  делаем sysctl restart

net.inet.ip.fw.one_pass=1

или просто даем команду

sysctl net.inet.ip.fw.one_pass=1

net.inet.ip.fw.one_pass: 1 Когда установлено, пакет, выходящий из потока dummynet, не проходит через брандмауэр повторно, в противном случае, после обработки канала пакет повторно вводится в брандмауэр по следующему правилу.

Синтаксис написания правил ядерного IPFW NAT следующий:

ipfw [-q] nat number config config-options

Если явно не указать номер правила nat, система присваивает правилу номер 123.

В /etc/rc.conf добавляем

gateway_enable=«YES»

firewall_enable="YES"
firewall_nat_enable="YES"
firewall_script="/etc/firewall.script"
firewall_logging="YES"
dummynet_enable="YES"

Делаем простейший файервол

ee /firewall.script

#!/bin/sh

# Задаём строку для обращения к ipfw.
ipfw="/sbin/ipfw -q"

# Сетевая карта в которую вставлен провод от провайдера.
LanOut="em0"
IpOut="192.168.1.134"

# Сетевая карта "смотрящая" во внутреннюю сеть.
LanIn="em2"
IpIn="10.0.0.1"

# DMZ
LanDmz="em1"
IpDmz="192.168.2.162"
NetDmz="192.168.2.0"
MaskDmz="28"

# Внутренняя подсеть.
NetIn="10.0.0.0"

# Сетевая маска внутренней подсети.
NetMask="24"

# Если до выполнения этого сценария в фаерволе
# были какие-то правила - сбрасываем их.
${ipfw} -f flush

# Создаём таблицу с пользователями, которым разрешен доступ в Интернет.
# Если в таблице 0 были какие-то значения - сбрасываем их.
${ipfw} -f table 0 flush
${ipfw} table 0 add 10.0.0.0/24

# Сбрасываем все ограничители.
${ipfw} -f pipe flush

# Сбрасываем все очереди.
${ipfw} -f queue flush

# Таблица DMZ
${ipfw} table 10 add 192.168.2.161
${ipfw} table 10 add 192.168.2.163
${ipfw} table 10 add 192.168.2.164

${ipfw} add deny ip from any to any not verrevpath in

# MAIL
${ipfw} add allow tcp from any to 192.168.2.163 25, 587
${ipfw} add allow tcp from 192.168.2.163 to any 25, 587

# NAT
${ipfw} add nat 1 config log if em0 reset same_ports
${ipfw} add nat 1 ip from table\(0\) to not table\(10\) via em0
#${ipfw} add nat 1 ip from 10.0.0.0/24 to not table\(10\) via em0
${ipfw} add nat 1 ip from any to 192.168.1.134 via em0

Где table 10 – не идет через NAT

Статистику можно посмотреть так:

ipfw nat 1 show

Пример: нужно сделать проброс портов для RDP сервера во внутренней сети с IP 10.0.0.20. Тогда правило НАТа примет вид

${ipfw} add nat 1 config log if em0 reset same_ports \
       redirect_port tcp 10.0.0.20:3389 3389

Перезагружаем IPFW и смотрим

 ipfw nat 1 show config

 

http://www.lissyara.su/articles/freebsd/tuning/ipfw_nat/
http://ipfw.ism.kiev.ua/ipfw.html

https://mdex-nn.ru/page/probros-portov-v-jadernom-ipfw-nat.html

 

image_pdfimage_print

Unbound

Смотрим есть ли конфигурационный файл

# unbound-checkconf

Конфигурационный файл unbound.conf должен находиться в каталоге /var/unbound.

Набираем

man unbound.conf

и изучаем пример и опции.

Пишем по подобию:

root@roller:/var/unbound # cat unbound.conf
server:
       # Уровень логирования - 0 (только ошибки)
        verbosity: 0
        # Порт, на котором "слушать" запросы
        port: 53
        # Описываем интерфейсы, на которых будем "слушать" запросы
        interface: 127.0.0.1
        interface: 192.168.2.162
       # Указываем исходящий интерфейс
        outgoing-interface: 192.168.1.134
       # Указываем сети, чьи запросы будем обрабатывать
        access-control: 10.0.0.0/24 allow
        access-control: 192.168.2.160/28 allow

    # Описание зон

      local-zone: "192.2.in-addr.arpa." static
      local-data: "192.2.in-addr.arpa. 10800 IN NS amo.ka."
      local-data: "192.2.in-addr.arpa. 10800 IN SOA amo.ka. admin.amo.ka. 1 3600 1200 604800 10800"
      local-data: "162.2.168.192.in-addr.arpa. 10800 IN PTR amo.ka."
      local-data: "amo.ka. 10800 IN A 192.168.2.162"

    # разрешаем ip4 tcp/udp и запрещаем поддержку ipv6
      do-ip4: yes
      do-ip6: no
      do-udp: yes
      do-tcp: yes
    # От чьего имени работает daemon unbound
      username: unbound
    # Указываем лог-файл и отключаем использование syslog
      logfile: "unbound.log"
      use-syslog: no
    # Указываем путь к pid-файлу
      pidfile: "/var/run/local_unbound.pid"
     # Прячем версию
      hide-version: yes

Проверяем и добавляем в автозагрузку и стартуем:

# unbound-checkconf
unbound-checkconf: no errors in /var/unbound/unbound.conf
# echo 'local_unbound_enable="YES"' >> /etc/rc.conf
# sh /etc/rc.d/local_unbound start

Проверяем обработку запросов:

drill @127.0.0.1 amo.ka

root@roller:/var/unbound # drill @127.0.0.1 amo.ka
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 10555
;; flags: qr aa rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; amo.ka.      IN      A

;; ANSWER SECTION:
amo.ka. 10800    IN    A 192.168.2.162

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 4 msec
;; SERVER: 127.0.0.1
;; WHEN: Fri Nov 10 21:03:37 2017
;; MSG SIZE rcvd: 40

Перегружаем сервис

/etc/rc.d/local_unbound restart
Stopping local_unbound.
Starting local_unbound.
Waiting for nameserver to start... good

Если выводятся ошибки типа

Stopping local_unbound.
Waiting for PIDS: 1415.
Starting local_unbound.
Waiting for nameserver to start...[1457359564] unbound-control[1475:0] warning: control-enable is 'no' in the config file.
error: Error setting up SSL_CTX client key and cert
676677344:error:02001002:system library:fopen:No such file or directory:/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/bio/bss_file.c:398:fopen('/var/unbound/unbound_control.pem','r')
676677344:error:20074002:BIO routines:FILE_CTRL:system lib:/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/bio/bss_file.c:400:
676677344:error:140DC002:SSL routines:SSL_CTX_use_certificate_chain_file:system lib:/usr/src/secure/lib/libssl/../../../crypto/openssl/ssl/ssl_rsa.c:687:
.[1457359565] unbound-control[1478:0] warning: control-enable is 'no' in the config file.
error: Error setting up SSL_CTX client key and cert
676677344:error:02001002:system library:fopen:No such file or 

......

выполняем

/etc/rc.d/local_unbound setup

и рестартуем опять.

Настраваем утилиту unbound-control (аналог rndc для named)

# unbound-control-setup

 

ПРОДОЛЖЕНИЕ СЛЕДУЕТ…

 

https://www.lissyara.su/articles/freebsd/programms/unbound/

https://wiki.mikbill.ru/billing/howto/unbound

 

 

image_pdfimage_print

gstat, iostat, systat – утилиты для дисковой подсистемы

gstat

Запускаем и видим текущую нагрузку на диски.

#gstat
dT: 1.003s w: 1.000s
 L(q)   ops/s    r/s    kBps    ms/r   w/s   kBps   ms/w   %busy   Name
    0       2      0       0     0.0     2     64    0.2    0.0|   ada0
    0       0      0       0     0.0     0      0    0.0    0.0|   ada1
    0       0      0       0     0.0     0      0    0.0    0.0|   ada2
    0       2      0       0     0.0     2     64    0.2    0.0|   ada3
    0       0      0       0     0.0     0      0    0.0    0.0|   ada0p1
 ..........

iostat

#iostat -x 1
root@tst: iostat -x 1
                         extended device statistics
device r/s    w/s    kr/s    kw/s    qlen   svc_t  %b
ada0   2.4    10.3   40.9    371.6   0      16.4   2
ada1   0.0    0.0    0.6     0.0     0      10.7   0
ada2   1.4    0.0    152.9   0.5     0      9.8    1
ada3   2.4    10.3   40.7    371.6   0      16.9   2
pass0  0.0    0.0    0.0     0.0     0      37.2   0
pass1  0.0    0.0    0.0     0.0     0      182.9  0
pass2  0.0    0.0    0.0     0.0     0      26.8   0
pass3  0.0    0.0    0.0     0.0     0      0.0    0

systat -iostat

                          /0    /1    /2     /3    /4    /5    /6    /7    /8    /9   /10
              Load Average |||||

           /0%    /10    /20    /30   /40    /50   /60    /70   /80   /90   /100
cpu   user|XXXX
      nice|
    system|XXXXXXX
 interrupt|XX
      idle|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                /0%   /10   /20   /30   /40   /50   /60   /70   /80   /90   /100
ada0   MB/sX
       tps|XXXXXXXXXXXXXXXXXXXXXXXXXXX
ada1   MB/s
       tps|
ada2   MB/sXXX
       tps|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ada3   MB/sX
       tps|XXXXXXXXXXXXXXXXXXXXXXXXXXX
pass0 MB/s
       tps|
pass1  MB/s
       tps|
pass2  MB/s
       tps|
pass3  MB/s
       tps|

Определить процесс, который нагружает диски, выполним такую команду:

top -m io -o total

 

image_pdfimage_print

UTF-8 в консоли

В FreeBSD 10 и выше юникод поддерживается из коробки

В /boot/loader.conf надо добавить строчку:

kern.vty=vt
/etc/login.conf:
russian-utf8|Russian UTF-8 Users Accounts:\
           :charset=UTF-8:\
           :lang=ru_RU.UTF-8:\
           :lc_all=ru_RU.UTF-8:\
           :tc=default:
# cap_mkdb /etc/login.conf
/etc/profile:
MM_CHARSET=UTF-8; export MM_CHARSET
# pw usermod Юзвер -L russian-utf8

Начиная с 9.0, для syscons(4) драйвера и очень важно – для vt(4) драйвера,
в /etc/ttys необходимо использовать тип эмулируемого терминала xterm:

#
ttyv0 "/usr/libexec/getty Pc" xterm on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" xterm on secure
ttyv2 "/usr/libexec/getty Pc" xterm on secure
ttyv3 "/usr/libexec/getty Pc" xterm on secure
ttyv4 "/usr/libexec/getty Pc" xterm on secure
ttyv5 "/usr/libexec/getty Pc" xterm on secure
ttyv6 "/usr/libexec/getty Pc" xterm on secure
ttyv7 "/usr/libexec/getty Pc" xterm on secure

Ранее, syscons(4), для KOI8-R тип эмулируемого терминала cons25r,
для KOI8-Ucons25u. Для CP437 (VGA default) – cons25, US-ASCII – cons25w.

Локализация login shells и использование login class.

Описан в FreeBSD HandBook и выполняется как обычно, локализация
login shell’ов и может быть использована совместно с настройкой login
class через описание его в /etc/login.conf

Локализация представляет из себя следующую конструкцию:

LanguageCode_CountryCode.Encoding

где:

LanguageCode_Country Code Description
 ----------------------------------------------------
 en_US English, United States
 ru_RU Russian, Russia

команда покажет все присутствующие в системе locale:

# locale -a | more

Работа с charater set (charset) для языков, например: – ISO8859-1, ISO8859-15, KOI8-R, CP1251, CP437 и тд и тп описана в multibyte(3), а список charsets для языков можно найти
в IANA Registry.

FreeBSD использует Xorg-compatible locale encodings.

1) использование login класса

– можно отредактировать /etc/login.conf и изменить настройки класса “russian
или создать отдельный класс russianu

a) изменяем класс russian /etc/login.conf
russian|Russian Users Accounts:\
      :charset=KOI8-R:\
      :lang=ru_RU.KOI8-R:\
      :tc=default:

на

russian|Russian Users Accounts:\
      :charset=UTF-8:\
      :lang=ru_RU.UTF-8:\
      :tc=default:

или

b) создаем в дополнение к классу “russian”, новый класс “russianu”
russianu|Russian Users Accounts UTF-8:\
       :charset=UTF-8:\
       :lang=ru_RU.UTF-8:\
       :tc=default:

По завершению перестраиваем хеш-базу:

# cap_mkdb /etc/login.conf

Все, осталось перевести пользователей которым нужен UTF-8 на новый класс
используя на выбор: passwd(1), pw(8), chpass(1), vipw(8)

2) настройка locale в shell/bash/csh/tcsh

для настройки локализации в шелах, необходимо соответствующим образом
настроить тот или иной shell, см. соответствующий man

Настройка локализации в login shell’ах сводится как минимум к заданию
переменных:

LANG
MM_CHARSET

в пользовательских файлах: ~/.login_conf и/или пользовательских стартап shell файлах: ~/.profile, ~/.bashrc, или ~/.cshrc.

sh/bash:
export LANG=ru_RU.UTF-8
export MM_CHARSET=UTF-8

Важно: в 10’ой ветке присутствует ошибка ввода UTF-8 в Bourne Shell, MFC из 11’ой ветки не было сделано:

Bug 196973 – sh(1) broken UTF-8 input

Примечание: в 11.x-RELEASE указанных выше проблем нет, в 10’ой ветке вместо /bin/sh можно установить bash.

csh/tsch:
setenv LANG ru_RU.UTF-8
setenv MM_CHARSET UTF-8

Или в системных стартап shell файлах: /etc/profile и /etc/csh.login.

http://unix1.jinr.ru/~lavr/vt/vtcons.html

https://www.lissyara.su/?id=2133

image_pdfimage_print

netstat: command not found

This simply means that the relevant package net-tools which includes netstat executable is not installed, thus missing. The package net-tools may not be installed on your system by default so you need to install it manually.

The package also includes aditional utilisties such as arpifconfignetstatrarpnameif and route.
To make netstat available on your system simply install the net-tools package using the bellow command:

# apt-get install net-tools
image_pdfimage_print

VirtualBox – общая папка

Разработчиками VirtualBox добавлена возможность создания “Общей папки”, которая будет доступна для обмена файлами между обеими операционными системами.

Для того, чтобы получить доступ к Общей папке из VirtualBox нужно сделать:

1. Установить пакет дополнений VirtualBoxAdditions.

2. Далее в основной операционной системе Windows создаём папку с произвольным названием (например – «tmp»)

3. В VirtualBox нажимаем настройку выбранной виртуальной операционной системы

4. Слева в меню переходим в «Общие папки» и жмём кнопку с изображением папки со знаком «+»

5. Нажимаем на кнопку выбора с изображением «стрелки» и кликаем на «Другой…»

6. Выбираем нашу созданную папку (по желанию отметить «Авто-подключение») . Теперь она видна в списке общих папок

7. Запускаем виртуальную операционную систему и после загрузки Windows в VirtulBox, переходим в меню

«Пуск»-->«Стандартные»-->«Выполнить»

8. В строке программы «Выполнить» пишем команду:

net use x: \\vboxsvr\tmp

(после x: – “пробел”, «tmp» в конце — это имя созданной вами папки) и кликаем на кнопку «ОК»

9. Открываем «Мой Компьютер» и видим в «Сетевом размещении» созданную нами папку «tmp», которая позволяет обмениваться файлами между основной и виртуальной операционной системами Windows.

image_pdfimage_print

phpmyadmin

Для Apache или Lighttp

apt-get install phpmyadmin

все установится автоматически.

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

apt-get install phpmyadmin

На вопрос “с какими серверами мы будем его использовать”, оставляем все поля пустыми.

Открываем на редактирование

nano /etc/nginx/sites-available/default

и в секцию server {…} дописываем внизу

#phpMyAdmin
 location /phpmyadmin {
     #root /usr/share/;
     index index.php index.html index.htm;
 location ~ ^/phpmyadmin/(.+\.php)$ {
     try_files $uri $uri/ =404;
     root /usr/share/;
     fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
     #fastcgi_pass 127.0.0.1:9000;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $request_filename;
     include /etc/nginx/fastcgi_params;
     }
 location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
     root /usr/share/;
     }
 }
 location /phpMyAdmin {
     rewrite ^/* /phpmyadmin last;
     }

Для Debian делаем символьную ссылку

 ln -s /usr/share/phpmyadmin /var/www/html/

Проверяем синтаксис и перезапускаем:

nginx -t
service nginx restart

Для Debian 9:

mysql -u root -p mysql
Enter password:

MariaDB [mysql]> update user set plugin='' where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.01 sec)

MariaDB [mysql]> exit
Bye

Проверяем

http://192.168.0.1/phpmyadmin/

 

 

image_pdfimage_print