LinuxForum.Fans
Тема

PPPoE server: помогите пожалуйста с настройкой

Автор: tnega 52 сообщений 20438 просмотров
#107819
newzenon написал:
А изначально причину создания шлюза и pppoe можно узнать, а то может другие решения есть, ну например просто натить на конкретные ip, или squid?
Вот еще про pppoe-server http://vladimir-stupin.blogspot.com/2009/02/pppoe-debian.html

как я понимаю, если использовать rp-pppoe в режиме ядра настраивать маскардинг не нужно будет?
или я ошибаюсь?

Вообще шлюз делался изначально для раздачи интернета в многоквартирном доме, подключено к нему почти 30 машин, сейчас сетка потихоньку расширяется и кинул я её в соседние дома.
В будущем хотелось бы всерьёз заняться Интернет провайдингом так сказать, заключить договора с крупными Интернет провайдерами и т.д. :) но признаюсь, чтобы всё сделать почеловечески - мне еще нужно курить и курить маны и обращаться за советами в этом плане :)

Сейчас пока всер абоатет таким образом:
ppp0 - интерфейс с интернетом;
eth0 - сеть провайдера;
eth1 - моя сеть;

раздаю Интернет таким образом: (при этом делая привязку к мак адресу) :)

text
#!/bin/sh
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -P FORWARD DROP iptables -I FORWARD 1 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -i ppp0 -p tcp -m multiport --dports 111,3306 -j DROP iptables -A INPUT -i ppp0 -p udp -m multiport --dports 111,3306 -j DROP iptables -A INPUT -i eth0 -p tcp -m multiport --dports 111,3306 -j DROP iptables -A INPUT -i eth0 -p udp -m multiport --dports 111,3306 -j DROP

iptables -I FORWARD 1 -m mac --mac-source 90:E6:BA:C6:64:B5 -s 10.20.0.2 -j ACCEPT iptables -I FORWARD 1 -m mac --mac-source 48:5B:39:A4:FC:D4 -s 10.20.0.3 -j ACCEPT ...

Так же установлен DHCP сервер, UPNPD служба для автоматического перенаправления портов (например для тех же торрент клиентов) и скрипты шейпинга на TC.

Хотелось бы всё сделать более оффициально так сказать.

Чтобы PPPoE клиенты подключаясь - смогли использовать интерфейс ppp0, но при этом, чтобы в настройках сетевого интерфейса на их компьютере при указания этого шлюза - они не могли получать доступ к Интернету.

Пока у меня не получилось этого сделать.

Повторюсь: если просто прописать маскардинг к ppp0 интерфейсу - интернет будет доступен PPPoE клиентам, но в тоже время он будет доступен в том случае если указать в сетевом интерфейсе на их же машине адрес шлюза.
Хотелось бы как то защититься так сказать от этого, ведь тут люди тоже не дураки сидят :)

#110701

Возникла ешё одна проблема, прошу прощения!

Помогите пожалуйста настроить данный серсер в режиме ядра.

http://www.opennet.ru/base/net/rp_pppoe.txt.html настраиваю по этот стетье, в режиме пользователя - я всё настроил, теперь хочется настроить в режиме ядра, для того чтобы уменьшить нагрузку на сервер.

Я новичек в этом. Мне непонятно ,как сделать вот эти вещи:

Должны быть сконфигурированы след. опции в ядре:

text
    CONFIG_PPP=m          or CONFIG_PPP=y
    CONFIG_PPP_ASYNC=m    or CONFIG_PPP_ASYNC=y 
    CONFIG_PPP_SYNC_TTY=m or CONFIG_PPP_SYNC_TTY=y 
    CONFIG_PPP_DEFLATE=m  or CONFIG_PPP_DEFLATE=y 
    CONFIG_PPP_BSDCOMP=m  or CONFIG_PPP_BSDCOMP=y (этого у меня нет, 
        по-моему надо только для этого BSDCOMP, но сам rp-pppoe передаёт 
        pppd nobsdcomp)
    CONFIG_PPPOE=m        or CONFIG_PPPOE=y 
    CONFIG_N_HDLC=m       or CONFIG_N_HDLC=y
    CONFIG_UNIX98_PTYS=y

как мне это сделать? :rolleyes:

#110733

установил kernel-package libncurses5-dev fakeroot build-essential

скачал исходники своего ядра 2.6.26.2

распаковал их

скопировал .config в папку с ядром

запустил make menuconfig

и не могу найти то, что написал выше :(

#110838
tnega написал:
[quote=newzenon]А изначально причину создания шлюза и pppoe можно узнать, а то может другие решения есть, ну например просто натить на конкретные ip, или squid?
Вот еще про pppoe-server http://vladimir-stupin.blogspot.com/2009/02/pppoe-debian.html

Чтобы PPPoE клиенты подключаясь - смогли использовать интерфейс ppp0, но при этом, чтобы в настройках сетевого интерфейса на их компьютере при указания этого шлюза - они не могли получать доступ к Интернету.

Пока у меня не получилось этого сделать.

Повторюсь: если просто прописать маскардинг к ppp0 интерфейсу - интернет будет доступен PPPoE клиентам, но в тоже время он будет доступен в том случае если указать в сетевом интерфейсе на их же машине адрес шлюза.
Хотелось бы как то защититься так сказать от этого, ведь тут люди тоже не дураки сидят :)[/quote]
Я может не так понял ну может попробывать открыть на eth1 порты ток необходимые для pppoe а всё остальное закрыть ток после авторизации будет всё остальное?

