当前位置:Linux教程 - Email - email - SENDMAIL安装体会

email - SENDMAIL安装体会

SENDMAIL安装体会
2004-04-23 15:18 pm
来自:Linux文档
现载:Www.8s8s.coM
地址:无名

安装完DNS就会有telebyte.com.cn这个主机域。

现在SENAMAILV8不要太多的配置:有几点可许对配置有用telent localhost 25可以,
但是服务器没开25端口,从网络无法访问,

sendmail不是由xinetd控制,从哪里打开25口呢?
telnet localhost 25

默认情况SMTP仅绑定127.0.0.1,因此不能从

网络访问,要打开SMTP,如下即可:
vi /etc/sendmail.cf
找到:
# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1,

Name=MTA
添加:
# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=192.168.1.18
Name=MTA
保存!
设置sendmail服务器
当前linux的各个发布都将sendmail作为缺省地邮件服务器软件,实现正常的邮件收发。
编辑/etc/sendmail.cw文件,添加本机的域名到该文件中,这里以telebyte.com.cn为例:
www.telebyte.com.cn
mail.telebyte.com.cn
telebyte.com.cn


然后重新启动sendmail邮件服务器:

/etc/rc.d/init.d/sendmail restart

  
SAMBA体会
Samba:体会:
(一)、Linux服务器端的配置
(1)安装任何发行版本,并选中Samba。
(2)用userconf命令新建一个用户如:wsz ,设定其主目录为:/home/wsz.。设定其密码(如:wsz)。组我设的是FTP,在RedHat6.0上好象应设为xfs才行。
(3)修改/etc/smb.conf为:

#======================= Global Settings =====================================
[global]

netbios name=gblinux
workgroup = MYGROUP
server string = Shf''s Server
security = user
printing =lprng
printcap name = /etc/printcap
load printers = yes

#============================ Share Definitions ==============================
[homes]
path = /home(*****)
comment = Home Directories
browseable = yes
writable = yes
read only =no
####################xufengadd#################################
[homes]
# path = /home
comment = Home Directories
browseable = yes
writable = yes
read only = no
# valid users = %S
create mode = 0664
directory mode = 0775
####################################################################
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes

[public]
comment = Public Stuff
path = /home/wsz
public = yes
writable = yes
printable = no
write list = @staff
###########################xufeng add 7/3##################
[public]
comment = Public Stuff
path = /public
writable = yes
printable = no
create mode = 0664
directory mode = 0775
write list = @staff
guest ok = yes
#####################enb########################
~

(3)再来一个“samba restart”就可以了!
  一、TCP/IP网络配置
  TurboLinux对网卡的支持还是比较好的,大部分网卡在安装时就 可以自动检测出来。如果你的运气不好,Linux找不到你的网卡,可 以进入X Windows,以root身分运行linuxconf命令。这是一个图形界 面的配置工具,大部分Linux设置可以通过点点鼠标简单完成。首先 在其中找到Basic Host Setting一项,在这一项中设置网卡的类型、 I/O port和IRQ,一般没有列出的ISA卡可以用ne,PCI可以用ne或 ne2k-pci,接着设置IP地址和子网掩码,只要和局域网中的其他机 器设在同一个子网中就可以了。如果要连接外部网络还要设置网关。 关于这方面的问题还可以参看TurboLinux的帮助文件。
  二、Samba服务器的配置
  Samba是一个文件和打印服务器,它最重要的特点就是可以和 Win98/NT共享文件,还可以为其提供打印服务。简而言之,就是可以 在Win98的网上邻居中看到Linux服务器,并能存取其中的文件。
  关于Samba的配置都存放在/etc/smb.conf中,其中多数可用它的 默认设置,我就不再多说了,但有几处是非改不可的:
  ;smb.conf文件中采用类似于Windows ini文件的方;式,以 []为一段的开始,每一行为一个等号表达式,;注释以打头。其中 每一个[]都表示一个共享目录;(global和printer)除外[global] 中是一些通用的配;置,其中对Win98机器比较重要的一个就是; guestaccount,表示不用密码的用户名,如果在Win98;中以这个用 户名登录,访问public=yes的目录就;不用密码,但不能访问 public=no的目录。
  [global]
  guest account = guest
  ;Workgroup要改为Win98网络配置中所设的名字,;不然网上邻 居中就找不到这台机器
  workgroup = Samba Server
  [homes]
  ;因为Win98不区分大小写,而Linux却区分大小写,;所以要加 入以下两行
  preserve case = yes
  short preserve case = yes
  [myshare]
  ;如果要设置一个目录只对几个用户有读写权限,只;要加入以 下一行每两个用户名中间以空格分开
  valid users = user1 user2 user3
  设置完smb.conf文件后,运行turboservice,把samba服务设置 为开机自动启动。
  以后Linux开机后,就可以在Win98的网上邻居中找到它了。
  以上只是用Win98共享Linux资源,那么如何用Linux共享Win98中 的文件呢?其实更简单,只要用命令smbmount。例如:要共享另一台 主机ntserver中sharefile目录,用户名是student,密码是1234,只 要打入命令:
  smbmount′ tserversharefile′-U student-P 1234 /mnt/sharefile
  以后/mnt/sharefile就成了ntserver中的sharefile目录,如果 没有用户名和密码-P和-U参数就可以省掉了。
  三、Apache服务器的配置
  你是不是也想在局域网上发布主页呢?那就选择Apache吧。
用Apache安装Http Server是最简单不过的了,只要用 turboservice命令把Web Server服务启动即可。它的默认主页是 /home/httpd/index.html,把它替换成自已的主页,然后在浏览器中 输入Linux主机的IP地址看看有什么反应。   只用IP地址实在太单调了,想不想试试用www.cpcw.com这样Cool 的域名,那就看看下面的介绍吧。假设Linux主机的局域网中的IP地 址是192.1.1.1,打开/etc/hosts文件,找到192.1.1.1对应的那一行, 把主机的别名改为www.cpcw.com。然后把局域网中另一台Win98机器 设置为通过局域网连接,并在局域网代理服务器设置一栏中填入Linux 主机的IP地址。最后打开IE,输入www.cpcw.com,享受一下你的劳动 成果吧!:)

双机互联
pc机网卡 1 2 3 4 5 6 7 8
pc机网卡 3 6 1 4 5 2 7 8 :

PC机9针串口   2 3 4 5 6 7 8  
PC机9针串口   3 2 6 5 4 8 7  

PC机9针串口   2 3 4 5 6 7 8  
PC机25针串口  2 3 6 7 20 5 4  

PC机25针串口   2 3 4 5 6 7 20  
PC机25针串口   3 2 5 4 20 7 6
SSH文档
什么是SSH?
SSH (Secure Shell)是一套安全的网络连接程序,它可以让你通过网络连接至其他电脑,在其他电脑上执行程序,在电脑之间拷贝文件,它甚至可以提供给你更安全的X连接,而以上的这些连接,都是在编码的保护下完成的。也就是说安装了SSH后就可以将不安全的Telnet和FTP给关掉了。
为什么要使用SSH
 上面所说的各项功能,早期BSD所提供的r指令(rsh, rlogin, rcp)几乎都能完成,那为什么要用SSH呢?理由就在于r指令所提供的连接并没有经过编码加密,有心人只要使用合适的工具就能够截下你所输入的每一个字,包括密码。如果你利用X protocol在远端机器执行X程序,也可以截下你传输的资料,当然也包括密码。而SSH就针对了这些弱点做了弥补,对所传输的资料加以编码。
SSH2与SSH1
 SSH2对SSH1的程序码做了大幅度的改写,根据SSH公司的说法, SSH2有98%的程序码和SSH1的不一样。除了SSH1所提供的RSA法之外,SSH2也提供了另外的公开金匙编码法以及金匙交换法, SSH2预设采用DSA编码以及Diffie-Hellman金匙交换法。此外,更提供了SFTP,使我们能在FTP方面也得到安全的保障。

1、 下载完后将文件解压缩
 tar zxvf SSH-1.2.31.tar.gz
2、 开始编译,安装
 cd SSH-1.2.31;
./configure;
 make;
make install;
3、 编辑/etc/rc.d/rc.local加入/usr/sbin/SSHd以便开机自动启动。
4、 完成
如果你是2台Linux要相连就都要装这个程序,如果是Windows系统要连Linux的话就要安装for Winxx的程序。Winxx部分请自己试试。
  Linux的使用方法
