Debian l2tp клиент до микротика

Задача: создать автоматическое l2tp соединение хостинга(debian — клиент) с серверной(mikrotik — сервер).

Решение:

Mikrotik configuration:

L2TP server:

/interface l2tp-server server   set enabled=yes ipsec-secret=...any.ipsec.secret... use-ipsec=yes service=l2tp

L2TP secret:

/ppp secret
add name=...l2tp.user... password=...l2tp.pass...    + local & remote address

IPsec Profile (in debian configuration IKE)

ip ipsec profile print
Flags: * - default
0 * name="default" hash-algorithm=sha1 enc-algorithm=aes-128,3des dh-group=modp2048,modp1024 lifetime=1d proposal-check=obey nat-traversal=yes dpd-interval=2m dpd-maximum-failures=5 

IPsec Proposal (in debian configuration ESP)

ip ipsec proposal print
Flags: X - disabled, * - default
0 * name="default" auth-algorithms=sha1 enc-algorithms=3des lifetime=30m pfs-group=modp1024 

 

Debian install & configuration:

apt install xl2tpd strongswan libstrongswan-extra-plugins

/etc/ipsec.conf

Редактируем файл /etc/ipsec.conf, отступы в начале строк параметров, обязательны.

conn %default   ikelifetime=60m   keylife=20m   rekeymargin=3m   keyingtries=1   keyexchange=ikev1   authby=secret conn myvpn   keyexchange=ikev1   left=%defaultroute auto=start dpdaction=hold closeaction=hold   authby=secret   type=transport   leftprotoport=17/1701   rightprotoport=17/1701   right=...ipsec.server.ip...   ike=aes-sha1-modp1024!   esp=3des-sha1-modp1024!

/etc/ipsec.secrets

Создадим 2 файла с правами 600, пустая строка в конце файла обязательна:

: PSK "...any.ipsec.secret..."

/etc/xl2tpd/xl2tpd.conf

[myl2tp]
lns = ...ipsec.server.ip...
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
length bit = yes

/etc/ppp/options.l2tpd.client

ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-chap
noccp
noauth
mtu 1280
mru 1280
noipdefault
#defaultroute
usepeerdns
connect-delay 5000
name ...l2tp.user...
password ...l2tp.pass...

Start:

service strongswan-starter restart
service xl2tpd restart
ipsec up myvpn
...connection 'myvpn' established successfully

echo "c myl2tp" > /var/run/xl2tpd/l2tp-control
ip address

ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast state UNKNOWN group default qlen 3
    link/ppp
    inet 172.16.0.250 peer 172.16.0.100/32 scope global ppp0
    valid_lft forever preferred_lft forever

ip route add A.B.C.D dev ppp0

Скрипт автоматизации:

l2tp-ipsec-vpn.tar

Возможные ошибки:

  1. «Failed to start LSB: layer 2 tunelling protocol daemon.» Решение, запуск с монитором: xl2tpd -D
    (синтаксическая ошибка была)
  2. debian: «received NO_PROPOSAL_CHOSEN error notify», mikrotik: «failed to pre-process ph2 packet»
    Решение: На микротике поправить IP-IPsec
    Решение: На микротике поправить IP-IPsec

    Пример: Сервер: /ip ipsec peer print address=YY.YYY.YY.YY/32 local-address=ХХ.ХХХ.ХХ.ХХ auth-method=pre-shared-key secret=»ПАРОЛЬ» generate-policy=port-strict policy-template-group=default exchange-mode=main send-initial-contact=yes nat-traversal=no proposal-check=obey hash-algorithm=sha1 enc-algorithm=aes-128 dh-group=modp2048,modp1024 lifetime=1d dpd-interval=disable-dpd Клиентский роутер: MikroTik] > ip ipsec peer print Flags: X — disabled, D — dynamic, R — responder 0 name=»DC» address=ХХ.ХХХ.ХХ.ХХ/32 local-address=YY.YYY.YY.YY profile=default exchange-mode=main send-initial-contact=yes /ip ipsec policy add dst-address=ХХ.ХХХ.ХХ.ХХ/32 ipsec-protocols=ah peer=DC proposal=PROPOSAL-IPSEC-MAIN \ protocol=gre sa-dst-address=ХХ.ХХХ.ХХ.ХХ sa-src-address=YY.YYY.YY.YY src-address=\ YY.YYY.YY.YY/32 tunnel=yes Т.е. на клиенте в протоколах я поставил ah вместо esp, а на сервере отключил dpd и позволил формировать policy автоматически. В результате, туннель поднялся, а на центральном роутере появилась диинамическая policy от клиента.

    [свернуть]

