JustPaste.it

Konfiguracja serwera pppoe we FreeBSD

Wstęp

W systemie FreeBSD instalacja serwera pppoe (ppp over ethernet) jest dość prosta i niezbyt skomplikowana o ile zawczasu przygotujemy sobie koncepcję działania naszego środowiska. Artykuł powstał na skutek inspiracji działającym rozwiązaniem projektu WARTA. Sama koncepcja działania projektu jest słuszna jednakże wiele rzeczy należało zmienić i dostosować do wymagań klienta. Opierając się na przemyśleniach jakie zostały opisane w projekcie WARTA postanowiłem zbudować własne środowisko odpowiednio poprawione i rozbudowane. Z powodu problemów z netgraph'em które pojawiły się przy próbie konfiguracji środowiska we FreeBSD 6.0 całość instalacji przeprowadzono na wersji FreeBSD 4.11. Poniższy opis należy traktować jako "work in progress" bowiem konfiguracja będzie wkrótce zmodyfikowana i przetestowana.

Wymagania

W pierwszym etapie wdrożenia założono iż nie będzie wykorzystywany serwer RADIUS jednakże dalsza rozbudowa środowiska nie wyklucza jego użycia w przyszłości. Każdy klient podłączający się do serwera powinien mieć zlimitowaną przepustowość (full duplex lub half duplex) zgodnie z wykupionym pasmem. Klienci muszą być odseparowani od siebie. Połączenie musi być autoryzowane protokołem MSChapV2 a sam transfer danych musi być szyfrowany.

Instalacja

Kernel

Przygotowanie kernela do kompilacji jest proste. Wystarczy skopiować kernel GENERIC na własną nazwę i uzupełnić o wymagane składniki, jednocześnie pozbywając się niepotrzebnych:

$>cd /sys/i386/conf
$>cp GENERIC MYKERNEL

Usunięcie zbędnych rzeczy z kernela pozostawiam Twojemu rozsądkowi. To co dodatkowo powinno się znaleźć w kernelu przedstawia poniższy listing:

# IPDIVERT enables the divert IP sockets, used by ``ipfw divert''
options IPDIVERT #divert sockets

# DUMMYNET enables the "dummynet" bandwidth limiter. You need
# IPFIREWALL as well. See the dummynet(4) and ipfw(8) manpages for more info.
# When you run DUMMYNET it is advisable to also have "options HZ=1000"
options DUMMYNET
options HZ=1000

options IPFIREWALL #firewall
options IPFIREWALL_VERBOSE #enable logging to syslogd(8)
options IPFIREWALL_FORWARD #enable transparent proxy support
options IPFIREWALL_VERBOSE_LIMIT=1000 #limit verbosity
#options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default
options IPFW2 #see ipfw(8) howto make ipfw2

 

Osobiście wolę kompilować kernel "starym" sposobem a zatem:

$>config -r MYKERNEL
$>cd ../../compile/MYKERNEL
$>make depend && make && make install
$>shutdown -r now

Trzeba pamiętać że od tego momentu po restarcie maszyny zadziała firewall (w zależności od wpisów w /etc/rc.conf) co może skutkować odcięciem się od maszyny o ile robimy instalację zdalnie. Jeśli jest potrzeba filtracji pakietów w drugiej warstwie OSI to możemy skompilować kernel tak aby ipfw zawierał tą funkcjonalność (ipfw2) lecz nie będę opisywać tego co opisuje manual w temacie skompilowania ipfw2.

Skrypty startowe

/etc/rc.conf

Konfiguracja kernela zawiera już niezbędne elementy jak divert, ipfw, dummynet zatem możemy przystąpić do konfiguracji naszego firewalla. Przygotujemy własny skrypt ładujący regułki firewalla zatem należy w /etc/rc.conf wskazać go jako nasz firewall. Ponadto uruchomimy od razu NAT (natd). Poniżej interesujące nas fragmenty /etc/rc.conf:

ipv6_defaultrouter="NO" # Set to IPv6 default gateway (or NO).
gateway_enable="YES" # Set to YES if this host will be a gateway.

### Basic network and firewall/security options: ###
firewall_enable="YES" # Set to YES to enable firewall functionality
firewall_script="/etc/regulki" # Which script to run to set up the firewall
firewall_type="simple" # Firewall type (see /etc/rc.firewall)
firewall_quiet="NO" # Set to YES to suppress rule display
firewall_logging="YES" # Set to YES to enable events logging
firewall_flags="" # Flags passed to ipfw when type is a file