/usr/bin/SSH -l username 187.136.5.1
然后输入密码,连进去后是一般的文字界面,就可以开始用了。
另外,SSH可以直接使用root登入。
注:如果你要对连接进来的IP做限制的话可以编辑/etc/hosts.deny和/etc/hosts.allow
  示例如下:
  /etc/hosts.deny:
 ALL:ALL
 #禁止所有IP使用所有的服务
 /etc/hosts.allow:
 SSHd:111.222.333.444
 #开放111.222.333.444使用SSH连接
 利用SSH来ftp
1、 Linux对Linux传文件:
 上传:scp wrong.php [email protected]:
 这时会问你密码,输入密码吧。
说明:
scp是指令
wrong.php是本地端的文件名
[email protected]是远端的用户(user name)和IP
最后记住那个冒号一定要加,那是远端的home directory。
下传:scp [email protected]:wrong.php .
说明:
  用scp将[email protected]目录的wrong.php拷贝到目前的目录(就是那个.)
2、 Win对Linux传文件:   
ls:就是dir
et:下传文件
put:上传文件
exit:退出ftp程序
指令:psftp-x86 187.136.5.1
这时会问名字密码和要不要产生加密键值,然后再用put和get来上下传文件。
什么是 RSA/DSA 认证?
SSH,特别是 OpenSSH(完全免费的 SSH 的实现),是一个不可思议的工具。类似于 telnet 或 rsh,ssh 客户程序也可以用于登录到远程机器。所要求的只是该远程机器正在运行 sshd,即 ssh 服务器进程。但是,与 telnet 不同的是,ssh 协议非常安全。加密数据流,确保数据流的完整性,甚至安全可靠的进行认证它都使用了专门的算法。
然而,虽然 ssh 的确很棒,但还是有一个 ssh 功能组件常常被忽略、被危险的误用或者简直就是被误解。这个组件就是 OpenSSH 的 RSA/DSA 密钥认证系统,它可以代替 OpenSSH 缺省使用的标准安全密码认证系统。
OpenSSH 的 RSA 和 DSA 认证协议的基础是一对专门生成的密钥,分别叫做专用密钥和公用密钥。使用这些基于密钥的认证系统的优势在于:在许多情况下,有可能不必手工输入密码就能建立起安全的连接。
尽管基于密钥的认证协议相当安全,但是当用户并不完全了解这些简化操作对安全性的影响,为了方便而使用某些简化操作时,就会出现问题。本文中,我们将详细讨论如何正确使用 RSA 和 DSA 认证协议,使我们不会冒任何不必要的安全性风险。在我的下一篇文章里,我将向您展示如何使用 ssh-agent 隐藏已经解密的专用密钥,还将介绍 keychain,它是 ssh-agent 的前端,可以在不牺牲安全性的前提下提供许多便利。
使用说明
Usage: ssh [options] host [command]
Options:
-l user Log in using this user name.(用户名)
-n Redirect input from /dev/null.
-a Disable authentication agent forwarding.
-x Disable X11 connection forwarding.
-i file Identity for RSA authentication (default: ~/.ssh/identity).
-t Tty; allocate a tty even if command is given.
-v Verbose; display verbose debugging messages.
-V Display version number only.
-q Quiet; don't display any warning messages.
-f Fork into background after authentication.
-e char Set escape character; ``none'' = disable (default: ~).
-c cipher Select encryption algorithm: ``idea'', ``blowfish'', ``3des''
-p port Connect to this port. Server must be on the same port.
-P Don't use privileged source port.
-L listen-port:host:port Forward local port to remote address
-R listen-port:host:port Forward remote port to local address
These cause ssh to listen for connections on a port, and
forward them to the other side by connecting to host:port.
-C Enable compression.
-g Allow remote hosts to connect to local port forwardings
-o 'option' Process the option as if it was read from a configuration file.

Linux下IP巧设置
如何实现ip伪装?假设你现在有一台Linux主机通过DDN专线连接到Internet上,有自己的ip和域名,同时还与20台win95工作站通过HUB连接,你现在完全可以通过ip伪装来实现这20台win95工作站同时上网。

单纯的IP Masq其实很简单。如果你用的是2.0.x 和 2.1.xx 核心,在保证核心内支持IP forward 和 IP Masq的前提下,在/etc/ppp/if-up里最后加一句(假设你的私用网络地址是192.168.x.x): /sbin/ipfwadm -F -a m -S 192.168.0.0/16 -D 0.0.0.0/0 。如果像有些人用的是2.1.10x,ipfwadm就不能用了,换成了ipchains。方法一样:/sbin/ipchains -A forward -j MASQ -s 192.168.0.0/16。然后,让你的LAN上的所有主机的缺省网关都指向这台做Masq的Linux机器就可以了。ipchains需要另外下载,可以在互联网上查找。

如果客户机是win95的话,在DHCP里设一下就全搞定了。当然,每台客户机的DNS要指向ISP的DNS,或者简单点,在Masq机器上开一个 cache only和forward only的DNS服务器也行。如果你的DNS已经搞定,用squid也非常简单,缺省的配置文件/etc/squid.conf就可以工作(也许需要把 http的端口号改为8080),而且可以实现cache的功能,使用效果不错,方法极为简单。
第一步:设置好你的PPP,保证在Linux box上可以上网。第二步:运行squid -z建立cache目录。第三步:如果需要,修改/etc/squid.conf,缺省的就挺好,可改可不改,要改的话,把http_port从3128 改到8080。
这样,前期工作一切就绪。以后需要上网时,接通PPP,运行squid,你就有了一个挺不错的proxy了,客户端设置好proxy。如果你把pppd升级到2.3.5,就可以配置成“按需拨号”,再配上ISDN的话,和专线估计也就没什么差别了。
缺省网关: 192.168.0.1(Linux box)IP Masq:(Linux box)defaultrouter : a.b.c.d /sbin/ipfwadm -F -a m -S 192.168.0.0/16 -D 0.0.0.0/0 或者 /sbin/ipchains -A forward -j MASQ -s 192.168.0.0/16squid: 什么也不用设置
这里的192.168...只是个例子,换成你自己的地址范围。服务器的缺省网关当然是路由器了! 别的机器的缺省网关必须是服务器(Linux box)。

在 Linux服务器上装两块网卡,一块接内部网,给个192.168之类的保留地址,另一个直接和路由器接起来,用你的正式地址,这样你只需要两个合法的 IP就够了。这样做安全性应该好些。如果把那个路由器干掉,直接用Linux接专线作路由器,你就只需要一个合法IP了。

如果只申请到有限的IP,但有多人访问INTERNE,如何用Linux实现呢?

两种方式:
1.proxy(即squid或其他proxy)
2.ipmasq + squid
如果你只要http、ftp,用1就可以了。


Linux时间服务器
在局域网中设置Linux时间服务器


一 概述:
本文主要目的是简单介绍如何在局域网上设置一台Linux时间服务器与互联网上的时间服务器同步并且如何使局域网上其它Linux及Windows客户向该Linux时间服务器同步。
二 服务器设置
首先说明我们如何设置LAN上的时间服务器同互联网上的第一或者第二级时间服务器同步来保证精确的时间。
1. 如何让LAN的时间服务器(第三级)与互联网上的时间服务器(第一或者第二级)同步
a. XNTP包,包含在大多数Linux CD里面。
主页在http://www.eecis.udel.edu/~ntp/
你只需要在/etc/ntp.conf中设置server和driftfile两项参数即可,server项你可以从上面的主页中找公共的时间服务器域名。例如
server rackety.udel.edu
server umd1.umd.edu
server lilben.tn.cornell.edu
driftfile /etc/ntp/drift
然后启动XNTPD后台程序
#/etc/rc.d/init.d/xntpd start
b. "getdate",随Slackware而来的小程序,推荐使用,大多数时候,我们对时间的精确性要求不是非常的苛刻,所以这个程序完全够用而且很方便。
下载ftp://metalab.unc.edu/pub/Linux/system/network/misc/getdate_rfc868-1.2.tar.gz
然后设置下面的scripts 取名为/usr/local/sbin/get-date.sh
#!/bin/sh
timehosts="otc2.psu.edu wwvb.erg.sri.com ntp.nasa.gov"
if /usr/local/bin/getdate -adjust 10 200 $timehosts > /dev/null; then
/sbin/clock --systohc
fi
现在可以设置cronjob每小时进行同步
0 0-23 * * * /usr/local/sbin/get-date.sh
2. 如何使得LAN上其它linux/windows客户与该台服务器同步
a. 如果该台时间服务器也是局域网上的Samba服务器,则对Windows来说,不需要安装任何时间同步软件,因为windows客户可以用
net time imeserver /set /yes来与之同步。可以放该命令在startup
中自次启动windows时自动同步
net time 命令利用Netbios over TCP/IP协议来同步时间
但仅对Windows客户有效,Linux客户无法使用。
b. 如果服务器运行NTP后台服务程序,例如前面讲的XNTPD,则对
Windows:
可以安装下面的两个免费软件与服务器同步
http://home.att.net/~Tom.Horsley/ntptime.html (ntptime)
单一的后台程序,自动寻找LAN上的NTP服务器,可在控制面板中设置同步条件
http://nettime.sourceforge.net/ (Nettime)
支持NTP(udp/123) , time(udp/37), time(tcp/37)
Linux:
则可以用ntpdate(随XNTPD而来)运行作为cronjob 与 该局域网上的时间服务器同步。
c. 如果该台服务器使用getdate与互联网上时间服务器同步,则
你可以设置/etc/inetd.conf,打开time udp和time tcp服务,让linux/windows客户与之同步。对windows,你可以使用象上面介绍的Nettime软件。
对Linux客户,你可以用rdate -s 运行作为cronjob 与之同步
time stream tcp nowait root internal
time dgram udp wait.200 root internal
Linux下的rdate -s 命令使用time (37/tcp) , Nettime 你可以指定37/tcp或者37/udp
三 FAQ
1. 怎样确定net time用的是Netbios over TCP/IP?
在Samba服务器上运行tcpdump
# /usr/sbin/tcpdump host 192.168.1.3
(192.168.1.3是windows客户端的IP地址)
2. 怎样确定windows NTP客户ntptime正在后台与Linux NTP时间服务器同步?
在NTP服务器上运行
# tcpdump udp port 123
查看输出
默认是每五分钟ntptime向NTP服务器查询一次,你可以从主页上下载控制面板中的控制条件设置程序


DNS问答集
DNS配置问答集


Q:最近,我在公司的三台电脑上安装了REDHAT5.2(132.20.10.22),REDHAT6.0(132.20.10.254),WIN95 (132.20.10.23)
想实验一下LINUX下的DNS,将REDHAT6.0(132.20.10.254)作为DNS服务器,按照说明配置好,然后在REDHAT5.2 (132.20.10.22)上启动NSLOOKUP 进行测试,显示如下内容:
*** Cant find server name for address 132.20.10.254:server failed
*** Default servers are not available
在REDHAT6.0(132.20.10.254)上启动NSLOOKUP 进行测试,显示同样的出错内容.
这俩台电脑互相能PING通,在REDHAT6.0(132.20.10.254)上已经启动了DNS服务进程,用NDC STOP关掉,然后用NDC START启动,还是不行,没着了,下面我将相关的配置文件列示如下,请各位有经验的朋友解答一下:

我安装DNS纯属局域网自用,我随便起了个域名UNICOMJN.UNICOMSD,且REDHAT6.0(132.20.10.254)的 HOSTNAME为LDNS.UNICOMJN.UNICOMSD,REDHAT5.2(132.20.10.22)的HOSTNAME为 CLIENT.UNICOMJN.UNICOMSD

REDHAT6.0(132.20.10.254)的配置文件如下:

[oracle@ldns /etc]$ more /etc/resolv.conf
search unicomjn.unicomsd
nameserver 132.20.10.254

[oracle@ldns /etc]$ more /etc/named.conf

options {
directory "/var/named";
};
//因为DNS纯属局域网自用,不连接INTERNET,所以将根域文件注释掉了
//zone "." {
// type hint;
// file "named.ca";
//};
zone "0.0.127.in-addr.arpa"{
type master;
file "named.127.0.0";
};
zone "10.20.132.in-addr.arpa"{
type master;
file "named.132,20.10";
};
zone "unicomjn.unicomsd"{
type master;
file "named.my";
};

[oracle@ldns /etc]$ more /etc/name.my //正向解析主文件
@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
7200 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds
client A 132.20.10.22
win95 A 132.20.10.23

[oracle@ldns named]$ more named.132.20.10//反向解析主文件

@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
14400 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds

NS ldns.unicomjn.unicomsd
22 PTR client.unicomjn.unicomsd.
23 PTR win95.unicomjn.unicomsd.

[oracle@ldns named]$ more named.127.0.0

@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
14400 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds

IN NS ldns.unicomjn.unicomsd
1 IN PTR localhost

REDHAT5.2(132.20.10.22)的配置文件如下:

[oracle@client /etc]$ more /etc/resolv.conf
search unicomjn.unicomsd
nameserver 132.20.10.254

这里先谢谢各位了!!

A:
你的做dns服务器的配置中加入对本机器的设置如
ns 10.*.*.*
并且在查询的机器上设定域名服务器指想你的linux box 即:
oracle@ldns /etc]$ more /etc/name.my //正向解析主文件
@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
7200 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds
client A 132.20.10.22
win95 A 132.20.10.23
A:
oracle@ldns /etc]$ more /etc/name.my //正向解析主文糄NS配置问答集(1)
Q:最近,我在公司的三台电脑上安装了REDHAT5.2(132.20.10.22),REDHAT6.0(132.20.10.254),WIN95 (132.20.10.23)
想实验一下LINUX下的DNS,将REDHAT6.0(132.20.10.254)作为DNS服务器,按照说明配置好,然后在REDHAT5.2 (132.20.10.22)上启动NSLOOKUP 进行测试,显示如下内容:
*** Cant find server name for address 132.20.10.254:server failed
*** Default servers are not available
在REDHAT6.0(132.20.10.254)上启动NSLOOKUP 进行测试,显示同样的出错内容.
这俩台电脑互相能PING通,在REDHAT6.0(132.20.10.254)上已经启动了DNS服务进程,用NDC STOP关掉,然后用NDC START启动,还是不行,没着了,下面我将相关的配置文件列示如下,请各位有经验的朋友解答一下:

我安装DNS纯属局域网自用,我随便起了个域名UNICOMJN.UNICOMSD,且REDHAT6.0(132.20.10.254)的 HOSTNAME为LDNS.UNICOMJN.UNICOMSD,REDHAT5.2(132.20.10.22)的HOSTNAME为 CLIENT.UNICOMJN.UNICOMSD

REDHAT6.0(132.20.10.254)的配置文件如下:

[oracle@ldns /etc]$ more /etc/resolv.conf
search unicomjn.unicomsd
nameserver 132.20.10.254

[oracle@ldns /etc]$ more /etc/named.conf

options {
directory "/var/named";
};
//因为DNS纯属局域网自用,不连接INTERNET,所以将根域文件注释掉了
//zone "." {
// type hint;
// file "named.ca";
//};
zone "0.0.127.in-addr.arpa"{
type master;
file "named.127.0.0";
};
zone "10.20.132.in-addr.arpa"{
type master;
file "named.132,20.10";
};
zone "unicomjn.unicomsd"{
type master;
file "named.my";
};

[oracle@ldns /etc]$ more /etc/name.my //正向解析主文件
@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
7200 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds
client A 132.20.10.22
win95 A 132.20.10.23

[oracle@ldns named]$ more named.132.20.10//反向解析主文件

@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
14400 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds

NS ldns.unicomjn.unicomsd
22 PTR client.unicomjn.unicomsd.
23 PTR win95.unicomjn.unicomsd.

[oracle@ldns named]$ more named.127.0.0

@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
14400 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds

IN NS ldns.unicomjn.unicomsd
1 IN PTR localhost

REDHAT5.2(132.20.10.22)的配置文件如下:

[oracle@client /etc]$ more /etc/resolv.conf
search unicomjn.unicomsd
nameserver 132.20.10.254

这里先谢谢各位了!!

A:
你的做dns服务器的配置中加入对本机器的设置如
ns 10.*.*.*
并且在查询的机器上设定域名服务器指想你的linux box 即:
oracle@ldns /etc]$ more /etc/name.my //正向解析主文件
@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
7200 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds
client A 132.20.10.22
win95 A 132.20.10.23
A:
oracle@ldns /etc]$ more /etc/name.my //正向解析主文件
你的正向解析主文件放错位置了,应是/etc/named/named.my
================================================================
Q:
想请教几个有关配置DNS的问题:
1,用netconf配置DNS和用named.boot有什么区别
2,配置好named.boot及相应的几个文件后,DNS服务好像没有起做用,而用netconf配置后,一切ok,不知是什么。
3,当用netconf配置dns 后,将named.boot 改名,dns服务仍然作用,那么 named.boot纠竟有没有用?
A:
DNS重启的命令为:
#ndc restart
配置后,执行以上命令。
A:
如果你用的是Redhad5.2以上版本,那么named.boot
不起作用,应该修改named.conf
A:
bind 4用/etc/named.boot,bind 8用/etc/named.conf.

