Gman! 的个人资料史前巨兽 嗷嗷啊嗷~照片日志列表 工具 帮助

史前巨兽 嗷嗷啊嗷~

修身.齐家.治国.平天下 正心.诚意.致知.格物
1月8日

SYN flood网络攻击的原理及其防御方法

作者: 来源: 冰盾科技 日期: 2006-8-6 9:38

http://www.janker.org/hacker/47.html

摘要 

  介绍了SYN Flood攻击的基本原理,详细地描述了目前几种比较有效的两种防御措施:SYN-cookie技术和地址状态监控技术。

关键词   SYN Flood攻击  拒绝服务攻击  SYN cookie

  1 SYN Flood攻击介绍:

  拒绝服务攻击(Denial of Service,DoS)是目前比较有效而又非常难于防御的一种网络攻击方式,它的目的就是使服务器不能够为正常访问的用户提供服务。所以,DoS对一些紧密依靠互联网开展业务的企业和组织带来了致命的威胁。

  SYN Flood是最为有效和流行的一种DoS攻击形式。它利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的资源,从而不能够为正常用户提供服务。

  1.1 TCP连接建立的过程

  要掌握SYN Flood攻击的基本原理,必须先介绍TCP的三次握手机制。
  TCP三次握手过程如下:
  1)客户端向服务器端发送一个SYN置位的TCP报文,包含客户端使用的端口号和初始序列号x;

  2)服务器端收到客户端发送来的SYN报文后,向客户端发送一个SYN和ACK都置位的TCP报文,包含确认号为x+1和服务器的初始序列号y;

  3)


TCP客户端
客户端端口
(1024-65535)
 
TCP服务器端

服务器端口
(1-1023)
SYN
SYN/ACK
ACK

  客户端收到服务器返回的SYN+ACK报文后,向服务器返回一个确认号为y+1序号为x+1的ACK报文,一个标准的TCP连接完成。如图1所示:

body.clientHeight)this.width=body.clientHeight" border=0>
 
 
 
1.2 攻击原理
  在SYN Flood攻击中,黑客机器向受害主机发送大量伪造源地址的TCP SYN报文,受害主机分配必要的资源,然后向源地址返回SYN+ACK包,并等待源端返回ACK包,如图2所示。由于源地址是伪造的,所以源端永远都不会返回ACK报文,受害主机继续发送SYN+ACK包,并将半连接放入端口的积压队列中,虽然一般的主机都有超时机制和默认的重传次数,但怯捎诙丝诘陌肓佣恿械某ざ仁怯邢薜模绻欢系南蚴芎χ骰⑺痛罅康腡CP SYN报文,半连接队列就会很快填满,服务器拒绝新的连接,将导致该端口无法响应其他机器进行的连接请求,最终使受害主机的资源耗尽。

body.clientHeight)this.width=body.clientHeight" border=0>

 TCP客户端
客户端端口
(1024-65535)
 
TCP服务器端
 
服务器端口
(1-1023)
SYN
SYN/ACK
 
伪造源地址

  2  几种防御技术

  SYN Flood攻击给互联网造成重大影响后,针对如何防御SYN Flood攻击出现了几种比较有效的技术。

2.1   SYN-cookie技术

  一般情况下,当服务器收到一个TCP SYN报文后,马上为该连接请求分配缓冲区,然后返回一个SYN+ACK报文,这时形成一个半连接。SYN Flood正是利用了这一点,发送大量的伪造源地址的SYN连接请求,而不完成连接。这样就大量的消耗的服务器的资源。

  SYN-cookie技术针对标准TCP连接建立过程资源分配上的这一缺陷,改变了资源分配的策略。当服务器收到一个SYN报文后,不立即分配缓冲区,而是利用连接的信息生成一个cookie,并将这个cookie作为将要返回的SYN+ACK报文的初始序列号。当客户端返回一个ACK报文时,根据包头信息计算cookie,与返回的确认序列号(初始的序列号+1)的前24位进行对比,如果相同,则是一个正常连接,然后,分配资源,建立连接。

  该技术的巧妙之点在于避免了在连接信息未完全到达前进行资源分配,使SYN Flood攻击的资源消耗失效。实现的关键之处在于cookie的计算。cookie的计算应该做到包含本次连接的状态信息,使攻击者不能伪造cookie。cookie的计算过程如下:

  1)服务器收到一个SYN包后,计算一个消息摘要mac:
