мы создаем целевую страницу для использования с Unifi (v3-beta). На целевой странице должна отображаться кнопка facebook (а затем и LinkedIn) для входа.
После входа в систему с помощью fb (или разрешения нашего приложения) они получают неограниченный доступ в Интернет.
Мы можем внести IP-адреса facebook в белый список, используя это: https://developers.facebook.com/docs/ApplicationSecurity/#facebook_scraper
Facebook использует Akamai в качестве CDN. А для Акамая это не так просто. У них намного больше IP и разные номера AS.
Есть ли способ получить список всех IP-адресов за "fbstatic-a.akamaihd.net"?
# nslookup fbstatic-a.akamaihd.net
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
fbstatic-a.akamaihd.net canonical name = fbstatic-a.akamaihd.net.edgesuite.net.
fbstatic-a.akamaihd.net.edgesuite.net canonical name = a1168.dsw4.akamai.net.
Name: a1168.dsw4.akamai.net
Address: 195.10.11.64
Name: a1168.dsw4.akamai.net
Address: 195.10.11.43
Должны ли мы просто занести в белый список ВСЕ сети Akamai (тысячи IP-адресов)?
Какое было бы лучшее решение для этого?
Akamai выполняет глобальную балансировку нагрузки на основе DNS, поэтому ваш nslookup даст вам только набор результатов из многих возможных. Было бы слишком ошибочно полагаться на них, потому что маршруты могут измениться, Akamai может перемещать ресурсы и т. Д.
Один из способов - занести в белый список всю сеть Akamai.
Другой способ - создать прозрачный прокси с использованием squid, а затем настроить ACL на основе URL-адреса (т.е. часть URL-адреса с именем хоста должна быть "fbstatic-a.akamaihd.net"). Прозрачный прокси не будет работать с SSL, поэтому вы можете рекламировать настройки прокси через DHCP (например, используя файл PAC).
Один из вариантов, который я нашел полезным, - это предоставить гостю временный доступ и попросить его войти в систему для продолжения доступа.
Посетите мой портал, если хотите увидеть точную реализацию https://github.com/unifispot