#110910
Kettler написал:
[quote=tnega][quote=newzenon]А изначально причину создания шлюза и pppoe можно узнать, а то может другие решения есть, ну например просто натить на конкретные ip, или squid?
Вот еще про pppoe-server http://vladimir-stupin.blogspot.com/2009/02/pppoe-debian.html

Чтобы PPPoE клиенты подключаясь - смогли использовать интерфейс ppp0, но при этом, чтобы в настройках сетевого интерфейса на их компьютере при указания этого шлюза - они не могли получать доступ к Интернету.

Пока у меня не получилось этого сделать.

Повторюсь: если просто прописать маскардинг к ppp0 интерфейсу - интернет будет доступен PPPoE клиентам, но в тоже время он будет доступен в том случае если указать в сетевом интерфейсе на их же машине адрес шлюза.
Хотелось бы как то защититься так сказать от этого, ведь тут люди тоже не дураки сидят :)[/quote]
Я может не так понял ну может попробывать открыть на eth1 порты ток необходимые для pppoe а всё остальное закрыть ток после авторизации будет всё остальное?[/quote]

с этим уже разобрался, спасибо!
сделал всё командой: iptables -A FORWARD -i eth1 -o eth0 -j DROP - запретить доступ сети eth1 в сеть eth0
повторюсь:
eth0 - интернет
eth1 - локальная сеть
в итоге PPP и другие интерфейсы имели доступ в интернет, а пользователи с eth1 интерфейса - не имели :)

#110912

Ну или так))) тоже хитро и умно.

#110916
Kettler написал:
Ну или так))) тоже хитро и умно.

в иптаблах я пока еще дуб дубом, но кое что уже начинаю соображать :)

теперь хотелось бы настроить PPPoE сервер в режиме ядра и прикрутить к нему шейпер :)

#110919

Чтоб шейпер на фиг с ядром играться?

#110924
Kettler написал:
Чтоб шейпер на фиг с ядром играться?

нет, не для шейпера, просто в режиме пользователя сервер нагружается хорошо и берет себе много CPU :) по моим тестированиям на Celeron 2.4 ГГц при забивании канала на 10 мегабит жралось 30 % процессора.

#110926

Ну это уже другая история. А так бы посоветовал авторизацию по мак + шейпер. А всякие vpn всегда будут грузить проц wink
А так тоже тестил l2tp на 60 мб :D грузит ппц.

#110927
Kettler написал:
Ну это уже другая история. А так бы посоветовал авторизацию по мак + шейпер. А всякие vpn всегда будут грузить проц wink

а насчет авторизации по мак адресу поможете?
забыл сказать, в режиме пользователя почему то пинг возрастает на 10-15 мс. вроде как в режиме ядра такого нету, у Вас была такая же проблема?

#110928

А что тяжелого? по мак слушаешь входящие если accept пошол в инет если нет оказ.

#110930
Kettler написал:
А что тяжелого? по мак слушаешь входящие если accept пошол в инет если нет оказ.

все это Вы тоже делала в иптаблах? подскажите на Вашем примере как это реализовать?

#110935

Ну сам ответил на свой вопрос
iptables -P FORWARD DROP
iptables -A FORWARD -m mac --mac-source 00:00:00:00:00:01 -j ACCEPT

#111004
Kettler написал:
Ну сам ответил на свой вопрос
iptables -P FORWARD DROP
iptables -A FORWARD -m mac --mac-source 00:00:00:00:00:01 -j ACCEPT

как не странно, но неработает :) не при включенном PPPoE соединении на клиентской машине, и без включеннного PPPoE. :(

будет работать если только добавить после iptables -P FORWARD DROP:
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

и то, только при локальном подключении Интернет будет доступен, но при PPPoE соединении неработает.

#111112

Странно в данной цепочки должен работать. Для отладки хорошо использовать -j LOG --log-prefix "debug".
А лучше покажи весь скрипт.

#111186
Kettler написал:
Странно в данной цепочки должен работать. Для отладки хорошо использовать -j LOG --log-prefix "debug".
А лучше покажи весь скрипт.

напомню, eth0 - интерфейс с интернетом
eth1 - локальная сеть

#!/bin/sh
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -P FORWARD DROP
iptables -A FORWARD -m mac --mac-source 00:0C:29:0F:73:37 -j ACCEPT

#111206

#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_mac
iptables -F
iptables -F -t nat
iptables -F -t mangle

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#Доступ
iptables -A FORWARD -m mac --mac-source 00:0C:29:0F:73:37 -j ACCEPT

#Маскардинг в инет
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

#111226
Kettler написал:
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_mac
iptables -F
iptables -F -t nat
iptables -F -t mangle

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#Доступ
iptables -A FORWARD -m mac --mac-source 00:0C:29:0F:73:37 -j ACCEPT

#Маскардинг в инет
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

не работает, при этом сам шлюз прекращает видеть интернет :)
при комманде reboot не хочет перезагружаться :) останавливается на сообщение - Stopping portmap daemon... :)

ох, не одно - так другое :)

#111227

Блин сорри.
Замени
iptables -P INPUT DROP
iptables -P OUTPUT DROP
на
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
У меня просто порты жёстко прописанны.

Войдите или зарегистрируйтесь, чтобы ответить.