mac = MAC(A,k);
MAC是密码学中的一个消息认证码函数,也就是满足某种安全性质的带密钥的hash函数,它能够提供cookie计算中需要的安全性。
A为客户和服务器双方的IP地址和端口号以及参数t的串联组合:
A = SOURCE_IP || SOURCE_PORT || DST_IP || DST_PORT || t
K为服务器独有的密钥;
时间参数t为32比特长的时间计数器,每64秒加1;

  2)生成cookie:
cookie = mac(0:24):表示取mac值的第0到24比特位;

  3)设置将要返回的SYN+ACK报文的初始序列号,设置过程如下:
    i.              高24位用cookie代替;
   ii.              接下来的3比特位用客户要求的最大报文长度MMS代替;
   iii.              最后5比特位为t mod 32。
  客户端收到来自服务器SYN+ACK报文后,返回一个ACK报文,这个ACK报文将带一个cookie(确认号为服务器发送过来的SYN ACK报文的初始序列号加1,所以不影响高24位),在服务器端重新计算cookie,与确认号的前24位比较,如果相同,则说明未被修改,连接合法,然后,服务器完成连接的建立过程。

  SYN-cookie技术由于在连接建立过程中不需要在服务器端保存任何信息,实现了无状态的三次握手,从而有效的防御了SYN Flood攻击。但是该方法也存在一些弱点。由于cookie的计算只涉及了包头的部分信心,在连接建立过程中不在服务器端保存任何信息,所以失去了协议的许多功能,比如,超时重传。此外,由于计算cookie有一定的运算量,增加了连接建立的延迟时间,因此,SYN-cookie技术不能作为高性能服务器的防御手段。通常采用动态资源分配机制,当分配了一定的资源后再采用cookie技术,Linux就是这样实现的。还有一个问题是,当我们避免了SYN Flood攻击的同时,同时也提供了另一种拒绝服务攻击方式,攻击者发送大量的ACK报文,使服务器忙于计算验证。尽管如此,在预防SYN Flood攻击方面,SYN-cookie技术仍然是一种有效的技术。

2.2  地址状态监控的解决方法

  地址状态监控的解决方法是利用监控工具对网络中的有关TCP连接的数据包进行监控,并对监听到的数据包进行处理。处理的主要依据是连接请求的源地址。

每个源地址都有一个状态与之对应,总共有四种状态:
初态:任何源地址刚开始的状态;
NEW状态:第一次出现或出现多次也不能断定存在的源地址的状态;
GOOD状态:断定存在的源地址所处的状态;
BAD状态:源地址不存在或不可达时所处的状态。
具体的动作和状态转换根据TCP头中的位码值决定:

  1)监听到SYN包,如果源地址是第一次出现,则置该源地址的状态为NEW状态;如果是NEW状态或BAD状态;则将该包的RST位置1然后重新发出去,如果是GOOD状态不作任何处理。

  2)监听到ACK或RST包,如果源地址的状态为NEW状态,则转为GOOD状态;如果是GOOD状态则不变;如果是BAD状态则转为NEW状态;如果是BAD状态则转为NEW状态。

  3)监听到从服务器来的SYN ACK报文(目的地址为addr),表明服务器已经为从addr发来的连接请求建立了一个半连接,为防止建立的半连接过多,向服务器发送一个ACK包,建立连接,同时,开始计时,如果超时,还未收到ACK报文,证明addr不可达,如果此时addr的状态为GOOD则转为NEW状态;如果addr的状态为NEW状态则转为BAD状态;如果为addr的状态为BAD状态则不变。
状态的转换图如图3所示:

body.clientHeight)this.width=body.clientHeight" border=0>

初态
GOOD
NEW
BAD
ACK/RST
SYN
ACK/RST
 
