Штука в том, что когда делаю wget с 46.4.113.109 или любой внутренней вирт. машины (192.168.42.0/24), то получаю connection refused для доменов, которые обслуживаются 192.168.42.91
Все правильно. так и будет.
обратите внимание на свою строку: iptables -t nat -A PREROUTING -p tcp -d 46.4.113.109 --dport 80 -i eth0 -j DNAT --to-destination 192.168.42.91:80
Если Вам из внутренней сети надо попадать на машину 192.168.42.91 при обращение к доменам, то проще всего сделать view в DNS, и для локальных адресов отдавать локальный адрес, для всех остальных наружный.