Блокировка сторонних DHCP на Cisco через DHCP Snooping

На тесте настрою DHCP Snooping на Cisco Catalyst 6509-E, чтобы блокировать сторонние DHCP сервера, на других коммутаторах Cisco по сути настройка аналогична.

После подключения к устройству сразу перейдём в режим конфигурации:

enable
configure

Читать далее Блокировка сторонних DHCP на Cisco через DHCP Snooping

Как запустить MySQL сервер на конкретных IP

Подходящим решением которое я нашел для запуска MySQL сервера на конкретных IP адресах, это запустить его на всех и потом отфильтровать подключаемых клиентов через iptables.

Для теста я использовал Ubuntu Server 16.04.5 LTS, который имел более 200 внешних белых IP и был высоконагруженным.

Читать далее Как запустить MySQL сервер на конкретных IP

Настройка тайм-аута SSH сессий

Чтобы настроить тайм-аут SSH сессий, посмотрим где находится файл конфигурации SSH сервера:

sudo find / -name sshd_config

Откроем его в любом текстовом редакторе, например nano:

sudo nano /etc/ssh/sshd_config

Читать далее Настройка тайм-аута SSH сессий

Как отсоединить SSH пользователя

Допустим через SSH подключено несколько пользователей.

Сначала посмотрим список онлайн пользователей:

w

Допустим отобразилось следующая информация (где test — это логин пользователя):

USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
test     tty1                      11:20    1:07   0.03s  0.03s -bash
test     pts/0    192.168.1.5      11:21   13.00s  0.02s  0.02s -bash
test     pts/1    192.168.1.3      11:21    0.00s  0.02s  0.00s w

tty1 — это клиент вошедший локально, то есть находится возле компьютера.
pts/1 — судя например по IP и WHAT, допустим что это мы, соответственно pts/0 это клиент которого мы хотим отсоединить.

Смотрим список процессов и их PID:

ps faux |grep sshd

У меня отобразилось:

root       946  0.0  0.5  65508  5368 ?        Ss   12:00   0:00 /usr/sbin/sshd -D
root      1147  0.0  0.6  92828  6920 ?        Ss   12:01   0:00  \_ sshd: test [priv]
test      1178  0.0  0.3  92828  3384 ?        S    12:01   0:00  |   \_ sshd: test@pts/0
root      1192  0.0  0.6  92828  6592 ?        Ss   12:02   0:00  \_ sshd: test [priv]
test      1223  0.0  0.3  92828  3532 ?        S    12:02   0:00      \_ sshd: test@pts/1
test      1248  0.0  0.0  15468   956 pts/1    S+   12:25   0:00              \_ grep --color=auto sshd

Находим test@pts/0 и соответственно 1178 — это нужный PID.

Завершаем процесс указав его ID, после чего пользователь сразу отсоединится:

sudo kill -9 1178

Смотрите также мои статьи:
Установка и настройка SSH
Настройка тайм-аута SSH сессий

Настройка Fail2Ban под Bind9

Допустим Fail2Ban уже установлен, если нет, то смотрите мою статью — Установка и настройка Fail2ban.

По умолчанию Bind9 не пишет логи, поэтому откроем его файл конфигурации в любом текстовом редакторе:

sudo nano /etc/bind/named.conf

И добавим:

logging {
    channel security_file {
        file "/var/log/named/security.log" versions 3 size 30m;
        severity dynamic;
        print-time yes;
    };
    category security {
        security_file;
    };
};

Читать далее Настройка Fail2Ban под Bind9

Как найти iPhone с компьютера?

Чтобы видеть с компьютера где находится iPhone необходимо:

1) На iPhone должен быть разрешен доступ для службы «Найти iPhone».
Это можно проверить открыв «Настройки» — «Конфиденциальность» — «Службы геолокации» — «Системные службы» — «Найти iPhone».

2) На iPhone должен работать интернет.

3) Для просмотра местонахождения iPhone необходимо войти в iCloud используя свой логин и пароль, на открывшейся странице выбрать «Найти iPhone», после этого откроется карта с отмеченным местоположением iPhone. Также можно увидеть уровень заряда батареи, дистанционно воспроизвести звуковой сигнал, стереть все данные либо включить режим пропажи.

Служба «Найти iPhone» может быть также включена на других устройствах Apple, например iPad, MacBook, Apple Watch и т.д.
Через установленное стандартное приложение «Найти iPhone» можно увидеть эти устройства.
Кстати, чтобы делиться своим местоположением с другими пользователями существует отдельное приложение «Найти друзей».

Установка Certbot в Ubuntu

На тесте установлю ACME клиент Certbot в Ubuntu 16.04 (xenial), который поможет получить бесплатные SSL сертификаты Let’s Encrypt на 90 дней и автоматически обновлять их.
Для других версий Ubuntu клиент Certbot устанавливается аналогично.

Первым делом добавим репозиторий Certbot и выполним установку:

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache

Теперь запустим Certbot чтобы получить SSL сертификат:

sudo certbot --apache

Чтобы вручную внести изменения в конфигурацию Apache2 и Certbot не изменял её, можно выполнить команду:

sudo certbot --apache certonly

