Подавление DHCP серверов (dhcdrop)

dhcdrop — утилита для подавления ненужных DHCP серверов.
Устанавливаем необходимые пакеты чтобы скомпилировать исходники:

sudo apt-get install build-essential automake libtool libpcap-dev

Скачиваем архив с исходниками последней версии из сайта www.netpatch.ru/dhcdrop.html и распаковываем.
Открываем директорию с распакованными исходниками и компилируем их:

cd /dhcdrop
./autogen.sh
./configure
make
sudo make install

Пример команды запуска:

sudo dhcdrop -i eth0 -l мак_легального_сервера
sudo dhcdrop -i eth0 -y -l мак_легального_сервера

Ключи запуска (взято из официального сайта):

-h — показывает help-сообщение.
-D — просмотр списка имён и индексов сетевых интерфейсов. Актуально в ОС Windows — см. пример ниже.
-t — Режим теста. В этом режиме dhcdrop не выполняет подавление сервера. Производится лишь посылка DHCPDISCOVER, если на него приходит ответ нелегального сервера, то программа заверается возвращаяя код 200 и выводя на экран строку вида DHCP SRV: 10.7.7.1 (IP-hdr: 10.7.7.1) SRV ether: 00:02:44:75:77:E4, YIP: 10.7.7.205 содержащую минимум информации о создающем проблему DHCP сервере.
-y — подразумевается ответ «yes» на любой вопрос программы.
-r — отключает рандомизацию MAC адреса источника. Каждый последующий MAC адрес источника увеличивается на 1.
-b — указывает на необходимость использования флага BROADCAST в отправляемых DHCP пакетах.
-a — всегда ожидать ответа сервера на порт DHCP клиента по умолчанию (68), даже если задано значение номера порта клиента отличное от значения по умолчанию.
-A — всегда ожидать ответа с порта DHCP сервера по умолчанию (67), даже если задано значение номера порта сервера отличное от значения по умолчанию.
-f — режим флуда запросами DHCPDISCOVER. ПРИМЕНЯТЬ С ОСТОРОЖНОСТЬЮ. Удобен для стресс-тестирования сервера. В случае указания опции -r все отправляемые пакеты имеют одинаковый MAC адрес.
-R — отправляет сообщение DHCPRELEASE с MAC адресом источника указанном при запуске программы и IP адресом указанным при помощи опции -F к серверу указанному опцией -s.
-q — «тихий» режим работы. Выводится минимум информации.
-m count — максимальное число попыток получения ответа от сервера.
-c count — максимальное число адресов арендуемых у сервера.
-n hostname — значение DHCP опции HostName (по умолчанию — «DHCP-dropper»)
-N clientname — значение DHCP опции Vendor-Class (по умолчанию — «DHCP-dropper»)
-p port — порт используемый клиентом для отправки DHCP сообщений. По умолчанию — 68.
-P port — порт сервера, на который отправляются DHCP сообщения. По умолчанию — 67.
-w секунд — задаёт таймаут рестарта процесса получения IP адресов в случае использования агрессивного режима. По умолчанию — 60 секунд.
-T timeout — устанавливает таймаут ожидания ответа сервера (в секундах). По умолчанию — 3 секунды.
-M хостов-максимум — максимально допустимое количество сканируемых хостов в случае использования агрессивного режима.
-l MAC-address — Ethernet адрес сервера который необходимо игнориновать при выполненении поиска ложных DHCP серверов в сети. В этой опции следует указать адрес DHCP сервера ответственного за раздачу адресов в данном сегменте сети. Может быть указано несколько адресов — каждый должен предваряться ключом -l.
-L легальная-сеть — указывает легальную IP подсеть для выбранного интерфейса. Использование этой опции автоматически включает агрессивный режим получения IP адресов. Может быть указано несколько сетей — каждая должна предваряться ключом -L. Подробное описание смотрите ниже.
-S сеть/маска — ARP сканирование сети ‘сеть’ с использованием сетевой маски ‘маска’ в CIDR нотации. IP адрес источника задаётся опцией -F. Если IP адрес источника не задан — используется случайный адрес из диапазона указанной подсети. Пример использования смотрите ниже.
-F исходящий-IP-адрес — указывает IP адрес источника для сканирования сети (опция -S), либо IP адрес DHCP клиента для отправки сообщения DHCPRELEASE (опция -R).
-s IP-адрес-сервера — задаёт IP адрес DHCP сервера. Используется с опцией -R.
-C count — число порождаемых процессов-потомков. Совместим только с флагом -f. Используется для увеличения числа отправляемых пакетов за единицу времени. При значении этого параметра равном 30, 10000 пакетов генерировалось менее чем за 1,5 секунды.
-i interface — имя либо индекс сетевого интерфейса (см. ключ -D). Не может быть «any»! Единственный обязательный параметр программы.
initial MAC address — задаёт MAC адрес источника используемый при отправке первого DHCP сообщения, либо используемый постоянно, в случае использования опции ‘-f’ (flood) вместе с опцией ‘-r’. Если не указан, то используется случайный MAC адрес источника.

