Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: [HOWTO] Ubuntu 11.04+abills0.5 для малого офиса или мелкого провайдера.  (Прочитано 125345 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
в тарифе, в пользователе.

Оффлайн stempher

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
в тарифе, в пользователе.
я не использую abills
просто авторизация впн пользователей через радиус с выделением персонального ip-адреса юзеру
« Последнее редактирование: 04 Февраля 2011, 13:11:21 от stempher »

Оффлайн Procik

  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Собрал такой скрипт, думаю пригодится многим, положил его в /etc/ppp/ip-up.d/, в кредит клиентам добавил по копейке, теперь с нулевым балансом клиенты подключаются, но инета у них нет, а при открытиии любой страницы его перенапрвляют на определённую страницу, в моём случае она на 81 порту.
#!/bin/sh
export CDATE=$(date "+%Y-%m-%d_%H:%M:%S")
FILTERS=`/usr/bin/awk   '/Filter-Id/    {print $2}'     /var/run/radattr.$1`
IP_PPTP=${PPP_REMOTE}
IF_PPTP=${PPP_IFACE}
UNAME=`/usr/bin/radwho|grep ${IP_PPTP}|awk '{print $2}'|head -n 1`
USERBALANCE=$( /usr/bin/mysql -uroot -p111111 -B abills -e \
            "SELECT SUM(users.credit + bills.deposit) FROM users \
            INNER JOIN bills ON (users.uid=bills.uid) \
            WHERE users.id='$UNAME'" | /usr/bin/tail -n 1 )

        iptables -A FORWARD -i ${IF_PPTP} -o eth3 -s ${IP_PPTP} -j ACCEPT
        iptables -A FORWARD -i eth3 -o ${IF_PPTP} -d ${IP_PPTP} -m state --state RELATED,ESTABLISHED -j ACCEPT
        iptables -t nat -D PREROUTING -s ${IP_PPTP} ! -d 10.0.0.1/32 -p tcp -m multiport --dport 80,81,82,8080,3128,443 -j DNAT --to-destination 10.0.0.1:81
if [ "$FILTERS" = "no_money" ]; then
    echo "$CDATE User [$1] $FILTERS / $UNAME (${IP_PPTP}) add rules (no_money filter)" >> /var/log/no_money.log

elif [ "x$USERBALANCE" != "x" ] && [ "x$USERBALANCE" != "xNULL" ]; then
    echo "$CDATE $UNAME $USERBALANCE negative" >> /var/log/no_money.log
if [ "x$( /usr/bin/awk 'BEGIN { if('$USERBALANCE'<=0.1) print("NEGATIVE") }' )" = "xNEGATIVE" ]; then
                echo "$CDATE User [$1] $FILTERS / $UNAME [${IP_PPTP}] add rules (negative deposit $USERBALANCE)" >> /var/log/no_money.log
                iptables -D FORWARD -i ${IF_PPTP} -o eth3 -s ${IP_PPTP}  -j ACCEPT
                iptables -D FORWARD -i eth3 -o ${IF_PPTP} -d ${IP_PPTP} -m state --state RELATED,ESTABLISHED -j ACCEPT
                iptables -t nat -A PREROUTING -s ${IP_PPTP} ! -d 10.0.0.1/32 -p tcp -m multiport --dport 80,81,82,8080,3128,443 -j DNAT --to-destination 10.0.0.1:81

        else
                echo "$CDATE User [$1] $FILTERS / $UNAME [${IP_PPTP}] logged in (deposit: $USERBALANCE)" >> /var/log/no_money.log
        fi
fi
В /etc/ppp/ip-down.d/ лежит скрипт который удаляет добавленные правила.
#!/bin/sh

IF_PPTP=${PPP_IFACE}
IP_PPTP=${PPP_REMOTE}

    iptables -D FORWARD -i ${IF_PPTP} -o eth3 -s ${IP_PPTP} -j ACCEPT
    iptables -D FORWARD -i eth3 -o ${IF_PPTP} -d ${IP_PPTP} -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -D PREROUTING -s ${IP_PPTP} ! -d 10.0.0.0/32 -p tcp -m multiport --dport 80,81,82,8080,3128,443 -j DNAT --to-destination 10.0.0.1:81
done
« Последнее редактирование: 05 Февраля 2011, 15:06:20 от Procik »

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
мегареспект тебе человечище!

Оффлайн stempher

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Собрал такой скрипт, думаю пригодится многим
               iptables -t nat -A PREROUTING -s ${IP_PPTP} ! -d 10.0.0.1/32 -p tcp -m multiport --dport 80,81,82,8080,3128,443 -j DNAT --to-destination 10.0.0.1:81
я так понимаю ты закрываешь доступ по http, https и squid'у, а ftp, почта и прочее все равно работают?

Оффлайн Procik

  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
       iptables -D FORWARD -i ${IF_PPTP} -o eth3 -s ${IP_PPTP}  -j ACCEPT
                iptables -D FORWARD -i eth3 -o ${IF_PPTP} -d ${IP_PPTP} -m state --state RELATED,ESTABLISHED -j ACCEPT
инета не будет вообще


Пользователь решил продолжить мысль 04 Февраля 2011, 13:15:49:
а там браузерные порты

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
я так понимаю ты закрываешь доступ по http, https и squid'у, а ftp, почта и прочее все равно работают?
он делает подмену удаленного ip на свой локальный сервер с веб страничкой (DNAT --to-destination 10.0.0.1:81)
Получается, пользователь пытается куда нить зайти на www, а ему выдает типа "А куды вы собрались? Да еще и бесплатно?".

Оффлайн stempher

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Procik, Nesmit
понял, спасибо :)

по моему вопросу не подскажете все-таки как лучше реализовать?

Оффлайн Procik

  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Я не помогу, с радиусом толком не сталкивался, стоит, работает, учить надо, а времени не хватает. ))

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
фикссирование ip ручками.
и чет мне кажется, есть опция в pptpd. Точно не помню, последний раз возился, когда эту статью ваял.

Оффлайн stempher

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
фикссирование ip ручками.
и чет мне кажется, есть опция в pptpd. Точно не помню, последний раз возился, когда эту статью ваял.
фиксирование понятно, а как послать ответ radiusu или pptpd что аутентификация не прошла?

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
писать ручками скрипт проверки для фрирадиуса, по аналогии с абиллсом.
или как сделали в биллинге cake на postgresql, там сама база умеет выполнять проверку (скрипты)
« Последнее редактирование: 04 Февраля 2011, 14:28:16 от Nesmit »

Оффлайн Procik

  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
А если разрешить по порту 1723 с фиксированого адреса только одно подключение

Оффлайн mapki3

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Здраствуйте.
Сегодня несколько раз пробовал поставить сие чудо, но наверное руки-крюки.
Ув. автор темы и другие осилившие абиллс, могу ли я здесь описать свои творения и попросить вас показать мне ошибку.


P.S. Хотя месяца два назад все удалось. Вот только не могу вспомнить по какой инструкции.
« Последнее редактирование: 05 Февраля 2011, 17:22:44 от mapki3 »

Оффлайн Nesmit

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля

 

Страница сгенерирована за 0.018 секунд. Запросов: 21.