вівторок, 17 вересня 2019 р.

Mikrotik - поради щодо захисту

Firewall

Перелік адрес, яким дозволений доступ до мікротіка:
/ip firewall address-list
add address=192.168.1.0/24 list=allow-ip
add address=192.168.88.10/32 list=allow-ip
дозволимо з цих адрес будь-які дії:
/ip firewall filter
add action=accept chain=input comment="Allow Address List" \
       src-address-list=allow-ip
фокус - якщо приходить icmp-пакет розміром 781 байт, то адреса жерела додається у перелік дозволених на 1 годину:
/ip firewall filter
add action=add-src-to-address-list address-list=allow-ip \
        address-list-timeout=1h chain=input packet-size=781 protocol=icmp
пам'ятаємо, що вказуємо на 28 байт менше:
ping -l 753 myhostname.domain
все інше забороняємо
/ip firewall filter add action=drop chain=input
сервіси - якщо не використовуємо, то відмикаємо
/ip service
set api disabled=yes
set api-ssl disabled=yes
web-проксі й socks:
/ip proxy set enabled=no
/ip socks set enabled=no
перевірити:
/ip proxy access print
/ip socks access print
додаємо адмін-користувача з усіма правами, а admin-а видаляємо

radius

/radius print
/radius remove numbers=[/radius find ]
заборона використання радіусу:
/ppp aaa set use-radius=no use-circuit-id-in-nas-port-id=no
вимкнення радіусу для авторизації
/user aaa set use-radius=no
vpn - якщо не використовується, то вимкнемо
/interface l2tp-server server set enabled=no
/interface pptp-server server set enabled=no
/interface sstp-server server set enabled=no
dns-фішінг
/ip dns static
/ip dns static remove numbers=[/ip dns static find]
Packet Sniffer
/tool sniffer stop
/tool sniffer set streaming-enabled=no filter-ip-protocol="" \
                  filter-port="" filter-interface="" filter-stream=no

субота, 14 вересня 2019 р.

HP MSR2004/24 і DDOS-захист

Функція захисту від атак може виявляти три типи мережевих атак: 
  • однопакетні атаки:
    • ICMP redirect - надсилання повідомлень про ICMP-переадресацію для зміни таблиці маршрутів;
    • ICMP destination unreachable - надсилання ICMP-недосяжних повідомлень;
    • ICMP type - надсилання підроблених ICMP-пакетів певного типу;
    • ICMPv6 type - надсилання підроблених ICMPv6-пакетів певного типу;
    • Land - надсилання шквалу TCP SYN пакетів, що містять IP-адресу жертви як IP-адресу джерела та призначення;
    • Large ICMP packet - надсилання надто великих ICMP-пакетів;
    • Large ICMPv6 packet - надсилання надто великих ICMPv6-пакетів;
    • IP options - надсилання дейтаграм ІР з ненормальними параметрами;
    • IP fragment - надсилання ІР-дейтаграм зі зміщенням від 0 до 5;
    • IP impossible packet - надсилання ІР-пакетів з однаковими ІР-адресами джерела і призначення;
    • Tiny fragment - надсилання надто малих фрагментів, щоб заголовки Layer 4 потрапляли в різні фрагменти;
    • Smurf - передача широкомовних ICMP-запитів у цільову мережу з ІР-адресою потерпілого. Хости цільової мережі надсилають потерпілому шквал відповідей;
    • TCP flag - надсилання TCP-пакетів з неправильними прапорами, кожна система по-різному їх оброблює;
    • Traceroute - використання інструментів traceroute для дослідження мережі жертви;
    • WinNuke - надсилання неправильних пакетів на порт 139 жертви;
    • UDP bomb - надсилання неправильно сформованих UDP-пакетів;
    • UDP Snork - надсилання UDP-пакетів на порт 135 з джерелом порту 135, 7 або 19;
    • UDP Fraggle - надсилання в мережу великої кількості UDP-пакетів з вихідним портом 7 та портом призначення 19 і підробною ІР-адресою;
    • Teardrop - надсилання фрагментів пакетів, що перекриваються;
    • Ping of death - надсилання ICMP-запиту, що перевищує 65535 байт;
  • атаки сканування та
  • атаки переповнення:
    • SYN flood - надсилання великої кількості підроблених SYN-пакетів з підробними адресами джерела;
    • ACK flood - надсилання величезної кількості підроблених ACK-пакетів;
    • SYN-ACK flood - надсилання величезної кількості підроблених SYN-ACK-пакетів;
    • FIN flood - надсилання великої кількості підроблених FIN-пакетів (відключення з'єднання);
    • RST flood - надсилання великої кількості підроблених RST-пакетів (припинення з'єднання);
    • DNS flood - надсилання великої кількості підроблених DNS-запитів;
    • HTTP flood - надсилання великої кількості HTTP GET-запитів для завантаження серверу;
    • ICMP flood - надсилання величезної кількості ICMP-запитів;
    • ICMPv6 flood - надсилання величезної кількості ICMPv6-запитів;
    • UDP flood - надсилання величезної кількості UDP-пакетів;
  • атаки фрагментованними TCP-пакетами.

Завдання налаштування виявлення та захисту атаки включають три категорії:

  • Налаштування функцій захисту від нападу для інтерфейсу. Для цього потрібно створити політику захисту від нападу, налаштувати в політиці необхідні функції захисту від нападу (наприклад, захист від атаки Smurf, захист від сканування та захист від повені), а потім застосувати політику до інтерфейсу. Для функцій атаки немає конкретного порядку налаштування, і ви можете їх налаштувати за потребою.
  • Налаштування функції чорного списку. Цю функцію можна використовувати незалежно або використовувати разом із функцією захисту від сканування від атаки на інтерфейсі.
  • Увімкнення функції статистики трафіку. Цю функцію можна використовувати самостійно.
<HPE>system-view  
[HPE]attack-defense policy policy-name

Налаштування політики захисту від одно-пакетних атак

Функція захисту від одно-пакетної атаки, зазвичай, застосовується до зовнішніх інтерфейсів і перевіряє лише вхідні пакети інтерфейсів.
  1. Введіть system-view:
    <HPE>system-view
    
  2. Увійдіть в перегляд правил захисту від атак:
    [HPE]attack-defense policy policy-name
  3. Налаштуйте розпізнавання підписів для одно-пакетних атак:
    [HPE]signature detect { fraggle | fragment | impossible | ip-option-abnormal | 
                            land | large-icmp | large-icmpv6 | ping-of-death | 
                            smurf | snork | tcp-all-flags | tcp-fin-only | 
                            tcp-invalid-flags | tcp-null-flag | tcp-syn-fin | 
                            teardrop | tiny-fragment | traceroute | udp-bomb | 
                            winnuke } [ action { { drop | logging } * | none } ]
    [HPE]signature detect icmp-type { icmp-type-value | address-mask-reply | 
                            address-mask-request | destination-unreachable | 
                            echo-reply | echo-request | information-reply | 
                            information-request | parameter-problem | redirect | 
                            source-quench | time-exceeded | timestamp-reply | 
                            timestamp-request } [ action { { drop | logging } * | 
                            none } ]
    [HPE]signature detect icmpv6-type { icmpv6-type-value | destination-unreachable | 
                            echo-reply | echo-request | group-query | 
                            group-reduction | group-report | packet-too-big | 
                            parameter-problem | time-exceeded } [ action { { drop | 
                            logging } * | none } ]
    [HPE]signature detect ip-option { option-code | internet-timestamp | 
                            loose-source-routing | record-route | route-alert | 
                            security | stream-id | strict-source-routing } [ action 
                            { { drop | logging } * | none } ]
    Спочатку виявлення підписів вимкнено для всіх видів одно-пакетних атак. Ви можете налаштувати виявлення декількох одно-пакетних атак.
  4. Не обов'язково. Налаштуйте поріг довжини ICMP-пакетів, який запускає захист від атаки великими ICMP-пакетами:
    [HPE]signature { large-icmp | large-icmpv6 } max-length довжина
    Типово, довжина рівна 4000 байтам;
  5. Не обов'язково. Вкажіть дію, яку виконуватиме пристрій після виявлення одно-пакетної атаки та рівень детектування:
    [HPE]signature level { high | info | low | medium } 
                   action { { drop | logging } * | none }
    Типово, пристрій налаштований на logging і робить запис у журнал тривоги у разі виявлення одно-пакетної атаки. Дії logging та  drop характерні для рівнів medium та high.

Налаштування політики захисту від сканування

Функція захисту від сканування, зазвичай, застосовується до зовнішніх інтерфейсів і перевіряє лише вхідні пакети інтерфейсів.
  1. Введіть system-view:
    <HPE>system-view
    
  2. Увійдіть в перегляд правил захисту від атак:
    [HPE]attack-defense policy policy-name
  3. Налаштуйте виявлення атак сканування:
    [HPE]scan detect level { high | low | medium } 
              action { block-source [ timeout хвилин ] | logging } *
    На початку не налаштовано.

Налаштування політики захисту від повені (флуду)

Налаштуйте політику захисту від повені на інтерфейсі, який підключається до зовнішньої мережі для захисту внутрішніх серверів.

Коли пристрій виявляє, що швидкість надсилання запитів на з'єднання до сервера постійно досягає або перевищує вказаний поріг тиші, то пристрій вважає, що сервер знаходиться під атакою та переходить у стан захисту від атаки. Потім пристрій виконує дії захисту в налаштованому режимі (зазвичай, пристрій лише робить запис у журнали тривоги, але може бути налаштований на відмову від наступних пакетів запитів на з'єднання).

Коли пристрій виявить, що швидкість передачі пакетів на сервер опускається нижче порогу тиші, він вважає, що атака на сервер закінчена, і повертається до стану виявлення атак і припиняє вживати дії захисту.

Ви можете налаштувати захист від атаки для конкретних IP-адрес. Для IP-адрес, для яких ви не налаштовуєте захист від атаки, пристрій використовує глобальні налаштування захисту від атак.

Щоб налаштувати політику захисту від SYN-повені:

  1. Введіть system-view:
    <HPE>system-view
    
  2. Увійдіть в перегляд правил захисту від атак:
    [HPE]attack-defense policy policy-name
    
  3. Увімкніть виявлення SYN-flood атаки для ІР-адрес у загальному:
    [HPE]syn-flood detect non-specific
    На початку вимкнено.
  4. Налаштуйте глобальні дії та пороги тиші для захисту від SYN-повені:
    [HPE]syn-flood threshold значення-порогу
    Типово, поріг дії встановлено як 1000 пакетів за секунду;
  5. Налаштуйте глобальну дію після виявлення SYN flood атаки:
    [HPE]syn-flood action { client-verify | drop | logging } *
    Типово, не налаштовано.
  6. Налаштуйте виявлення ІР-специфічної SYN flood атаки:
    [HPE]syn-flood detect { ip ip-address | ipv6 ipv6-address }
               [ vpn-instance vpn-instance-name ] 
               [ threshold threshold-value ] 
               [ action { { client-verify | drop | logging } * | none } ]
    Типово, виявлення SYN flood атаки не налаштовано для жодної ІР-адреси.

Щоб налаштувати політику захисту від ACK-повені:

  1. Введіть system-view:
    <HPE>system-view
    
  2. Увійдіть в перегляд правил захисту від атак:
    [HPE]attack-defense policy policy-name
    
  3. Увімкніть виявлення ACK-flood атаки для ІР-адрес у загальному:
    [HPE]ack-flood detect non-specific
    На початку вимкнено.
  4. Налаштуйте глобальні дії та пороги тиші для захисту від ACK-повені:
    [HPE]ack-flood threshold значення-порогу
    Типово, поріг дії встановлено як 1000 пакетів за секунду;
  5. Налаштуйте глобальну дію після виявлення ACK flood атаки:
    [HPE]ack-flood action { client-verify | drop | logging } *
    Типово, не налаштовано.
  6. Налаштуйте виявлення ІР-специфічної ACK flood атаки:
    [HPE]ack-flood detect { ip ip-address | ipv6 ipv6-address }
               [ vpn-instance vpn-instance-name ] 
               [ threshold threshold-value ] 
               [ action { { client-verify | drop | logging } * | none } ]
    Типово, виявлення ACK flood атаки не налаштовано для жодної ІР-адреси.

Щоб налаштувати політику захисту від SYN-ACK-повені:

  1. Введіть system-view:
    <HPE>system-view
    
  2. Увійдіть в перегляд правил захисту від атак:
    [HPE]attack-defense policy policy-name
    
  3. Увімкніть виявлення SYN-ACK-flood атаки для ІР-адрес у загальному:
    [HPE]syn-ack-flood detect non-specific
    На початку вимкнено.
  4. Налаштуйте глобальні дії та пороги тиші для захисту від SYN-ACK-повені:
    [HPE]syn-ack-flood threshold значення-порогу
    Типово, поріг дії встановлено як 1000 пакетів за секунду;
  5. Налаштуйте глобальну дію після виявлення SYN-ACK flood атаки:
    [HPE]syn-ack-flood action { client-verify | drop | logging } *
    Типово, не налаштовано.
  6. Налаштуйте виявлення ІР-специфічної SYN-ACK flood атаки:
    [HPE]syn-ack-flood detect { ip ip-address | ipv6 ipv6-address }
               [ vpn-instance vpn-instance-name ] 
               [ threshold threshold-value ] 
               [ action { { client-verify | drop | logging } * | none } ]
    Типово, виявлення SYN-ACK flood атаки не налаштовано для жодної ІР-адреси.

Щоб налаштувати політику захисту від FIN-повені:

  1. Введіть system-view:
    <HPE>system-view
    
  2. Увійдіть в перегляд правил захисту від атак:
    [HPE]attack-defense policy policy-name
    
  3. Увімкніть виявлення FIN-flood атаки для ІР-адрес у загальному:
    [HPE]fin-flood detect non-specific
    На початку вимкнено.
  4. Налаштуйте глобальні дії та пороги тиші для захисту від FIN-повені:
    [HPE]fin-flood threshold значення-порогу
    Типово, поріг дії встановлено як 1000 пакетів за секунду;
  5. Налаштуйте глобальну дію після виявлення FIN flood атаки:
    [HPE]fin-flood action { client-verify | drop | logging } *
    Типово, не налаштовано.
  6. Налаштуйте виявлення ІР-специфічної FIN flood атаки:
    [HPE]fin-flood detect { ip ip-address | ipv6 ipv6-address }
               [ vpn-instance vpn-instance-name ] 
               [ threshold threshold-value ] 
               [ action { { client-verify | drop | logging } * | none } ]
    Типово, виявлення FIN flood атаки не налаштовано для жодної ІР-адреси.

Щоб налаштувати політику захисту від RST-повені:

  1. Введіть system-view:
    <HPE>system-view
    
  2. Увійдіть в перегляд правил захисту від атак:
    [HPE]attack-defense policy policy-name
    
  3. Увімкніть виявлення RST-flood атаки для ІР-адрес у загальному:
    [HPE]rst-flood detect non-specific
    На початку вимкнено.
  4. Налаштуйте глобальні дії та пороги тиші для захисту від RST-повені:
    [HPE]rst-flood threshold значення-порогу
    Типово, поріг дії встановлено як 1000 пакетів за секунду;
  5. Налаштуйте глобальну дію після виявлення RST-flood атаки:
    [HPE]rst-flood action { client-verify | drop | logging } *
    Типово, не налаштовано.
  6. Налаштуйте виявлення ІР-специфічної RST-flood атаки:
    [HPE]rst-flood detect { ip ip-address | ipv6 ipv6-address }
               [ vpn-instance vpn-instance-name ] 
               [ threshold threshold-value ] 
               [ action { { client-verify | drop | logging } * | none } ]
    Типово, виявлення RST-flood атаки не налаштовано для жодної ІР-адреси.

Щоб налаштувати політику захисту від ICMP-повені:

  1. Введіть system-view:
    <HPE>system-view
    
  2. Увійдіть в перегляд правил захисту від атак:
    [HPE]attack-defense policy policy-name
    
  3. Увімкніть виявлення ICMP-flood атаки для ІР-адрес у загальному:
    [HPE]icmp-flood detect non-specific
    На початку вимкнено.
  4. Налаштуйте глобальні дії та пороги тиші для захисту від ICMP-повені:
    [HPE]icmp-flood threshold значення-порогу
    Типово, поріг дії встановлено як 1000 пакетів за секунду;
  5. Налаштуйте глобальну дію після виявлення ICMP-flood атаки:
    [HPE]icmp-flood action { client-verify | drop | logging } *
    Типово, не налаштовано.
  6. Налаштуйте виявлення ІР-специфічної ICMP-flood атаки:
    [HPE]icmp-flood detect { ip ip-address }
               [ vpn-instance vpn-instance-name ] 
               [ threshold threshold-value ] 
               [ action { { client-verify | drop | logging } * | none } ]
    Типово, виявлення ICMP-flood атаки не налаштовано для жодної ІР-адреси.

Щоб налаштувати політику захисту від ICMPv6-повені:

  1. Введіть system-view:
    <HPE>system-view
    
  2. Увійдіть в перегляд правил захисту від атак:
    [HPE]attack-defense policy policy-name
    
  3. Увімкніть виявлення ICMPv6-flood атаки для ІР-адрес у загальному:
    [HPE]icmpv6-flood detect non-specific
    На початку вимкнено.
  4. Налаштуйте глобальні дії та пороги тиші для захисту від ICMPv6-повені:
    [HPE]icmpv6-flood threshold значення-порогу
    Типово, поріг дії встановлено як 1000 пакетів за секунду;
  5. Налаштуйте глобальну дію після виявлення ICMPv6-flood атаки:
    [HPE]icmpv6-flood action { client-verify | drop | logging } *
    Типово, не налаштовано.
  6. Налаштуйте виявлення ІР-специфічної ICMPv6-flood атаки:
    [HPE]icmpv6-flood detect { ipv6 ipv6-address }
               [ vpn-instance vpn-instance-name ] 
               [ threshold threshold-value ] 
               [ action { { client-verify | drop | logging } * | none } ]
    Типово, виявлення ICMPv6-flood атаки не налаштовано для жодної ІР-адреси.

 Щоб налаштувати політику захисту від UDP-повені:

  1. Введіть system-view:
    <HPE>system-view
    
  2. Увійдіть в перегляд правил захисту від атак:
    [HPE]attack-defense policy policy-name
    
  3. Увімкніть виявлення UDP-flood атаки для ІР-адрес у загальному:
    [HPE]udp-flood detect non-specific
    На початку вимкнено.
  4. Налаштуйте глобальні дії та пороги тиші для захисту від UDP-повені:
    [HPE]udp-flood threshold значення-порогу
    Типово, поріг дії встановлено як 1000 пакетів за секунду;
  5. Налаштуйте глобальну дію після виявлення UDP-flood атаки:
    [HPE]udp-flood action { client-verify | drop | logging } *
    Типово, не налаштовано.
  6. Налаштуйте виявлення ІР-специфічної UDP-flood атаки:
    [HPE]udp-flood detect { ip ip-address | ipv6 ipv6-address }
               [ vpn-instance vpn-instance-name ] 
               [ threshold threshold-value ] 
               [ action { { client-verify | drop | logging } * | none } ]
    Типово, виявлення UDP-flood атаки не налаштовано для жодної ІР-адреси.

Щоб налаштувати політику захисту від DNS-повені:

  1. Введіть system-view:
    <HPE>system-view
    
  2. Увійдіть в перегляд правил захисту від атак:
    [HPE]attack-defense policy policy-name
    
  3. Увімкніть виявлення DNS-flood атаки для ІР-адрес у загальному:
    [HPE]dns-flood detect non-specific
    На початку вимкнено.
  4. Налаштуйте глобальні дії та пороги тиші для захисту від DNS-повені:
    [HPE]dns-flood threshold значення-порогу
    Типово, поріг дії встановлено як 1000 пакетів за секунду;
  5. Не обов'язково. Налаштуйте глобальні порти для захисту від DNS-flood атаки:
    [HPE]dns-flood port port-list
    Типово, захищається лише порт 53.
  6. Налаштуйте глобальну дію після виявлення DNS-flood атаки:
    [HPE]dns-flood action { client-verify | drop | logging } *
    Типово, не налаштовано.
  7. Налаштуйте виявлення ІР-специфічної DNS-flood атаки:
    [HPE]dns-flood detect { ip ip-address | ipv6 ipv6-address }
               [ vpn-instance vpn-instance-name ] 
               [ threshold threshold-value ] 
               [ action { { client-verify | drop | logging } * | none } ]
    Типово, виявлення DNS-flood атаки не налаштовано для жодної ІР-адреси.

Щоб налаштувати політику захисту від HTTP-повені:

  1. Введіть system-view:
    <HPE>system-view
    
  2. Увійдіть в перегляд правил захисту від атак:
    [HPE]attack-defense policy policy-name
    
  3. Увімкніть виявлення HTTP-flood атаки для ІР-адрес у загальному:
    [HPE]http-flood detect non-specific
    На початку вимкнено.
  4. Налаштуйте глобальні дії та пороги тиші для захисту від HTTP-повені:
    [HPE]http-flood threshold значення-порогу
    Типово, поріг дії встановлено як 1000 пакетів за секунду;
  5. Не обов'язково. Налаштуйте глобальні порти для захисту від HTTP-flood атаки:
    [HPE]http-flood port port-list
    Типово, захищається лише порт 80.
  6. Налаштуйте глобальну дію після виявлення HTTP-flood атаки:
    [HPE]http-flood action { client-verify | drop | logging } *
    Типово, не налаштовано.
  7. Налаштуйте виявлення ІР-специфічної HTTP-flood атаки:
    [HPE]http-flood detect { ip ip-address | ipv6 ipv6-address }
               [ vpn-instance vpn-instance-name ] 
               [ threshold threshold-value ] 
               [ action { { client-verify | drop | logging } * | none } ]
    Типово, виявлення HTTP-flood атаки не налаштовано для жодної ІР-адреси.

Налаштування виключень з виявлення атак

Застосування політики захисту від нападу до інтерфейсу

Щоб застосувати політику захисту від нападу до інтерфейсу:
  1. Введіть system-view:
    <HPE>system-view
    
  2. Увійдіть у перегляд інтерфейсу:
    [HPE]interface interface-type interface-number
  3. Застосуйте політику захисту від атаки до інтерфейсу.:
    [HPE]attack-defense apply policy policy-name
    На початку жодна політика захисту від атаки не застосовується до жодного інтерфейсу. Політика захисту від атаки, яка застосовується до інтерфейсу, вже повинна існувати.

Застосування політики захисту від нападу до пристрою

  1. Введіть system-view:
    <HPE>system-view
    
  2. Застосуйте політику захисту від атаки до пристрою:
    [HPE]attack-defense apply policy policy-name
    На початку жодна політика захисту від атаки не застосовується до пристрою.

Приклад


# Налаштувати IP адреси для інтерфейсів (не показано).
# Увімкнути функцію "чорного списку" глобально
<HPE> system-view
[HPE] blacklist global enable
# Створити правила a1 захисту від атаки
[HPE] attack-defense policy a1
# Увімкнути захист від smurf-атак і вказати превентивне журналювання
[HPE-attack-defense-policy-a1] signature-detect smurf enable action logging
# Налаштувати низький рівень виявлення атак скануванням.
# Вказати дію журналювання й блокування-джерела трафіку на 10 хвилин:
[HPE-attack-defense-policy-a1] scan detect level low \
                                    action logging \
                                    block-source timeout 10
# Налаштувати виявлення SYN flood атак для 10.0.0.2.
# Встановити поріг запуску запобігання атакам у 50000.
# Вказати дію журналювання й відхилення пакетів:
[HPE-attack-defense-policy-a1] syn-flood detect ip 10.0.0.2 \
                                         threshold 5000 \
                                         action logging drop
[HPE-attack-defense-policy-a1] quit
#
# Застосувати правила a1 до GigabitEthernet 0/0.
[HPE] interface gigabitethernet 0/0
[HPE-GigabitEthernet0/0] attack-defense apply policy a1
[HPE-GigabitEthernet0/0] quit
#

понеділок, 9 вересня 2019 р.

HP MSR2004/24

ip route-static 0.0.0.0 0 192.168.10.1
 
dns proxy enable
dns server 1.1.1.1
 
acl basic s-50-all
 rule 0 permit source 192.168.50.0 0.0.0.255
 
nat address-group 0
 address <global_ip_start> <global_ip_end>
 
dhcp enable
dhcp server ip-pool net50xxx
 gateway-list 192.168.50.1
 network 192.168.50.0 mask 255.255.255.0
 address range 192.168.50.2 192.168.50.19
 dns-list 192.168.50.1
 
interface Vlan-interface500
 ip address 192.168.50.1 255.255.255.0
 dhcp server apply ip-pool net50xxx
 
interface GigabitEthernet0/5
 port link-mode bridge
 description *** LAN-50 ***
 port access vlan 500
 
interface GigabitEthernet0/0
 port link-mode route
 description *** WAN ***
 ip address <externat_ip> <external_ip_mask>
 nat outbound name s-50-all
 nat server protocol tcp global <externat_ip> 5022 inside 192.168.50.2 22
 nat server protocol tcp global <externat_ip> 5080 inside 192.168.50.2 80

пʼятниця, 6 вересня 2019 р.

Mikrotik + reset

Скинути Mikrotik до початкових налаштувань (reset):
  1. Вимкнути мікротік;
  2. Натиснути й утримувати кнопку [reset];
  3. Увімкнути мікротік;
  4. Почекати допоки засвітиться [ACT]/[USR] і відпустити [reset].

середа, 13 березня 2019 р.

docker

ПОМИЛКА:
dial unix /var/run/docker.sock: connect: permission denied.

РІШЕННЯ:
sudo usermod -aG docker $USER
sudo setfacl -m user:$USER:rw /var/run/docker.sock

середа, 11 жовтня 2017 р.

wine steam

Встановив файл проекту PortWINE і "в ус не дую"

#enable 32 bit architecture
sudo dpkg --add-architecture i386

#Add the repository:
wget -nc https://dl.winehq.org/wine-builds/Release.key
sudo apt-key add Release.key
sudo apt-add-repository https://dl.winehq.org/wine-builds/ubuntu/

# On Linux Mint 18.x, the last line should be the following:
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main'

# Update packages:
sudo apt-get update

# install Stable branch
sudo apt-get install --install-recommends winehq-stable

# or install  Development branch  (+++)
sudo apt-get install --install-recommends winehq-devel

rm -R ~/.wine 
env WINEPREFIX=~/.wine WINEARCH=win32 winecfg
(winecfg - setup winxp over win7)

# +winetricks
sudo apt install winetricks
winetricks corefonts allfonts tahoma gecko gecko-dbg vcrun2005

winetricks vcrun2005
winetricks --no-isolate steam

wine Steam.exe -no-cef-sandbox

субота, 19 серпня 2017 р.

SSL_сертифікати

Налаштування SSL-сертифікатів.

Зустрівся з помилкою в журналі поштового сервера (exim):

2017-08-17 02:42:55 TLS error on connection from mail-la0-f52.google.com [209.85.215.52] (cert/key setup: cert=/etc/exim4/exim.crt key=/etc/exim4/exim.key): The provided X.509 certificate list is not sorted (in subject to issuer order)
Рішення

Для exim4 вказуємо сертифікат сервера і ключ:
у файлі /etc/exim4/exim4.conf.template

tls_certificate = /-path-to-ssl-/server.crt
tls_privatekey = /-path-to-ssl-/server.key

Для веб-сервера сертифікат сервера потрібно об'єднати з сертифікатом кореневого сервера:
у налаштуваннях nginx.conf

server {
    ...
    ssl_certificate      /-path-to-ssl-/server.pem;
    ssl_certificate_key  /-path-to-ssl-/server.key;
    ...
}

При цьому маємо такі файли з сертифікатами:

intermediateCA.crt - кореневий сертифікат
server.crt                 - сертифікат сервера
server.pem               - об'єднаний сертифікат сервера + кореневий
       ( cp server.crt server.pem; cat intermediateCA.crt >> server.pem )
server.key                - ключ сервера


середа, 12 липня 2017 р.

VirtualBox NO_PUBKEY A2F683C52980AECF

Встановлення VirtualBox-у й ключ NO_PUBKEY A2F683C52980AECF

Рішення:
wget -q -O - \
http://download.virtualbox.org/virtualbox/debian/oracle_vbox_2016.asc | sudo apt-key add -

Універсально:
sudo apt-key adv --keyserver keyserver.ubuntu.com \ 
                 --recv-keys 517590D9A8492E35

Skype for Linux (Beta)

При встановленні Skype для Linux з'являється повідомлення про ключ NO_PUBKEY 1F3045A5DF7587C3

Рішення:
curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add -

четвер, 25 травня 2017 р.

Viber Linux Mint (Debian)

Не запускається Viber.
Всього лише потрібно доустановити бібліотеку:

sudo apt-get install libqt5gui5
 

вівторок, 18 квітня 2017 р.

Друга Wi-Fi-точка, як продовження першої

Маю офіс з мережею 192.168.1.0/24. Маю стареньку Wi-Fi точку доступу AP1, що гарно працює в режимі "моста" (bridge).

Задача: встановити ще одну, сучасну, точку доступу AP2, щоб теж не була "розумною", тобто в режимі "моста-подовжувача" (bridge, repitor).

Рішення:
1) відключити uPnP,
2) відключити DHCP-сервер,
3) назначити IP-адресу для AP2.