ACK包确认超时
ACK/RST
 
ACK包确认超时

下面分析一下基于地址状态监控的方法如何能够防御SYN Flood攻击。


  1)对于一个伪造源地址的SYN报文,若源地址第一次出现,则源地址的状态为NEW状态,当监听到服务器的SYN+ACK报文,表明服务器已经为该源地址的连接请求建立了半连接。此时,监控程序代源地址发送一个ACK报文完成连接。这样,半连接队列中的半连接数不是很多。计时器开始计时,由于源地址是伪造的,所以不会收到ACK报文,超时后,监控程序发送RST数据包,服务器释放该连接,该源地址的状态转为BAD状态。之后,对于每一个来自该源地址的SYN报文,监控程序都会主动发送一个RST报文。

  2)对于一个合法的SYN报文,若源地址第一次出现,则源地址的状态为NEW状态,服务器响应请求,发送SYN+ACK报文,监控程序发送ACK报文,连接建立完毕。之后,来自客户端的ACK很快会到达,该源地址的状态转为GOOD状态。服务器可以很好的处理重复到达的ACK包。
从以上分析可以看出,基于监控的方法可以很好的防御SYN Flood攻击,而不影响正常用户的连接。

  3   小结

  本文介绍了SYN Flood攻击的基本原理,然后详细描述了两种比较有效和方便实施的防御方法:SYN-cookie技术和基于监控的源地址状态技术。SYN-cookie技术实现了无状态的握手,避免了SYN Flood的资源消耗。基于监控的源地址状态技术能够对每一个连接服务器的IP地址的状态进行监控,主动采取措施避免SYN Flood攻击的影响。这两种技术是目前所有的防御SYN Flood攻击的最为成熟和可行的技术。
 
 
参考文献
1.   颜学雄,王清贤,李梅林.  SYN Flood攻击原理与预防方法.  计算机应用,2000
2.   孙  曦,朱晓妍,王育林. DDoS下的TCP洪流攻击及对策. 网络安全技术与应用,2004
3.   李  磊,赵永祥,陈常嘉. TCP SYN Flooding原理及其应对策略. 网络与应用,2003
4.   陈  波. SYN Flood攻击的原理、实现与防范. 计算机应用与研究,2003

10月23日

CACTI Installation and Configuration

CACTI  Installation and Configuration
#LastUpdated:2006-10-23
#Version:0.0.1
#Compatible: Redhat AS Linux /FC series
#Comment:个人研习类文档,非企业配置规范,非企业安全规范.
#By:Gman!
###### Download Source ######
mkdir-p /opt/distfiles/src
cd /opt/distfiles;
wget ......pkgs......
#将如下所需要的包解压到/opt/distfiles/src下;逐一安装.
mysql-4.1.15.tar.gz
httpd-2.0.55.tar.gz
php-4.4.1.tar.gz
cacti-0.8.6h.tar.gz

rrdtool-1.2.15.tar.gz  (需要如下两个包的支持)
  - libart_lgpl-devel-2.3.16-2.1.i386.rpm
  - libpng-devel-1.2.2-22.i386.rpm
net-snmp-5.1.2-11.i386.rpm (需要如下两个包的支持)
  - net-snmp-libs-5.1.2-11.i386.rpm
  - lm_sensors-2.8.7-2.i386.rpm
Net-SNMP的开发包和工具包,如果可以安装在系统上,则不需要安装net-snmp-tar.gz包
net-snmp-devel-5.1.1-2.i386.rpm
net-snmp-utils-5.1.1-2.i386.rpm
[net-snmp-5.2.1.tar.gz]
/////////////////////////////////////////////////////////////////

######## Install MySQL ########
groupadd mysql
useradd -g mysql mysql
cd /opt/distfiles;
tar -zxf mysql-4.1.15.tar.gz -C src/
cd /opt/distfiles/src/mysql-4.1.15
 ./configure  --prefix=/usr/local/mysql --enable-assembler \
   --with-charset=gb2312 --with-mysqld-ldflags=-all-static \
   --without-debug
