Получил недавно такую абузу:

Dear Sir or Madam,
>
> Multicast DNS (mDNS) is used for resolving host names to IP addresses
> within small networks that do not include a local DNS server. It is
> implemented for example by the Apple ‘Bonjour’ and Linux/BSD ‘Avahi’
> (nss-mdns) services. mDNS uses port 5353/udp.
>
> In addition to disclosing information about the system/network,
> mDNS services openly accessible from anywhere on the Internet can be
> abused for DDoS reflection attacks against third parties.
>
> Please find below a list of affected systems hosted on your network.
> The timestamp (timezone UTC) indicates when the openly accessible
> mDNS service was identified.
>
> We would like to ask you to check this issue and take appropriate
> steps to close the openly accessible mDNS services on the affected
> systems or notify your customers accordingly.
>
> If you have recently solved the issue but received this notification
> again, please note the timestamp included below. You should not
> receive any further notifications with timestamps after the issue
> has been solved.

Оказывается, на UDP порт 5353 слушал на всех интерфейсах avahi-daemon, который был установлен непонятно с чем (а может быть и по умолчанию в Linux Mint).

Смотрим, что слушает на этом порту:
netstat -tulpn |grep 5353
avahi-daemon

Побороть можно так следующим образом.

Проверяем зависимости, чаще всего avahi требует именно wine:

apt-rdepends wine | grep avahi

Если не нужен wine или зависимостей нет, то можно смело делать
apt-get remove avahi-daemon

Если нужен, то просто отключим:
update-rc.d avahi-daemon disable
/etc/init.d/avahi-daemon stop

Мне нравится утилита nethogs, которую я использую на своём сервере с Debian, для просмотра соединений и скорости передачи данных по процессам, но как-то она, после обновления, внезапно перестала работать, и стала выпадать с сообщением:

nethogs creating socket failed while establishing local IP — are you root?

Фикс такой:

wget -c https://github.com/raboof/nethogs/archive/v0.8.1.tar.gz
tar xf v0.8.1.tar.gz
cd ./nethogs-0.8.1/
sudo apt-get install libncurses5-dev libpcap-dev
make && sudo make install
sudo nethogs

Вот и всё.

Обновляем список доступных пакетов
apt-get update

Устанавливаем OpenVPN
apt-get install openvpn

Защита соединения в OpenVPN в данном случае строится на использовании сертификатов и ключей для сервера и для клиентов. Для их генерации в пакете OpenVPN имеются специальные скрипты, расположенные в /usr/share/doc/openvpn/examples/easy-rsa/2.0 Перед началом работы скопируем их, чтобы не изменять оригиналы.

(для старых версий openvpn)

mkdir /etc/openvpn/easy-rsa
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa

С лета 2013 года easy-rsa не входит в OpenVPN и команда указанная выше не сработает(не найдет easy-rsa), тогда делаем доп команду:

sudo apt-get install easy-rsa

и копируем из другого места:

mkdir /etc/openvpn/easy-rsa
cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa
mv /etc/openvpn/easy-rsa/easy-rsa /etc/openvpn/easy-rsa/2.0

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

cd /etc/openvpn/easy-rsa/2.0

Редактируем файл переменных

nano vars

Здесь нужно добавить следующие строки:

# По умолчанию здесь просто openssl, которого нет в директории, в результате чего мы получим ошибку, если не укажем существующий. Я выбрал последнюю версию. Указывается без расширения .conf.
export OPENSSL=»openssl»

# В самом низу файла добавить
export KEY_ALTNAMES=»VPNsUS»

копируем конфиг openssl

cp openssl-1.0.0.cnf openssl.cnf

Загружаем переменные

source ./vars

Очищаем от старых сертификатов и ключей папку keys и создаем серийный и индексные файлы для новых ключей

./clean-all

Подтверждаем очистку.

Создаем сертификат. По умолчанию поля будут заполняться данными, введенными ранее в vars, поэтому можно ничего не менять.

./build-ca

Создаем ключ сервера

A challenge password []: Заполняется произвольным значением, насколько я понял это нужно только для создания ключа и больше нам не потребуется.

./build-key-server server

В конце соглашаемся с запросом на подпись и добавление сертификаты в базу.

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

Создаем ключ Диффи Хельман

./build-dh

Cоздаем ключ для tls-аутификации