субота, 8 квітня 2017 р.

WooCommerce category (categories) and product's

Документація з WooCommerce не надихає на код, а чомусь, відсилає в адмінку Wordpress-у.
/* STEP1: parent = 0
   find top-level categories
   знаходимо теки на верхнього рівня
*/
$cats0 = get_terms( 'product_cat',
                    array( 'hide_empty' => false,
                           'fields'     => 'ids',
                           'parent'     => '0',
                           'orderby'    => 'term_id',
                           'order'      => 'ASC'
                   ));
foreach ( $cats0 as $cat0_id ) {
  $cat0 = get_term( $cat0_id, 'product_cat' );
  echo $cat0->name;
  echo $cat0->slug;
  echo $cat0->description;
  /* рибимо те, що потрібно з категорією */


  /* STEP1: parent = $cat0_id
     find next-level categories
     знаходимо теки на рівень нижче
  */
  $cars1 = get_terms( 'product_cat',
                       array( 'hide_empty' => false,
                              'fields'     => 'ids',
                              'parent'     => $cat0_id,
                              'orderby'    => 'term_id',
                              'order'      => 'ASC'
                      ));
  foreach ( $cats1 as $cat1_id ) {
    $cat1 = get_term( $cat1_id, 'product_cat' );
    echo $cat1->name;
    echo $cat1->slug;
    echo $cat1->description;
    /* рибимо те, що потрібно з під-категорією */


    /* STEP3: products
       find products in this category
       знаходимо товари в цій категорії
    */
    if( $_SERVER['REQUEST_URI'] == '/shop/' ){
      $args = array( 'post_type'      => 'product',
                     'posts_per_page' => 6,
                     'product_cat'    => $cat1->slug,
                     'orderby'        => 'name',
                     'order'          => 'ASC'
                   );
      $loop = new WP_Query( $args );
      while ( $loop->have_posts() ) : $loop->the_post();
        global $product;

        /* id */
        echo get_permalink( $loop->post->ID );

        /* title */
        echo $loop->post->post_title;

        /* sale! */
        woocommerce_show_product_sale_flash(
                   $post, $product);

        /* image */
        if (has_post_thumbnail( $loop->post->ID ))
          echo get_the_post_thumbnail(
                   $loop->post->ID, 'shop_catalog');
        else
          echo '<img src="'
               .woocommerce_placeholder_img_src()
               .'"   alt="Placeholder"
                     width="300px" height="300px" />';

        /* description */
        echo strip_tags( $loop->post->post_content );

        /* price */
        echo $product->get_price_html();

        /* add to cart */
        woocommerce_template_loop_add_to_cart(
                   $loop->post, $product );

      endwhile;
      wp_reset_query();
    } /* if $_SERVER['REQUEST_URI'] */
  }   /* foreach $terms1            */
}     /* foreach $terms             */



