Назад | Перейти на главную страницу

Какие порты UDP необходимы для разрешения внешних хостов?

Сегодня я попросил своего хостера заблокировать все UDP-порты, кроме порта 53. Из-за ежедневных UDP-атак это был единственный способ остановить лавинную рассылку моих линий.

Теперь, когда блок на месте, я больше ничего не могу получить.

[root@s1 wupload]# wget http://www.google.com
--2011-08-15 11:56:28--  http://www.google.com/
Resolving www.google.com... failed: Temporary failure in name resolution.
wget: unable to resolve host address `www.google.com'

На самом сервере ничего не изменилось. Только на уровне роутера. Порт 53 все еще открыт, я вижу хиты через iptables.

Я запускаю CentOS64 5.6.

Какие еще порты должны быть открыты для правильной работы wget и cURL?

Для разрешения хоста вам понадобится UDP 53 исходящий (Я предполагаю, что вы находитесь за брандмауэром с отслеживанием состояния). Чтобы использовать wget и curl с параметрами порта по умолчанию, вам понадобится TCP 80 исходящий. Для этой конкретной цели вам не понадобятся никакие входящие порты.

Чтобы проверить, можете ли вы разрешить хосты, вы можете использовать команду dig. Если вы хотите разрешить www.google.com с помощью OpenDNS, вы должны ввести следующую команду:

dig @ 208.67.222.222 www.google.com

и вы должны получить следующий ответ:

; <<>> DiG 9.7.3 <<>> @208.67.222.222
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55450
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;.                              IN      NS

;; ANSWER SECTION:
.                       516333  IN      NS      d.root-servers.net.
.                       516333  IN      NS      l.root-servers.net.
.                       516333  IN      NS      h.root-servers.net.
.                       516333  IN      NS      k.root-servers.net.
.                       516333  IN      NS      g.root-servers.net.
.                       516333  IN      NS      i.root-servers.net.
.                       516333  IN      NS      f.root-servers.net.
.                       516333  IN      NS      c.root-servers.net.
.                       516333  IN      NS      j.root-servers.net.
.                       516333  IN      NS      a.root-servers.net.
.                       516333  IN      NS      m.root-servers.net.
.                       516333  IN      NS      b.root-servers.net.
.                       516333  IN      NS      e.root-servers.net.

;; Query time: 36 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Mon Aug 15 19:17:11 2011
;; MSG SIZE  rcvd: 228

Ответ на раскопки может отличаться от хоста к хосту, но вы не должны получать пустой «ОТВЕТНЫЙ РАЗДЕЛ».

Если вы можете разрешить использование OpenDNS с помощью dig, но не с помощью wget или curl, это означает, что в вашей системе не настроен доступный DNS-сервер. В таком случае рассмотрите возможность редактирования /etc/resolv.conf

Они блокируют входящий трафик, связанный со всеми портами UDP, кроме 53, что отлично подходит для DNS-серверов с выходом в Интернет в вашем регионе, но не так хорошо для разрешения клиентов.

Клиенты DNS отправляют трафик, привязанный к порту 53, с высоким исходным портом; ответ DNS-сервера имеет порт источника 53 и порт назначения верхнего порта, который использовал клиент.

Итак, фильтр вашего интернет-провайдера поразил ваше разрешение DNS. Если они откроют весь широкий диапазон, который могут использовать ваши DNS-клиенты, это, скорее всего, приведет к большому потоку назад; аналогично, ограничение порта источника 53 не гарантирует блокировку хорошо продуманного флуда.

Лучшее решение может заключаться в том, чтобы все разрешения вашего клиента выполнялись определенными восходящими преобразователями DNS, а ваш провайдер исключал эти системы из фильтра UDP.