Reinstall youtube-dl on Ubuntu 18.04

First remove old version of youtube-dl if installed:

sudo apt-get remove youtube-dl

Next install latest version of youtube-dl and install it:

sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

If you have an error such “/usr/bin/env ‘python’ no such file or directory youtube-dl” – thats meen than you does not have installed python, or you install python3. Install python by command:

sudo apt install python-minimal

Or you can start youtube-dl with python3:

python3 /usr/local/bin/youtube-dl

Or you can create symbolic link python3->python with following command:

sudo ln -s /usr/bin/python3 /usr/local/bin/python

Налаштування BDCOM P3310

bdcom p3310

Підключіть кабель в COM порт комп’ютера та Console порт на оптичному терміналі. Вікрийте програму Putty та підключіться до COM порта на швидкості 9600

Для входу в консоль введіть логін: admin, пароль: admin

Після підключення перейдемо в рожим налаштування, для йього введіть по черзі наступні команди:

enable
config

Щоб переглянути поточну збережену і активну конфігурацію введіть команди:

show configuration
show running-config

Приступаємо до налаштування!
1) Вилучимо стандартний vlan 1 і додамо vlan управління (у мене він 1000), vlan 1001 (клієнтський):

ІР адреса оптичного терміналу: 10.10.0.3
Шлюз по замовчуванню 10.10.0.1 (у вас ці настройки можуть бути іншими)

no interface vlan 1
vlan 1000,1001
exit
interface vlan 1000
description core
ip address 10.10.0.3 255.255.255.0
exit
ip default-gateway 10.10.0.1

П’ятий комбо порт я налаштував як вхідний (1000 – vlan управління, 1001 – клієнтський):

interface gigaEthernet 0/5
description UPLINK
no shutdown
switchport trunk vlan-allowed 1000
switchport trunk vlan-allowed add 1001
switchport trunk vlan-untagged none
switchport mode trunk
exit

Вибрав комбо порт щоб можна було включити вхідний лінк по міді або SFP.

3) Напишемо шаблон для онушок (надалі вони самі будуть реєструватися, потрібно буде тільки дописувати опис і зберігати конфиг):

epon onu-config-template user1
cmd-sequence 001 epon onu port 1 ctc vlan mode tag 1001
cmd-sequence 002 epon onu port 1 ctc loopback detect
cmd-sequence 003 epon onu port 2 ctc vlan mode tag 1001
cmd-sequence 004 epon onu port 2 ctc loopback detect
cmd-sequence 005 epon onu port 3 ctc vlan mode tag 1001
cmd-sequence 006 epon onu port 3 ctc loopback detect
cmd-sequence 007 epon onu port 4 ctc vlan mode tag 1001
cmd-sequence 008 epon onu port 4 ctc loopback detect
cmd-sequence 009 loopback-detection recovery-time 7200
exit

Налаштуємо EPON порти:

interface EPON0/1
no shutdown
description ixnfo
switchport trunk vlan-untagged none
switchport trunk vlan-allowed 1001
switchport mode trunk
epon pre-config-template user1 binded-onu-llid 1-64
filter dhcp
switchport protected 1
  
interface EPON0/2
no shutdown
description ixnfo
switchport trunk vlan-untagged none
switchport trunk vlan-allowed 1001
switchport mode trunk
epon pre-config-template user1 binded-onu-llid 1-64
filter dhcp
switchport protected 2
  
interface EPON0/3
no shutdown
description ixnfo
switchport trunk vlan-untagged none
switchport trunk vlan-allowed 1001
switchport mode trunk
epon pre-config-template user1 binded-onu-llid 1-64
filter dhcp
switchport protected 3
  
interface EPON0/4
no shutdown
description ixnfo
switchport trunk vlan-untagged none
switchport trunk vlan-allowed 1001
switchport mode trunk
epon pre-config-template user1 binded-onu-llid 1-64
filter dhcp
switchport protected 4

Добавимо адміністратора і пароль (замість слова TEXT введіть ваш пароль):