середа, 8 березня 2017 р.

SSH-тунель з Windows-клієнта через Mikrotik

Задача: зробити віддалений доступ до Windows-сервера з Windows-клаєнта через Mikrotik.

1. Завантажити й встановити PuTTY (наприклад, putty-0.68-installer.msi)
2. Згенерувати ключі - puttygen.exe
2.1. Просто натисніть й рухайте мишкою поки не заповниться синій бігунок.
2.2. Згенеровані ключі потрібно зберегти: public.key та private.key.
 
2.3.АЛЕ, записаний нами приватний ключ не буде прийнятий Mikrotik-ом. Тому потрібно виділити все у віконці

зкопіювати й записати у файл public.key.
3. Сам файл public.ket потрібно перенести на Mikrotik:

pscp.exe -scp -P 22 -pw userpass public.key username@mikrotik:/userkey.pub

4. Імпортуємо (прив’язуємо) ключ до користувача:
5. Завантажуємо ключ в ssh-agent-а:

pageant.exe C:\Program Files\putty\keys\
private.ppk


6. Тепер робимо тунель командою plink.exe:

plink -batch -ssh -N username@mikrotik -P 22 -pw userpass -L 15110:server:3389



понеділок, 6 березня 2017 р.

Mikrotik з OpenVPN

