В общем случае, нет. Вы можете, конечно, блокировать SYN-сегменты при обнаружении признаков сканирования (линейно возрастающий номер порта назначения, например), но пользователь может начать сканировать порты в случайном или псевдослучайном порядке. Вы можете заблокировать SYN-сегменты совсем, но тогда TCP работать не будет.
Кроме того, немного непонятно, чего вы хотите добиться. Какая вам разница, сканирует кого-то пользователь или нет? Если он занимается нелегальной активностью - это дело органов внутренних дел. Если проблема в "письмах счастья" ("вы нас сканируете, прекратите") - в большинстве случаев это автоматические сгенерированные различными IDS письма, смысла в них немного. В крайнем случае вы можете блокировать наиболее активных "нарушителей".
В моем представлении, если кому-то не нравится, что его сканируют, ему же гораздо проще технически самому защитить свой сервер. Хотя я считаю это одним из проявлений подхода "security through obscurity". Если вы (или условный провайдер) начнете пытаться фильтровать такой трафик, это будет или неэффективно, или обладать негативными побочными эффектами.
Вы можете, и это настоятельно
рекомендуется, фильтровать трафик с целью запретить спуфинг, т.е. подделку адресов источника, это гораздо проще и гораздо полезнее.