Skip to content

PFSense 2.7 + dvtws #440

@DeAlexPesh

Description

@DeAlexPesh

У кого-то получилось завезти эту связку?
Возможно, глупый вопрос, но как можно завернуть трафик на divert порт?
стандартными средствами pfctl это реально ну или скриптом при запуске dvtws?
или, возможно, используя tpws как прокси без "дурения"?
запускаю так:

#!/bin/sh
SERVICE_NAME="dvtws"
SERVICE_CMD="/usr/local/sbin/dvtws"
is_service_running() {
  pgrep -f "${SERVICE_CMD}" > /dev/null && return 0 || return 1
}
require_module() {
  if ! kldstat | grep "${1}" > /dev/null; then
    if ! kldload "${1}"; then
      exit 1
    fi
  fi
  echo "Модуль ${1} загружен."
  return 1
}
mng_service() {
  if [ "${1}" = "start" ]; then
  # require_module ipfw
    require_module ipdivert
    ${SERVICE_CMD} \
    --debug=1 \
    --daemon \
    --port=989 \
    --параметры \
    --hostlist=/opt/zapret.auto \
    --hostlist-exclude=/opt/zapret.exclude \
    | logger -t "${SERVICE_NAME}" >/dev/null 2>&1 &
  elif [ "${1}" = "stop" ]; then
    pkill -f "${SERVICE_CMD}"
  fi
}
show_service_status() {
  if is_service_running; then
    echo "Сервис ${SERVICE_NAME} запущен."
  else
    echo "Сервис ${SERVICE_NAME} не работает."
  fi
}
case "${1}" in
start)
  mng_service start
  ;;
stop)
  mng_service stop
  ;;
status)
  show_service_status
  ;;
restart)
  mng_service stop
  sleep 2
  mng_service start
  ;;
*)
  echo "Usage: ${SERVICE_NAME} {start|stop|status|restart}"
  exit 1
  ;;
esac

не совсем понимаю как работает ipfw
нашел правила и немного изменил под себя (ориентируясь по ощущениям)

ipfw delete 100
ipfw add 100 divert 989 tcp from $SUBNET to not $SUBNET 80,443 out not diverted xmit igb1
ipfw add 100 divert 989 tcp from not $SUBNET 80,443 to $SUBNET tcpflags syn,ack in not diverted recv igb1
ipfw add 100 divert 989 udp from $SUBNET to not $SUBNET 443 out not diverted xmit igb1

но почему все правила под номером 100
и можно ли сделать так чтобы учитывался только трафик из внутренней сети $SUBNET во внешнюю сеть ! $SUBNET ?
и не заблокирует ли мне оно все остальное после применения этих правил?
igb1 - должен быть физический WAN интерфейс или если это ppoe1 подключение им?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions