суббота, 15 января 2011 г.

Настройка PPPOE сервера.

Ну а сегодня пожалуй поговорим о настройке PPPOE сервера.
Что это такое смотрим здесь. В роли сервера у нас будет выступать pppoe-server входящий в пакет rp-pppoe, разработанный компанией roaring penguin inc.
Итак поехали: для начала ставим пакет (есть в стандартных репах)
yum install  -y rp-pppoe
После инсталляции правим файлик /etc/ppp/pppoe-server-options и приводим его к след. виду:

name pppoe
local
proxyarp
logfile /var/log/log.pppoe
#require-pap
require-chap
#require-mschap
#require-mschap-v2
lcp-echo-interval 20
lcp-echo-failure 3
ms-dns XX.XX.XXX.XXX #Ваш DNS сервер
ms-dns 8.8.8.8
netmask 255.255.255.0
nobsdcomp
lock

Вслучае с kernel mode конфиг будет такой:


name pppoe
logfile /var/log/pppoe.log
require-chap
ktune
lcp-echo-interval 20
lcp-echo-failure 3
ms-dns 192.168.102.1
netmask 255.255.255.0
mtu 1480
mru 1480
default-asyncmap
nodeflate
nobsdcomp
noccp
noendpoint
noipdefault
noipx
novj
receive-all



Прописываем в файле chap-secrets логины и пароли клиентов
USER   pppoe  PASS  192.168.102.12
И все далее его просто запускаем командой

pppoe-server -I eth1 -L 192.168.102.1 -R 192.168.102.2 - для userspace
pppoe-server -k -I eth1 -L 192.168.102.1 -R 192.168.102.2 -для kernel mode

где -I  --интерфейс который слушает демон 
-L   -- локальный ip сервера 
-R  -- начальный адрес клиента

ВСЕ.

воскресенье, 9 января 2011 г.

DHCPD

Итак продолжим, я надеюсь что все знают что такое dhcp. Ну а как его настроить я и расскажу вам сегодня. По старой традиции приведу конфиг и по ходу пьесы прокомментирую.

/etc/dhcpd.conf :


ddns-update-style interim;
ignore client-updates;

subnet 192.168.0.0 netmask 255.255.255.0 {
#сеть и маска 
option routers 192.168.0.1; # шлюз по умолчанию который будет отдавать клиентам
option subnet-mask 255.255.255.0; # маска

option nis-domain "example.com"; # имя домена nis (ну мало ли кому пригодится)
option domain-name "example.com"; # имя домена DNS
option domain-name-servers 192.168.0.1;  # сам DNS сервер

option time-offset 10800; # GMT+3 ну тут думаю все понятно (временная зона)
option ntp-servers 192.168.0.1; # сервер ntp
option netbios-name-servers 192.168.0.1; # сервер netbios 

option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255; # широковещательный адрес

range 192.168.0.10 192.168.0.250; # диапазон из которого выдаются адреса
default-lease-time 432000;  # стандартное время на которое выдается ip
max-lease-time 4320000; # максимальное время на которое выдается ip

         # ну и пример того как закрепить за машиной конкретный ip адрес
host test { # имя хоста (да какое хотите такое и ставьте)
hardware ethernet 00:24:8c:7a:8d:f4;  # mac адрес
fixed-address 192.168.0.240;   #ip адрес
}
}

Ставится сам сервер крайне просто:
yum install -y dhcp
В стандартных репах присутствует.
P.S. Не запутайтесь в скобочках и точках с запятой.

Простенький PPTP server

Как -то раз поставили передо мной такую задачу - настроить PPTP сервер, для того чтобы раздавать интернет юзверям в одной конторе.
Ну прям таки скажем задача проще некуда, но на всякий случай опишу как это делается (мало ли кому пригодится).
    Для начала нам необходимо установить этот самый pptp сервер во многих дистрибутивах он есть но вот например в CentOS его нет, чтож исправим это доустановив  соответствующий репозитарий:
rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm
Далее установим сам демон:
yum install -y pptpd
После инсталляции нам необходимо поправить два файла(далее просто приведу их содержание)
1) /etc/pptpd.conf
ppp /usr/sbin/pppd
option /etc/ppp/options.pptpd
logwtmp
connections 250
#(далее следуют ip виртуальной сети)
localip 192.168.100.1
remoteip 192.168.100.2-251 
2) /etc/ppp/options.pptpd

name pptpd
require-pap
require-chap
#(в качестве DNS серверов можете прописать сервера провайдера или гугла)
ms-dns 8.8.8.8
ms-dns 192.168.0.1
#debug
lock
nobsdcomp 
novj
novjccomp
nologfd


Ну вот собственно и все теперь осталось только завести пользователей в файле /etc/ppp/chap-secrets  и включить NAT[смотри пост про iptables] (ну или вкорячить прозрачную проксю).

P.S. Если увидите в логах ерунду подобную этой:
pptpd[2474]: GRE: Bad checksum from pppd.
pptpd[2474]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!
не пугайтесь все нормально это у pptpd отродясь, разработчики уже давно на этот баг заби и просто задокументировали его.
А как известно - задокументированный баг - это не баг, а фича. :-)