# natd
natd_program="/sbin/natd" # path to natd, if you want a different one.
natd_enable="YES" # Enable natd (if firewall_enable == YES).
natd_interface="fxp2" # Public interface or IPaddress to use.
natd_flags="-f /etc/natd.conf" # Additional flags for natd.

# named. It may be possible to run named in a sandbox, man security for
named_enable="YES" # Run named, the DNS server (or NO).
named_program="/usr/sbin/named" # path to named, if you want a different one.
named_flags="-u bind -g bind" # Flags for named
named_pidfile="/var/run/named/pid" # Must set this in named.conf as well

# pppoed server
pppoed_enable="STANDALONE" # STANDALONE = run from /usr/local/etc/rc.d/pppoed.sh .
pppoed_provider="*" # Provider and ppp(8) config file entry.
pppoed_flags="-a isp -l default -P /var/run/pppoed.pid" # Flags to pppoed (if enabled).
#pppoed_flags="-d -a isp -l default -P /var/run/pppoed.pid" # Flags with pppoed debug
pppoed_interface="fxp1" # The interface that pppoed runs on.

/usr/local/etc/rc.d/pppoed.sh

Wyjaśnienia wymaga ustawienie zmiennej pppoed_enable="STANDALONE". Skrypt startujący pppoed we FreeBSd 4.x jest bardzo prymitywny dlatego napisałem własny który obsługuje start, stop oraz restart daemona, zatem aby oryginalny skrypt "odczepił się" i nie startował nam pppoed ustawiłem tą zmienną jako STANDALONE a w rzeczywistości pppoed jest uruchamiany z /usr/local/etc/rc.d/pppoed.sh. Daemon pppoed samoczynnie przy pierwszym uruchomieniu załaduje odpowiednie moduły netgraph do kernela. Poniżej kod źródłowy tego skryptu. Należy pamiętać o ustawieniu prawa wykonywania na tym skrypcie tak aby przy starcie maszyny został nim uruchomiony pppoed:

#!/bin/sh
# Suck in the configuration variables.
if [ -z "${source_rc_confs_defined}" ]; then
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
source_rc_confs
elif [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
fi
case ${pppoed_enable} in
[Ss][Tt][Aa][Nn][Dd][Aa][Ll][Oo][Nn][Ee])
case $1 in
[Ss][Tt][Aa][Rr][Tt])
if [ -n "${pppoed_provider}" ]; then
pppoed_flags="${pppoed_flags} -p ${pppoed_provider}"
fi
echo -n ' pppoed';
_opts=$-; set -f
/usr/libexec/pppoed ${pppoed_flags} ${pppoed_interface}
set +f; set -${_opts}
;;
[Rr][Ee][Ss][Tt][Aa][Rr][Tt])
killall -9 pppoed
rm -f /var/run/pppoed.pid
/usr/local/etc/rc.d/pppoed.sh start
;;
[Ss][Tt][Oo][Pp])
killall -9 pppoed
rm -f /var/run/pppoed.pid
;;
esac
;;
esac

/etc/natd.conf

Poniżej bardzo prosty plik konfigiguracji /etc/natd.conf:

use_sockets
same_ports
unregistered_only

/etc/regulki

Poniżej skrypt startujący firewall przygotowany w taki sposób aby połączenie klienta poprzez ppp wstawiało nam w odpowiednich pozycjach dodatkowe regułki zezwalające na ruch do/z klienta oraz limitujące jego transfer:

#
# Setup system for firewall service.
#

############
# Set quiet mode if requested
# fwcmd="/sbin/ipfw -q"
#

fwcmd="/sbin/ipfw"