make && make install
### Init MySQL ###
#复制MySQL配置文件
cp support-files/my-medium.cnf /etc/my.cnf
#初始化数据库
/usr/local/mysql/bin/mysql_install_db --user=mysql   
#修正目录权限
chown -R root  /usr/local/mysql ;                                                      
chown -R mysql /usr/local/mysql/var ;                                
chgrp -R mysql /usr/local/mysql ;
#启动数据库
/usr/local/mysql/bin/mysqld_safe --user=mysql &
#查看进程及端口
ps axuww |grep mysql;netstat -nlp ;
#更改mysql root 密码
/usr/local/mysql/bin/mysqladmin -u root password MYSQLPASSWD
######## End Of Install MySQL ########
 
######## Install Apache2 ########
cd ../..
tar -zxf  httpd-2.0.55.tar.gz -C src/
cd /opt/distfiles/src/httpd-2.0.55
./configure  --prefix=/usr/local/apache2 --enable-module=so --enable-module=setenvif \
--enable-module=rewrite --enable-rewrite=shared --enable-proxy=shared --with-mpm=prefork \
--enable-so --enable-auth-anon --enable-file-cache=shared --enable-cache=shared \
--enable-disk-cache=shared --enable-mem-cache=shared
make && make install
######## End Of Install Apache2 ########

######## Install PHP4 and Config httpd.conf ########
cd ../..
tar -zxf php-4.4.1.tar.gz -C src/
cd /opt/distfiles/src/php-4.4.1
 
./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/local/mysql \
--enable-sockets \
--with-zlib-dir=/usr/include \
--with-gd
make && make install
#创建apache web根目录
mkdir -p /opt/data/www
vi /usr/local/apache2/conf/httpd.conf
#查看是否有如下行:
LoadModule php4_module        modules/libphp4.so
#改DocumentRoot
DocumentRoot  /opt/data/www
#添加如下行:
AddType application/x-httpd-php .php
#添加index.php
DirectoryIndex index.php index.html  index.htm index.shtml
#启动apache
/usr/local/apache2/bin/apachectl start
#查看进程及端口
ps axuww |grep httpd;netstat -nlp ;
######## End Of Install PHP4 ########
 

######## Install rrdtool ########
cd ../..
tar -zxf php-4.4.1.tar.gz -C src/
cd /opt/distfiles/src/rrdtool-1.2.15
(需要如下两个包的支持--先安装!)
  - libart_lgpl-devel-2.3.16-2.1.i386.rpm
  - libpng-devel-1.2.2-22.i386.rpm
  
./configure --prefix=/usr/local/rrdtool;
make install;  
######## End Of Install rrdtool ########
  
  
  
######## Install net-snmp ########
net-snmp-5.1.2-11.i386.rpm (需要如下两个包的支持)
  - net-snmp-libs-5.1.2-11.i386.rpm
  - lm_sensors-2.8.7-2.i386.rpm
rpm -ivh lm_sensors-2.8.7-2.i386.rpm;
rpm -ivh net-snmp-libs-5.1.2-11.i386.rpm;
rpm -ivh net-snmp-5.1.2-11.i386.rpm;
#配置本地snmpd服务
mv /etc/snmpd/snmpd.conf   /etc/snmpd/snmpd.conf.bkp
vi /etc/snmpd/snmpd.conf
#粘贴如下内容:
#####################snmpd.conf#################################
#snmpd.conf
#For Linux
#Lastupdate:2005-09-16
#Simplification edition

# First, map the community name "public" into a "security name"
#       sec.name  source          community
com2sec notConfigUser  default       mrtgmgr

# Second, map the security name into a group name:
#       groupName      securityModel securityName
group   notConfigGroup v1           notConfigUser
group   notConfigGroup v2c           notConfigUser

# Third, create a view for us to let the group have rights to:
# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#       name           incl/excl     subtree         mask(optional)
view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.25.1.1

