LINUX.ORG.RU
ФорумAdmin

Подгрузка правил firewall'а


0

0

Колеги! Есть проблема.Не могу догнать, как сделать так, чтобы при подключении пользователя (определенного) к pptp выполнялся определенный скрипт? Понимаю что ppp поднимается скриптом (ppp-up), но как этому скрипту передать имя подключенного пользователя? Мне это необходимо, чтобы при подключении опреденного пользователя подгружались только для него правила firewall'а. Соответственно, при отключении пользователя правила должны убираться.

С уважением Alex_Saf

anonymous

Посмотри man pppd, секция SCRIPTS. Там перечислены параметры, передаваемые скриптам. Скорее всего тебе подойдет PEERNAME.

VitalkaDrug ★★
()

Можешь этому пользователю выдавать всегда один и тот же адрес, а по адресу уже сегрегировать.

ansky ★★★★★
()
Ответ на: комментарий от ansky

Спасибо, коллеги! Я действительно раздаю клиентам одни и те же IP. Уважаемый ansky, как сенрировать по адресу? Просвети.

С уважением Alex_Saf

anonymous
()

/etc/ppp/auth-up
A program or script which is executed after the remote system
successfully authenticates itself. It is executed with the parameters

interface-name peer-name user-name tty-device speed

Note that this script is not executed if the peer doesn't authenticate
itself, for example when the noauth option is used.

/etc/ppp/auth-down
A program or script which is executed when the link goes down, if
/etc/ppp/auth-up was previously executed. It is executed in the same
manner with the same parameters as /etc/ppp/auth-up.

имхо, вот правильное решение.

anonymous
()
Ответ на: комментарий от anonymous

А вот и сами скрипты, например, для убийства неугодных юзеров:

#!/bin/sh
#

PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export PATH

# This script called by pppd as
# /etc/ppp/auth-up interface-name peer-name user-name tty-device speed

PPP_IFACE="$1"
PPP_PEER="$2"
PPP_USER="$3"
PPP_TTY="$4"
PPP_SPEED="$5"

case "$PPP_PEER" in
mybaduser)
ipchains --flush
ipchains -A input -i $PPP_IFACE -p 1 -j ACCEPT
ipchains -A input -i $PPP_IFACE -j DENY
;;
myloveuser1|myloveuser2|myloveuser3)
ipchains --flush
ipchains -A input -i $PPP_IFACE -j ACCEPT
;;
*)
;;
esac

exit 0

auth-down:

#!/bin/sh
#

PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export PATH

# This script called by pppd as
# /etc/ppp/auth-down interface-name peer-name user-name tty-device
# speed

PPP_IFACE="$1"
PPP_PEER="$2"
PPP_USER="$3"
PPP_TTY="$4"
PPP_SPEED="$5"

case "$PPP_PEER" in
*)
ipchains --flush
ipchains -A input -i $PPP_IFACE -j DENY
;;
esac

exit 0

Переделывать по вкусу :)

anonymous
()
Ответ на: комментарий от anonymous

Самое хреновое, что в этот скрипт не передаётся с какого IP зашли... приходится среди процессов искать этот IP..

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.