openldap for linux(openldap)
大家好,openldap for linux相信很多的网友都不是很明白,包括openldap也是一样,不过没有关系,接下来就来为大家分享关于openldap for linux和openldap的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
Centos 搭建dhcp服务器
dhcp是动态主机配置协议,使用udp协议,主要使用udp67和udp 68号端口
1.client端会发送dhcp discover广播包
2.dhcp服务器会回应dhcp offer广播包
3.client端会发送dhcp request广播包
4.dhcp服务器发送dhcp ack广播包
[root@mini~]# rpm-qa dhcp
[root@mini~]# cat/etc/centos-release
CentOS release 6.9(Final)
[root@mini~]# uname-r
2.6.32-696.el6.i686
[root@mini~]# uname-m
i686
[root@mini~]# yum install-y dhcp
[root@mini~]# rpm-qa dhcp
dhcp-4.1.1-53.P1.el6.centos.1.i686
[root@mini~]# rpm-qc dhcp
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/portreserve/dhcpd
/etc/sysconfig/dhcpd
/etc/sysconfig/dhcpd6
/etc/sysconfig/dhcrelay
/etc/sysconfig/dhcrelay6
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
[root@mini~]# cat/etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see/usr/share/doc/dhcp*/dhcpd.conf.sample
# see'man 5 dhcpd.conf'
#
查询dhcp sample文件(dhcpd.conf.sample文件为dhcp配置文件模板)
# rpm-ql dhcp
配置完成后的文件
[root@mini~]# cat/etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see/usr/share/doc/dhcp*/dhcpd.conf.sample
# see'man 5 dhcpd.conf'
#
# A slightly different configuration for an internal subnet.
subnet 172.16.1.0 netmask 255.255.255.0{
range 172.16.1.10 172.16.1.30;
option domain-name-servers mini.localdomain;
option domain-name"mini.localdomain";
option routers 172.16.1.1;
option broadcast-address 172.16.1.1;
default-lease-time 600;
max-lease-time 7200;
}
查看配置是否正确
[root@mini~]#/etc/init.d/dhcpd configtest
Syntax: OK
DHCP启动失败,并查询到如下报错信息(/var/log/messages)
Nov 6 06:37:24 mini dhcpd: No subnet declaration for eth0(192.168.28.139).
Nov 6 06:37:24 mini dhcpd:** Ignoring requests on eth0. If this is not what
Nov 6 06:37:24 mini dhcpd: you want, please write a subnet declaration
Nov 6 06:37:24 mini dhcpd: in your dhcpd.conf file for the network segment
Nov 6 06:37:24 mini dhcpd: to which interface eth0 is attached.**
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd: Not configured to listen on any interfaces!
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd: This version of ISC DHCP is based on the release available
Nov 6 06:37:24 mini dhcpd: on ftp.isc.org. Features have been added and other changes
Nov 6 06:37:24 mini dhcpd: have been made to the base software release in order to make
Nov 6 06:37:24 mini dhcpd: it work better with this distribution.
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd: Please report for this software via the CentOS Bugs Database:
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd: exiting.
解决办法:
这是因为DHCP程序发现没有“Not configured to listen on any interfaces”,只需要配置相应的IP到目标网卡中便可以解决这个问题。
[root@mini~]# ifconfig eth1 172.16.1.1/24
[root@mini~]#/etc/init.d/dhcpd start
Nov 6 06:43:11 mini dhcpd: Internet Systems Consortium DHCP Server 4.1.1-P1
Nov 6 06:43:11 mini dhcpd: Copyright 2004-2010 Internet Systems Consortium.
Nov 6 06:43:11 mini dhcpd: All rights reserved.
Nov 6 06:43:11 mini dhcpd: For info, please visit
Nov 6 06:43:11 mini dhcpd: Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
Nov 6 06:43:11 mini dhcpd: Wrote 0 leases to leases file.
Nov 6 06:43:11 mini dhcpd: Listening on LPF/eth1/00:0c:29:c5:2b:7e/172.16.1.0/24
Nov 6 06:43:11 mini dhcpd: Sending on LPF/eth1/00:0c:29:c5:2b:7e/172.16.1.0/24
Nov 6 06:43:11 mini dhcpd:
Nov 6 06:43:11 mini dhcpd: No subnet declaration for eth0(192.168.28.139).
Nov 6 06:43:11 mini dhcpd:** Ignoring requests on eth0. If this is not what
Nov 6 06:43:11 mini dhcpd: you want, please write a subnet declaration
Nov 6 06:43:11 mini dhcpd: in your dhcpd.conf file for the network segment
Nov 6 06:43:11 mini dhcpd: to which interface eth0 is attached.**
Nov 6 06:43:11 mini dhcpd:
Nov 6 06:43:11 mini dhcpd: Sending on Socket/fallback/fallback-net
[root@mini~]# cat/var/lib/dhcpd/dhcpd.leases
注意:如果Linux开启了防火墙,那么需要对UDP 67和UDP 68放行。或者直接将放火墙关闭
怎样打开后缀为dnl的文件
Redhat 7.1下的Sendmail SASL认证的实现
Jephe Wu(吴阿亭)
一:本文目的
利用RedHat 7.1中的默认配置方便地设置一台利用SASL库进行用户名和密码认证的SMTP服务器,
以允许外面的用户以用户名和密码认证来relay邮件。
二:网络系统
Redhat 7.1
__________
||
| SMTP|
| Server|smtp.domain.com
________|_________|(1.2.3.4)
Intranet||| ________
_________________|Firewall|_____________|____________| Router|____Internet
|||_______|
|________|
公司域名: domain.com
用来认证的SMTP服务器全称域名: smtp.domain.com
三:为什么要这样用?
假设上面的公司有专线接入Internet,且在其它城市有多个分支机构,公司有统一的域名
domain.com,所有员工的邮件地址类似如staffname@domain.com。但是分支机构大多数没
有专线接入,用ISDN或者普通拨号方式入网,并且越来越多的ISP不允许以非ISP的邮件地址
域名后缀发送邮件,即使你是他们的拨号用户。
还有一种情况是移动用户,经常地,公司派遣用户在外出差旅行期间,用户需要发送邮件,
则也同样需要一种认证方案去允许正确的用户relay邮件。
现在我们考虑做公司自己内部的邮件relay系统。
就是设置一台SMTP服务器在防火墙之外,安装Redhat 7.1,选择‘服务器系统'方式安装所有
需要的包,然后设置Sendmail,配置一台基于SASL的用户名和密码认证的邮件服务器,以relay
自己公司的员工的邮件。
四:配置Sendmail
1.选择‘服务器系统'安装Redhat 7.1
2.进入目录/usr/share/sendmail-cf/cf。
如果你没有该目录,说明你还没有安装sendmail-cf-8.11.2-14 RPM包,从你的安装CD中安装它。
3.修改文件redhat.mc如下
divert(-1)
dnl This is the sendmail macro config file. If you make changes to this file,
dnl you need the sendmail-cf rpm installed and then have to generate a
dnl new/etc/sendmail.cf by running the following command:
dnl
dnl m4/etc/mail/sendmail.mc>/etc/sendmail.cf
dnl
include(`../m4/cf.m4')
VERSIONID(`linux setup for Red Hat Linux')dnl
OSTYPE(`linux')
define(`confDEF_USER_ID',``8:12'')dnl
undefine(`UUCP_RELAY')dnl
undefine(`BITNET_RELAY')dnl
define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',true)dnl
define(`confDONT_PROBE_INTERFACES',true)dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/sendmail.st')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
define(QUEUE_DIR,`/var/spool/mqueue/q*')
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=25,Name=MTA')dnl
DAEMON_OPTIONS(`Port=587,Name=MSA,M=Ea')dnl
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
dnl FEATURE(delay_checks)dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
FEATURE(`mailertable',`hash-o/etc/mail/mailertable')dnl
FEATURE(`virtusertable',`hash-o/etc/mail/virtusertable')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail)dnl
FEATURE(`access_db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
dnl This changes sendmail to only listen on the loopback device 127.0.0.1
dnl and not on any other network devices. Comment this out if you want
dnl to accept email over the network.
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
dnl We strongly recommend to comment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on computers that do
dnl not have 24x7 DNS do need this.
dnl FEATURE(`accept_unresolvable_domains')dnl
dnl FEATURE(`relay_based_on_MX')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
其中,我加了下面的行:
1. define(QUEUE_DIR,`/var/spool/mqueue/q*')
2. TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
3. define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
4. DAEMON_OPTIONS(`Port=25,Name=MTA')dnl
5. DAEMON_OPTIONS(`Port=587,Name=MSA,M=Ea')dnl
注:
第1行我启动了多个邮件队列,希望得到更好的队列处理和性能改进。
第2,3行移走前面的注释,打开相应的各种认证机制。
第4,5行设置相应的MTA和MSA所在的端口号。
且注释出了
1. dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
2. dnl FEATURE(`accept_unresolvable_domains')dnl
第1行允许通过网络连接Sendmail。
第2行禁止不可解析的域名relay邮件
最后运行
#m4/etc/mail/sendmail.mc>/etc/sendmail.cf
写到/etc/sendmail.cf文件中
既然我们打开了多个队列,现在我们在/var/spool/mqueue/下创建任意多个队列目录如
#cd/var/spool/mqueue
#mkdir q1 q2 q3 q4 q5 q6
这样Sendmail将会使用这六个目录做为队列目录,增加了性能。
五:设置SASL认证方案
1.运行下面的命令,确保SASL被编译进Sendmail.
#/usr/sbin/sendmail-d0.1-bv root|grep SASL
输出应该类似如下面:
NETUNIX NEWDB QUEUE SASL SCANF SMTP USERDB XDEBUG
确保你能看见上面的文本中的 SASL
2.测试端口25,确保输出AUTH提示行。
#telnet localhost 25
Trying 127.0.0.1...
Connected to smtp.domain.com.
Escape character is'^]'.
220 smtp.domain.com ESMTP Sendmail 8.11.2/8.11.2; Sun, 1 July 2001 17:56:54-0800
EHLO localhost
250-smtp.domain.com Hello IDENT:root@smtp.domain.com [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-ETRN
250-XUSR
250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250 HELP
quit
221 2.0.0 smtp.domain.com closing connection
Connection closed by foreign host.
你需要至少看见AUTH行中有LOGIN PLAIN在那里,否则不能relay mail。
3.增加SASL用户且更改密码
#/usr/sbin/saslpasswd jephe
Password:*******
Again(for verification):*******
#/usr/sbin/sasldblistusers
user: jephe realm: smtp.domain.com mech: DIGEST-MD5
user: jephe realm: smtp.domain.com mech: PLAIN
user: jephe realm: smtp.domain.com mech: CRAM-MD5
用户的密码DB文件在/etc/sasldb,用下面的命令确保正确的许可权设置。
特别注意:在下面的windows的Outlook Express中设置用户名和密码时
并不是简单地使用用户名jephe,而是用象“user@realm”的用户名,
在这里是 jephe@smtp.domain.com作为用户名。
#chmod 400/etc/sasldb
可以用/usr/sbin/saslpasswd加更多的用户,用/usr/sbin/sasldblistusers检查用户已经加入。
4.更改默认的Redhat 7.1密码认证方法
默认地,Redhat 7.1中的Sendmail用PAM方法检查密码,这意味着用户必须是系统用户,为了
增强安全性,我们改用/etc/sasldb中的用户,改下面的文件中的pam为sasldb。
#vi/usr/lib/sasl/Sendmail.conf更改pwcheck_method行象下面
pwcheck_method:sasldb
5.最后,运行/etc/rc.d/init.d/sendmail restart重新启动Sendmail。
六:设置Windows的Outlook Express。
1. Outlook Express仅仅使用 PLAIN LOGIN认证机制,确保上面的telnet localhost 25中
的AUTH行输出PLAIN LOGIN即可。
2.在‘工具'-‘帐号'-‘属性'-‘服务器‘-
'发送邮件服务器'中选中‘我的服务器需要认证'
然后在‘登录用户帐号'上填上
“你的用户名@你的realm冒号后面的服务器全称域名”
如:本文的情况是 jephe@smtp.domain.com
密码为你在前面输入的密码。
注意:用户名绝不是简单地 jephe,必须跟上realm:后面的域名。
3.现在测试,发一封信给自己,检查tail-f/var/log/maillog有无任何错误
然后在收到自己发出的信之后检查邮件头,你能发现被服务器接收后有个(authenticated)
在后面表示是通过允许的认证机制relay的邮件。
七: FAQ。
1.如果你没有命令saslpasswd,sasldblistusers在/usr/sbin/目录下面。
答:你需要安装cyrus-sasl-1.5.24-17 RPM包。
2.如果不想用SASL认证,就用默认的Redhat的PAM方法。
答:忽略上面的SASL设置的部分,默认地 Redhat 7.1的/usr/lib/sasl/Sendmail.conf文件里面为
pwcheck_method:pam
则你就简单地用useradd增加一个系统用户并更改密码即可。
然后在Outlook Express中设置用户名时则只用如“jephe”即可,不需要跟全称域名。
附加部分:
对前面两篇文章
VI的常见使用技巧和如何设置一个基本的OpenLDAP Server的补充:
1.用%s/string1/string2/gc提示你在遇到每个string1时是否改变为string2
2.在用VI打开一个现有的文件后想不退出该文件而编辑另一个文件用
e filename和 e#在两个文件间切换。
---------------
4)如何记录LDAP查询Log且方便调试?
你可以在/etc/syslog.conf中加入
local4.*/var/log/openldap.log
然后每一次LDAP请求将会被记录进该文件,你也可根据该文件中的信息调试问题。
完 Jephe Wu(吴阿亭)
如何搭建Radius服务器
作为一名网络管理员,您需要为您所需管理的每个网络设备存放用于管理的用户信息。但是网络设备通常只支持有限的用户管理功能。学习如何使用Linux上的一个外部RADIUS服务器来验证用户,具体来说是通过一个LDAP服务器进行验证,可以集中放置存储在LDAP服务器上并且由RADIUS服务器进行验证的用户信息,从而既可以减少用户管理上的管理开销,又可以使远程登录过程更加安全。
数据安全作为现代系统中网络安全的一部分,与系统安全一样的重要,所以保护数据--确保提供机密性、完整性和可用性--对管理员来说至关重要。
在本文中,我将谈到数据安全性的机密性方面:确保受保护的数据只能被授权用户或系统访问。您将学习如何在Linux系统上建立和配置一个Remote Authentication Dial-In User Service服务器(RADIUS),以执行对用户的验证、授权和记帐(AAA)。
各组成元素介绍
首先让我们谈一谈RADIUS协议、AAA组件以及它们如何工作,另外还有LDAP协议。
Remote Authentication Dial-In User Service协议是在IET的RFC 2865中定义的(请参阅参考资料获得相关链接)。它允许网络访问服务器(NAS)执行对用户的验证、授权和记帐。RADIUS是基于UDP的一种客户机/服务器协议。RADIUS客户机是网络访问服务器,它通常是一个路由器、交换机或无线访问点(访问点是网络上专门配置的节点;WAP是无线版本)。RADIUS服务器通常是在UNIX或Windows 2000服务器上运行的一个监护程序。
RADIUS和AAA
如果NAS收到用户连接请求,它会将它们传递到指定的RADIUS服务器,后者对用户进行验证,并将用户的配置信息返回给NAS。然后,NAS接受或拒绝连接请求。
功能完整的RADIUS服务器可以支持很多不同的用户验证机制,除了LDAP以外,还包括:
PAP(Password Authentication Protocol,密码验证协议,与PPP一起使用,在此机制下,密码以明文形式被发送到客户机进行比较);
CHAP(Challenge Handshake Authentication Protocol,挑战握手验证协议,比PAP更安全,它同时使用用户名和密码);
本地UNIX/Linux系统密码数据库(/etc/passwd);
其他本地数据库。
在RADIUS中,验证和授权是组合在一起的。如果发现了用户名,并且密码正确,那么RADIUS服务器将返回一个Access-Accept响应,其中包括一些参数(属性-值对),以保证对该用户的访问。这些参数是在RADIUS中配置的,包括访问类型、协议类型、用户指定该用户的IP地址以及一个访问控制列表(ACL)或要在NAS上应用的静态路由,另外还有其他一些值。
RADIUS记帐特性(在RFC 2866中定义;请参阅参考资料获得相关链接)允许在连接会话的开始和结束发送数据,表明在会话期间使用的可能用于安全或开单(billing)需要的大量资源--例如时间、包和字节。
轻量级目录访问协议
轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP)是一种开放标准,它定义了用于访问和更新类X.500目录中信息的一种方法。LDAP可用于将用户信息保存在一个中央场所,从而不必将相同的信息存储在每个系统上。它还可以用于以一种一致的、可控制的方式维护和访问信息。
LDAP在一个集中的目录中管理用户,从而简化了用户管理工作。除了存储用户信息外,在LDAP中定义用户还可以使一些可选特性得到启用,例如限制登录的数量。在本文中,您将学习如何配置RADIUS服务器,以便基于LDAP验证用户--由于本文的重点在于RADIUS,我不会描述关于LDAP服务器的安装和配置的细节。
OpenLDAP是LDAP的一种开放源码实现。在OpenLDAP.org上可以找到关于它的详细信息(请参阅参考资料获得相关链接)。
场景
想像以下场景:
用户在家里可以通过拨号验证访问他公司的内部网。
带无线支持的笔记本电脑可以通过无线验证连接到一个校园网。
管理员使用他们的工作站通过管理用户验证以telnet或HTTP登录到网络设备。
所有这些验证任务都可以通过一个RADIUS服务器基于一个中央LDAP服务器来完成(见图 1)。
图1通过RADIUS和LDAP进行验证
在本文中,我将重点描述对最后一种选项的实现,作为对该解决方案的一个介绍。首先安装RADIUS服务器。
安装 RADIUS
RADIUS服务器软件可以从多个地方获得。在本文中,我将使用FreeRADIUS(请参阅参考资料获得相关链接),但Cisco Secure Access Control Server(ACS)是一种集中式用户访问控制框架,可用于跨UNIX和Windows上多个Cisco设备的用户管理,并支持Cisco特有的协议TACACS+(据说在支持TACACS+的设备上可拥有更多的特性)。
FreeRADIUS是来自开放源码社区的一种强大的Linux上的RADIUS服务器,可用于如今的分布式和异构计算环境。FreeRADIUS 1.0.2支持LDAP、MySQL、PostgreSQL和Oracle数据库,并与诸如EAP和Cisco LEAP之类的网络协议兼容。FreeRADIUS目前被部署在很多大型生产网络系统中。
下面的步骤演示如何在Red Hat Enterprise Linux Advanced Server 3.0上安装和测试FreeRADIUS 1.0.2:
清单1安装和测试FreeRADIUS
tar-zxvf freeradius-1.0.2.tar.gz- extract it with gunzip and tar
./configure
make
make install- run this command as root
radiusd or- start RADIUS server
radiusd-X- start RADIUS server in debug mode
radtest test test localhost 0 testing123- test RADIUS server
如果radtest收到一个响应,则表明FreeRADIUS服务器工作正常。
同时我还推荐另一种免费工具,那就是NTRadPing,它可用于测试来自Windows客户机的验证和授权请求。它可以显示从RADIUS服务器发回的详细的响应,例如属性值。
现在让我们来配置FreeRADIUS。
配置FreeRADIUS
RADIUS服务器的配置包括对服务器、客户机和用户的配置(都是用于验证和授权)。出于不同的需要,对RADIUS服务器可以有不同的配置。幸运的是,大多数配置都是类似的。
*配置服务器
FreeRADIUS配置文件通常位于/etc/raddb文件夹下。首先,我们需要像下面这样修改radiusd.conf文件。
清单2修改radiusd.conf
1) Global settings:
log_auth= yes- log authentication requests to the log file
log_auth_badpass= no- don't log passwords if request rejected
log_auth_goodpass= no- don't log passwords if request accepted
2) LDAP Settings:
modules{
ldap{
server="bluepages.ibm.com"- the hostname or IP address of the LDAP server
port= 636- encrypted communications
basedn="ou=bluepages,o=ibm.com"- define the base Distinguished Names(DN),
- under the Organization(O)"ibm.com",
- in the Organization Unit(OU)"bluepages"
filter="(mail=%u)"- specify search criteria
base_filter="(objectclass=person)"- specify base search criteria
}
authenticate{- enable authentication against LDAP
Auth-Type LDAP{
ldap
}
参数被设为使用 IBM BluePages,这是LDAP服务的一个实例。对于其他LDAP服务器,参数可能有所不同。
*配置客户机
客户机是在/etc/raddb/clients.conf文件中配置的。有两种方式可用于配置RADIUS客户机。您可以按IP subnet将NAS分组(清单 3),或者可以按主机名或 IP地址列出NAS(清单4)。如果按照第二种方法,可以定义shortname和nastype。
清单3按IP subnet将NAS分组
client 192.168.0.0/24{
secret= mysecret1- the"secret" should be the same as configured on NAS
shortname= mylan- the"shortname" can be used for logging
nastype= cisco- the"nastype" is used for checkrad and is optional
}
清单4按主机名或 IP地址列出 NAS
client 192.168.0.1{
secret= mysecret1
shortname= myserver
nastype= other
}
*为验证而配置用户
文件/etc/raddb/user包含每个用户的验证和配置信息。
清单5/etc/raddb/user文件
1) Authentication type:
Auth-Type:= LDAP- authenticate against LDAP
Auth-Type:= Local, User-Password=="mypasswd"
- authenticate against the
- password set in/etc/raddb/user
Auth-Type:= System- authenticate against the system password file
-/etc/passwd or/etc/shadow
2) Service type:
Service-Type= Login,- for administrative login
*为授权而配置用户
下面的验证服务器属性-值对(AV)应该为用户授权而进行配置。在验证被接受后,这个属性-值对被返回给NAS,作为对管理员登录请求的响应。
对于Cisco路由器,有不同的权限级别:
级别1是无特权(non-privileged)。提示符是 router>,这是用于登录的默认级别。
级别15是特权(privileged)。提示符是 router#,这是进入 enable模式后的级别。
级别2到14在默认配置中不使用。
下面的命令可以使一个用户从网络访问服务器登录,并获得对EXEC命令的立即访问:
cisco-avpair="shell:priv-lvl=15"
下面的代码处理相同的任务,这一次是对于Cisco无线访问点:
Cisco:Avpair="aironet:admin-capability=write+snmp+ident+firmware+admin"
任何功能组合都和这个属性一起返回:
Cisco:Avpair="aironet:admin-capability=ident+admin"
Cisco:Avpair="aironet:admin-capability=admin"
请与 Cisco联系,以获得关于这些命令的更多信息。
配置网络访问服务器
接下来我们将配置NAS,首先是配置一个Cisco路由器,然后轮到一个Cisco WAP。
对于Cisco IOS 12.1路由器,我们将启用AAA,然后配置验证、授权和记帐。
清单6启用AAA
aaa new-model
radius-server host 192.168.0.100
radius-server key mysecret1
AAA在路由器上应该被启用。然后,指定能为 NAS提供 AAA服务的 RADIUS服务器的列表。加密密钥用于加密 NAS和 RADIUS服务器之间的数据传输。它必须与 FreeRADIUS上配置的一样。
清单7配置验证
aaa authentication login default group radius local
line vty 0 4
login authentication default
在这个例子中,网络管理员使用 RADIUS验证。如果 RADIUS服务器不可用,则使用 NAS的本地用户数据库密码。
清单8配置授权
aaa authorization exec default group radius if-authenticated
允许用户在登录到 NAS中时运行 EXEC shell。
清单9配置记帐
aaa accounting system default start-stop group radius
aaa accounting network default start-stop group radius
aaa accounting connection default start-stop group radius
aaa accounting exec default stop-only group radius
aaa accounting commands 1 default stop-only group radius
aaa accounting commands 15 default wait-start group radius
必须对路由器进行特别的配置,以使之发送记帐记录到RADIUS服务器。使用清单9中的命令记录关于NAS系统事件、网络连接、输出连接、EXEC操作以及级别1和级别15上的命令的记帐信息。
这样就好了。现在让我们看看为Cisco无线访问点而进行的配置。下面的配置适用于带有Firmware 12.01T1的Cisco 1200 Series AP。如图2中的屏幕快照所示,您:
*输入服务器名或 IP地址和共享的秘密。
*选择“Radius”作为类型,并选中“User Authentication”。
图2为WAP配置NAS
实际上,在这里您还可以配置EAP Authentication,使FreeRADIUS可用于验证无线LAN的一般用户。
记帐:工作中的RADIUS
现在所有配置都已经完成,FreeRADIUS服务器可以开始记录NAS发送的所有信息,将该信息存储在/var/log/radius/radius.log文件中,就像这样:
清单10/var/log/radius/radius.log文件
Thu Mar 3 21:37:32 2005: Auth: Login OK: [David](from client
mylan port 1 cli 192.168.0.94)
Mon Mar 7 23:39:53 2005: Auth: Login incorrect: [John](from
client mylan port 1 cli 192.168.0.94)
详细的记帐信息被存放在/var/log/radius/radacct目录中。清单11表明,David在2005年3月4日19:40到19:51这段时间里从 192.168.0.94登录到了路由器192.168.0.1。这么详细的信息对于正在调查安全事故以及试图维护易于审计的记录的管理员来说无疑是一大帮助。
清单11 RADIUS提供的记帐细节示例
Fri Mar 4 19:40:12 2005
NAS-IP-Address= 192.168.0.1
NAS-Port= 1
NAS-Port-Type= Virtual
User-Name="David"
Calling-Station-Id="192.168.0.94"
Acct-Status-Type= Start
Acct-Authentic= RADIUS
Service-Type= NAS-Prompt-User
Acct-Session-Id="00000026"
Acct-Delay-Time= 0
Client-IP-Address= 192.168.0.1
Acct-Unique-Session-Id="913029a52dacb116"
Timestamp= 1109936412
Fri Mar 4 19:51:17 2005
NAS-IP-Address= 192.168.0.1
NAS-Port= 1
NAS-Port-Type= Virtual
User-Name="David"
Calling-Station-Id="192.168.0.94"
Acct-Status-Type= Stop
Acct-Authentic= RADIUS
Service-Type= NAS-Prompt-User
Acct-Session-Id="00000026"
Acct-Terminate-Cause= Idle-Timeout
Acct-Session-Time= 665
Acct-Delay-Time= 0
Client-IP-Address= 192.168.0.1
Acct-Unique-Session-Id="913029a52dacb116"
Timestamp= 1109937077
结束语
通过遵循本文中列出的简单步骤,您可以建立一个Remote Authentication Dial-In User Service服务器,该服务器使用一个外部的LDAP服务器来处理为网络安全问题而进行的验证、授权和记帐。本文提供了以下内容来帮助您完成此任务:
*对RADIUS和LDAP服务器以及AAA概念的介绍。
*一个融入了安装和配置任务的场景。
*关于安装和配置RADIUS服务器的说明。
*关于配置网络访问服务器的细节。
* RADIUS将提供和管理的详细信息的一个示例。
这些指示可以快速确保受保护的数据只能由Linux系统上已授权的实体访问。