FreeBSD + FreeRadius + MySQL
Neste artigo aprenderemos a criar um servidor PPPoE em FreeBSD com autenticação no FreeRadius consultando um banco de dados em MySQL. Será uma conexão com usuário e senha como a maioria dos provedores ADSL provêem, liberando um IP inválido para cada estação.
Parte 2: Atualizar o ports
Atualizar o ports antes de começar a instalar os pacotes:
# portsnap fetch extract
# ee /etc/ppp/ppp.conf
Apague tudo e cole as configs abaixo:
Edite o arquivo /etc/radius.conf (crie este arquivo).
Edite o /etc/rc.conf:
Edite o arquivo /etc/natd.conf:
Edite o firewall em /etc/ipfw.rules:
# portsnap fetch extract
Instalando o PPPoE
Edite o arquivo:# ee /etc/ppp/ppp.conf
Apague tudo e cole as configs abaixo:
########PPP.CONF########
#########BEGIN##########
default:
set log Chat Command Phase #Ativa o cliente logado.
enable pap #Ativa a autenticação pap (password authentication protocol)
enable chap #Ativa a conta chap (challenge handshake authentication protocol)
enable echo #Envio de echos LCP (Verifica se o link está ativo)
set echoperiod 5 #Tempo de envio para cada echo (Depois de 5 falhas o tun é desconectado)
allow mode direct #Ativa o ppp bridging
enable proxy #Ativa o ppp proxyarping
disable ipv6cp #Como não usamos IPV6, não queremos os seus erros
set mru 1492 #Coloque o MRU abaixo de 1500
set mtu 1492 #Coloque o MRU abaixo de 1500
set ifaddr 192.168.1.1 192.168.1.2-192.168.1.100 # Gateway e range de ips
set speed sync #
set timeout 0 #
enable lqr #
accept dns #Aceita DNS
set radius /etc/radius.conf #Ativa o Radius e especifica onde está o arquivo de conexão
##########END###########
########PPP.CONF########
#########BEGIN##########
default:
set log Chat Command Phase #Ativa o cliente logado.
enable pap #Ativa a autenticação pap (password authentication protocol)
enable chap #Ativa a conta chap (challenge handshake authentication protocol)
enable echo #Envio de echos LCP (Verifica se o link está ativo)
set echoperiod 5 #Tempo de envio para cada echo (Depois de 5 falhas o tun é desconectado)
allow mode direct #Ativa o ppp bridging
enable proxy #Ativa o ppp proxyarping
disable ipv6cp #Como não usamos IPV6, não queremos os seus erros
set mru 1492 #Coloque o MRU abaixo de 1500
set mtu 1492 #Coloque o MRU abaixo de 1500
set ifaddr 192.168.1.1 192.168.1.2-192.168.1.100 # Gateway e range de ips
set speed sync #
set timeout 0 #
enable lqr #
accept dns #Aceita DNS
set radius /etc/radius.conf #Ativa o Radius e especifica onde está o arquivo de conexão
##########END###########
########PPP.CONF########
Edite o arquivo /etc/radius.conf (crie este arquivo).
######RADIUS.CONF######
#########BEGIN#########
####tipo###server######senha##
auth localhost senharadius
acct localhost senharadius
######RADIUS.CONF######
##########END##########
#########BEGIN#########
####tipo###server######senha##
auth localhost senharadius
acct localhost senharadius
######RADIUS.CONF######
##########END##########
Edite o /etc/rc.conf:
########RC.CONF########
#########BEGIN#########
defaultrouter="200.200.200.1"
gateway_enable="YES"
hostname="pppoe.dominio.com.br"
ifconfig_rl0="UP"
ifconfig_bge0="inet 200.200.200.200 netmask 255.255.255.0" #IP WAN
sendmail_enable="NONE"
keymap="us.iso"
linux_enable="YES"
sshd_enable="YES"
usbd_enable="YES"
#MYSQL
mysql_enable="YES"
#FREERADIUS
radiusd_enable="YES"
## SERVIDOR PPPOE
pppoed_enable="YES"
pppoed_flags="-d -P /var/run/pppoed.pid -a "server" -l "default" "
pppoed_interface="rl0"
#IPFW
firewall_enable="YES"
firewall_script="/etc/ipfw.rules"
#NAT
natd_enable="YES"
natd_flags="-config /etc/natd.conf"
##########END##########
########RC.CONF########
#########BEGIN#########
defaultrouter="200.200.200.1"
gateway_enable="YES"
hostname="pppoe.dominio.com.br"
ifconfig_rl0="UP"
ifconfig_bge0="inet 200.200.200.200 netmask 255.255.255.0" #IP WAN
sendmail_enable="NONE"
keymap="us.iso"
linux_enable="YES"
sshd_enable="YES"
usbd_enable="YES"
#MYSQL
mysql_enable="YES"
#FREERADIUS
radiusd_enable="YES"
## SERVIDOR PPPOE
pppoed_enable="YES"
pppoed_flags="-d -P /var/run/pppoed.pid -a "server" -l "default" "
pppoed_interface="rl0"
#IPFW
firewall_enable="YES"
firewall_script="/etc/ipfw.rules"
#NAT
natd_enable="YES"
natd_flags="-config /etc/natd.conf"
##########END##########
########RC.CONF########
Edite o arquivo /etc/natd.conf:
#######NATD.CONF#######
#########BEGIN#########
use_sockets yes
alias_address IP_EXT
punch_fw 500:100
##########END##########
#######NATD.CONF#######
#########BEGIN#########
use_sockets yes
alias_address IP_EXT
punch_fw 500:100
##########END##########
#######NATD.CONF#######
Edite o firewall em /etc/ipfw.rules:
#######IPFW.RULES######
#########BEGIN#########
/sbin/ipfw -f flush
/sbin/ipfw add divert natd via bge0
/sbin/ipfw add pass all from any to any
###########END#########
#######IPFW.RULES######
#########BEGIN#########
/sbin/ipfw -f flush
/sbin/ipfw add divert natd via bge0
/sbin/ipfw add pass all from any to any
###########END#########
#######IPFW.RULES######