Пинг сервисы WordPress

Пинг сервисы необходимы для ускорения индексации статей в поисковых системах.

Добавлять и удалять их можно в админ панели открыв «Параметры» — «Написание» — «Сервисы обновления».
Их существует достаточно много, поэтому желательно выбрать наиболее нужные. Чем больше их прописано, тем больше времени уйдет на их оповещение при добавлении статьи.
Вот небольшой список собранный в интернете:

http://rpc.pingomatic.com
https://rpc.twingly.com
http://ping.feedburner.com
http://rpc.weblogs.com/RPC2
http://www.pingmyblog.com
http://blogsearch.google.com/ping/RPC2
http://ping.blogs.yandex.ru/RPC2
http://xping.pubsub.com/ping

и т.д…

Настройка HTTPS в Apache

Приведу пример настройка HTTPS в Apache с использованием самоподписанного ключа.

Создадим ключ и сертификат:

openssl req -new -x509 -days 365 -keyout server.key -out server.pem

На вопрос «Enter PEM pass phrase:» вводим пароль и запоминаем его. На остальные вопросы можно просто нажимать Enter соглашаясь с предложенными вариантами, только на вопрос «Common Name (e.g. server FQDN or YOUR name):» вводим имя сайта, для которого создается сертификат, например www.example.com.
После ответов на вопросы в директории появятся два файла server.pem и server.crt (ключ и сертификат).
Apache при загрузке будет спрашивать пароль от ключа ранее нами введенный, поэтому снимаем пароль с ключа:

cp server.key{,.orig}
openssl rsa -in server.key.orig -out server.key
rm server.key.orig

Скопируем файлы в директорию /etc/ssl и выставим файлу ключа права чтения только для администратора:

sudo cp server.pem /etc/ssl/certs/
sudo cp server.key /etc/ssl/private/
sudo chmod 0600 /etc/ssl/private/server.key

Активируем ssl модуль apache2:

sudo a2enmod ssl

Включаем настройки default-ssl:

sudo a2ensite default-ssl

Отредактируем файл настроек /etc/apache2/sites-enabled/default-ssl.conf:
После директивы SSLEngine on добавим строку SSLProtocol all -SSLv2 запретив использование устаревшего протокола SSLv2.
Изменим пути к фалам:

SSLCertificateFile  /etc/ssl/certs/server.pem
SSLCertificateKeyFile /etc/ssl/private/server.key

Перезапустим Apache2 чтобы изменения вступили в силу:

sudo service apache2 restart

Протокол HTTPS работает по 443 порту, если используется фаервол, то необходимо открыть этот порт.

Если нужно использовать только HTTPS и запретить HTTP, то активируем mod_rewrite:

sudo a2enmod rewrite

И отредактируем файл /etc/apache2/sites-enabled/000-default.conf:

<VirtualHost *:80>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

Снова перезапустим Apache2 чтобы изменения вступили в силу:

sudo service apache2 restart

Теперь например при открытии адреса http://www.example.com, сервер автоматически будет переадресовывать на https://www.example.com.

Как установить подписанный сертификат смотрите в моей статье:
Установка Certbot в Ubuntu

Цифровое ТВ через интернет

В интернете достаточно много серверов и сайтов транслирующих множество телеканалов, для их просмотра необходимо лишь установить специальное приложение или начать просмотр прямо на сайте. Ниже приведу небольшой список некоторых плееров и сайтов.

Плееры:
ComboPlayer
Crystal TV http://www.crystal.tv
RusTV Player http://rustv-player.ru/
SopCast (SopPlayer) http://www.sopcast.com/
TV-Browser http://www.tvbrowser.org/
Super Internet TV http://www.ahusoft.com/

Просмотр ТВ через браузер:
http://www.corbina.tv/tv
http://on-tv.ru/
http://russianonline.tv/
http://torrent-tv.ru/
http://www.chooseandwatch.com/
http://www.freeetv.com/

Таблица классов для рас World of Warcraft 3.3.5a

Когда-то очень давно нарисовал для игровых мастеров и модераторов таблицу возможных классов для рас, в скобках указаны их ID. Таблица использовалась для версии World of Warcraft 3.3.5a, с её помощью удобнее писать sql запросы.
table

Скрипт удаления старых файлов

Недавно делал что-то типа частного файлообменника, и чтобы не контролировать что пользователи закачивают, добавил скрипт в cron чтобы файлы которым больше 3 дней удалялись автоматически.

Пример команды для удаления файлов которым больше N дней:

find /var/www/share/ -type f -mtime +N -exec rm {} \;

Если нужно удалять директории и все что в них есть, тогда этой командой:

find /var/www/share/ -type d -mtime +N -exec rm -rfv {} \;

Вместо удаления можно проверить какие данные будут удалены командой:

find /var/www/share/ -type d -mtime +N -print

Пишем команду в файл и ложим в желаемую директорию, например /home/user/share.sh
Добавляем ссылку на этот файл в /etc/crontab. Планировщик будет выполнять его каждый день в 4 утра от имени пользователя «www-data» и тем самым будут удаляться файлы которые хранятся больше N дней:

0 4 * * * www-data /home/user/share.sh > /dev/null 2>&1

Отключение рекламы в uTorrent

Для отключение всплывающих баннеров с рекламой в uTorrent необходимо открыть меню «Настройки» — «Настройки программы» (можно также нажав комбинацию клавиш Ctrl+P), далее выбираем «Дополнительно» и с правой стороны в поле «Фильтр» вводим «offer«, после чего для парметров «offers.left_rail_offer_enabled» и «offers.sponsored_torrent_offer_enabled» при их выделении выбираем внизу значение «НЕТ» (false).
Все.

Прошивка TP-LINK TL-WR741ND(KS) V4 от Kyivstar

Для примера взят беспроводной маршрутизатор TP-LINK TL-WR741ND (KS) Ver:4.20
Для версии 4.24 данная инструкция также подходит, проверено.
Будем обновлять прошивку маршрутизатора с киевстаровской на последнюю официальную.

На официальной странице загрузки скачиваем последнюю прошивку для версии 4.2 http://www.tp-linkru.com/download/TL-WR741ND_V4.2.html или для версии 4 http://www.tp-linkru.com/download/TL-WR741ND_V4.html

Заходим в настройки роутера набрав в браузере http://192.168.1.1 и вводим одинаковый логин/пароль kyivstar.
В этом же окне открываем ссылку http://192.168.1.1/userRpm/SoftwareUpgradeRpm.htm
Должно открыться окно обновления программного обеспечения, в котором выбираем ранее скачанную и распакованную из архива с расширением *.bin прошивку, нажимаем кнопку обновить.
Скорее всего появится ошибка обновления:

Код ошибки: 18005 Обновление произвести не удалось. Неверная версия файла для обновления. Пожалуйста, Проверьте имя файла.

Так как на последнюю он обновляться не хочет, прошьем например этой Factory (3.12.12 boot Build 121124 RU) BETA

После удачной прошивки возможно изменится IP адрес роутера на 192.168.0.1, ну логин и пароль естественно admin.
Заходим снова в настройки маршрутизатора и уже через стандартное меню обновляем прошивку на последнюю, скачанную с официального сайта.
Все. И не нужно паять никаких консольных кабелей! :)

Смотрите также:
Прошивка TP-LINK TL-WR741ND(KS) V2 от Kyivstar
Обновление прошивки маршрутизатора TP-Link TL-WR741ND

Видео пример:

Настройка AppArmor

AppArmor — программный инструмент упреждающей защиты, основанный на профилях, которые определяют привилегиями доступа к тому или иному приложению. По умолчанию включен в операционных системах Ubuntu.

Установка дополнительных профилей:

sudo apt-get install apparmor-profiles

Проверка статуса:

sudo apparmor_status
sudo /etc/init.d/apparmor status

Профили могут быть запущены в щадящем режиме «complain mode» или вынужденном «enforce mode».

Справка по AppArmor:

man apparmor

Директория хранения профилей:

/etc/apparmor.d

Включение профиля:

cp /usr/share/doc/apparmor-profiles/extras/usr.bin.firefox /etc/apparmor.d

Удаляем из директории с отключенными профилями (если есть):

sudo rm /etc/apparmor.d/disable/usr.bin.firefox

Отключение профиля:

sudo ln -s /etc/apparmor.d/usr.bin.firefox /etc/apparmor.d/disable/

Пример переключения режимов:

aa-enforce usr.bin.firefox
aa-complain usr.bin.firefox

Перезапускаем AppArmor:

sudo /etc/init.d/apparmor restart

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

Java — язык программирования и вычислительная платформа, на которой основываются многие современные программы.

Указанная ниже команда отобразит версию установленной в системе java, если она не установлена, то будет показан список возможных пакетов с java.

java -version

Пример команды установки Java в Linux Ubuntu/Debian:

sudo apt-get install openjdk-9-jre

Пример удаления пакета:

sudo apt-get purge openjdk*

Также можно скачать с официального сайта установочный пакет и установить его.

Страницы загрузки:
www.java.com/ru/download/
www.oracle.com/technetwork/java/javase/downloads/index.html

Web страница проверки Java — http://www.javatester.org/version.html

Когда в репозитории Ubuntu 14 была доступна только Java 7, то Java 8 я устанавливал выполнив следующие команды:

sudo su
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
apt-get update
apt-get install oracle-java8-installer
exit