aaa authentication login default local
aaa authentication enable default none
aaa authorization exec default local
username admin password 0 TEXT
enable password 0 TEXT
service password-encryption

Вкажемо з яких адрес дозволено підключатися адміну:

ip access-list standard MANAGEMENT
permit 10.0.0.0 255.0.0.0
permit 192.168.1.0 255.255.255.0
exit
ip telnet access-class MANAGEMENT

Вкажемо часовий пояс і NTP-сервер з яким синхронізувати час (на нових прошивках замість sntp потрібно писати ntp):

time-zone Kyiv +2
sntp server 10.10.0.1
sntp query-interval 3600

Налаштуємо SNMP для збору статистики:

snmp-server location test
snmp-server contact test
snmp-server community public ro MANAGEMENT

Налаштуємо ім’я пристрою (замість тексту olt_3 введіть назву вашого пристрою) і довжину консольного рядка:

hostname olt_3
terminal width 256
terminal length 256

Відключимо HTTP (за бажанням)

no ip http server

Або налаштуємо з доступом по IP з раніше створеного access-list

ip http server
ip http access-class MANAGEMENT

Вкажемо період в секундах через який повинен включаться порт після стану error-disable:

error-disable-recovery 10800

Зберігаємо налаштування:

write

На нових прошивках зберігаємо так:

write all

На цьому основна настройка завершена.

Додаткові налаштування

Виберемо потрібну ONU і додамо опис:

interface EPON0/1:1
description TEXT

За бажанням замість telnet можна використовувати SSH, який включається командою:

ip sshd enable

Якщо яка-небудь ONU флудить, наприклад EPON0/2:28, то можна відключити на ній ethernet порт (при петлі це не допоможе):

interface EPON0/2:28
epon onu port 1 ctc shutdown

При петлі можна додати ONU в чорний список і видалити з порта, після цього ONU не зможе автоматично зареєструватися, а в лог файлі будуть записи «reject»:

interface EPON0/2
epon onu-blacklist mac e067.b37d.d3d3
no epon bind-onu mac e067.b37d.d3d3

Дозволити на ONU тільки два MAC адреси можна так:

interface EPON0/2:2
switchport port-security dynamic maximum 2
switchport port-security mode dynamic

Перегляд версії прошивки, MTU, списку адміністраторів:

show version
show system mtu
show local-users

Скидання на заводські налаштування:

delete startup-config
reboot

How to reboot Mikrotik if ping failed

Let’s write script that reboot mikrotik device if no ping to gateway.

First of all lets go to menu System -> Script in Winbox and create new script with name PingCheck

Write this core in field Source:

:if ([/ping 10.21.2.1 count=10] = 0) do={
     /system reboot
}

Don’t forget to change IP 10.21.2.1 to yours gateway IP address.

Now lets create scheduler that will start this script every 10 minutes. Go to menu System -> Scheduler and create new task:

Write some name of new task, set start date Jan/01/1970, time 00:00:00 and run interval 00:10:00. Don’t forget to write script name PingCheck in field On Event.

That’s all.

How to Clone a Partition or Hard drive in Linux

First lets show all partitions in system:

fdisk -l

Now clone a partition /dev/sdb1/ to /dev/sdc1 using the following dd command.

dd if=/dev/sdb1  of=/dev/sdc1

The above command tells dd to use /dev/sdb1 as input file and write it to output file /dev/sdc1.

How to Clone Linux Hard Drive

Cloning a Linux hard drive is similar to cloning a partition. However, instead of specifying the partition, you just use the entire drive. Note that in this case it is recommended that the hard drive is same in size (or bigger) than the source drive.

dd if=/dev/sdb of=/dev/sdc

This should have copied the drive /dev/sdb with its partitions on the target hard drive /dev/sdc. You can verify the changes by listing both drives with fdisk command.

fdisk -l

Windows – як встановити Git

Щоб встановити Git на Windows 7 завантажте найновішу версію програми на офіційному сайті:

https://git-scm.com/download/win

Запустіть завантажений файл, та слідуйте інструкціям

Якщо ви використовуєте в роботі Visual Studio Code, виберіть його редактором по замовчуванню в списку:

Gitlab – add SSH key

Щоб кожен раз при завантаженні проектів на сервер gitlab не вводити пароль, потрібно добавити SSH ключ.

Для цього на вашому комп’ютері згенеруйте пару відкритого і закритого ключа командою:

ssh-keygen -t rsa -f ~/.ssh/gitlab

Вводити пароль на сертифікат чи ні, вирішуйте самі. Все залежить від ситуації і вашої параноїдальності. Якщо вкажете пароля, його потрібно буде вводити кожен раз, коли будете використовувати ключ для авторизації.

Якщо у вас це єдиний ключ в директорії .ssh, то більше нічого робити не треба. У разі, якщо у вас їх декілька, то треба створити конфігураційний файл і вказати, для якого ресурсу який ключ використовувати. Для цього створюємо файл ~ / .ssh / config приблизно такого змісту:

Host git.example.host
    IdentityFile /home/user/.ssh/gitlab
    port 22

Порт 22 вказувати не обов’язково. Я його вказав для прикладу, щоб в разі використання нестандартного порту, ви його там вказали.

Тепер копіюємо вміст файлу ~/.ssh/gitlab.pub і йдемо в web інтерфейс gitlab. Відкриваємо розділ Setting->SSH Keys і вставляємо в поле key наш ключ.

Щоб завантажити проект на сервер gitlab, відкрийте папку з проектом на вашому комп’ютері та виконайте команди:

git init
git add .
git commit -m "Initial commit"
git remote add project [email protected]:root/project.git
git push

Не забудьте поміняти [email protected] на адрес вашого сервера, розташування та назву проекта root/project.git, на вашому сервері.

Linux Grub change default boot operating system

Якщо на комп’ютері встановлено декілька операційних систем, по замовчуванню завантажувач Grub завантажує першу операційну систему в списку.

Щоб змінити порядок завантаження операційних систем відкрийте файл

/etc/default/grub

Знайдіть рядок

GRUB_DEFAULT=0

Та змініть цифру 0 на номер операційної системи у вашому списку. (Нумерація рядків починається з 0)

Збережіть зміни в файлі та обновіть налаштування Grub

sudo update-grub

Gitlab Nginx add new domain

Щоб добавити додаткові домени на сервер Nginx, на якому працює Gitlab, потрібно відредагувати файл:

nano /etc/gitlab/gitlab.rb

і перейдіть до рядка nginx[‘custom_nginx_config’] та змініть його, як показано нижче, переконайтесь, що рядок не закоментований:

nginx['custom_nginx_config'] = "include /etc/nginx/conf.d/*.conf;"

Створіть новий каталог для конфігураційних файлів Nginx:

mkdir -p /etc/nginx/conf.d/
nano /etc/nginx/conf.d/example.site.conf

Відредагуйте файл example.site.conf

server {
    listen *:80;
    server_name example.site www.example.site;

    return https://$host$request_uri;
}

server {
    listen *:443;
    server_name  example.site www.example.site;

    ssl on;
    ssl_certificate  /etc/letsencrypt/live/example.site/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/example.site/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }
}

Встановіть Letsencrypt (якщо ще не встановлений) та додайте сертифікат Letsencrypt для нового домену

sudo apt-get install letsencrypt -y
sudo letsencrypt certonly --standalone --agree-tos --no-eff-email --agree-tos --email [email protected] -d example.site

Linux – підключення до SSH за допомогою ключа

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

У цьому посібнику ми зупинимось на налаштуванні SSH-ключів для установки на Ubuntu 18.04. SSH-ключі забезпечують простий, безпечний спосіб входу на ваш сервер і рекомендуються для всіх користувачів.

Крок 1 – Створіть ключову пару RSA

Першим кроком є створення пари ключів на клієнтській машині (зазвичай на вашому комп’ютері):