openvpn —genkey —secret keys/ta.key

Перемещаем сертификаты

cp -r /etc/openvpn/easy-rsa/2.0/keys/ /etc/openvpn/

Создание файла конфигурации сервера

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
cd /etc/openvpn
gunzip -d /etc/openvpn/server.conf.gz

nano /etc/openvpn/server.conf

port 1194
proto udp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key # This file should be kept secret
dh /etc/openvpn/keys/dh2048.pem
server 172.30.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
tls-auth ta.key 0 # This file is secret
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
tls-server
tls-auth /etc/openvpn/keys/ta.key 0
tls-timeout 120
auth SHA1
cipher BF-CBC
push «redirect-gateway def1»
push «dhcp-option DNS 8.8.8.8»
status /var/log/openvpn-status.log
log /var/log/openvpn.log

Можно запускать наш сервер OpenVPN

service openvpn restart

В /etc/sysctl.conf расскомментируем #net.ipv4.ip_forward=1 после чего
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -p

iptables -t nat -A POSTROUTING -s 172.30.0.0/24 -o venet0:0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.30.0.0/24 -j SNAT —to 5.45.x.x
вместо venet0:0 указать имя внешнего интерфейса сервера (смотреть командой ifconfig),
вместо 5.45.x.x — указать внешний IP Вашего сервера,

iptables-save

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

Ключи клиента создаются на сервере

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

cd /etc/openvpn/easy-rsa/2.0

Загружаем переменные

source vars

Создаем ключ клиента

Common Name (eg, your name or your server’s hostname) []: нужно вписать название файла ключа, в данном случае client

./build-key client

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

./build-key-pass client

Теперь нужно не забыть скопировать ключи (ca.crt, dh1024.pem, client.crt, client.key, ta.key) на клиента OpenVPN в /etc/openvpn/keys/

mv /etc/openvpn/keys/ /etc/openvpn/keys_backup
mv /etc/openvpn/easy-rsa/2.0/keys/ /etc/openvpn/

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

client
dev tun
proto udp
remote 5.45.x.x 1194
resolv-retry infinite
ca ca.crt
cert client.crt
key client.key
tls-client
tls-auth ta.key 1
auth SHA1 # по-умолчанию. Можно MD5
cipher BF-CBC
remote-cert-tls server
comp-lzo
persist-key
persist-tun

вместо 5.45.x.x — нужно вписать внешний IP вашего сервера

И сохраняем с именем client.ovpn в отдельную папку, например «C:\Program Files\OpenVPN\config»

В этой же папке, где мы сохранили client.ovpn, создаём ещё 4 пустых файла, и называем их:
ca.crt
ta.key
client.crt
client.key

и заполняем их содержимым, которое берём из (текст копируем прямо из консоли)
cat /etc/openvpn/keys/ca.crt
cat /etc/openvpn/keys/ta.key
cat /etc/openvpn/keys/client.key
cat /etc/openvpn/keys/client.crt

Сохраняем и запускаем соединение.

Добавление в автозагрузку:

update-rc.d openvpn defaults

При закрытии крышки постоянно ноут уходит в спящий/ждущий режим, не смотря на то, что настраивал в параметрах энергопотребления совсем другое. Как пофиксить:

Редактируем ~/.config/lxsession/Lubuntu/desktop.conf

Находим секцию и меняем значение laptop_mode на yes:

[State]
laptop_mode=yes

Сохраняем, перезагружаем систему.

Для того чтобы установить VNC Server на Ubuntu linux и при этом загружался нормальны рабочий стол, а не чёрно-белая хрень, нужно выполнить следующее:

sudo apt-get install vnc4server

Если Вы используете lxde или у Вас она по крайней мере установлена, то далее нужно отредактировать файл ~/.vnc/xstartup и привести его к такому виду:

 

#!/bin/sh

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresourceslxpanel &

/usr/bin/openbox-session &
/usr/bin/lxsession -s LXDE &

Далее запускаем vncserver, вводим пароль дважды и подключаемся к хосту по адресу x.x.x.x:1, где 1 — это номер виртуального экрана.

Чтобы остановить vncserver необходимо выполнить следующее:

vncserver -kill :1

где :1 — это номер виртуального экрана.

Если нужно запустить vncserver с особым разрешением, для этого запускаем его следующим образом:

vncserver -geometry 800×600

Это всё.