lissyara писал(а):Yurok104 писал(а):${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn}/${NetMask} to any 80 via ${LanOut}
выдает ошибку ipfw: getsockopt(IP_FW_ADD): Invalid argument;
дай в нормальном виде правило, не с переменными, а с реальными значениями
В файле настроек
FwCMD="/sbin/ipfw" # собственно где лежит бинарник ipfw
LanOut="ttyd1" # внешний интерфейс
LanIn="ed0" # внутренний интерфейс
IpOut="Мой Айпи внешний"
IpIn="192.168.0.47" # внутренний IP машины
NetMask="24" # маска сети (если она разная для внешней
# и внутренней сети - придётся вводить ещё
# одну переменную, но самое забавное, что
# можно и забить - оставить 24 - всё будет
# работать, по крайней мере я пробовал -
# работаало на 4-х машинах, в разных сетях,
# с разными масками - настоящими разными! но -
# это неправильно.)
NetIn="192.168.0.0" # Внутренняя сеть
# Сбрасываем все правила:
${FwCMD} -f flush
# Проверяем - соответствует ли пакет динамическим правилам:
${FwCMD} add check-state
- по легенде он у нас
# смотрит в интернет, а значит пакетам этим браться неоткуда на нём.
# отправляем всех на squid (в данном случае - прокси прозрачный)
${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn}/${NetMask} to any 80 via ${LanOut}
# пропускаем траффик через трансляцию сетевых адресов (NAT)
${FwCMD} add divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}
${FwCMD} add allow tcp from any to any established
# разрешаем весь исходящий траффик (серверу-то в инет можно?

)
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}
# разрешаем DNS снаружи (нам же надо узнавать IP по именам машин?)
${FwCMD} add allow udp from any 53 to any via ${LanOut}
# разрешаем DNS входящий снаружи - если на этой машине работает named
# и держит какую-то зону. В остальных случаях - не нужно
#${FwCMD} add allow udp from any to any 53 via ${LanOut}
# разрешаем ftp снаружи (оба правила - для пасивного режима)
# разрешаем некоторые типы ICMP траффика - эхо-запрос,
# эхо-ответ и время жизни пакета истекло
# открываем снаружи 25 порт (SMTP) если на машине крутится почта
#${FwCMD} add allow tcp from any to ${IpOut} 25 via ${LanOut}
# открываем снаружи 22 порт - если надо будет ходить на машину по ssh
${FwCMD} add allow tcp from any to ${IpOut} 22 via ${LanOut}
# открываем снаружи 143 порт(если надо смотреть почту снаружи по IMAP)
${FwCMD} add allow tcp from any to ${IpOut} 143 via ${LanOut}
# открываем снаружи 110 порт(если надо смотреть почту снаружи по POP)
${FwCMD} add allow tcp from any to ${IpOut} 110 via ${LanOut}
${FwCMD} add deny ip from any to any
если ввожу строкой
ipfw -f flush
ipfw add fwd 127.0.0.1,3128 tcp from 192.168.0.47/24 to any 80 via ttyd1
тоже самое