# Suck in the configuration variables.
if [ -z "${source_rc_confs_defined}" ]; then
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
source_rc_confs
elif [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
fi
setup_loopback () {
############
# Only in rare cases do you want to change these rules
#
${fwcmd} add 100 pass all from any to any via lo0
${fwcmd} add 200 deny log all from any to 127.0.0.0/8
${fwcmd} add 300 deny log ip from 127.0.0.0/8 to any
}

#######################################
# Flush out the list before we begin. #

# flushing rules
${fwcmd} -f flush

# flushing pipes
${fwcmd} -f pipe flush

# flushing queues
${fwcmd} -f queue flush

#######################################

# firewall interfaces
# wan przez dsl
oif="fxp2"
onet="83.x.y.z"
omask="255.255.255.248"
oip="83.x.y.v"

# lan
iif="fxp1"
inet="10.0.0.0"
imask="255.255.255.0"
iip="10.0.0.1"

######################################################################

# init loopback rules
setup_loopback

# Stop spoofing
${fwcmd} add deny log all from ${inet}:${imask} to any in via ${oif}
${fwcmd} add deny log all from ${onet}:${omask} to any in via ${iif}

# Stop RFC1918 nets on the outside interface
#${fwcmd} add deny log all from any to 10.0.0.0/8 via ${oif}
${fwcmd} add deny log all from any to 172.16.0.0/12 via ${oif}
${fwcmd} add deny log all from any to 192.168.0.0/16 via ${oif}

# Stop draft-manning-dsua-03.txt (1 May 2000) nets (includes RESERVED-1,
# DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E)
# on the outside interface
${fwcmd} add deny log all from any to 0.0.0.0/8 via ${oif}
${fwcmd} add deny log all from any to 169.254.0.0/16 via ${oif}
${fwcmd} add deny log all from any to 192.0.2.0/24 via ${oif}
${fwcmd} add deny log all from any to 224.0.0.0/4 via ${oif}
${fwcmd} add deny log all from any to 240.0.0.0/4 via ${oif}

# wycinka sieci windows przez serwer
${fwcmd} add deny ip from any to any 135-139,445
${fwcmd} add deny ip from any 135-139,445 to any

######################################################################
# NAT in regulka zmodyfikowana na przychodzacy ze swiata
# zamienić na: out xmit ${oif} jeśli potrzeba
case ${natd_enable} in
[Yy][Ee][Ss])
if [ -n "${natd_interface}" ]; then
${fwcmd} add divert natd all from any to any via ${oif}
fi
;;
esac
######################################################################
#
# limitowanie ruchu
#

# wyjatek na icmp
${fwcmd} add pass icmp from any to any
${fwcmd} add pass igmp from any to any

# ruch do/z maszyny
${fwcmd} add pass all from me to any
${fwcmd} add pass all from any to me

# jesli open to nie blokowac
case ${firewall_type} in
[Oo][Pp][Ee][Nn])
if [ -n "${natd_interface}" ]; then
${fwcmd} add skipto 50000 all from any to any
fi
;;
esac

# przepuszczamy wszystko co w podsieci dsla
${fwcmd} add 11200 skipto 50001 ip from any to ${onet}:${omask} in recv ${oif}
${fwcmd} add 11300 skipto 50001 ip from ${onet}:${omask} to any out xmit ${oif}

# przepuszczamy pytania do dhcpd
${fwcmd} add 11380 skipto 50001 udp from ${iip} 67 to ${inet}:${imask} 68
${fwcmd} add 11390 skipto 50001 udp from ${inet}:${imask} 68 to 255.255.255.255 67
${fwcmd} add 11400 skipto 50001 all from 0.0.0.0 to 255.255.255.255
${fwcmd} add 11500 skipto 50001 all from ${iip} to 255.255.255.255

# puszczamy zapytania do lokalnego dns
${fwcmd} add 11600 skipto 50001 udp from ${inet}:${imask} to me 53
${fwcmd} add 11700 skipto 50001 udp from me 53 to any

#################### reszta ##################################
${fwcmd} add 39999 deny log ip from ${inet}:${imask} to ${inet}:${imask}
${fwcmd} add 40000 deny log ip from any to any
${fwcmd} add 50001 pass all from any to any
##############################################################

##############################################################
# NAT out regulka zmodyfikowana na ruch wychodzacy w swiat
# zamienić gdy potrzeba na: in recv ${oif}
case ${natd_enable} in
[Yy][Ee][Ss])
if [ -n "${natd_interface}" ]; then
${fwcmd} add 50005 divert natd all from any to any via ${oif}
fi
;;
esac
#############################################################

# Stop RFC1918 nets on the outside interface
#${fwcmd} add deny log all from 10.0.0.0/8 to any via ${oif}
${fwcmd} add deny log all from 172.16.0.0/12 to any via ${oif}
${fwcmd} add deny log all from 192.168.0.0/16 to any via ${oif}