可以通过namedboot-conf.pl来转换.

我没有用netconf配置过DNS,都是手工,抱歉不知道netconf是否好用.

======================================================================
Q:
我的机器上安装了redhat6.1,ip是10.10.10.126,机器名是nt_domino,hosts文件的内容是:
127.0.0.1 localhost
10.10.10.126 nt_domino
我在本机上运行ping nt_domino,正常!

Q:
我的DNS本地域ok 但是nslookup测试default server address 显示 0.0.0.0,为什么??其实我的Dns server 是一个内部地址10.0.0.111,我没有外部地址.
Q:
我公司是局域网 没有标准网址,只有内部地址,
通过路由器和专线连接到一个信息中心,信息中心作为我上一级代理,信息中心再连接到
ISP,现在,我公司的PC 需要信息中心的服务器代理才能上网.我想建立我们自己的DNS服务器,不知道是不是
要把cache去掉?forword怎么配? 在named.conf中,
没有注册域名行不行?
A:
我公司是局域网 没有标准网址,只有内部地址,
通过路由器和专线连接到一个信息中心,信息中心作为我上一级代理,信息中心再连接到
ISP,现在,我公司的PC 需要信息中心的服务器代理才能上网.我想建立我们自己的DNS服务器,不知道是不是
要把cache去掉?forword怎么配? 在named.conf中,
没有注册域名行不行?

如果你的ISP没有把domain包过虑掉就可以。
向ISP申请添加DNS服务器,要在ISP的DNS中添加指向你的DNS记录。

A:
没有必要去掉cache吧!!!
在named.conf中加上:
options {
forward first;
forwarders {
你的上一级DNS的IP;
};
};
在局域网中没有必要注册域名,因为Internet上的真实IP 是无法方问到你们的,
Q:
谢谢你吸烟的酒瓶
我已经可以解析外面的域名了.但是 default
DNS adress 还是 0.0.0.0 ,为什么?
A:
能把你的详细配置文件说一下吗?
也可email给我:[email protected]
A:
outside and inside dns ok bur default server
address is 0.0.0.0 why? my dns server is
10.0.0.111

named.conf

options {
directory "/var/named";
forward first;
forwarders{
170.169.5.71;
};
};
zone "." {
type hint;
file "named.ca";
};
zone "slott.com.cn"{
type master;
file "named.hosts";
notify no;
};
zone "0.0.127.in-addr.arpa"{
type master;
file "named.local";
};
zone "0.0.10.in-addr.arpa"{
type master;
file "named.rev";
notify no;
};