# Finally, grant the group read-only access to the systemview view.
#       group          context sec.model sec.level prefix read   write  notif
access  notConfigGroup ""      any       noauth    exact  mib2 none none
# -----------------------------------------------------------------------------
# Here is a commented out example configuration that allows less
# restrictive access.
# YOU SHOULD CHANGE THE "COMMUNITY" TOKEN BELOW TO A NEW KEYWORD ONLY
# KNOWN AT YOUR SITE.  YOU *MUST* CHANGE THE NETWORK TOKEN BELOW TO
# SOMETHING REFLECTING YOUR LOCAL NETWORK ADDRESS SPACE.
##       sec.name  source          community
#com2sec local     localhost       COMMUNITY
#com2sec mynetwork NETWORK/24      COMMUNITY
##     group.name sec.model  sec.name
#group MyRWGroup  any        local
#group MyROGroup  any        mynetwork
#
#group MyRWGroup  any        otherv3user
#...
##           incl/excl subtree                          mask
#view all    included  .1                               80
## -or just the mib2 tree-
view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc

##                context sec.model sec.level prefix read   write  notif
#access MyROGroup ""      any       noauth    0      all    none   none
#access MyRWGroup ""      any       noauth    0      all    all    all
syslocation Unknown
syscontact Gman
#####################END OF snmpd.conf#################################

#启动本地即snmpd服务
/etc/rc.d/init.d/snmpd start [service snmpd start]
#查看进程及端口
ps axuww |grep snmpd;netstat -nlp ;
#加入开机自动运行
ntsysv

#Net-SNMP的开发包和工具包,如果可以安装在系统上,则不需要安装net-snmp-tar.gz包
  - net-snmp-devel-5.1.1-2.i386.rpm
  - net-snmp-utils-5.1.1-2.i386.rpm
#如因为缺少依存关系,而无法安装net-snmp-devel和net-snmp-utils包,则安装net-snmp-tar.gz包
cd ../..
tar -zxf net-snmp-5.2.1.tar.gz -C src/
cd /opt/distfiles/src/net-snmp-5.2.1
./configure --prefix=/usr/local/net-snmp
make && make install
######## End Of Install net-snmp ########
 

######## Install cacti ########
#添加cactiuser
groupadd cactiuser
useradd  cactiuser -g cactiuser
cd ../..
tar -zxf  cacti-0.8.6h.tar.gz -C src/
mv /opt/distfiles/src/cacti-0.8.6h /opt/data/www/cacti
#修正目录权限
cd /opt/data/www/cacti
chown -R cactiuser rra/ log/ scripts/
#登陆mysql数据库
/usr/local/mysql/bin/mysql -u root -pROOTPASSWD
mysql> create database cacti;
mysql> grant all on cacti.* to root;
mysql> grant all on cacti.* to root@localhost;
mysql> grant all on cacti.* to cactiuser;
mysql> grant all on cacti.* to cactiuser@localhost;
mysql> set password for cactiuser@localhost=password('cactipw');
#以上语句输出 Query OK, 0 rows affected (0.01 sec) 表示成功
mysql> exit
#导入cacti数据库到mysql
/usr/local/mysql/bin/mysql -u root -pROOTPASSWD cacti < /opt/data/www/cacti/cacti.sql
#配置cacti
vi /opt/data/www/cacti/include/config.php
#更改用户,密码等项
$database_type = “mysql”;
$database_default = “cacti”;
$database_hostname = “localhost”;
$database_username = “cactiuser”;
$database_password = “cactipw”;

#将cacti加入计划任务
crontab -e cactiuser [crontab -u cactiuser -e ]
*/5 * * * *  /usr/local/php/bin/php  /opt/data/www/cacti/poller.php > /dev/null 2>&1
#测试php
echo "<? phpinfo() ?>" > index.php
#用浏览器
http://ip-addr/index.php

