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

Как напрямую изолировать IP-адреса SMTP-сервера Google Gmail?

Я выполняю некоторую настраиваемую маршрутизацию с помощью VPN в сочетании, которое требует от меня добавления каждого IP-адреса SMTP-сервера Google Gmail в таблицу маршрутизации, чтобы они проходили через другой шлюз, чем шлюз по умолчанию VPN.

Согласно этот, Я могу определить общие диапазоны адресов Google, однако я не могу напрямую изолировать SMTP-серверы. Любопытно, что однажды я сделал запрос в компанию VPN, и они ответили со всеми конкретными SMTP-серверами Gmail, но не объяснили и не объяснили, как определить эти IP-адреса.

Как я могу изолировать эти IP-адреса с помощью заклинаний оболочки? Для этого подойдет стандартный метод GNU Linux или OS X.

  • Исходящие серверы можно найти с помощью ответа @DTK
  • Входящие серверы можно найти с помощью ответа @Rex

Оба ответа верны, но неполны. После каждого ответа вы получите только серверы в конкретный момент времени. Даже через неделю серверы могут быть совершенно другими, так как Google очень часто меняет их серверы.

Настоящее решение - вообще не беспокоиться о серверах Google. Позвольте почтовому серверу сделать всю работу за вас. (Это то, для чего они предназначены.) Поместите смарт-хост в «эту» сеть для ретрансляции почты. Ретранслируйте почту для Google (*@gmail.com, *@googlemail.com, ...) через туннель на другой смарт-хост в «этой» сети за VPN. «Этот» смарт-хост выполняет свою работу и разрешает MX для домена Google и доставляет почту в Google.

В этой конфигурации «этот» смарт-хост должен знать только, что вся почта Google сначала должна идти на «этот» смарт-хост. Сетевой трафик между обоими двумя серверами туннелируется (и, вероятно, защищается брандмауэром), и это единственное соединение на порту 25. (Поскольку оба являются «вашими» серверами, они могут даже общаться через любой порт, который вы хотите).

Поэтому вам просто нужно настроить любой клиент для использования «этого» смарт-хоста для доставки почты.

Это легко сделать с помощью Postfix (для начала см. Relay_domains и transport_maps). Я могу предоставить вам рабочую конфигурацию (кроме VPN).

Все, что вам нужно сделать, это поиск в DNS записей MX. Это даст вам (на тот момент) список всех серверов, которые Gmail использует для получения почты.

Пожалуйста, проверьте это МНОГО, синус, это просто WAG вопросов и ответов, но я считаю, что это делает то, что вы хотите:

dig @8.8.8.8 +short  _spf.google.com TXT \
  |awk '
    BEGIN {RS=" " ; FS=":"} ; 
    $1="include" {print $2}
  ' \
  |sed -e '/^\s*$/d' \
  |while read NETBLOCK ; do 
    dig @8.8.8.8 +short "${NETBLOCK}" TXT \
    |awk '
      BEGIN {RS=" " ; FS=":"} ;
      $1 ~ /^ip4/ {print $2} ;
      $1 ~ /^ip6/ {s = ""; for (i = 2; i <= NF; i++) s = s":"$i; print s }
    ' \
  |sed -e 's/^://' ;
done

Обратите внимание, что Google помещает большую часть своих публичных размещений в записи SPF. Это имеет смысл, поскольку позволяет им гибко добавлять / удалять / перемещать / изменять свои шлюзы исходящей почты, но может быть менее детализированным, чем хотел автор вопроса.