named.hosts
@ IN SOA dns1.slott.com.cn. root.dns1.slott.com.cn. (
2000060802 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS dns1.slott.com.cn.
@ IN MX 10 dns1.slott.com.cn.
dns1 IN A 10.0.0.111
slott1 IN A 10.0.0.1
ects IN A 10.0.0.80
liangliang IN A 10.0.0.121

named.rev
@ IN SOA dns1.slott.com.cn. root.dns1.slott.com.cn. (
2000061201 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS dns1.slott.com.cn.
@ 11 IN PTR slott1.slott.com.cn.
@ 80 IN PTR ects.slott.com.cn.
@ 199 IN PTR duty.slott.com.cn.
@ 100 IN PTR gateway.slott.com.cn.
80 IN PTR ects.slott.com.cn.
1 IN PTR slott1.slott.com.cn.
121 IN PTR liangliang.slott.com.cn.
111 IN PTR dns1.slott.com.cn.

named.local
@ IN SOA dns1.slott.com.cn. root.dns1.slott.com.cn. (
1997022700 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS dns1.slott.com.cn.
1 IN PTR localhost.
Q:
我在一次非完全安装后,用kpackage bind.x.x。rpm包后,每配置之前也是如此。
要命的是没有/etc/name.boot和/etc/name.conf等文件。不知咋办。
A:
用rpm -ivh --force bind.x.xx.rpm强行重新安装
=========================================================================
Q:
请问在Turbo Linux4.0下:
eg, www.myserver.com
www.mysite.com
ns.mysite.com 是域名服务器为myserver.com提供域名解析服务。
ns.mysite.com设置
/etc/resolv.cof , /etc/named.boot,
/var/named/mysite.db, /var/named/mysite.rev
同样,我为myserver.com IN NS ns.mysite.com.
不知道还缺什么,一般会犯什么样的错误?

还有,我在ns.mysite.com 上运行 nslookup
却说不能发现 host/domain ,好象ns server 不正常。但域内的主机却能被访问。

Q:
问题: PING WWW.CLIENT.COM 等了较长时间后,出现 unknow Host www.client.com.

譬如: NS1.MYSITE.COM
NS2.MYSITE.COM

两域名为 www.mysite.com 提供解析。
而且需要为 www.client.com 提供域名解析服务。

通过NSLOOKUP 检查,NS1.MYSITE.COM 服务正常。
并能为该域名下的主机解析(如 mail.mysite.com ,searh.mysite.com 等)

现为某企业(client.com)提供虚拟主机,我设置如下,
================
/etc/named.boot
=================
...
primary mysite.com mysite.db
primary 200.105.202.in-addr.arpa mysite.rev

primary client.com client.db
...

=========
client.db

@ IN SOA client.com. hostmaster.client.com.
{DNS问答集(2)
Q:
我的DNS本地域ok 但是nslookup测试default server address 显示 0.0.0.0,为什么??其实我的Dns server 是一个内部地址10.0.0.111,我没有外部地址.
Q:
我公司是局域网 没有标准网址,只有内部地址,
通过路由器和专线连接到一个信息中心,信息中心作为我上一级代理,信息中心再连接到
ISP,现在,我公司的PC 需要信息中心的服务器代理才能上网.我想建立我们自己的DNS服务器,不知道是不是
要把cache去掉?forword怎么配? 在named.conf中,
没有注册域名行不行?
A:
我公司是局域网 没有标准网址,只有内部地址,
通过路由器和专线连接到一个信息中心,信息中心作为我上一级代理,信息中心再连接到
ISP,现在,我公司的PC 需要信息中心的服务器代理才能上网.我想建立我们自己的DNS服务器,不知道是不是
要把cache去掉?forword怎么配? 在named.conf中,
没有注册域名行不行?

如果你的ISP没有把domain包过虑掉就可以。
向ISP申请添加DNS服务器,要在ISP的DNS中添加指向你的DNS记录。

A:
没有必要去掉cache吧!!!
在named.conf中加上:
options {
forward first;
forwarders {
你的上一级DNS的IP;
};
};
在局域网中没有必要注册域名,因为Internet上的真实IP 是无法方问到你们的,
Q:
谢谢你吸烟的酒瓶
我已经可以解析外面的域名了.但是 default
DNS adress 还是 0.0.0.0 ,为什么?
A:
能把你的详细配置文件说一下吗?
也可email给我:[email protected]
A:
outside and inside dns ok bur default server
address is 0.0.0.0 why? my dns server is
10.0.0.111

named.conf

options {
directory "/var/named";
forward first;
forwarders{
170.169.5.71;
};
};
zone "." {
type hint;
file "named.ca";
};
zone "slott.com.cn"{
type master;
file "named.hosts";
notify no;
};
zone "0.0.127.in-addr.arpa"{
type master;
file "named.local";
};
zone "0.0.10.in-addr.arpa"{
type master;
file "named.rev";
notify no;
};

named.hosts
@ IN SOA dns1.slott.com.cn. root.dns1.slott.com.cn. (
2000060802 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS dns1.slott.com.cn.
@ IN MX 10 dns1.slott.com.cn.
dns1 IN A 10.0.0.111
slott1 IN A 10.0.0.1
ects IN A 10.0.0.80
liangliang IN A 10.0.0.121

named.rev
@ IN SOA dns1.slott.com.cn. root.dns1.slott.com.cn. (
2000061201 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS dns1.slott.com.cn.
@ 11 IN PTR slott1.slott.com.cn.
@ 80 IN PTR ects.slott.com.cn.
@ 199 IN PTR duty.slott.com.cn.
@ 100 IN PTR gateway.slott.com.cn.
80 IN PTR ects.slott.com.cn.
1 IN PTR slott1.slott.com.cn.
121 IN PTR liangliang.slott.com.cn.
111 IN PTR dns1.slott.com.cn.

named.local
@ IN SOA dns1.slott.com.cn. root.dns1.slott.com.cn. (
1997022700 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS dns1.slott.com.cn.
1 IN PTR localhost.
Q:
我在一次非完全安装后,用kpackage bind.x.x。rpm包后,每配置之前也是如此。
要命的是没有/etc/name.boot和/etc/name.conf等文件。不知咋办。
A:
用rpm -ivh --force bind.x.xx.rpm强行重新安装
=========================================================================
Q:
请问在Turbo Linux4.0下:
eg, www.myserver.com
www.mysite.com
ns.mysite.com 是域名服务器为myserver.com提供域名解析服务。
ns.mysite.com设置
/etc/resolv.cof , /etc/named.boot,
/var/named/mysite.db, /var/named/mysite.rev
同样,我为myserver.com IN NS ns.mysite.com.
不知道还缺什么,一般会犯什么样的错误?

还有,我在ns.mysite.com 上运行 nslookup
却说不能发现 host/domain ,好象ns server 不正常。但域内的主机却能被访问。

Q:
问题: PING WWW.CLIENT.COM 等了较长时间后,出现 unknow Host www.client.com.

譬如: NS1.MYSITE.COM
NS2.MYSITE.COM

两域名为 www.mysite.com 提供解析。
而且需要为 www.client.com 提供域名解析服务。

通过NSLOOKUP 检查,NS1.MYSITE.COM 服务正常。
并能为该域名下的主机解析(如 mail.mysite.com ,searh.mysite.com 等)

现为某企业(client.com)提供虚拟主机,我设置如下,
================
/etc/named.boot
=================
...
primary mysite.com mysite.db
primary 200.105.202.in-addr.arpa mysite.rev

primary client.com client.db
...

=========
client.db

@ IN SOA client.com. hostmaster.client.com.
{...}

IN NS MYSITE.COM

www IN A 202.105.200.60

==========
反向解析省..。

恳请你的帮助,谢谢!
========================================================
Q:
谁能说一下,反向域名解析,即IP->hostname在哪些场合下用到?
如果DNS系统中没有反向域名解析数据库,会对系统造成什么影响?
A:
有用,前一段时间去国外某站点,他就需要根据域名反向查找
安全管理
江苏电信IP网自1996年5月份正式对社会开放以来,用户发展迅速,截至2001年11月底,接入用户数达到了323万。为了满足用户持续快速发展的需要,我们的网络经历了大大小小数次扩容,规模不断扩大,目前省内骨干网总带宽达90G,出省带宽10G。

随着网络的发展,我们面临的网络滥用和攻击等安全事件越来越多,并且攻击者采用的手段也越来越复杂多样。在江苏电信IP网发展的初期,我们主要是通过加固主机系统来提高安全性,当然仅靠技术人员手工检查、分析、跟踪是远远不够的。1999年二期扩容工程中,增加了防火墙、一次性口令认证系统、安全扫描器等。但是总的来说,采用的技术手段及部署范围仍比较有限。2001年,江苏电信IP网组织实施了三期扩容,并把网络安全作为重要部分独立实施。

电信IP网面临的主要安全问题

目前,我们还没有手段可以较全面地收集和统计IP网上形形色色的网络滥用和攻击。从我们日常碰到和处理的问题来看,主要有几个方面:

网上存在大量的端口扫描试探、发送垃圾邮件等网络滥用行为;

发现部分主机由于未及时安装补丁程序或设置不当或口令强度不够等原因而被黑客入侵,并被安装后门程序;

拒绝服务攻击发生频率不高,但一般影响较大;

蠕虫病毒传播和泛滥,如红色代码、尼姆达等,危害不可小视。

安全防范的范围和原则

作为网络运营商,由于用户众多,我们的主要精力还是考虑如何尽可能地保护由江苏电信负责维护管理、对外提供服务的网络设备和主机系统,同时对一些重要的网络安全问题,我们也尽力通知用户,并帮助解决。

在解决安全问题时,我们注意遵循安全、效率及易用性兼顾的原则。安全的目标是为了保证业务的连续性,保证数据的完整性、保密性和可用性。但是安全、效率及易用性常常是矛盾的,实施过于复杂的安全措施一方面会造成效率的下降,另一方面对人员素质的要求也会增加,而人员的培训和成长需要过程,因此需要均衡,使得既能达到安全目标的最低要求,又能不对效率产生显著影响,操作使用上不过于繁琐。

同时,我们还本着节约的原则。加强安全必然带来成本的增加,这既包括产品的采购、升级、服务费用,也包括管理成本。我们在资金和人力上的投入应该和被保护的资产价值相适应,在考虑采取什么样的措施保护哪些对象的时候,我们主要考虑被保护对象的重要性、威胁发生的可能性及可能产生的后果,然后选用适当的技术措施以达到可以接受的安全等级。

主要技术措施

目前,江苏电信IP网已初步建立了一套网络安全技术防御体系,从保护对象上看,重点是针对认证计费系统、网管系统、集中邮件系统,同时还包括DNS服务器和 WWW服务器,对于接入服务器、路由器、交换机等,则主要通过合理设置来提高安全性;从功能上看,主要包括六个系统:一次性口令认证系统,防火墙系统,主机访问控制系统,安全扫描系统,集中日志管理系统,入侵检测系统等。

一次性口令认证系统

好的口令是网络安全中最简单和最重要的部分,据CERT估计,约80%的网络安全问题是由于不良的口令所造成的。而我们的管理员管理着众多的网络设备和主机系统,在日常工作中需要经常登录进行维护,即使管理员的口令设置符合安全性的原则,但是仍存在口令在一个更改周期内反复使用的问题,而在telnet过程中,用户名、口令以明文方式在网上传送,因而时刻面临着被窃听的威胁。为此,我们选用了ACE Server及SecurID构筑一次性口令认证系统,它提供了一种较为强壮的集中式、双要素的认证方案。也就是说,用户在登录时,不仅要知道PIN码,还要有口令牌。口令牌上的口令每分钟改变一次,这样有效地减少了口令丢失、泄露所带来的危害。
一次性口令认证系统的实现方案如下:
1、ACE Server配备实施异地备份,一主一备,防止单点故障。
2、使用范围包括路由器、核心局域网交换机及集中邮件系统、认证计费系统、WWW服务器、DNS服务器。其中路由器、交换机采用Radius认证方式,与ACE Server配合实现一次性口令认证。

防火墙

防火墙是安全系统的重要组成部分。我们在省中心部署了CheckPoint Firewall-1和NetScreen-1000硬件防火墙,禁止普通用户从Internet访问我们的网管网,但网管网可通过防火墙访问 Internet以进行软件升级等操作;同时对进出邮件系统的数据流量进行检查、过滤,保证邮件系统的安全性。

主机访问控制系统

在一个基本的UNIX和Windows NT系统中,超级用户具有对系统无限大的访问权限,可全面访问应用软件、数据和审计记录。这样可能会造成:

1、一旦超级用户权限被网络攻击者取得,系统可被完全控制,并且可以轻松地掩盖痕迹。
2、掌握超级用户权限的用户可能由于误操作等原因破坏操作系统和应用软件的一些关键配置和属性。

基于此,我们在全省认证计费系统、集中电子邮件服务系统和省中心DNS服务器上部署了CA公司的eTrust Access Control。eTrust Access Control是一种主机安全保护软件,eTrust Access Control在加强对用户口令及违反安全策略的管理、细化对文件的访问控制的同时,能限制超级用户的权限,保护主机资源的安全。

安全扫描系统

对于一个大型网络来说,由于涉及网络设备和主机系统众多,并且经常需要调整修改配置,必须具备一种方便、快捷的手段帮助安全员全面地、动态地进行弱点评估,掌握网络系统存在哪些安全漏洞,以进行修补,提高自身免疫力。而安全扫描软件无疑是一个较好的工具,它不仅可以弥补安全员在安全知识和经验上的不足,还可以有效缩短漏洞发现时间,减少攻击成功的可能性。我们选用了Internet Scanner,它通过对网络安全弱点的检测与分析,发现存在的安全漏洞,做出安全评估,并能提出相应的改进建议。网络扫描器可将风险分为高、中、低三个等级,并且根据不同的需要生成报表,从以企业管理者角度来分析的报告到为消除风险而给出的详尽的逐步指导方案均可以体现在报表中。

集中日志管理系统

网络设备和主机系统的日志可以帮助管理员监控和分析合法用户的越权行为和可疑行为以及非法用户的访问尝试等行为。然而,这些日志一般分散存放在各个设备上,采用覆盖方式存储,不便于管理员检查审计,也不便于保存归档,同时,还容易被入侵者在攻击时篡改。现状常常是系统虽然启用了日志功能却形同虚设,管理员基本无暇顾及数量众多的网络设备和主机系统日志,安全得不到保证。

为了解决这些问题,我们建立了一套集中日志管理系统,根据日志的来源,对重要网络设备和主机系统的日志进行分类,集中地收集、存储、备份,然后再进行分析、查询。这样,一方面大大提高了工作效率,有利于及时发现问题,另一方面,日志的异地存放使得攻击者更加难以掩盖痕迹,有利于管理员事后分析追踪。

入侵检测系统

在考虑网络安全问题的对策时,我们不仅要考虑如何保护我们的网络,还要考虑如何实时检测网络上的威胁,并及时地作出响应。为此,我们选用了 RealSecure System Agent和Network Engine。其中,实时系统代理 (RealSecure System Agent)是一种基于主机的实时入侵检测产品,一旦发现对主机的入侵,RealSecure可以中断用户进程和挂起用户账号来阻止进一步入侵,同时它还会发出警报、记录事件等以及执行用户自定义动作。实时系统代理 (RealSecure System Agent)还具有伪装功能,可以将服务器不开放的端口进行伪装,进一步迷惑可能的入侵者,提高系统的防护时间。实时网络传感器 (RealSecure Network Engine) 是基于网络的实时入侵检测产品,在网络中分析可疑的数据而不会影响数据在网络上的传输。网络入侵检测RealSecure Network Engine在检测到网络入侵后,除了可以及时切断攻击行为之外,还可以动态地调整防火墙的防护策略,使得防火墙成为一个动态的、智能的防护体系。

通过部署入侵检测系统,我们实现了以下功能:
1、在省网管中心和计费中心采用基于网络的入侵检测系统,对网络攻击进行在线实时监控、告警并能自动阻断部分攻击。
2、在全省集中电子邮件系统、DNS、WWW服务器上采用了基于主机的入侵检测系统。
3、对于全省WWW服务器,配置主页的自动恢复功能,即如果WWW服务器被攻破、主页被纂改,系统能够自动识别并把它恢复至事先设定的页面。
4、入侵检测系统与防火墙进行“互动”,即当入侵检测系统检测到网络攻击后,通知防火墙,由防火墙对攻击进行阻断。

同时在各地市节点使用sniffer软件作为系统安全监控的补充手段。

网络安全方面采取的主要管理措施

应该说,网络安全不仅仅是一个技术问题,实际上,从我们运行维护的经验来看,主要还是“人”的问题,因为最终是人在执行网络安全方面的各项规定和操作,这需要从管理、培训上循序渐进地做大量工作。这里,我们简单介绍一下江苏电信IP网在网络安全方面所采取的部分管理措施。

(一)及时对最新发现的重要安全漏洞和病毒发布通告,制定应对措施。我们通过订阅有关安全问题的邮件列表来及时了解安全方面的动态,一旦发现与江苏电信IP网运行系统有关的重大安全问题,就立即着手研究制定解决方案和步骤,并通知相关单位、部门以及用户。

(二)定期对网络进行安全扫描,动态掌握安全现状,发现漏洞及时修补。注意对扫描结果进行统计分析,据此发现网上存在的主要问题,并通过考核的方式督促相关单位尽快解决。

(三)注意对用户的安全宣传、教育,并签订安全协议,明确责任和义务。

这几年,有关安全方面的投诉越来越多,其中一个很重要的原因就是大多数用户安全意识比较薄弱,不知道什么行为是允许的,什么行为是禁止的。这也是今后江苏电信IP网网络安全工作中亟需加强的一个部分。

最后,我们还想在此呼吁,希望我国能尽快完善有关互联网安全方面的法律法规,对网络滥用、网络攻击等恶意行为进行规范,制定具体的惩治办法,以此来保护网络运营商的合法利益,也就是保护大部分合法用户的利益。

Linux安全手册
Linux 安全设置手册

本文讲述了如何通过基本的安全措施,使你的Linux系统变得可靠。

1、Bios Security
一定要给Bios设置密码,以防通过在Bios中改变启动顺序,而可以从软盘启动。
这样可以阻止别人试图用特殊的启动盘启动你的系统,还可以阻止别人进入Bios
改动其中的设置(比如允许通过软盘启动等)。

2、LILO Security
在“/etc/lilo.conf”文件中加入下面三个参数:time-
out,restricted,password。这三个参数可以使你的系统在启动lilo时就要求密
码验证。

第一步:
编辑lilo.conf文件(vi /etc/lilo.comf),假如或改变这三个参数:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
time-out=00 #把这行该为00
prompt
Default=linux
restricted #加入这行
password=<password> #加入这行并设置自己的密码
image=/boot/vmlinuz-2.2.14-12
label=linux
initrd=/boot/initrd-2.2.14-12.img
root=/dev/hda6
read-only

第二步:
因为"/etc/lilo.conf"文件中包含明文密码,所以要把它设置为root权限读取。
[root@kapil /]# chmod 600 /etc/lilo.conf

第三步:
更新系统,以便对“/etc/lilo.conf”文件做的修改起作用。
[Root@kapil /]# /sbin/lilo -v

第四步:
使用“chattr”命令使"/etc/lilo.conf"文件变为不可改变。
[root@kapil /]# chattr +i /etc/lilo.conf
这样可以防止对“/etc/lilo.conf”任何改变(以外或其他原因)

3、删除所有的特殊账户
你应该删除所有不用的缺省用户和组账户(比如lp, sync, shutdown, halt,
news, uucp, operator, games, gopher等)。
删除用户:
[root@kapil /]# userdel LP
删除组:
[root@kapil /]# groupdel LP

4、选择正确的密码
在选择正确密码之前还应作以下修改:
修改密码长度:在你安装linux时默认的密码长度是5个字节。但这并不够,要把
它设为8。修改最短密码长度需要编辑login.defs文件
(vi /etc/login.defs),把下面这行
PASS_MIN_LEN 5
改为
PASS_MIN_LEN 8
login.defs文件是login程序的配置文件。

5、打开密码的shadow支持功能:
你应该打开密码的shadow功能,来对password加密。使用
“/usr/sbin/authconfig”工具打开shadow功能。如果你想把已有的密码和组转
变为shadow格式,可以分别使用“pwcov,grpconv”命令。

6、root账户
在unix系统中root账户是具有最高特权的。如果系统管理员在离开系统之前忘记
注销root账户,系统会自动注销。通过修改账户中“TMOUT”参数,可以实现此
功能。TMOUT按秒计算。编辑你的profile文件(vi /etc/profile),
在"HISTFILESIZE="后面加入下面这行:
TMOUT=3600
3600,表示60*60=3600秒,也就是1小时。这样,如果系统中登陆的用户在一个
小时内都没有动作,那么系统会自动注销这个账户。你可以在个别用户的
“.bashrc”文件中添加该值,以便系统对该用户实行特殊的自动注销时间。
改变这项设置后,必须先注销用户,再用该用户登陆才能激活这个功能。

7、取消普通用户的控制台访问权限
你应该取消普通用户的控制台访问权限,比如shutdown、reboot、halt等命令。
[root@kapil /]# rm -f /etc/security/console.apps/<servicename>
<servicename>是你要注销的程序名。

8、取消并反安装所有不用的服务
取消并反安装所有不用的服务,这样你的担心就会少很多。察看
“/etc/inetd.conf”文件,通过注释取消所有你不需要的服务(在该服务项目
之前加一个“#”)。然后用“sighup”命令升级“inetd.conf”文件。
第一步:
更改“/etc/inetd.conf”权限为600,只允许root来读写该文件。
[Root@kapil /]# chmod 600 /etc/inetd.conf
第二步:
确定“/etc/inetd.conf”文件所有者为root。
第三步:
编辑 /etc/inetd.conf文件(vi /etc/inetd.conf),取消下列服务(你不需要
的):ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop-
3, finger, auth等等。把不需要的服务关闭可以使系统的危险性降低很多。
第四步:
给inetd进程发送一个HUP信号:
[root@kapil /]# killall -HUP inetd
第五步:
用chattr命令把/ec/inetd.conf文件设为不可修改,这样就没人可以修改它:
[root@kapil /]# chattr +i /etc/inetd.conf
这样可以防止对inetd.conf的任何修改(以外或其他原因)。唯一可以取消这个
属性的人只有root。如果要修改inetd.conf文件,首先要是取消不可修改性质:
[root@kapil /]# chattr -i /etc/inetd.conf
别忘了该后再把它的性质改为不可修改的。

9、TCP_WRAPPERS
使用TCP_WRAPPERS可以使你的系统安全面对外部入侵。最好的策略就是阻止所有
的主机(在"/etc/hosts.deny" 文件中加入"ALL: ALL@ALL, PARANOID" ),然
后再在"/etc/hosts.allow" 文件中加入所有允许访问的主机列表。
第一步:
编辑hosts.deny文件(vi /etc/hosts.deny),加入下面这行

ALL: ALL@ALL, PARANOID
这表明除非该地址包好在允许访问的主机列表中,否则阻塞所有的服务和地址。
第二步:
编辑hosts.allow文件(vi /etc/hosts.allow),加入允许访问的主机列表,比
如:
ftp: 202.54.15.99 foo.com
202.54.15.99和 foo.com是允许访问ftp服务的ip地址和主机名称。
第三步:
tcpdchk程序是tepd wrapper设置检查程序。它用来检查你的tcp wrapper设
置,并报告发现的潜在的和真实的问题。设置完后,运行下面这个命令:
[Root@kapil /]# tcpdchk

10、禁止系统信息暴露
当有人远程登陆时,禁止显示系统欢迎信息。你可以通过修改
“/etc/inetd.conf”文件来达到这个目的。
把/etc/inetd.conf文件下面这行:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
修改为:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
在最后加“-h”可以使当有人登陆时只显示一个login:提示,而不显示系统欢迎
信息。

11、修改“/etc/host.conf”文件
“/etc/host.conf”说明了如何解析地址。编辑“/etc/host.conf”文件
(vi /etc/host.conf),加入下面这行:

order bind,hosts

multi on

nospoof on
第一项设置首先通过DNS解析IP地址,然后通过hosts文件解析。第二项设置检测
是否“/etc/hosts”文件中的主机是否拥有多个IP地址(比如有多个以太口网
卡)。第三项设置说明要注意对本机未经许可的电子欺骗。

12、使“/etc/services”文件免疫
使“/etc/services”文件免疫,防止未经许可的删除或添加服务:
[root@kapil /]# chattr +i /etc/services

13、不允许从不同的控制台进行root登陆
"/etc/securetty"文件允许你定义root用户可以从那个TTY设备登陆。你可以编
辑"/etc/securetty"文件,再不需要登陆的TTY设备前添加“#”标志,来禁止从
该TTY设备进行root登陆。

14、禁止任何人通过su命令改变为root用户
su(Substitute User替代用户)命令允许你成为系统中其他已存在的用户。如果
你不希望任何人通过su命令改变为root用户或对某些用户限制使用su命令,你可
以在su配置文件(在"/etc/pam.d/"目录下)的开头添加下面两行:
编辑su文件(vi /etc/pam.d/su),在开头添加下面两行:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/Pam_wheel.so group=wheel
这表明只有"wheel"组的成员可以使用su命令成为root用户。你可以把用户添加
到“wheel”组,以使它可以使用su命令成为root用户。

15、Shell logging
Bash shell在“~/.bash_history”(“~/”表示用户目录)文件中保存了500条
使用过的命令,这样可以使你输入使用过的长命令变得容易。每个在系统中拥有
账号的用户在他的目录下都有一个“.bash_history”文件。bash shell应该保
存少量的命令,并且在每次用户注销时都把这些历史命令删除。
第一步:
“/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行确定所有用户的
“.bash_history”文件中可以保存的旧命令条数。强烈建议把把
“/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行的值设为一个较
小的数,比如30。编辑profile文件(vi /etc/profile),把下面这行改为:
HISTFILESIZE=30
HISTSIZE=30
这表示每个用户的“.bash_history”文件只可以保存30条旧命令。
第二步:
网管还应该在"/etc/skel/.bash_logout" 文件中添加下面这行"rm -f
$HOME/.bash_history" 。这样,当用户每次注销时,“.bash_history”文件都
会被删除。
编辑.bash_logout文件(vi /etc/skel/.bash_logout) ,添加下面这行:
rm -f $HOME/.bash_history

16、禁止Control-Alt-Delete 键盘关闭命令
在"/etc/inittab" 文件中注释掉下面这行(使用#):
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
改为:

为了使这项改动起作用,输入下面这个命令:
[root@kapil /]# /sbin/init q

17、给"/etc/rc.d/init.d" 下script文件设置权限
给执行或关闭启动时执行的程序的script文件设置权限。
[root@kapil/]# chmod -R 700 /etc/rc.d/init.d/*
这表示只有root才允许读、写、执行该目录下的script文件。

18、隐藏系统信息
在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版
本、内核版本、服务器的名称。对于黑客来说这些信息足够它入侵你的系统了。
你应该只给它显示一个“login:”提示符。
第一步:
编辑"/etc/rc.d/rc.local" 文件,在下面显示的这些行前加一个“#”,把输出
信息的命令注释掉。

you

reboot.


第二步:
删除"/etc"目录下的“isue.net”和"issue"文件:
[root@kapil /]# rm -f /etc/issue
[root@kapil /]# rm -f /etc/issue.net

19、禁止不使用的SUID/SGID程序
如果一个程序被设置成了SUID root,那么普通用户就可以以root身份来运行这
个程序。网管应尽可能的少使用SUID/SGID 程序,禁止所有不必要的SUID/SGID
程序。
查找root-owned程序中使用's'位的程序:
[root@kapil]# find / -type f ( -perm -04000 -o -perm -02000 ) -
exec ls -lg {} ;
用下面命令禁止选中的带有's'位的程序:
[root@kapil /]# chmod a-s [program]

根据上面这些安全指导方针设置后,系统管理员就会拥有一个基本安全的系统。
上面这些工作有些是个持续的过程,网管要不断进行这些工作,以保持系统的安
全性。

1. 日志简介

日志对于安全来说,非常重要,他记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志主要的功能有:审计和监测。他还可以实时的监测系统状态,监测和追踪侵入者等等。

在Linux系统中,有三个主要的日志子系统:

连接时间日志--由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。

进程统计--由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。

错误日志--由syslogd(8)执行。各种系统守护进程、用户程序和内核通过syslog(3)向文件/var/log/messages报告值得注意的事件。另外有许多UNIX程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。

常用的日志文件如下:

access-log 纪录HTTP/web的传输
acct/pacct 纪录用户命令
aculog 纪录MODEM的活动
btmp 纪录失败的纪录
lastlog 纪录最近几次成功登录的事件和最后一次不成功的登录
messages 从syslog中记录信息(有的链接到syslog文件)
sudolog 纪录使用sudo发出的命令
sulog 纪录使用su命令的使用
syslog 从syslog中记录信息(通常链接到messages文件)
utmp 纪录当前登录的每个用户
wtmp 一个用户每次登录进入和退出时间的永久纪录
xferlog 纪录FTP会话

utmp、 wtmp和lastlog日志文件是多数重用UNIX日志子系统的关键--保持用户登录进入和退出的纪录。有关当前登录用户的信息记录在文件utmp中;登录进入和退出纪录在文件wtmp中;最后一次登录文件可以用lastlog命令察看。数据交换、关机和重起也记录在wtmp文件中。所有的纪录都包含时间戳。这些文件(lastlog通常不大)在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长,除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循环使用。它通常由cron运行的脚本来修改。这些脚本重新命名并循环使用wtmp文件。通常,wtmp在第一天结束后命名为 wtmp.1;第二天后wtmp.1变为wtmp.2等等,直到wtmp.7。

每次有一个用户登录时,login程序在文件lastlog中察看用户的UID。如果找到了,则把用户上次登录、退出时间和主机名写到标准输出中,然后 login程序在lastlog中纪录新的登录时间。在新的lastlog纪录写入后,utmp文件打开并插入用户的utmp纪录。该纪录一直用到用户登录退出时删除。utmp文件被各种命令文件使用,包括who、w、users和finger。

下一步,login程序打开文件wtmp附加用户的utmp纪录。当用户登录退出时,具有更新时间戳的同一utmp纪录附加到文件中。wtmp文件被程序last和ac使用。

2. 具体命令

wtmp和utmp文件都是二进制文件,他们不能被诸如tail命令剪贴或合并(使用cat命令)。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。

who:who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。例如:who(回车)显示

chyang pts/0 Aug 18 15:06
ynguo pts/2 Aug 18 15:32
ynguo pts/3 Aug 18 13:55
lewis pts/4 Aug 18 13:35
ynguo pts/7 Aug 18 14:12
ylou pts/8 Aug 18 14:15

如果指明了wtmp文件名,则who命令查询所有以前的纪录。命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。

w:w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息。例如:w(回车)显示:3:36pm up 1 day, 22:34, 6 users, load average: 0.23, 0.29, 0.27

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
chyang pts/0 202.38.68.242 3:06pm 2:04 0.08s 0.04s -bash
ynguo pts/2 202.38.79.47 3:32pm 0.00s 0.14s 0.05 w
lewis pts/3 202.38.64.233 1:55pm 30:39 0.27s 0.22s -bash
lewis pts/4 202.38.64.233 1:35pm 6.00s 4.03s 0.01s sh /home/users/
ynguo pts/7 simba.nic.ustc.e 2:12pm 0.00s 0.47s 0.24s telnet mail
ylou pts/8 202.38.64.235 2:15pm 1:09m 0.10s 0.04s -bash

users:users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。例如:users(回车)显示:chyang lewis lewis ylou ynguo ynguo

last:last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。例如:

chyang pts/9 202.38.68.242 Tue Aug 1 08:34 - 11:23 (02:49)
cfan pts/6 202.38.64.224 Tue Aug 1 08:33 - 08:48 (00:14)
chyang pts/4 202.38.68.242 Tue Aug 1 08:32 - 12:13 (03:40)
lewis pts/3 202.38.64.233 Tue Aug 1 08:06 - 11:09 (03:03)
lewis pts/2 202.38.64.233 Tue Aug 1 07:56 - 11:09 (03:12)

如果指明了用户,那么last只报告该用户的近期活动,例如:last ynguo(回车)显示:

ynguo pts/4 simba.nic.ustc.e Fri Aug 4 16:50 - 08:20 (15:30)
ynguo pts/4 simba.nic.ustc.e Thu Aug 3 23:55 - 04:40 (04:44)
ynguo pts/11 simba.nic.ustc.e Thu Aug 3 20:45 - 22:02 (01:16)
ynguo pts/0 simba.nic.ustc.e Thu Aug 3 03:17 - 05:42 (02:25)
ynguo pts/0 simba.nic.ustc.e Wed Aug 2 01:04 - 03:16 1+02:12)
ynguo pts/0 simba.nic.ustc.e Wed Aug 2 00:43 - 00:54 (00:11)
ynguo pts/9 simba.nic.ustc.e Thu Aug 1 20:30 - 21:26 (00:55)

ac:ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连结的时间(小时),如果不使用标志,则报告总的时间。例如:ac(回车)显示:total 5177.47

ac -d(回车)显示每天的总的连结时间

Aug 12 total 261.87
Aug 13 total 351.39
Aug 14 total 396.09
Aug 15 total 462.63
Aug 16 total 270.45
Aug 17 total 104.29
Today total 179.02

ac -p (回车)显示每个用户的总的连接时间

ynguo 193.23
yucao 3.35
rong 133.40
hdai 10.52
zjzhu 52.87
zqzhou 13.14
liangliu 24.34
total 5178.24

lastlog: lastlog文件在每次有用户登录时被查询。可以使用lastlog命令来检查某特定用户上次登录的时间,并格式化输出上次登录日志 /var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示 "**Never logged**。注意需要以root运行该命令,例如:

rong 5 202.38.64.187 Fri Aug 18 15:57:01 +0800 2000
dbb **Never logged in**
xinchen **Never logged in**
pb9511 **Never logged in**
xchen 0 202.38.64.190 Sun Aug 13 10:01:22 +0800 2000

另外,可一加一些参数,例如,last -u 102将报告UID为102的用户;last -t 7表示限制上一周的报告。

3. 进程统计

UNIX 可以跟踪每个用户运行的每条命令,如果想知道昨晚弄乱了哪些重要的文件,进程统计子系统可以告诉你。它对还跟踪一个侵入者有帮助。与连接时间日志不同,进程统计子系统缺省不激活,它必须启动。在Linux系统中启动进程统计使用accton命令,必须用root身份来运行。Accton命令的形式 accton file,file必须先存在。先使用touch命令来创建pacct文件:touch /var/log/pacct,然后运行accton: accton /var/log/pacct。一旦accton被激活,就可以使用lastcomm命令监测系统中任何时候执行的命令。若要关闭统计,可以使用不带任何参数的accton命令。

lastcomm命令报告以前执行的文件。不带参数时,lastcomm命令显示当前统计文件生命周期内纪录的所有命令的有关信息。包括命令名、用户、tty、命令花费的CPU时间和一个时间戳。如果系统有许多用户,输入则可能很长。下面的例子:

crond F root ?? 0.00 secs Sun Aug 20 00:16
promisc_check.s S root ?? 0.04 secs Sun Aug 20 00:16
promisc_check root ?? 0.01 secs Sun Aug 20 00:16
grep root ?? 0.02 secs Sun Aug 20 00:16
tail root ?? 0.01 secs Sun Aug 20 00:16
sh root ?? 0.01 secs Sun Aug 20 00:15
ping S root ?? 0.01 secs Sun Aug 20 00:15
ping6.pl F root ?? 0.01 secs Sun Aug 20 00:15
sh root ?? 0.01 secs Sun Aug 20 00:15
ping S root ?? 0.02 secs Sun Aug 20 00:15
ping6.pl F root ?? 0.02 secs Sun Aug 20 00:15
sh root ?? 0.02 secs Sun Aug 20 00:15
ping S root ?? 0.00 secs Sun Aug 20 00:15
ping6.pl F root ?? 0.01 secs Sun Aug 20 00:15
sh root ?? 0.01 secs Sun Aug 20 00:15
ping S root ?? 0.01 secs Sun Aug 20 00:15
sh root ?? 0.02 secs Sun Aug 20 00:15
ping S root ?? 1.34 secs Sun Aug 20 00:15
locate root ttyp0 1.34 secs Sun Aug 20 00:15
accton S root ttyp0 0.00 secs Sun Aug 20 00:15

进程统计的一个问题是pacct文件可能增长的十分迅速。这时需要交互式的或经过cron机制运行sa命令来保持日志数据在系统控制内。sa命令报告、清理并维护进程统计文件。它能把/var/log/pacct中的信息压缩到摘要文件/var/log/savacct和/var/log/usracct 中。这些摘要包含按命令名和用户名分类的系统统计数据。sa缺省情况下先读它们,然后读pacct文件,使报告能包含所有的可用信息。sa的输出有下面一些标记项:

avio--每次执行的平均I/O操作次数
cp--用户和系统时间总和,以分钟计
cpu--和cp一样
k--内核使用的平均CPU时间,以1k为单位
k*sec--CPU存储完整性,以1k-core秒
re--实时时间,以分钟计
s--系统时间,以分钟计
tio--I/O操作的总数
u--用户时间,以分钟计

例如:

842 173.26re 4.30cp 0avio 358k
2 10.98re 4.06cp 0avio 299k find
9 24.80re 0.05cp 0avio 291k ***other
105 30.44re 0.03cp 0avio 302k ping
104 30.55re 0.03cp 0avio 394k sh
162 0.11re 0.03cp 0avio 413k security.sh*
154 0.03re 0.02cp 0avio 273k ls
56 31.61re 0.02cp 0avio 823k ping6.pl*
2 3.23re 0.02cp 0avio 822k ping6.pl
35 0.02re 0.01cp 0avio 257k md5sum
97 0.02re 0.01cp 0avio 263k initlog
12 0.19re 0.01cp 0avio 399k promisc_check.s
15 0.09re 0.00cp 0avio 288k grep
11 0.08re 0.00cp 0avio 332k awk

用户还可以根据用户而不是命令来提供一个摘要报告。例如sa -m显示如下:

885 173.28re 4.31cp 0avk
root 879 173.23re 4.31cp 0avk
alias 3 0.05re 0.00cp 0avk
qmailp 3 0.01re 0.00cp 0avk

4. Syslog设备

Syslog已被许多日志函数采纳,它用在许多保护措施中--任何程序都可以通过syslog 纪录事件。Syslog可以纪录系统事件,可以写到一个文件或设备中,或给用户发送一个信息。它能纪录本地事件或通过网络纪录另一个主机上的事件。

Syslog 设备依据两个重要的文件:/etc/syslogd(守护进程)和/etc/syslog.conf配置文件,习惯上,多数syslog信息被写到 /var/adm或/var/log目录下的信息文件中(messages.*)。一个典型的syslog纪录包括生成程序的名字和一个文本信息。它还包括一个设备和一个优先级范围(但不在日之中出现)。

每个syslog消息被赋予下面的主要设备之一:

LOG_AUTH--认证系统:login、su、getty等
LOG_AUTHPRIV--同LOG_AUTH,但只登录到所选择的单个用户可读的文件中
LOG_CRON--cron守护进程
LOG_DAEMO