歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 在Linux下建立PPPOE服務器的步驟

在Linux下建立PPPOE服務器的步驟

日期:2017/2/27 9:27:55   编辑:更多Linux
  在Linux下建立PPPOE服務器的步驟  建立環境:  操作系統:DEBIAN 2.2 升級到3.0  內 核:2.4.18  硬件環境:賽揚3 1.1G ,內存 128M , 硬盤 40G ,主板芯片組 694T  顯 卡:ATI RAGE IIC(4M)  PPPOE服務器:RP-PPPOE 3.4.1  RADIUS服務器:FREERADIUS 0.8  數 據 庫: mysql 3.23.56  PPPOE服務器認證的建立分三種認證方式,第一種方式為用RP-PPPOE自帶的基於文本認證方式,第二種方式為建立在RADIUS認證服務器上的文本認證方式,第三種方式是基於MYSQL的數據庫認證方式    一、編譯內核  要建立PPPOE服務器,除了內核要支持PPP以外還需要內核支持PPPOE,不過在2.4.18裡需要打開內核的不成熟代碼才可以選擇,內核的配置如下:  code maturity level options——>  [*] prompt for development and/or incomplete code/drivers  networking options——>  [*] packet socket  [*] packet socket:mmapped io  network device support——>  [*] ppp (point-to-point protocol) support  [*] ppp multilink support (eXPerimental)  [*] ppp filtering  [*] ppp support for async serial ports  [*] ppp support for sync tty ports  [*] ppp deflate compression  [*] ppp bsd-compress compression  [*] ppp over Ethernet (experimental)  character devices——>  [*] non-standard serial port support  [*] hdlc line discipline support  編輯/etc/modules.conf(redhat好象是conf.modules),如果沒有就加入以下幾行:  • alias char-major-108 ppp_generic  • alias /dev/ppp ppp_generic  • alias tty-ldisc-3 ppp_async  • alias tty-ldisc-13 n_hdlc  • alias tty-ldisc-14 ppp_synctty  • alias ppp-compress-21 bsd_comp  • alias ppp-compress-24 ppp_deflate  • alias ppp-compress-26 ppp_deflate  完成以後就可以下一步,建立PPP撥號服務器了    二、建立PPP服務器  在建立撥號服務器之前,應確保你在內核中打開了IP轉發功能:  echo “1”>/proc/sys/net/ipv4/ip_forward  編譯PPP服務器很容易,就是按以下幾步就可以了:  •使用configure  •使用make編譯PPPD,這裡有幾個參數比較重要,要支持windows的客戶端,應該在編譯時加上選項USE_MS_DNS=1,如果你的系統shadow的話,你應該使用make HAS—SHADOW=1表示支持shadow密碼  •編譯完成後,將生成pppd、pppdump、chat和pppstats這幾個文件,使用make install安裝這些文件  •修改pppd的訪問權限,允許由root啟動服務進程   chmod u+s /usr/sbin/pppd    三、建立PPPOE服務器  cd /rp-pppoe-3.4/src  ./configure  make  make install  啟動PPPOE進程:  pppoe-server –L 10.0.0.1 –R 10.0.0.2 –N 64 –k -u  -L: 指定PPPOE服務器的IP地址  -R: 指定PPPOE撥入服務器分配給客戶端的IP地址段  -N: 允許客戶端同時撥入的數量(默認是64 最大是65534)  -k: 使用內核方式(不過好象無法使用)  修改/etc/ppp/options,查看有沒有以下幾行,沒有就加進去:  local  repaire-pap   login  auth   defaultroute   hide-passWord  ipcp-accept-local   ipcp-accept-remote   10.0.0.1:10.0.0.255   netmask 255.255.255.0  ms-dns 10.0.0.1   修改/etc/ppp/pppoe-server-options,將所有的行都注釋掉  添加用戶到/etc/ppp/pap-secrets中,例如添加用戶luo,密碼為123456,允許從任何位置撥入:  #client server secret ip addresses  luo * “123456” *  設置windows的用戶名:luo 密碼: 123456,如果連接成功就可以進行下一步    四、建立RADIUS認證服務器  cd /freeradius-0.81  ./configure  make  make install  編輯/usr/local/etc/raddb/clients,輸入你的NAS(網絡認證服務器)的IP地址和serect,本例中NAS為本機,serect為linux,看上去如下:  localhost linux  編輯/usr/local/etc/raddb/clients.conf,加入以下幾行:  client 127.0.0.1{   secret = linux   shortname = localhost   }  nastype = other   編輯/usr/local/etc/raddb/naslist,加入:  localhost local   編輯/usr/local/etc/raddb/users,加入用戶:luo、密碼:123456,顯示如下:  luo Auth-Type:=local, User-Password==“123456”  Service-Type:= Framed-User,  Framed-Protocol = PPP  Framed-IP-Address := 10.0.0.2   Framed-IP-Netmask := 255.255.255.0  啟動RADIUS服務、測試帳號  啟動調試模式  RADIUS –X   進行帳號測試  Radtest luo 123456 localhost 0 linux  如果能看到應答,說明RADIUS設置成功了  要使PPPD進程能夠使用RADIUS進行認證,需要加入RADIUS認證的插件  cp radius.so /usr/lib  編輯/etc/ppp/options,加入以下到文件:  plugin /usr/lib/radius.so  radius-servers localhost:1812/1813   radius-auth-key linux   radius-ip-pool 10.0.0.2:10.0.0.255   運行客戶端進行登陸,如果能通過認證則成功了    五、建立MYSQL服務器  tar zxvf mysql-3.23.56.tar.gz  cd mysql-3.23.56  ./configure  make  make install  cd script  ./mysql_install_db  /usr/local/bin/safe_mysqld&   安裝RADIUS數據庫  cd freeradius-0.81/src/modules/rlm_sql/drivers/rlm_sql_mysql  mysql –u root –p 密碼 radius<db_mysql.sql  編輯/usr/local/etc/raddb/radius.conf使其支持SQL,修改後如下:  authorize{  preprocess  chap  mschap  suffix  sql  }  accounting{  ……  sql  ……  }  修改sql.conf,如下所示:  server="loclahost" login="root" password="mysql的root的密碼"    加入組帳號  mysql –u root –p 密碼 radius  insert into radgroupreply (groupname,attribute,op,value) values (‘user’,’Auth-Tyep’,’:=’,’local’);  insert into radgroupreply (groupname,attribute,op,value) values (‘user’,’Service-Type’,’:=’,’Framed-User’);  insert into radgroupreply (groupname,attribute,op,value) values  (‘user’,’Framed-IP-Netmask’,’:=’,’255.255.255.0’);   #設定撥入用戶的掩碼,本例只有PPPOE服務,所以可以與options中設定相同  加入用戶帳號:  insert into radcheck (username,attribute,op,value) values  (‘luo’,’User-Password’,’:=’,’123456’);  將用戶帳號加入組帳號  insert into usergroup(username,groupname) values(‘luo’,’user’);  如果提示無法找到rlm_sql_mysql文件,則:  cp /usr/local/lib /usr/lib  測試:  radtest luo 123456 localhost 0 linux  見到應答就OK了!




Copyright © Linux教程網 All Rights Reserved