Шлюз в Ubuntu

Это можно сделать как минимум

Это можно сделать как минимум двумя способами:
1. Прокси-сервер
2. Файрвол с настройкой NAT
Какой способ вас интересует?

Оба способа

Меня интересуют оба способа. Если можно, расскажите поподробней, или хотя бы ссылками поделитесь. ОС - UBUNTU 10.04.

Первый способ - ставим squid

Первый способ - ставим squid и настраиваем. Дока тут: http://linuxshare.ru/docs/squid.html squid предназначен для проксирования http и ftp запросов, для других протоколов он не очень подходит Второй способ заключается в использовании правил для файрвола iptables которые транслируют IP адреса внутри в сети в сетевой адрес самой машины-шлюза, которая высовывается в Internet. Таким образом, при выходе из шлюза TCP/IP пакет получает адрес шлюза, а при заходе в шлюз этот адрес снова подменяется внутренним адресом компьютера из локальной сети. Для выхода в интеренет практически по любому протоколу этого достаточно (за редким исключением). Делается это одним единственным правилом:
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 194.236.50.155-194.236.50.160:1024-32000
Где eth0 вы должны заменить именем вашего интерфейса с IP-адресом, выставленным в Internet, диапазон 194.236.50.155-194.236.50.160 вы должны заменить диапазоном адресов вашей внутренней сети, а 1024-32000 диапазоном портов TCP/IP которые будут попадать под трансляцию адресов, например для http достаточно только 80-го порта. Диапазон портов вообще можно опустить, если вы хотите, чтобы транслировалось всё.