# Stop draft-manning-dsua-03.txt (1 May 2000) nets (includes RESERVED-1,
# DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E)
# on the outside interface
${fwcmd} add deny log all from any to 0.0.0.0/8 via ${oif}
${fwcmd} add deny log all from any to 169.254.0.0/16 via ${oif}
${fwcmd} add deny log all from any to 192.0.2.0/24 via ${oif}
${fwcmd} add deny log all from any to 224.0.0.0/4 via ${oif}
${fwcmd} add deny log all from any to 240.0.0.0/4 via ${oif}

# puszczamy pingi jak leci
${fwcmd} add 50100 pass icmp from any to any

# ruch do/z maszyny
${fwcmd} add pass all from me to any
${fwcmd} add pass all from any to me

# everything is accepted via server
${fwcmd} add 65000 pass all from any to any
${fwcmd} add 65500 deny log logamount 10000 all from any to any
# end of rules

Pewne problemy może sprawiać wyłapanie ruchu który powinien być przenatowany jednakże dla moich potrzeb takie regułki divert zadziałały i narazie takie pozostawiłem do czasu dalszych zmian.

/etc/sysctl.conf

Poniżej konfiguracja pożądanych sysctl'i:

#net.inet.ip.redirect=0

#net.inet.icmp.log_redirect=1
#net.inet.icmp.drop_redirect=1

# for dummynet 1-disable reinjecting 0-enable reinjecting
net.inet.ip.fw.one_pass=0

# for layer2 filtering 1-enable 0-disable
net.link.ether.ipfw=0

# blackhole antiscan
#net.inet.tcp.blackhole=2
#net.inet.udp.blackhole=1

# log in vain
#net.inet.tcp.log_in_vain=2
#net.inet.udp.log_in_vain=2

/etc/ppp.conf

Poniższa konfiguracja ppp zezwala na podłączanie klientów wyłącznie autoryzujących się MSChapv2 oraz wymusza szyfrowanie. Jeśli pożądane jest podłączanie się różnych sprzętowych routerków (przykładowo firma ma jedno pasmo i che być odseparowana swoim routerkiem od reszty sieci, na routerku ustawia konfiiigurację klienta pppoe, firewall, nat itp. itd.) to zapewne koniecznym będzie dopuszczenie zwykłej autoryzacji typu chap (proszę pamiętać że polecenia konfiguracji mają się zaczynać od drugiej kolumny czyli na początku polecenia jest jedna spacja):

#################################################################
#
# See /usr/share/examples/ppp/ for some examples
#
#################################################################

default:
set device /usr/libexec/pppoed
# set log Phase Chat LCP IPCP CCP tun command
set log Phase Chat
ident user-ppp VERSION (built COMPILATIONDATE)
allow mode direct
set mru 1400
set mtu 1400

set dns 10.0.0.1 10.0.0.1
accept dns
resolv readonly

set timeout 3600
set speed sync

allow users
disable pap
deny pap

#enable chap
#accept chap
disable chap
deny chap

disable LANMan
deny LANMan

enable mppe
allow mppe

disable MSChap
deny MSChap

enable MSChapv2
allow MSChapv2

# if needed enable proxy-arp
enable proxy
disable ipv6cp
enable lqr

# disable deflate deflate24 pred1 acfcomp protocomp
# deny deflate deflate24 pred1 acfcomp protocomp

disable deflate pred1
deny deflate pred1

set ifaddr 10.0.0.1 10.0.0.21-10.0.0.254

/dev/tunX

Zestawienie połączenia ppp powoduje podniesienie interfejsu tun0...tunX a ponieważ domyśłnie jest utworzone tylko tylko cztery takie urządzenia to musimy utworzyć ich dostateczną ilość w /dev:

$>cd /dev
$>sh MAKEDEV tun250

/etc/ppp/ppp.secret

Plik z listą użytkowników loginy oraz przydzielone im hasła:

#
# PLEASE USE UNIQUE LOGINS AND STRONG RANDOM PASSWORDS !!!
# login password
jasfasola h4sl0j4s14

/etc/ppp/ppp.linkup

Moduł ppp po zestawieniu i zautoryzowaniu połączenia przy podniesieniu interfejsu tunX uzytkownika wykonuje polecenia zawarte w pliku /etc/ppp/ppp.linkup i z tego poziomu uruchamiamy nasz skrypt generujący i wstawiający odpowiednie regułki do firewalla:

default:
!bg /etc/ppp/addclient.sh USER connect HISADDR INTERFACE

/etc/ppp/ppp.linkdown

Analogicznie po rozłączeniu się użytkownika wywoływany jest /etc/ppp/ppp.linkdown z którego uruchomimy skrypt usuwający regułki danego użytkownika z firewalla:

default:
!bg /etc/ppp/removeclient.sh USER disconnect HISADDR INTERFACE

/etc/ppp/addclient.sh

Skrypt wyliczający pewne parametry niezbędne do wstawienia regułek do firewalla na odpowiednich miejscach a także logujący parametry połaczenia do ewentualnych dalszych analiz i oględzin:

#!/bin/sh
# grab parametres from commandline
user=$1
type=$2
clientip=$3
int=$4

fwcmd="/sbin/ipfw"
baza="/etc/ppp/ppp.klienci"

usernum=`echo ${clientip} | cut -d "." -f 4`
download=`grep ^${user} ${baza} | awk '{FS="[ \t]+"}{print $2}'`
upload=`grep ^${user} ${baza} | awk '{FS="[ \t]+"}{print $3}'`

if [ -z ${download} ]; then
download=0
fi
if [ -z ${upload} ]; then
upload=0
fi

pid=`cat /var/run/${int}.pid`
# log this via syslogd
message=`echo ppplinkup, ppppid ${pid}, ${user}, ${usernum}, ${download}, ${upload}, ${type}, ${clientip}, ${int}`
logger -p local7.info $message

pipedown=`echo "20000 + ${usernum} * 10" | /usr/bin/bc`
pipeup=`expr ${pipedown} + 1`
fwruledown=`expr ${pipedown} + 2`
fwruleup=`expr ${pipedown} + 3`
fwalldown=`expr ${pipedown} + 4`
fwallup=`expr ${pipedown} + 5`

${fwcmd} pipe ${pipedown} config bw ${download}Kbit/s queue 16Kbytes
${fwcmd} pipe ${pipeup} config bw ${upload}Kbit/s queue 16Kbytes
${fwcmd} add ${fwruledown} pipe ${pipedown} all from any to ${clientip} in
${fwcmd} add ${fwruleup} pipe ${pipeup} all from ${clientip} to any out
${fwcmd} add ${fwalldown} pass all from any to ${clientip}
${fwcmd} add ${fwallup} pass all from ${clientip} to any

W powyższym skrypcie można by zmodyfikowac regułki tak aby ruch nie był traktowany niezależnie na przychodzący i wychodzący co pozwoliłoby na ustawienie jednej przepustowaości klientowi i przepuszczanie prze ztaką rurę ruchu w obu kierunkach a zatem klient dysponował by sumarycznie przepustowością obejmująca ruch do/z (asynchornicznie jak na SDI). Ponadto można by wymienić regułki zbierające ruch w rurki na poniższe lub ich wariacje z in recv/out xmit:

${fwcmd} add ${fwruledown} pipe ${pipedown} all from any to any in via ${int}
${fwcmd} add ${fwruledown} pipe ${pipeup} all from any to any out via ${int}

/etc/ppp/removeclient.sh

Analogicznie poniższy skrypt "sprząta" gdy klient się rozłączy:

#!/bin/sh
# grab parameters from commandline
user=$1
type=$2
clientip=$3
int=$4

fwcmd="/sbin/ipfw"
baza="/etc/ppp/ppp.klienci"

usernum=`echo ${clientip} | cut -d "." -f 4`
download=`grep ^${user} ${baza} | awk '{FS="[ \t]+"}{print $2}'`
upload=`grep ^${user} ${baza} | awk '{FS="[ \t]+"}{print $3}'`

if [ -z ${download} ]; then
download=0
fi
if [ -z ${upload} ]; then
upload=0
fi

message=`echo ppplinkdown, ${user}, ${usernum}, ${download}, ${upload}, ${type}, ${clientip}, ${int}`
logger -p local7.info ${message}

pipedown=`echo "20000 + ${usernum} * 10" | /usr/bin/bc`
pipeup=`expr ${pipedown} + 1`
fwruledown=`expr ${pipedown} + 2`
fwruleup=`expr ${pipedown} + 3`
fwalldown=`expr ${pipedown} + 4`
fwallup=`expr ${pipedown} + 5`