Источник: https://gist.github.com/danielv99/ae6dbd6d3f5b8fe4241519f5a0733ff3

https://forummikrotik.ru/viewtopic.php?t=11235

https://wiki.slackware.su/wiki:articles:l2tp

L2TP VPN client on Linux Debian

ipsec.conf(5) – Linux man page

Openswan L2TP/IPsec VPN client setup

Mikrotik Manual:IP/IPsec

Debian 12 установить Касперский Ендпойнт c Агентом

wget https://products.s.kaspersky-labs.com/endpoints/keslinux10/12.1.0.1508/multilanguage-12.1.0.1508/3931313439317c44454c7c31/kesl_12.1.0-1508_amd64.deb

apt-get install ./kesl_12.1.0-1508_amd64.deb

wget https://products.s.kaspersky-labs.com/administrationkit/ksc10/15.1.0.20748/russian-20551983-ru/3931313330317c44454c7c31/klnagent64_15.1.0-20748_amd64.deb

apt-get install ./klnagent64_15.1.0-20748_amd64.deb

Debian 12 установка настройка сервера OpenVPN 2.6.3

Установка ОпенВПН со скриптами администрирования ключей(изи-РСА):

apt install openvpn easy-rsa
cd /etc/openvpn/easy-rsa

Инициализация структуры путей к скрипту:

./easyrsa init-pki

Здесь можно настроить под себя конфигурацию(переменные) самой службы.

Далее создание ключей и сертификатов:

./easyrsa build-ca nopass
 ./easyrsa gen-req vpn-server nopass
./easyrsa sign-req server vpn-server
openvpn --genkey secret pki/ta.key

Пример рабочей конфигурация сервера OpenVPN 2.6:

port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/vpn-server.crt
key /etc/openvpn/easy-rsa/pki/private/vpn-server.key
dh /etc/openvpn/easy-rsa/pki/dh.pem
data-ciphers AES-256-GCM:AES-128-GCM:?CHACHA20-POLY1305:AES-256-CBC
topology subnet
server 10.77.0.0 255.255.0.0
ifconfig-pool-persist /etc/openvpn/server/ipp.txt
client-config-dir /etc/openvpn/server/ccd
# Указать шлюз клиентам
#push "redirect-gateway def1 bypass-dhcp"
#push "redirect-gateway ipv6 bypass-dhcp"
#push "route-gateway 192.168.10.1"
# Указывать ДСИ
#push "dhcp-option DNS 8.8.8.8"
#push "dhcp-option DNS 1.1.1.1"
keepalive 10 120
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0

Создать файлы, прописать права доступа. Эти файлы для возможной записи статических адресов(ccd) и журнала авторегистраций(ipp) клиентов:

mkdir /etc/openvpn/server/ccd
chmod 755 /etc/openvpn/server/ccd
touch /etc/openvpn/server/ipp.txt
chmod 755 /etc/openvpn/server/ipp.txt

Разрешаем автоматический старт сервиса OpenVPN:

 systemctl enable openvpn-server@server

Запускаем сервер openvpn-server:

 systemctl start openvpn-server@server

Перезагрузить службу openvpn:

 systemctl restart openvpn-server@server

Основные команды администратора сервера OpenVPN для управления клиентами:

(перейти в папку со скриптом: cd /etc/openvpn/easy-rsa)

1. Создать сертификат клиенту:

./easyrsa.real build-client-full client1 nopass

Срок действия сертификата можно менять в переменной в файле vars

2. Отозвать сертификат клиента:

./easyrsa.real revoke client1

3. Сгенерировать список отзыва:

./easyrsa.real gen-crl

Выдача статических адресов клиенту вручную осуществляется через файл=название сертификата, помещенному в папку /etc/openvpn/server/ccd. Например, файл client1, содержимое файла:

ifconfig-push 10.77.77.100 255.255.255.0

 

Литература:

Самое главное: пример конфига сервера: https://github.com/OpenVPN/openvpn/blob/master/sample/sample-config-files/server.conf

  1. Почему отключена сжатие, шифрование GCM и нет SHA512: https://forums.openvpn.net/viewtopic.php?t=33671
  2. https://redos.red-soft.ru/base/redos-7_3/7_3-network/7_3-sett-vpn/7_3-openvpn/?nocache=1732823939909 (заброшка)
  3. https://wiki.debian.org/OpenVPN#Installation (заброшка)

