Если вам нужно разрешить порт 3128, то -j ACCEPT и без "!".
Если вам нужно запретить всё кроме одного порта, для заданного ip-адреса, то воскл. знак нужно ставить между dport и числом и лучше в одинарных кавычках, чтобы его не «съел» bash.
Работать не хотело. Может я и ошибаюсь, но вроде как, для iptables важен порядок правил и запрет имеет более высокий приоритет, чем разрешение, посему, я сперва разрешаю кому надо, потом - запрещаю. Пока работает. Если сморозил чушь, поправьте, пожалуйста (если не сложно, носом в стрчку мануала тыкнете).