Я так понял, к уже имеющимся правилам добавить -sport 1100 и -sport 250
$IPTABLES -t nat -A POSTROUTING -s $NET_LOC -o $IF_INET -p tcp -sport 250 --dport 25 -j SNAT --to-source $SMTP_INET
$IPTABLES -t nat -A POSTROUTING -s $NET_LOC -o $IF_INET -p tcp -sport 1100 --dport 110 -j SNAT --to-source $POP_INET
И не должно было. Ты прочитай документацию, и переведи на русский язык что ты понаписал.
Ты хочешь, что бы весть трафик приходящий из локальной сети на 250 порт твоего сервера, был завернут на 25 порт другой машины. Я правильно понял задачу?
1) Выбор портов 250 и 1100 это плохая идея.
2)
-s $NET_LOC переводится, адрес источника локальная сеть. Это правильно.
3)
-o $IF_INET переводится как должен уйти через интефрейс $IF_INET. Но ты же хочешь, заварачивть пакеты адресуемые твоему серверу. Они никуда, ни через какой интерфес уходить не будут.
4)
--sport 1100 Порт истоника 1100. В твоем случае полный бред. Порт будет случайный.
5)
--dport 110 Порт приемника 110. Ты же говорил, что пакеты приходящии на 110
0, а не на 110 порт должны заворачивтся.
6)
-j SNAT --to-source $SMTP_INET Замененит адрес источника на $SMTP_INET. Если, судя по названию это адрес внешнего сервера. Если так, то это бред.
Вот как должен проходить пакет:
Условие: С адреса из локальной сети и любого порта, на адрес твоего сервера и на порт 110.
1) Поменять адрес и порт назначения, указав заначения для внешнего сервера.
2) Оправить этот пакет на интерфейс смотрящий наружу.
3) Поменять адрес (но не трогая порт!) источника, на адрес интерфейса смотрящего наружу.
http://ru.wikipedia.org/wiki/Iptables#.D0.A6.D0.B5.D0.BF.D0.BE.D1.87.D0.BA.D0.B8_2 тут найдешь отличную картинку и описание.