Таки да, squid в помощь, но если без прокси то можно и с помощью iptables прикрыть социалки.
# Очищаем все таблицы
iptables -F
iptables -X
iptables -t nat -F
iptables -t mangle -F
iptables -t mangle -X
# Политики по умолчанию
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
# Всегда принимаем трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT
# Правила для клентов
iptables -A FORWARD -s <ИП клиента> -d odnoklassniki.ru -j DROP
iptables -A FORWARD -s <ИП клиента> -d vk.com -j DROP
# NAT'им траффик
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
У меня ppp0 смотрит на инет. ИП клиента - ИП машины для которой надо закрыть социалку. Повторюсь, это если без проксика делать. Как резать скорость не скажу, не делал по причине ненадобности, но тоже можно без проксика обойтись. Приведенный код суем в файлик, например /etc/rc.rules, делаем его исполняемым, в rc.local до строки "exit 0" вписываем "/etc/rc.rules" (без кавычек конечно все это) и можно радоваться.
Этот способ называется "по-быстрому". Он не является обазцом для подражания. На форуме много тем о том как это сделать правильней с точки зрения безопастности.