После запуска команды, необходимо выбрать сайт для которого будет запрашиваться SSL сертификат.

После получения сертификата отобразилась информация:

IMPORTANT NOTES:
— Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2018-08-01. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the «certonly» option. To non-interactively renew *all* of
your certificates, run «certbot renew»
— Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.

Создался отдельный файл конфигурации сайта для HTTPS, а в том что был добавились строки выполняющие переадресацию с HTTP на HTTPS, общем аналогичные изменения как я описывал в этой статье — Установка и настройка Let’s Encrypt SSL.

Для автоматического обновления необходимо выполнить команду:

sudo certbot renew

Команду также можно добавить в Cron для автоматического обновления, смотрите мою статью — Использование и настройка CRON

Пример добавления в Cron (каждый понедельник в 3:15):

sudo crontab -e
15 3 * * 1 certbot renew >> /var/log/certbot-renew.log

Для тестового обновления можно выполнить команду (конфигурация и сертификаты не будут затронуты):

sudo certbot renew --dry-run

Если срок сертификата еще не истекает и запустить обновление, то ничего не произойдет.

Установка и настройка Let’s Encrypt SSL

На тесте установлю Let’s Encrypt котоый позволяет установить бесплатные SSL сертификаты на 90 дней и автоматически перевыдавать их.

Допустим на Ubuntu Server установлен Apache2 и есть один сайт, для которого мы настроили один файл конфигурации /etc/apache2/sites-available/test.conf, и включили его:

sudo a2ensite test
sudo service apache2 restart

Смотрите пример конфигурации в моей статье — Установка и настройка веб-сервера Apache2
Сайт работает по HTTP на 80, теперь приступим к установке Let’s Encrypt:

sudo apt-get update
sudo apt-get install git
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Перейдем в директорию с Let’s Encrypt и запросим сертификат для сайта:

cd /opt/letsencrypt
sudo ./letsencrypt-auto --apache -d example.com

Можно также запросить и для www поддомена:

sudo ./letsencrypt-auto --apache -d example.com -d www.example.com

Я заменил в статье настоящее имя сайта на example.com. Чтобы получить сертификат, сайт должен быть доступен по доменному имени из интернета.
Для ресурсов внутри сети, с серыми IP, получить сертификат не получится.

После получения сертификата у меня создался и активировался еще один файл конфигурации /etc/apache2/sites-available/test-le-ssl.conf со следующим содержимым:

<IfModule mod_ssl.c>
<VirtualHost *:443>
     ServerName example.com
     DocumentRoot /var/www/test/

     <Directory /var/www/test>
     Options -Indexes
     AllowOverride All
     Order allow,deny
     allow from all
     </Directory>

     ErrorLog /var/log/test.error.log
     CustomLog /var/log/test.access.log combined
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

Так как во время получения сертификата я согласился на переадресацию HTTP запросов на HTTPS, то в конце моего файла конфигурации /etc/apache2/sites-available/test.conf добавилось следующее:

RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

По истечении срока действия сертификата, его можно обновить командой:

sudo /opt/letsencrypt/letsencrypt-auto renew

Команду также можно добавить в Cron для автоматического обновления, смотрите мою статью — Использование и настройка CRON

Пример добавления в Cron (каждый понедельник в 3:15):

sudo crontab -e
15 3 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/letsencrypt-renew.log

Если срок сертификата еще не истекает и выполнить команду обновления, то ничего не произойдет:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
——————————————————————————-
Processing /etc/letsencrypt/renewal/example.com.conf
——————————————————————————-
Cert not yet due for renewal
——————————————————————————-
The following certs are not due for renewal yet:
/etc/letsencrypt/live/example.com/fullchain.pem expires on 2018-08-01 (skipped)
No renewals were attempted.
——————————————————————————-

Смотрите также:
Установка Certbot в Ubuntu

Настройка Fail2Ban под ProFTPd

Допустим Fail2Ban уже установлен, если нет, то смотрите мою статью — Установка и настройка Fail2ban.

В Fail2Ban по умолчанию уже есть фильтры для ProFTPd и он знает что файл логов находится по адресу /var/log/proftpd/proftpd.log, поэтому достаточно создать файл:

sudo nano /etc/fail2ban/jail.d/proftpd.local

И внести данные ниже, тем самым активировав проверку лог файла /var/log/proftpd/proftpd.log:

[proftpd]
enabled = true
bantime = 86400

Перезапустим Fail2Ban чтобы применить изменения:

sudo service fail2ban restart

Можно проверить статус:

sudo fail2ban-client status proftpd

Установка Nessus в Linux

Nessus — сканер уязвимостей в Linux.

Переходим на официальный сайт http://www.tenable.com/products/nessus/select-your-operating-system и скачиваем Nessus под операционную систему которая у вас установлена.

Переключимся на root пользователя:
su

Запускаем установку скачанного файла, например:

dpkg -i Nessus-7.0.2-debian6_amd64.deb

Запускаем Nessus:

/etc/init.d/nessusd start

После этого Nessus можно открыть в браузере по ссылке https://IP:8834/

Для дальнейшей работы необходимо зарегистрироваться по ссылке https://www.tenable.com/products/nessus/activation-code.