${fwcmd} delete ${fwallup}
${fwcmd} delete ${fwalldown}
${fwcmd} delete ${fwruleup}
${fwcmd} delete ${fwruledown}
${fwcmd} pipe delete ${pipeup}
${fwcmd} pipe delete ${pipedown}

/etc/ppp/ppp.klienci

Należy wyjaśnić że w powyższych skryptak wykorzystany jest plik tekstowy z parametrami przepustowości przyznanej użytkownikowi do wygenerowania odpowiednich rurek. Plik /etc/ppp/ppp.klienci ma prostą budowę skłądającą się z trzech kolumn. Zapewne dalsze rozwinięcie tego projektu zastąpi ten plik RADIUS'em:

#
# UWAGA! zadnych pustych linii w tym pliku!
# dozwolone komentarze od znaku # na poczatku linii
#
# login down up
jasfasola 256 64

/etc/syslog.conf

Skrypty addclient.sh oraz removeclient.sh wysyłają do daemona syslog pozycje do zalogowania z facility local7.info także daemon pppoed, ppp i named loguje różne komunikaty. Należy sobie dopisać w /etc/syslog.conf poniższe pozycje i odpowiednio w /etc/newsyslog.conf opisać ich rotowanie i przycinanie:

local7.info /var/log/connection.log
!ppp
*.* /var/log/ppp.log
!named
*.* /var/log/named.log
!pppoed
*.* /var/log/pppoed.log

/etc/namedb/named.conf

Na naszym lokalnym serwerze będziemy logowć zapytania do dns. Klienci otrzymują jako adres serwera dns adres ip drugiego końca linku ppp i na tym adresie nasłuchuje named zatem wszelkie zapytania kierowane do niego możemy zalogować. Zapytania kierowane z pominięciem lokalnego dns mogą świadczyć o wirusie u klienta lub o celowej zmianie konfiguracji dns przez klienta jednakże możemy takie zapytania zablokować na firewallu. Poniższe wpisy włączają logowanie w bindzie:

logging {
category default { default_syslog; default_debug; };
category panic { default_syslog; default_stderr; };
category packet { default_debug; };
category eventlib { default_debug; };
category queries { default_syslog; };
category statistics { default_syslog; };
category xfer-in { default_syslog; };
category xfer-out { default_syslog; };
};

Konfiguracja klienta

Nowe systemy typu Windows XP/2003 posiadają wbudowany moduł połączeń pppoe. Starsze systemy typu Windows 9x niestety wymagają zainstalowania klienta pppoe (np. raspppoe). Wspomnieć jednak należy o tym iz u klienta (Windows XP/2003) powinniśmy pozostawić jedynie "gołą" kartę sieciową, bez jakichkolwiek usług i protokołów (w szczególności sieci windows) i włączyć klientowi firewall. Raspppoe natomiast dodaje swój własny protokół do danej sieciówki i jest on niezbędny do poprawnego działania.

Instalacja połączenia z Internetem przy użyciu protokołu pppoe dla Windows XP/2000 (zakładamy że karta sieciowa jest zainstalowana):

Menu Start -> Panel sterowania -> Połączenia sieciowe:

7dc54bd7d61a2570a772ccb7c7d3c746.jpg

Prawym myszką klikamy na karcie sieciowej właściwości:

fea18536f0a46c7ddcd5ef44ef6a07f4.jpg

Sprawdzamy i odznaczamy lub odinstalowujemy wszelkie usługi i protokoły sieciowe (tcpip, klienta sieci MS Networks, Udostępnianie plików i drukarek, Harmonogram pakietów QoS, i inne) zatwierdzamy zmiany i zamykamy formatkę:

ac956ba055ca8ee75591b74d884859f6.jpg

W okienku Połączenia sieciowe klikamy kreatora: Utwórz nowe połączenie:

fe76a12a71bb5f7feeb70d355229c328.jpgi dalejb8456cd7af524043b0752982c33ebe9e.jpg

Wybieramy: Połącz z Internetem:

8d6f805a7ff2238403fce5362e83f5dc.jpg

Wybieramy: Konfiguruj moje połączenie ręcznie:

ccf40841717dded0c4e8806979161c57.jpg

