Как защититься от RPC portmapper DDoS на 111 порту

RPC Portmapper служит для обеспечения сервисов Remote Procedure Call, таких как NIS и NFS. Он устанавливается по умолчанию во многих современных дистрибутивах на Linux и слушает 111 порт (TCP и UDP). Если 111 порт с rpcbind доступен из интернет для всех, то этим могут воспользоваться для проведения DDoS-атаки: на сервис отправляется UDP-пакет, в котором подделывается исходящий IP-адрес на адрес атакуемого компьютера, и portmapper шлет жертве список переназначения портов. Чтобы избежать блокировки IP за участие, хоть и не преднамеренное, в DDoS, необходимо ограничить доступ к 111 порту по IP или отключить или даже удалить RPC portmapper, если он не используется.

Некоторые провайдеры, например Hetzner, рассылают своим клиентам письма с предупреждением о проблемах с RPC portmapper и просьбой побеспокоиться о безопасности заранее.

Для начала нужно определить, открыт ли 111 порт:

# lsof -i:111
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
systemd     1 root   38u  IPv6  525138      0t0  TCP *:sunrpc (LISTEN)
systemd     1 root   46u  IPv4  525139      0t0  TCP *:sunrpc (LISTEN)
rpcbind 15801  rpc    4u  IPv6  525138      0t0  TCP *:sunrpc (LISTEN)
rpcbind 15801  rpc    5u  IPv4  525139      0t0  TCP *:sunrpc (LISTEN)
rpcbind 15801  rpc    8u  IPv4 1026896      0t0  UDP *:sunrpc
rpcbind 15801  rpc   10u  IPv6 1021461      0t0  UDP *:sunrpc

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

Отключение и удаление rpcbind или portmap

Ниже - примеры команд для отключения сервиса rpcbind (может называться portmap в некоторых системах) в различных дистрибутивах Linux: Debian 8, CentOS 7, Debian 7, CentOS 6, Debian 5 и Ubuntu.

Отключение rpcbind в Debian 8 и Centos 7
# systemctl stop rpcbind
# systemctl disable rpcbind
Отключение rpcbind в Debian 7 и Ubuntu
# /etc/init.d/rpcbind stop
# update-rc.d -f rpcbind remove
Отключение portmap в Debian 6
# /etc/init.d/portmap stop
# update-rc.d -f portmap remove

Для всех операционных систем производится одно и то же действие: отключение сервиса и запрет его автозапуска. После ввода команд по отключению службы RPC portmapper следует проверить 111 порт.

Теперь, при желании сэкономить немного места на диске, можно удалить сервис:

Debian 8, Debian 7 и Ubuntu
# apt-get remove rpcbind
Centоs 7 и Centоs 6
# yum remove rpcbind
Debian 6
# apt-get remove portmap

Защита RPC portmapper

Если RPC portmapper нужен для работы других сервисов, то в обязательном порядке необходимо ограничить доступ к нему, разрешив подключение только для определенных IP. Это можно сделать при помощи firewall, ограничив доступ к 111 порту TCP и UDP.

В примере ниже, прописываются правила, которые разрешают доступ только для localhost и IP-адресов IPv4 в диапазоне 10.10.10.1 - 10.10.10.255. Следует помнить, что в firewall важен порядок следования правил.

# iptables -A INPUT -p udp -s 10.10.10.0/24 --dport 111 -j ACCEPT
# iptables -A INPUT -p udp -s 127.0.0.1 --dport 111 -j ACCEPT
# iptables -A INPUT -p udp --dport 111 -j DROP

Не стоит забывать, что поскольку RPC portmapper доступен и по IPv6, нужно прописать правила блокировки или белый список и для адресного пространства IPv6. После применения всех правил firewall, стоит убедиться, что 111 порт доступен только для избранных.

Опубликовано: 2017/09/03
HTML-код ссылки на эту страницу:
<a href="https://petrenco.com/linux.php?txt=715" target="_blank">Как защититься от RPC portmapper DDoS на 111 порту</a>
17493
Добавить комментарий
Ваш e-mail: (не виден посетителям сайта)
Ваше имя:
Комментарий:
Символы с картинки:
Только выделенные поля формы добавления комментариев обязательны к заполнению.