vps debian активирус kesl (эндпойнт касперского)

Скачать установочные  файлы со страницы https://support.kaspersky.com/us/kes10linux/download

wget https://products.s.kaspersky-labs.com/endpoints/keslinux10/10.1.1.6421/multilanguage-10.1.1.6421/babce9ef/kesl_10.1.1-6421_amd64.deb

или v.12

wget https://products.s.kaspersky-labs.com/endpoints/keslinux10/12.0.0.6672/multilanguage-12.0.0.6672/3739343634317c44454c7c31/kesl_12.0.0-6672_amd64.deb

и агента администрирования, если нужен:

wget https://products.s.kaspersky-labs.com/endpoints/keslinux10/10.1.1.6421/multilanguage-10.1.1.6421/b137f4c0/klnagent64_11.0.0-29_amd64.deb

или в.14

https://trial.s.kaspersky-labs.com/registered/ouundxxwsbfbkd9ylzgg/3637313332347c44454c7c32/klnagent64_14.2.0-23324_amd64.deb

 

установка:

dpkg -i kesl_10.1.1-6421_amd64.deb
dpkg klnagent64_11.0.0-29_amd64.deb

Читать далее «vps debian активирус kesl (эндпойнт касперского)»

Debian iptables geo блокировка доступа по странам

Вариант с использованием IPSET совместно с IPTABLES.

Все будет выполнено на шелл скриптах. Устанавливаем необходимое:

apt update & apt upgrade
apt-get install ipset libnet-cidr-perl jq curl wget ipcalc grep gzip

Теперь пишем наш скрипт /etc/RU/block_noRU_geoip.sh  для создания и обновления IPSET: Читать далее «Debian iptables geo блокировка доступа по странам»

FreeBSD CBSD виртуальная debian+home assistant в контейнере

В предыдущей статье описана установка посредством питона на FreeBSD, но неудобно, т.к. при обновлении портов(пакетов) для одних приложений, приходиться следить, чтоб прочие продолжили работать.  Решил раскидать приложения по отдельным контейнерам(клеткам) и виртуальным машинам. Плюс — будет легче передвигать Home Assistant на другие системные блоки, при необходимости. Начнем с HA

Задача:

  1. Установить CBSD
  2. Установить виртуальную машину(debian)
  3. В контейнере создать экосистему с ha

Читать далее «FreeBSD CBSD виртуальная debian+home assistant в контейнере»

Debian — установка настройка iptables

Prerequisites

Existing variables

We need the WAN_* and LAN_* variable which is already defined in the configuration file, in 010 — Configuration variables.

Reload the variables

Ensure that the variables are available, by loading the configuration script :

source /root/config.env

Читать далее «Debian — установка настройка iptables»

Используем свободные телефоны для пользы дела

MediaDeb: Debian для китафонов чипах MediaTek

В этой заметке я расскажу о том, как превратить старый убитый китафон на чипе MediaTek, пылящийся на полке, уже даже без обновлений от производителя в… сервер под управлением Debian Stretch! Оную операцию я проделал для UMI-X2 и iOcean X8, и прошивки для оных и можно скачать по ссылке у меня в блоге. Учитывая, что типичный китайский телефон уже давно имеет по четыре, а то и десять процессорных ядер и 2GB оперативной памяти, а то и больше, результат получается намного более производительным, чем тот же Raspbberry PI, при схожем окружении.

Дайте догадаюсь, на полке пылится старый телефон? В котором скорее всего 4 или даже 8 ядер, в котором есть 2 GB RAM а то и больше, и уж точно хватает флеша? И не смотря на это производитель забил на апдейты. Или, быть может разбит экран, пластик поцарапан, антенна отвалилась и т.п. Аппарат за замену мы давно купили, старый уже не продашь, ибо никому даром не нужен, а выкидывать жалко.

Именно такие старые аппараты у меня и пылились на чердаке, вот и решил я из них сделать небольшие такие сервачки с debian на борту.

Так что я готов представить общественности первую версию моего небольшого проектика ‘MediaDeb’, который позволяет запустить на mediatek’овских трубках debian. И нет, это не chroot, где отдельные программы из debian запускаются параллельно с android. Это полноценная установка debian с кастомным ядром, в котором включено все, что нужно чтобы развернуть systemd, iotop и прочие нужности, отключен некоторые android-специфичные вещи, которые ломают debian-окружение. Сам же android выпилен из системы во имя экономии оперативной памяти и флеша.

