Então acabei descobrindo meu problema, apenas postando uma resposta para qualquer outra pessoa potencialmente tendo o problema.
O comando:
iptables -t nat -A PREROUTING -d outerip -p tcp --dport 80 -j DNAT --to webip
Foi o que eventualmente permitiu que funcionasse. Essa regra anexa a tabela de pré-detalhamento para permitir conexões do ip externo do firewall, desde que sejam pacotes tcp destinados à porta 80, para serem diretamente NAT através do firewall para o IP do servidor web.
Também deve ser notado que eu mudei o adaptador interno do meu firewall de "link local only" para "shared with other computers". Isso atribuiu a esse adaptador eth um endereço 10.42.0.x, em vez de 169.254.x.x. Não tenho certeza se isso corrigiu alguma funcionalidade, outro usuário sugeriu que eu saísse do campo de endereço 169.254.x.x.