Wybieramy: Połącz używając połączenia szerokopasmowego… (poppe):

c534a18e4fa30824bfd21ff39a3b9d05.jpg

W polu nazwa usługodawcy internetowego wpisujemy małymi literami: isp

62dd89b8bf8c623c4f5b1c67c55dfb47.jpg

Wprowadzamy nazwę użytkownika (login) i hasło, zaznaczamy obie opcje dla zezwolenia wszystkim lokalnym użytkownikom komputera na podłączanie do Internetu oraz ustawiamy to połączenie jako domyślne:be6fd35fba6a3c17e7ad128e488a084b.jpg

Zaznaczamy utworzenie skrótu na pulpicie:

88ac94c6d089fd603e2cfa42f1a54b19.jpg

Gdy wyskoczy okienko „Łączenie z isp” zanim połączymy się z internetem należy jeszcze zmienić parametry połączenia zatem klikamy przycisk właściwości:

c35e904602b6df10dd709bf4d5961b91.jpg

W okienku „isp właściwości” KONIECZNIE zmieniamy na zakładce zabezpieczenia Opcje zabezpieczeń
zaznaczając opcje zaawansowane i klikając przycisk ustawienia:

572ea6be735ae48b3156f25f106b380c.jpg

W oknie „Zaawansowane ustawienia zabezpieczeń” ustawiamy Najmocniejsze szyfrowanie (odłącz, jeśli serwer odmawia) oraz Zezwalaj na użycie protokołów: wyłącznie MS CHAP wersja 2:

54441d23cbbc86d142e20ea1fb66a075.jpg

Po zatwierdzeniu przyciskiem OK. przechodzimy na zakładkę Sieć:

57ce6992b587a46f21f85fcfb320acec.jpg

Klikamy przycisk Ustawienia, zaznaczamy wszystkie trzy opcje i zatwierdzamy OK:

d51f5a2cf45bd18ee26399907d889f58.jpg

Jeżeli komputer ma zainstalowany pakiet zabezpieczeń Service Pack 2 dla Windows XP to przechodzimy na zakładkę Zaawansowane:

f034f6473fcb9834859c4e9997b80d99.jpg

W oknie „Zapora systemu Windows” klikamy przycisk Ustawienia i w opcjach Zapory włączamy zaporę ale opcję Nie zezwalaj na wyjątki pozostawiamy nie zaznaczoną:

f5eaa58e0b03388b73b9e9182ed66aeb.jpg

Przechodzimy na zakładkę zaawansowane i w ramce Protokół ICMP klikamy przycisk Ustawienia

d1dff833a8f4240be2961342353f420a.jpg

W oknie „Ustawienia protokołu ICMP” należy KONIECZNIE zezwolić na wszystkie (chyba że się dokładnie wie które chcemy wyblokować i jaki to może mieć skutek) typy pakietów ICMP (niezbędna dla poprawnego rozpoznawania PMTU) i zatwierdzić to OK:

36632306edae969aa1a150d1be3859b0.jpg

Okienko „Zapora systemu Windows” akceptujemy przyciskiem OK, a następnie także akceptujemy okienko właściwości połączenia „isp właściwości”. Po zatwierdzeniu już możemy podłączyć się do Internetu klikając przycisk Połącz. Proszę zwrócić uwagę aby była zaznaczona opcja Zapisz tę nazwę użytkownika… dla Dowolny użytkownik tego komputera:

0578ab9d65134dacecc01dbb9fd862b4.jpg


Takie ustawienie opcji połączenia jest bardzo ważne bowiem zapewni nam bezpieczeństwo i poufność przesyłanego loginu i hasła użytkownika a także całej transmisji po sieci lokalnej do routera internetowego realizującego połączenie użytkownika z Internetem. Zabezpiecza to przed podsłuchaniem przez innych użytkowników danych przesyłanych po sieci lokalnej, jednakże pomiędzy routerem internetowym a innymi serwerami w Internecie dane mogą nie być szyfrowane bowiem to już zależy od konkretnych potrzeb użytkowanych aplikacji. Zwykle szyfrowane połączenia są zestawiane przez przeglądarkę internetową przy operacjach w bankowości internetowej, czy też przy dostępie do poczty internetowej u niektórych usługodawców itp.

 

Źródło: http://blog.siebab.net/2006/12/konfiguracja-serwera-pppoe-we-freebsd.html