#在第一次启动cacti时,cacti将自动检测如下程序是否存在,如果采用cacti默认路径,则做如下连接:
ln -s  /usr/local/php/bin/php /usr/bin/
ln -s /usr/local/rrdtool/bin/rrdtool /usr/local/bin/
ln -s /usr/local/net-snmp/bin/snmpwalk /usr/local/bin/
ln -s /usr/local/net-snmp/bin/snmpget /usr/local/bin/
ln -s /usr/local/net-snmp/bin/snmpbulkwalk /usr/local/bin/
ln -s /usr/local/net-snmp/bin/snmpgetnext /usr/local/bin/
#测试cacti
http://ip-addr/cacti
默认登陆密码:'admin'
#SNMP Utility Version 选择: NET-SNMP5.x
#RRDTool Utility Version 选择: RRDTool-1.2.x
#snmpwalk debug
#For example:
#测试某服务器snmp服务是否开通,'public'为snmpd的community,取if开头的字段;
snmpwalk -v 2c -c public 192.168.11.3 if         

NFS Deployment

#NFS Deployment
#Compatible: Redhat AS Linux
#Comment:企业配置规范.

#LastUpdate: 2005-08-15
#By:Gman!

服务器端:

#建立目录和组
mkdir -p /data/empty;
groupadd kmmaster -g 900 ;
useradd kmmaster -u 900 -g 900 -d /data/empty;


#建立NFS mount目录.
mkdir -p /data/modules/kmmaster/data/incoming/anon_root/union;
chown -R kmmaster:kmmaster /data/modules/kmmaster/data/incoming/anon_root/union;

#添加NFS 目录权限.
vi /etc/exports

#for union
/data/modules/kmmaster/data/incoming/anon_root/union  23.5.9.56(no_root_squash,all_squash,sync,rw,anonuid=900,anongid=900)
/data/modules/kmmaster/data/incoming/anon_root/union  28.15.91.3(no_root_squash,all_squash,sync,rw,anonuid=900,anongid=900)

#启动服务
/etc/rc.d/init.d/portmap start;
/etc/rc.d/init.d/nfs start;

#如果更改了/etc/exports 则重新mount目录.
exportfs -rv

 
#改防火墙,运行特定ip访问nfs资源.
vi /opt/sbin/gmt-fw-ctl
#在"ext_input_addon_tcp_rules()"中添加:
#for nfs
$IPT -A input-tcp -p tcp -s 28.15.91.3/32 -j ACCEPT
$IPT -A input-tcp -p tcp -s 23.5.9.56/32 -j ACCEPT

#在"another udp rules"中添加:
#for nfs
$IPT -A input-udp -p udp -s 28.15.91.3/32 -j ACCEPT
$IPT -A input-udp -p udp -s 23.5.9.56/32 -j ACCEPT

iptables -L -vn

#开机自动启动
#Redhat Linux
setup

=========================


客户端:

建立mount点:
# [网通]
ls /data/www/union/wwwroot/download/import   
mkdir /data/www/union/wwwroot/download/import

#[电信]
ls /data1/www/union/wwwroot/download/import   
mkdir /data1/www/union/wwwroot/download/import

#[网通]
mount -t nfs 28.15.91.3:/data/modules/kmmaster/data/incoming/anon_root/union /data/www/union/wwwroot/download/import99

# [电信]
mount -t nfs 23.5.9.56:/data1/modules/kmmaster/data/incoming/anon_root/union /data/www/union/wwwroot/download/import99

#客户端查看NFS资源.
showmount -e [IP]

#修改 /etc/fstab
vi /etc/fstab
28.15.91.3:/data/modules/kmmaster/data/incoming/anon_root/union /data1/www/union/wwwroot/download/import nfs defaults

23.5.9.56:/data/modules/kmmaster/data/incoming/anon_root/union /data/www/union/wwwroot/union/download/import nfs defaults


FAQ
如果出现:"failed, reason given by server: Permission denied"则表明在/etc/exports 文件中服务器ip设置错误.
          修正后,执行exportfs -vr

如果出现:"connect time out"则是防火墙配置有问题,必须将tcp和udp input规则打开.

NFS有关的一些命令.
nfsstat:
查看NFS的运行状态,对于调整NFS的运行有很大帮助
rpcinfo:
查看rpc执行信息,可以用于检测rpc运行情况的工具

NTP Service Client Configuration

NTP Service Client Configuration
#Compatible: Redhat AS Linux and FreeBSD
#Comment:企业配置规范.
#Version:0.0.2
#LastUpdated:2006-07-21
#By:Gman!


