Potrzebne będą dwie karty sieciowe, które oczywiście już masz i włożyłeś do serwera :]

Konfiguracja sieci:

zależnie od dystrybucji konfiguracja może mieć różny przebieg ja opisze ją na przykładzie pliku
/etc/sysconfig/network, /etc/sysconfig/network-scripts/ifcfg-eth0, /etc/sysconfig/network-scripts/ifcfg-eth1

/etc/sysconfig/network

HOSTNAME=nazwa_hosta.domena.pl # jezeli nie masz swojej domeny wpisz jakąkolwiek
NETWORKING=yes
GATEWAY=80.53.16.121# Zarezerwowany adres modemu
GATEWAYDEV=eth1# interfejs do którego wpięty jest modem

/etc/sysconfig/network-scripts/ifcfg-eth0 - interfejs lokalny

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.1 # ip interfejsu lokalnego
NETMASK=255.255.255.0 # maska
NETWORK=192.168.1.0 # adres sieci
BROADCAST=192.168.1.255 # broadcast
ONBOOT=yes # laduje interfejs przy starcie systemu
MII_NOT_SUPPORTED=no

Oczywiscie ip jest umowne i czy będzie to 192.168.1.1 czy 192.168.0.1 czy co tam kto sobie wymyśli to jego broszka ale ważne by zgadzało się z maską i adresem sieci ;)

/etc/sysconfig/network-scripts/ifcfg-eth1 - DSL (do tego interfejsu wpięty jest modem)

DEVICE=eth1
BOOTPROTO=static
IPADDR=80.53.16.122 # Pierwszy "Adres dostepny dla abonenta"
NETMASK=255.255.255.248 # Maska
NETWORK=80.53.16.120 # Zarezerwowany adres sieci
BROADCAST=80.53.16.127 # Zarezerwowany adres rozgloszeniowy sieci
ONBOOT=yes
MII_NOT_SUPPORTED=no

Konfiguracja IPTABLES (prosty firewall)

#!/bin/sh
# Sciezka do iptables
IPTABLES=/sbin/iptables
# Interfejs zewnetrzny (DSL)
EXT_IP=80.53.16.122
EXT_INT=eth1
# Lokalny interfejs (LAN)
LAN_IP=192.168.1.1
LAN_INT=eth0
# Siec
SIEC_IP=192.168.1.0
SIEC_MASKA=255.255.255.0
# Hosty, ktorym udostepniamy lacze
HOST1=192.168.1.2
HOST2=192.168.1.3
# Uruchomienie przekazywania pakietow
echo "1" > /proc/sys/net/ipv4/ip_forward
# Czyszczenie tablic iptables (NAT i Filtrowanie)
$IPTABLES -F -t nat
$IPTABLES -X -t nat
$IPTABLES -F -t filter
$IPTABLES -X -t filter
# Odrzucenie i brak zezwolenia na forwardowanie pakietow
$IPTABLES -t filter -P FORWARD DROP
# Przepuszczanie pakietow z sieci lub przeznaczone dla sieci
$IPTABLES -t filter -A FORWARD -s $SIEC_IP/$SIEC_MASKA -d 0/0 -j ACCEPT
$IPTABLES -t filter -A FORWARD -s 0/0 -d $SIEC_IP/$SIEC_MASKA -j ACCEPT
# Maskarada
$IPTABLES -t nat -A POSTROUTING -s $HOST1 -d 0/0 -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s $HOST2 -d 0/0 -j MASQUERADE
# Moduly do FTP i IRCa
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc


Plik można zapisać w /etc/rc.d/ jako rc.firewall i dać mu prawa chmod +x rc.firewall

Zostaje jeszcze dopisanie go do /etc/rc.d/rc.local, który uruchomi go przy starcie systemu

# Firewall

if [ -x /etc/rc.d/rc.firewall ]; then
/etc/rc.d/rc.firewall
fi

Jeszcze tylko restart sieci + odpalenie firewalla lub restart systemu i
DSL hula, admin happy, useria happy, żyć nie umierać ;)