Файл налаштування клієнта:
client
dev tap
port 1194
proto tcp

remote 192.168.88.1 1194             # VPN server IP : PORT
nobind

ca ca.crt
cert clientname.crt
key clientname.key

#comp-lzo
persist-key
persist-tun

verb 3
auth-user-pass pass.txt

route-method exe
route-delay 2
route 192.168.1.0 255.255.255.255 192.168.88.1

Файл pass.txt:
clientname
clientpass

понеділок, 27 лютого 2017 р.

Debian 7 та MySQL server 5.6+

Видалити попередню версію (5.5):
sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo rm -rf /var/log/mysql
sudo rm -rf /var/log/mysql.*
sudo rm -rf /var/lib/mysql
Додати репозіторій (взяти з https://dev.mysql.com/downloads/repo/apt/)
wget http://repo.mysql.com/mysql-apt-config_0.8.2-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.2-1_all.deb
Після цих дій буде створений файл /etc/apt/sources.list.d/mysql.list з такими рядками:
deb http://repo.mysql.com/apt/debian/ wheezy mysql-5.6
deb-src http://repo.mysql.com/apt/debian/ wheezy mysql-5.6
Оновити ключі:
sudo apt-key adv --keyserver pgp.mit.edu \
    --recv-keys A4A9406876FCBD3C456770C88C718D3B5072E1F5

Встановити mysql 5.6:
sudo apt-get update
sudo apt-get install mysql-server-5.6

пʼятниця, 10 лютого 2017 р.

Міграція з VPS Debian 7 на VPS Debian 8

Переношу свій хостинг на новий Debian:

1. $ ssh root@vps-new
2. apt-get update
3. apt-get upgrade
4. dpkg-reconfigure locales
4.1. Locales to be generated: uk_UA.UTF-8 UTF-8 - Ok
4.2. Default locale for the system environment: uk_UA.UTF-8 - Ok
5. Ctrl+D
6. $ ssh root@vps-new
7. groupadd -r wheel
8. useradd -m -g wheel -s /bin/bash superuser
9. passwd superuser
10. додати рядок у /etc/sudoers:
       %wheel  ALL=(ALL)       NOPASSWD: ALL
11. $ sudo mcedit /etc/hostname - srv170210
12. $ sudo hostname -F /etc/hostname
13. $ wget http://vestacp.com/pub/vst-install.sh
14. $ sudo bash vst-install.sh --nginx yes --apache yes --phpfpm no --vsftpd yes --proftpd no --exim yes --dovecot yes --spamassassin yes --clamav no --named yes --iptables yes --fail2ban yes --mysql yes --postgresql no --remi no --quota no --hostname srv170210 --email superuser@email.com --force
15. Згадав, що планував змінити php на 7.х
15.1. $ dpkg --list | grep php | awk '/^ii/{ print $2}'
15.2. $ x="$(dpkg --list | grep php | awk '/^ii/{ print $2}')"
15.3. $ sudo apt-get --purge remove $x
16. Видалив php5, встановлюю php7
16.1. $ wget https://www.dotdeb.org/dotdeb.gpg
16.2. $ sudo apt-key add dotdeb.gpg
16.3. $ echo -e "deb http://packages.dotdeb.org jessie all\ndeb-src http://packages.dotdeb.org jessie all" > dotdeb.list
16.4. $ sudo cp dotdeb.list /etc/apt/sources.list.d/
16.5. $ sudo apt-get update
16.6. $ sudo apt-get install php7.0 php7.0-common php-pear
16.7. $ sudo apt-get -f install
16.8. $ sudo apt-get install libapache2-mod-php7.0
17. Перенесення бекапів
17.1. root@vps-old:# scp /home/backup/admin.2017-02-10.tar superuser@vps-new:~/home/backup/
18. Відновлення бекапів
18.1. v-restore-user admin admin.2017-02-10.tar
19. Власне, все.

четвер, 17 листопада 2016 р.

MikroTik доступ до внутрішнього сервера

Проблема Є внутрішня мережа з сервером приєднаним до інтернету через MikroTik.
Зовнішня IP-адреса: AAA.BBB.CCC.DDD.
Внутрішня мережа: 192.168.88.0/24.
ІР-адреса серверу: 192.168.88.10.
Потрібно надати доступ ззовні до певних портів внутрішнього сервера.

Рішення
1) Надаємо доступ до внутрішніх портів іззовні:

General
  • Chain: dstnat
  • Protocol: 6 (tcp)
  • Dst. Port: 80,8083
  • Int. Interface: ether1
Action
  • Action: netmap
  • To Addresses: 192.168.88.10

2) Перенаправляємо запити з внутрішньої мережі до зовнішньої адреси на внутрішнью адресу:

General
  • Chain: dstnat
  • Src. Address: 192.168.88.0/24
  • Dst. Address: AAA.BBB.CCC.DDD
  • Protocol: 6 (tcp)
  • Dst. Port: 80,8083
Action
  • Action: dst-nat
  • To Addresses: 192.168.88.10

3) Підмінюємо адресу внутрішніх запитів на адресу роутера:

General
  • Chain: srcnat
  • Src. Address: 192.168.88.0/24
  • Dst. Address: 192.168.88.10
  • Protocol: 6 (tcp)
  • Dst. Port: 80,8083
Action
  • Action: src-nat
  • To Addresses: 192.168.88.1

Доступ для SSH з внутрішньої мережі не забезпечуємо:

General
  • Chain: dstnat
  • Protocol: 6 (tcp)
  • Dst. Port:2222
  • In. Interface: ether1
Action
  • Action:netmap
  • To Addresses: 192.168.88.10
  • To Ports: 22

неділя, 21 серпня 2016 р.