ssh-keygen -b 4096

За замовчуванням ssh-keygen створить 2048-бітну пару ключів RSA, що є достатньо безпечним для більшості випадків використання (ви можете додатково передати параметр
-b 4096 для створення більшого 4096-бітного ключа).

Після введення команди ви побачите повідомлення:

Output
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):

Натисніть клавішу Enter, щоб зберегти пару ключів у .ssh / підкаталозі у вашому домашньому каталозі або вкажіть альтернативний шлях.

Якщо ви раніше генерували пару ключів SSH, ви можете побачити наступне запит:

Output
/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?

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

Потім програма запропонує створити пароль для SSH ключа:

Output
Enter passphrase (empty for no passphrase):

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

Потім ви побачите такий вихід:

Output
Your identification has been saved in /your_home/.ssh/id_rsa.
Your public key has been saved in /your_home/.ssh/id_rsa.pub.
The key fingerprint is:
a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_host
The key's randomart image is:
+--[ RSA 2048]----+
|     ..o         |
|   E o= .        |
|    o. o         |
|        ..       |
|      ..S        |
|     o o.        |
|   =o.+.         |
|. =++..          |
|o=++.            |
+-----------------+

Тепер у вас є відкритий та приватний ключ, який ви можете використовувати для автентифікації. Наступним кроком є розміщення відкритого ключа на вашому сервері, щоб ви могли використовувати автентифікацію на основі SSH-ключа для входу.

Крок 2 – Скопіюйте відкритий ключ на сервер Ubuntu

Найшвидший спосіб скопіювати ваш відкритий ключ на хост Ubuntu – це використовувати утиліту під назвою ssh-copy-id.

Копіювання відкритого ключа за допомогою ssh-copy-id

Інструмент ssh-copy-id включений за замовчуванням у багатьох операційних системах, тому він може бути доступний у вашій локальній системі. Щоб цей метод працював, ви вже повинні мати доступ до SSH на основі пароля до свого сервера.

Щоб скористатися утилітою, вам просто потрібно вказати віддалений хост, до якого ви хочете підключитися, та обліковий запис користувача, до якого ви маєте пароль SSH. Це обліковий запис, в який буде скопійовано ваш відкритий ключ SSH.

Синтаксис:

sh-copy-id -i ~/.ssh/mykey username@remote_host

Якщо на вашому сервері запущений SSH на не стандартному порті, ви можете вказати порт, до якого підключатися:

sh-copy-id -p 1234 username@remote_host

Щоб використовувати декілька ключів для різних серверів, в папці .ssh створіть файл config з таким вмістом:

Host server1
    IdentityFile ~/.ssh/private-key-1
    port 22

Host Server2
    IdentityFile ~/.ssh/private-key-2
    port 22

Щоб використовувати ключі в операційній системі Windows за допомогою програми Putty – їх потрібно сконвертувати в формат .ppk за допомогою програми puttygen.exe. (Скачати програми Putty та Puttygen можна на офіційному сайті: https://www.putty.org/)

Згенерований .ppk ключ потрібно вказати в налаштуваннях SSH підключення в програмі Putty:

Крок 3 – відключення доступу на сервер за допомогою пароля

Після налаштування доступу на сервер за допомогою SSH ключа для підвищення безпеки сервера потрібно відключити стандартний доступ за допомогою пароля. Це дозволить захистити сервер від підбору пароля зловмисниками.

Для цього потрібно відредагувати файл: /etc/ssh/sshd_config:

PasswordAuthentication no
PermitRootLogin no

Після цього перезевантажте сервер SSH:

sudo service ssh restart

Щоб дозволити доступ по SSH з використання паролю для деяких ІР адресів, в кінці конфігураційного файла пропишіть наступні параметри:

Match Address 192.168.1.0/24,XXX.XXX.XXX.XXX
      PasswordAuthentication yes

Замість 192.168.1.0/24,XXX.XXX.XXX.XXX підставте через кому Ваші ІР адреси