>[оверквотинг удален]
>
>${ipfw} add divert natd ip from any to ${ip_out} in via ${interf_out}
>
>${ipfw} add allow all from any to any
>ну плюс еще описание переменных.
>
>На самом деле меня больше интересует не поиск альтернатив, а сама суть:
>почему не работает традиционным способом, где я мог ошибиться или же
>это случайный глюк.
>доступ по ссх рубит 3-е правило.Собственно, все верно, если у Вас демон natd запускается с ключем -d или, как мне думается, конкретно у Вас в /etc/natd.conf указана опция
deny_incoming yes
Правило заворачивает все пакеты демону natd, а тот обрабатывает пакеты только от тех адресов, на которые он до этого уже обрабатывал исходящие пакеты и "знает" внутреннюю таблицу трансляции адресов.
Если же соединение устанавливается с внешнего адреса, то он отвергает его. Если Вы установите эту опцию в значение "No", тогда демон будет создавать запись в своей локальной таблице трансляции адресов для IP-адреса, которому предназначен пакет, и соответственно - передавать его по назначению.
Об этом можете более подробно почитать в man natd.
Если же указывать ключ -d для демона, тогда нужно отдельным правилом выше этого:
${ipfw} add divert natd ip from any to ${ip_out} in via ${interf_out}
разрешать входящие пакты необходимых протоколов, таких как ssh, smtp и т.д.