Иными словами, если можно просто взять телефон, прошить его через SP Flash Tool debian прошивкой, воткнуть usb провод и вуоля: устройство определиться как композитное усб устройство с сетевым адаптером, виртуальным ком-портом и флешкой. Последовательный порт можно использовать, чтобы получить доступ к консоли, если вдруг неправильно настроена сеть. По умолчанию прошивка попытается получить IP адрес через dhcp на rndis интерфейсе. Теперь этого зомби можно положить на полку и представить, что мы арендовали небольшой выделенный сервер.

На что годится такой зомби?

В моем случае основное применение для этих зомби-телефонов – кросс-сборка программного обеспечения для arm используя платформу непрерывной интеграции jenkins. Так же в таком варианте этот аппарат можно использовать как небольшой дешевый сервер, например для персонального блога (долгое время этот самый блог крутился на сервере со схожими характеристиками).

А батарея не разбухнет постоянно держать аппарат на зарядке?

Если батарею телефона постоянно держать на зарядке, т.е. заряженной до 4.2 вольт, то через некоторое время она раздуется и будет ни на что не пригодна. Вдумчивая раскурка исходных кодов с применением зеленого чая показала, что это значение захардкожено в драйвере PMIC. А значит его можно отредактировать и выставить, например, в значение 3.7-3.8 вольт, что позволит батарее месяцами находиться на зарядке, и при этом в случае сбоя питания этого хватит чтобы успеть корректно завершить работу. Пока этот batteryhack сделан только для UMI-X2, Iocean-X8 на очереди.

В каком все состоянии?

Пока проект находится в зачаточной стадии (т.е. собирается на моей машине, результат вполне сносно работает). Я добавил базовую поддержку трубок UMI-X2 (MT6589, 4 ядра) и iOcean X8 (MT6592, 8 ядер). Базовая поддержка телефонов на этих чипсетах должна быть сравнительно простой. Если хотите помочь и портировать это безобразие на свою трубку – милости просим на github

В следующих заметках я постараюсь рассказать про то, как портировать MediaDeb на другие устройства на базе чипов mtk.

Источник:

https://ncrmnt.org/2017/08/04/mediadeb-debian-%D0%B4%D0%BB%D1%8F-%D0%BA%D0%B8%D1%82%D0%B0%D1%84%D0%BE%D0%BD%D0%BE%D0%B2-%D1%87%D0%B8%D0%BF%D0%B0%D1%85-mediatek/?lang=ru

Фото: Дарья Григоревская

Восстановление загрузчика ОС

Представьте себе, по какой-либо причине у вас есть другие операционные системы, установленные рядом с Debian. Или по какой-то другой причине вам придется его переустановить, потому что он на самом деле сломан. Опять же, представьте себе, у этой дрянной ОС получилась дрянная установка и она переписала загрузочную запись MBR, полностью завладев компьютером. Что дальше? Переустановка Debian? Нет.

Теория установки загрузчика

Загрузчик — это микропрограмма, устанавливаемая в  главную загрузочную запись. Главная загрузочная запись содержит программу загрузчика + таблица разделов жесткого диска + сигнатуры. Расположена главная загрузочная запись в главном загрузочном секторе — первом секторе жесткого диска .
Т.е,  каждый жесткий диск может содержать ЕДИНСТВЕННУЮ загрузочную запись, причем расположена она отдельно от самих разделов жесткого диска.

В нашем примере, главная загрузочная запись для первого диска sda находиться на /dev/sda, а не на /dev/sda1. На /dev/sda1 находится первый раздел нашего диска.

Стандартная процедура

Загрузиться c установочной флешки Debian. Выбирать установку Rescue, дойти до выбора логических дисков и запустить оболочку, затем ознакомится с присутствующими дисками командой «fdisk -l»  и выбрать жесткий диск, на котором установлены были ОС(не логические(sda1), а сам хард(sda)у меня Windows7 и Debian9 стояли на /dev/sda…), далее «grub-install /dev/sda» и всё. Перезагрузка.

Читать далее «Восстановление загрузчика ОС»

Создание загрузочной флешки Windows 7 в Debian

Дано: iso-образ Windows 7, USB-флешка и работающий Debian GNU/Linux (или Ubuntu).
Задача: Создать загрузочную флешку для установки Windows.

Решение: Форматируем флешку в NTFS и затем с помощью dd заливаем на неё iso образ.

Читать далее «Создание загрузочной флешки Windows 7 в Debian»