В моей домашней сетке около 23 устройств, которые подключены к локалке и имеют свои IP. Большей части из них доступ в интернет либо ограничен, либо его вообще нет. Однако есть и другая проблема: с тех устройств, которым доступ в интернет не ограничен (мои рабочие станции и ноут/нетбуки) весьма может идти всякий трафик HTTP (а другой (обычно. в определенные моменты разрешаю) там не разрешен. За исключением rsync, ssh и ещё некоторых) от приложений, которым его генерировать не надо. Например, он некоторых плееров. Мало того, у меня есть виртуалки с виндой (чего греха таить, у многих тут они есть :) ), и хотелось бы, чтобы можно было пользоваться на них браузером, но только ФФ, а всему остальному внешним файерволом доступ запретить.
Я подумал, что наиболее подходящим решением по теме будет использовать squid в прозрачном режиме, далее там смотреть user-agent, и разрешать только лису 15 и выше.
Из поиска в гугле наиболее подходящей страничкой была:
https://forums.clavister.com/viewtopic.php?f=17&t=3431
И её пример:
# This will only find «real» Mozilla 1.2 browsers
acl mozilla12 browser ^Mozilla/5\.0.*rv:1.2
Однако, мне нужно, чтобы было не тупое прибитое гвоздями сравнение, а сравнение «15 или выше». Мало того, весьма важно сравнивать оба числа (в «15»), т.к. выход 20-го FF не за горами.
Ко всему прочему, я думаю, что необходимо модифицировать логику выборки: смотреть и на rv: 15.0 (только 15, 0 можно не сравнивать) и на самый конец (тоже только 15, остальное не сравнивать). Это уменьшит вероятность пропустить какое-нибудь хитрое приложение.
Пример юзер-агента, о котором я говорю:
Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1
Я весьма слаб в регекспах squid (да и вообще я его использовал всего 2 раза в жизни), поэтому прошу squid-гуру помочь с написание правильного регулярного выражения.