При черговому оновленні з’явилось попередження:
Reading package lists... Done
W: GPG error: http://nginx.org wheezy Release: 
The following signatures were invalid: KEYEXPIRED 1471427554

Це ключ nginx-а, - його оновлення:
wget https://nginx.org/keys/nginx_signing.key -O - | sudo apt-key add -

середа, 22 червня 2016 р.

Debian7: SNMP-client

В доках написано, що достатньо встановити snmp та snmp-mibs-downloader:
% apt-get install snmp snmp-mibs-downloader
А потім йде "цікава" фраза - "If you have a SNMP server running on localhost", тобто, потрібно ще й snmp-сервер встановити:
 % apt-get install snmpd
Мінімальне налаштування /etc/snmp/snmpd.conf:
#agentAddress  udp:127.0.0.1:161
agentAddress udp:161,udp6:[::1]:161

sysLocation    Frankfurt.DE
sysContact     Me <me@example.org>
Для безпеки варто змінити користувача для запитів:
rocommunity crazypublic
У налаштуваннях клієта ще порожньо /etc/snmp/snmp.conf:
mibs :
Від імені root-а запускаємо оновлення MIB-ів:
% download-mibs
Перезапускаємо snmp-сервер:
service snmpd restar
Тепер можна переглянути відповідь snmp-агента:
# snmpwalk -v1 -cpublic localhost
iso.3.6.1.2.1.1.1.0 = STRING: "Linux maz1 2.6.32-042stab113.21 #1 SMP Wed Mar 23 11:05:25 MSK 2016 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (428) 0:00:04.28
...