#NTP client属于系统组件,不使用KSM管理
#
#先检查一下当前有否ntp配置
cat /etc/ntp.conf
ps axuw | grep ntpd
#
#cd
cd /tmp ;
wget ftp://rpmfind.net/linux/fedora/core/3/i386/os/Fedora/RPMS/ntp-4.2.0.a.20040617-4.i386.rpm ;
rpm -ivh ntp-4.2.0.a.20040617-4.i386.rpm ;

#手动更新一次
ntpdate -u ntp.gmt.google.com

#vi /etc/ntp.conf
#
restrict default nomodify notrap noquery
restrict 127.0.0.1
server pool.ntp.org
server  ntp.gmt.google.com
server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay  0.008
keys            /etc/ntp/keys
#end of ntp.conf

##
/etc/init.d/ntpd restart
#开机自动启动
ln -s /etc/init.d/ntpd /etc/rc3.d/S99ntpd
ln -s /etc/init.d/ntpd /etc/rc2.d/S99ntpd
ln -s /etc/init.d/ntpd /etc/rc0.d/K10ntpd
#

#NTP地址池列表
#http://www.pool.ntp.org/


#也可以用crontab结合命令执行.
For Linux
#NTP Client Service
echo "* */6 * * * /usr/sbin/ntpdate -u pool.ntp.org > /dev/null 2>&1" >> /var/spool/cron/root

* */6 * * * /usr/sbin/ntpdate -u asia.pool.ntp.org


For FreeBSD
echo "* */6 * * * /usr/sbin/ntpdate -u pool.ntp.org > /dev/null 2>&1" >> /var/cron/tabs/root

Linux Rsync Installation & Configuration

配置KDN前端.[FDS]
#LastUpdated:2006-10-23
#Version:0.0.1
#Compatible: Redhat AS Linux /FC series
#Comment:企业配置规范,企业安全规范.
#By:Gman!
 
#server端操作
mkdir -p /usr/empty
groupadd rsync -g 900
useradd rsync -u 900 -g rsync -d /usr/empty -s /sbin/nologin
#
#客户端/服务器端操作
mkdir -p /opt/data/kdn/export/pub
mkdir -p /opt/modules/kdn /opt/modules/src
cd /opt/distfiles/
wget -c http://165.165.105.105:5180/distfiles/rsync-2.6.4.tar.gz;
tar vxfz rsync-2.6.4.tar.gz -C src && cd src/rsync-2.6.4
./configure --prefix=/opt/modules/kdn
make && make install
 
#server端操作
cat /etc/services |grep rsync
mkdir -p /opt/modules/kdn/rsync/run
#touch /opt/modules/kdn/rsync/rsync.pas
cd /etc
wget -c http://165.165.105.105:5180/config/rsyncd.conf
#
vi /opt/sbin/kmt-fw-ctl #打开tpc:5873端口
#

////////////////////////////////////////
#FDS Rsync configure files
#LastUpdate:2005-06-20
#Version:1.0.0
#By:Gman.
 
uid = rsync    
#用户和组id为:900
gid = rsync
port = 9873
use chroot = no            
# 不使用chroot
max connections = 24       
# 最大连接数为24
pid file = /opt/modules/kdn/rsync/run/rsyncd.pid
lock file = /opt/modules/kdn/rsync/run/rsync.lock
log file = /opt/modules/kdn/rsync/run/rsyncd.log   
# 日志记录文件
[FDSconf]                           
# 认证的模块名,在client端指定
path = /opt/data/kdn/export/pub/                 
# 需要做镜像的目录
comment = For sync file from KDN mid server 
ignore errors         
# 可以忽略一些无关的IO错误
read only = yes       
# 只读
list = no             
# 不允许列文件
#auth users = inburst 
# 认证的用户名,如果无这行,则为匿名
#secrets file = /opt/modules/kdn/rsync/rsync.pas     
# 认证密码文件名.匿名则不用.
/////////////////////////////////////////
 

史前巨兽

一生做好一件事!
第 1 张,共 32 张

For (i = 1; i++; )