防火墙学习随笔

来源:互联网 发布:重点软件企业 编辑:程序博客网 时间:2024/06/10 00:42


openwrt.img文件刻录,做软件路由。

linux救援模式,dd命令,mount命令,linux下增加缓存文件。
linux软件防火墙,硬件防火墙。


********  路由  ********

linux   dd 命令
dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
dd应用实例
1.将本地的/dev/hdb整盘备份到/dev/hdd
   dd if=/dev/hdb f=/dev/hdd              hdb –> 内存 -> hdd
2.将/dev/hdb全盘数据备份到指定路径的image文件
   dd if=/dev/hdb f=/root/image            hdb –> 内存 -> image文件
3.将备份文件恢复到指定盘
   dd if=/root/image f=/dev/hdb             image文件 –> 内存 -> hdb
4.备份/dev/hdb全盘数据,并利用gzip工具进行压缩,保存到指定路径
    dd if=/dev/hdb | gzip> /root/image.gz
5.将压缩的备份文件恢复到指定盘
   gzip -dc /root/image.gz | dd f=/dev/hdb
6.增加swap交换分区文件大小
第一步:创建一个大小为256M的文件:
dd if=/dev/zero  of=/swapfile  bs=1024 count=262144
第二步:把这个文件变成swap交换分区文件:
mkswap /swapfile
第三步:启用这个swap交换分区文件:
swapon /swapfile
第四步:编辑/etc/fstab文件,使在每次开机时自动加载swap交换分区文件:
/swapfile    swap    swap    default   0 0


例1:要把一张软盘的内容拷贝到另一张软盘上,利用/tmp作为临时存储区。把源盘插入驱动器中,输入下述命令: 

$ dd if =/dev/fd0 of = /tmp/tmpfile 

拷贝完成后,将源盘从驱动器中取出,把目标盘插入,输入命令: 

$ dd if = /tmp/tmpfile of =/dev/fd0 

软盘拷贝完成后,应该将临时文件删除: 

$ rm /tmp/tmpfile

例4:创建一个100M的空文件

dd if=/dev/zero of=hello.txt bs=100M count=1

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

/dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!
/dev/zero,是一个输入设备,你可你用它来初始化文件。


/dev/null------它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。
/dev/zero------该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。
$ dd if=/dev/zero of=./test.txt bs=1k count=1
$ ls -l
total 4
-rw-r--r--     1 oracle    dba           1024 Jul 15 16:56 test.txt


eg:
$ find / -name access_log   2>/dev/null


硬件防火墙和软件防火墙区别: 硬件防火墙直接端口转发,软件防火墙需要软件写网关,linux网关iptables,nat转发


挂接命令(mount) 

首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的。 

命令格式:mount [-t vfstype] [-o options] device dir 
其中: 

1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有: 
光盘或光盘镜像:iso9660 
DOS fat16文件系统:msdos 
Windows 9x fat32文件系统:vfat 
Windows NT ntfs文件系统:ntfs 
Mount Windows文件网络共享:smbfs 
UNIX(LINUX) 文件网络共享:nfs 

2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有: 
loop:用来把一个文件当成硬盘分区挂接上系统 
ro:采用只读方式挂接设备 
rw:采用读写方式挂接设备 
iocharset:指定访问文件系统所用字符集 

3.device 要挂接(mount)的设备。 

4.dir设备在系统上的挂接点(mount point)。 

挂接光盘镜像文件 

1、从光盘制作光盘镜像文件。将光盘放入光驱,执行下面的命令。 
#cp /dev/cdrom /home/sunky/mydisk.iso 或 
#dd if=/dev/cdrom of=/home/sunky/mydisk.iso 
注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件/home/sunky/mydisk.iso 

2、将文件和目录制作成光盘镜像文件,执行下面的命令。 
#mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir 
注:这条命令将/home/sunky/mydir目录下所有的目录和文件制作成光盘镜像文件/home/sunky/mydisk.iso,光盘卷标为:mydisk


 linux命令dmesg用法详解
 
功能说明:显示开机信息。 
语  法:dmesg [-cn][-s <缓冲区大小>] 
补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
参  数: 
-c  显示信息后,清除ring buffer中的内容。  
-s<缓冲区大小>  预设置为8196,刚好等于ring buffer的大小。  
-n  设置记录信息的层级。
 
Linux命令dmesg用来显示开机信息,kernel会将开机信息存储在ring buffer中。
您若是开机时来不及查看信息,可利用dmesg来查看。
开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
也可用cat /var/log/messages查看
示例
  将系统启动信息保存到文件中:
         $ dmesg > messages.txt
       打印输出最近一次的信息: 
        $ dmesg | tail -f
      打印输出最近8次的信息: 
        $ dmesg | tail -8


pkill和kill区别:
pkill 和killall 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill 来杀掉。
应用方法:
#pkill 正在运行的程序名
举例:
[root@localhost beinan]# pgrep -l gaim
2979 gaim
[root@localhost beinan]# pkill gaim
也就是说:
kill 对应的是 PID
pkill 对应的是COMMAND


keepalived使用
openswrt  是个自由开源路由器系统
Opkg是一个轻量级快速套件管理系统,常用于路由器,交换机等嵌入式设备中,用来管理软件包的安装升级和下载
opkg --help 查看

Telnet协议是Tcp/ip协议族中的一员,是internet远程登录服务的标准协议和主要方式。它为用户提供了本地计算机上完成远程主机工作的能力。

1、Telnet语法
telnet [-a][-e escape char][-f log file][-l user][-t term][host [port]]
-a 企图自动登录。除了用当前已登陆的用户名以外,与 -l 选项相同。
-e 跳过字符来进入 telnet 客户提示。
-f 客户端登录的文件名
-l 指定远程系统上登录用的用户名称。
要求远程系统支持 TELNET ENVIRON 选项。
-t 指定终端类型。
支持的终端类型仅是: vt100, vt52, ansi 和 vtnt。
host 指定要连接的远程计算机的主机名或 IP 地址。
port 指定端口号或服务名。

2.使用Telnet登录
登录命令:telnet HOST [PORT] 例如:telnet 61.152.158.132 23(默认端口)
断开Telnet连接的命令:exit
  成功地建立Telnet连接,除了要求掌握远程计算机上的账号和密码外,还需要远程计算机已经开启“Telnet服务”,并去除NTLM验证。也可以使用专门的Telnet工具来进行连接,比如STERM,CTERM等工具。


SMTP (simple mail transfer protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传统邮件的规则,由它来控制信件的中转方式,SMTP协议属于Tcp/ip协议族,他帮助计算机发送或中转信件时找到下一个目标。
端口号:25

Keepalived 配置详解
 全局配置:全局定义(global definition)和静态地址路由(static ipaddress/router)

全局定义:全局定义主要设置keepalived的通信机制和标识
global_defs
{
  notification_email (邮件通知)
   {
         admin@example.com
       }
notification_email_from admin@example.com
smtp_server   127.0.0.1
smtp_connect_timeout 30
router_id  my_hostname

}
 
静态地址和路由
   所谓静态(static)就是说不会随着vrrpd instance的开/关二变化,VIP就不是static的,会随着vrrpd而增加/删除。这个配置可以用来给服务器配置静态的IP地址/路由,当然如果服务器的配置里面已经有这些配置,就不需要设置了。

static_ipaddress
{
   192.168.1.1/24 brd + dev eth0 scope global

}
static_routes
{
 src $SRC_IP to $DST_IP dev $SRC_DEVICE
 src $SRC_IP to $DST_IP via  $GW  dev $SRC_DEVICE

}


VRRP(vrrp)配置

vrrpd的配置:vrrp同步组(synchroization group)和vrrp实例(vrrp instance)

VRRP Sync Groups
 不使用Sync Group的话,如果如果机器(或者说是router)有两个网段,一个内网一个外网,每个网段开启一个VRRP实例,假设VRRP配置为了检测内网,当外网出现问题时,VRRP认为自己仍然健康,那么不会发送Master和Backup的切换,从而导致了问题。Sync group就是为了解决这个问题,可以把两个实例走放在一个sync group,这样的话,group里面任何实例出现问题都会切换。

vrrp_sync_group VG_1 {

group 
{
   inside_network    #这里是实例名
  outside_network 
  }

notify_master  /path/to/to_master.sh
notify_backup /path_to/to_backup.sh
notify_fault     "/path/fault.sh VG_1"
notify               /path/to/notify.sh
smtp_alert
}

notify_master 指定当切换到master时,执行的脚本,这个脚本可以传入参数
notify 指令三个参数,这些参数有keepalived提供
smtp_alter 使用global_defs里面定义的邮件地址和smtp服务器在切换后发送邮件通知


VRRP实例(instance)配置 (见文档)



安装防火墙iptables
yum install iptables
apt-get install iptables

清楚防火墙规则
iptables -F
iptables -X
iptables -Z

开放指定端口

-A和-I参数分别为添加到规则末尾和规则最前面




apache 支持静态页,tomcat支持动态,比如jsp

一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。 
apache可以支持php\cgi\perl,但是要使用java的话,你需要tomcat在apache后台支撑,将java请求由apache转发给tomcat处理。
apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。  
这两个有以下几点可以比较的: 1、两者都是apache组织开发的 2、两者都有HTTP服务的功能 3、两者都是免费的  
不同点: 
Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等) 
Tomcat是Apache组织在符合J2EE的JSP、Servlet标准下开发的一个JSP服务器    

apache是web服务器,动态jsp网页解释器tomacat,jdk提供jsp链接数据库的驱动

apache支持php、cgi、perl、html
tomcat是应用java服务器,支持jsp



route add default gw  192.168.0.1
网关作用就是通过他可以访问外网
一般方式是:在局域网有一台机器,可以直接访问外网,那么局域网内的其他机器,就把这台机器ip作为他们的网关,自己在设置不同ip就可以上网了。。




linux下安装vsftpd服务  可以网页访问。
挂在本地cdram。mount -o loop /dev/cdrom  /mnt/123(loop 挂载“回旋设备”以及“ISO镜像文件)

由于该主目录是mpsp用户建的,usertest是mpsp组的成员,所以usertest默认具有增删查改权限;而usertest作为mpsp组成员,对/home/mpsp下的所有路径具有访问权限(根据各目录的权限设置,默认是这样),登录ftp后会发现,usertest用户可以访问其他目录,并且具有mpsp组的权限,这样做是不允许的,我们需要将usertest用户的访问范围控制在其主目录下。方法如下:
      1. cd /etc/vsftpd 进入ftp配置文件目录
      2. vi vsftpd.conf编辑此文件,找到#chroot_list_enable=YES,删除前面的那个#号,表示开启此限制功能
          找到chroot_list_file:chroot_list_file=/etc/vsftpd/chroot_list
      3. 编辑chroot_list文件,加入你要限制的用户名,一行一个用户.
 
      如果更新了vsftpd.conf,一定要重启ftp,命令如下:
      [root@linuxsir001 root]# /etc/init.d/vsftpd restart
      关闭 vsftpd: [ 确定 ]
      为 vsftpd 启动 vsftpd: [ 确定 ]




针对Centos操作系统  如下是配置IP 地址过程详细介绍:
  1. ⑴、命令配置法:ifconfig和ip 
  2.  
  3.       Ifconfig ethx:x IP/netmask 
  4.  
  5.       ip addr add IP dev ethx label ethX:X 
  6.  
  7.       利用命令配置的只是暂时的IP地址,如果重启网络服务和系统都会失效的。 
  8.  
  9. ⑵、配置文件配置法: 
  10.  
  11.     修改/etc/sysconfig/network-scripts/ifcfg-ethx:x 
  12.  
  13.       DEVICE=ethx:x 
  14.  
  15.       BOOTPROTO=static  
  16.  
  17.       IPIPADDR=   IP地址 
  18.  
  19.       NETMASK=  子网掩码 
  20.  
  21.       GATEWAY=  网关 
  22.  
  23.       ONBOOT=YES   是否开机启用 
  24.  
  25.       HWADDR=...... MAC 
  26.  
  27.       非主要地址不能用DHCP服务获得,必须为静止的。 

八、 DNS配置文件:

 

  1. ⑴、DNS配置文件位置:/etc/resolv.conf 
  2.  
  3. ⑵、DNS配置格式: 
  4.  
  5.          nameserver DNS_IP1 
  6.  
  7.          nameserver DNS_IP2 
  8.  
  9. 指定本地解析: 
  10.  
  11.      /etc/hosts下添加 
  12.  
  13.     目标主机IP        主机名       
  14.  
  15.     fg:172.16.36.1  www.chris.com  
  16.  
  17. DNS解析过程-->/etc/hosts-->DNS 服务器 

九、主机名配置文件:

 

  1. ⑴、配置文件位置: /etc/sysconfig/network 
  2.  
  3. ⑵、配置格式: 
  4.  
  5.          HOSTNAME=名称 
  6.  
  7.          NETWORKING={yes|no}:是否开启网络功能 

  


NTP相关配置

# watch ntpq -p
Every 2.0s: ntpq -p                                  Sat Jul  7 00:41:45 2007

     remote           refid      st t when poll reach   delay   offset  jitter
===========================================================
+193.60.199.75   193.62.22.98     2 u   52   64  377    8.578   10.203 289.032
*mozart.musicbox 192.5.41.41      2 u   54   64  377   19.301  -60.218 292.411

现在我就来解释一下其中的含义

  remote: 它指的就是本地机器所连接的远程NTP服务器
      refid: 它指的是给远程服务器(e.g. 193.60.199.75)提供时间同步的服务器
          st: 远程服务器的层级别(stratum). 由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端. 所以服务器从高到低级别可以设定为1-16. 为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的.
            t: 这个.....我也不知道啥意思^_^
    when: 我个人把它理解为一个计时器用来告诉我们还有多久本地机器就需要和远程服务器进行一次时间同步
       poll: 本地机和远程服务器多少时间进行一次同步(单位为秒). 在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围.之后poll值会逐渐增大,同步的频率也就会相应减小
    reach: 这是一个八进制值,用来测试能否和服务器连接.每成功连接一次它的值就会增加
    delay: 从本地机发送同步要求到服务器的round trip time
    offset: 这是个最关键的值, 它告诉了我们本地机和服务器之间的时间差别. offset越接近于0,我们就和服务器的时间越接近
     jitter: 这是一个用来做统计的值. 它统计了在特定个连续的连接数里offset的分布情况. 简单地说这个数值的绝对值越小我们和服务器的时间就越精确

NTP安全设置(restrict)

运行一个NTP Server不需要占用很多的系统资源,所以也不用专门配置独立的服务器,就可以给许多client提供时间同步服务, 但是一些基本的安全设置还是很有必要的
那么这里一个很简单的思路就是第一我们只允许局域网内一部分的用户连接到我们的服务器. 第二个就是这些client不能修改我们服务器上的时间

关于权限设定部分 
权限的设定主要以 restrict 这个参数来设定,主要的语法为: 
restrict IP地址 mask 子网掩码 参数 
其中 IP 可以是IP地址,也可以是 default ,default 就是指所有的IP 
参数有以下几个: 
ignore :关闭所有的 NTP 联机服务 
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。 
notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网 
noquery :不提供客户端的时间查询



Centos 7  设置开机自启动详细如下:

任务 旧指令 新指令
使某服务自动启动 chkconfig --level 3 httpd  on              systemctl enable httpd.service
使某服务不自动启动 chkconfig --level 3 httpd off systemctl disable httpd.service
检查服务状态 service httpd status systemctl status httpd.service (服务详细信息) 
systemctl is-active httpd.service (仅显示是否 Active)
显示所有已启动的服务 chkconfig --list systemctl list-units --type=service
启动某服务 service httpd start systemctl start httpd.service
停止某服务 service httpd stop systemctl stop httpd.service
重启某服务 service httpd restart systemctl restart httpd.service
 
启动nginx服务
systemctl start nginx.service
设置开机自启动
systemctl enable nginx.service
停止开机自启动
systemctl disable nginx.service
查看服务当前状态
systemctl status nginx.service
重新启动服务
systemctl restart nginx.service
查看所有已启动的服务
systemctl list-units --type=service

Redis侧重于网络栈性能,mysql侧重于内存,网络和文件系统的性能

arp -a   
arp -a 和你通信了的一些机器。IP和MAC .arp的中文意思就是通过IP而知道别人的MAC地址,也就是常说的地址解析。
ARP -d 就是清除缓存中的数据。也是删除IP和MAC绑定的项目。



NTP(http://www.cnblogs.com/xwdreamer/p/3448773.html)
ubuntu下配置时间同步NTP

1参考文献:

1.鸟哥的Linux私房菜:第十五章、时间服务器: NTP 服务器(强烈建议看完)

2.http://www.crsay.com/wiki/wiki.php/server/centos/ntp-set

3.常见错误集锦:http://www.blogjava.net/spray/archive/2008/07/10/213964.html

2架构

Stratum 1/2 Internet NTP Server

Stratum 3 公司防火墙(防火墙带有ntp功能,并且能够连接外网)

Stratum 4 自己搭建ntp server(跟公司防火墙的ntp server对时,这样的好处有两个,一是降低了防火墙的压力,二是降低耦合性,防止因为防火墙的变更而带来更多的改动)

Stratum 5 公司内的各台机器,相当于是一个ntp client。

3安装

3.1在线安装

ntp在线安装的方式很简单,只需要执行以下命令即可帮你安装好ntp以及所有的依赖包

sudo apt-get install ntp
3.2离线安装

如果要离线安装,那么就需要下载ntp安装包和依赖包。我们可以在一个有线环境下运行上面的在线安装,然后到/var/cache/apt/archives这个目录下拷贝完整的ntp安装包和依赖包。当前我已经将这些安装包放到网盘上面去了:http://pan.baidu.com/s/1dDzg95f。

  对于下载的deb包,我们使用dpkg安装包来安装,先安装依赖包,最后安装程序包。具体安装过程如下:


root@BJCGNMON01:/var/cache/apt/archives# dpkg  -i  libopts25_1%3a5.12-0.1ubuntu1_amd64.deb 
Selecting previously unselected package libopts25.
(Reading database ... 51276 files and directories currently installed.)
Unpacking libopts25 (from libopts25_1%3a5.12-0.1ubuntu1_amd64.deb) ...
Setting up libopts25 (1:5.12-0.1ubuntu1) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

root@BJCGNMON01:/var/cache/apt/archives# dpkg  -i  ntp_1%3a4.2.6.p3+dfsg-1ubuntu3.1_amd64.deb 
(Reading database ... 51324 files and directories currently installed.)
Preparing to replace ntp 1:4.2.6.p3+dfsg-1ubuntu3.1 (using ntp_1%3a4.2.6.p3+dfsg-1ubuntu3.1_amd64.deb) ...
Unpacking replacement ntp ...
Setting up ntp (1:4.2.6.p3+dfsg-1ubuntu3.1) ...
 * Starting NTP server ntpd
   ...done.
Processing triggers for ureadahead ...
ureadahead will be reprofiled on next reboot
Processing triggers for man-db ...

  当然还有更加简单的方法,将下载的deb包拷贝到/var/cache/apt/archives目录下,然后在执行一下命令同样可以安装。

sudo apt-get install ntp
安装完毕以后我们可以查看服务是否启动,执行以下命令:


enadmin@ubuntu-server:~/ftp/ntp_ubuntu$ service --status-all
 [ ? ]  acpid
 [ ? ]  apache
 [ + ]  apache2
 [ - ]  apparmor
 [ ? ]  apport
 [ ? ]  atd
 [ - ]  bootlogd
 [ ? ]  console-setup
 [ ? ]  cron
 [ ? ]  dbus
 [ ? ]  dmesg
 [ ? ]  dns-clean
 [ ? ]  friendly-recovery
 [ - ]  grub-common
 [ ? ]  hostname
 [ ? ]  hwclock
 [ ? ]  hwclock-save
 [ ? ]  irqbalance
 [ ? ]  killprocs
 [ ? ]  module-init-tools
 [ ? ]  mysql
 [ + ]  nagios
 [ + ]  nagios-bak
 [ ? ]  network-interface
 [ ? ]  network-interface-container
 [ ? ]  network-interface-security
 [ ? ]  networking
 [ + ]  ntp
 [ ? ]  ondemand

可以看到ntp服务已经启动([+]表示已经启动。)

4配置文件/etc/ntp.conf解析

sudo vim /etc/ntp.conf
这个文件是配置ntp最重要的一个文件,也是ntp配置过程中的唯一难点,之前一直不知道这个配置问价当中配置选项的含义,所以一直无从下手。

4.1配置上层server

利用 server 关键字设定上层 NTP 服务器,上层 NTP 服务器的设定方式为:

server [IP or hostname] [prefer]
在 server 后端可以接 IP 或主机名,个人比较喜欢使用 IP 来设定, perfer 表示『优先使用』的服务器。

4.2利用 restrict 来管理权限控制

在 ntp.conf 档案内可以利用『 restrict 』来控管权限,这个参数的设定方式为:

restrict [IP] mask [netmask_IP] [parameter]
其中 parameter 的参数主要有底下这些:

ignore: 拒绝所有类型的 NTP 联机;
nomodify: 客户端不能使用 ntpc 与 ntpq 这两支程序来修改服务器的时间参数, 但客户端仍可透过这部主机来进行网络校时的;
noquery: 客户端不能够使用 ntpq, ntpc 等指令来查询时间服务器,等于不提供 NTP 的网络校时;
notrap: 不提供 trap 这个远程事件登录 (remote event logging) 的功能。
notrust: 拒绝没有认证的客户端。
如果你没有在 parameter 的地方加上任何参数的话,这表示『该 IP 或网段不受任何限制』。一般来说,我们可以先关闭 NTP 的权限,然后再一个一个的启用允许登入的网段。

ntp server配置

ntp server的需求:

我的上层 NTP 服务器共只有防火墙的ntp server:10.138.16.251。
不对Internet 提供服务,仅允许来自内部网域10.138.0.0/255.255.0.0的查询而已;
侦测一些 BIOS 时钟与 Linux 系统时间的差异并写入 /var/lib/ntp/drift 档案当中。

# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift #草稿文件

#日志文件
statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

#上层ntp server
server 10.138.16.251 prefer 
#让NTP Server和其自身保持同步,如果在/etc/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端
server 127.127.1.0
fudge 127.127.1.0 stratum 5

#不允许来自公网上ipv4和ipv6客户端的访问
restrict -4 default kod notrap nomodify nopeer noquery 
restrict -6 default kod notrap nomodify nopeer noquery

#运行上层ntp server的所有权限
restrict 10.138.16.251

#允许这个网段的对时请求
restrict 10.138.0.0 mask 255.255.0.0 nomodify 

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

使用 ntpd渐进式更新时间

ntp又是服务器,又是客户端,只需要通过配置即可。上面我们将10.138.16.232配置成了ntp服务器,下面这台服务器我们以10.138.16.232作为ntp服务器配置client。


# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift


# Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# Specify one or more NTP servers.

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
#server 0.ubuntu.pool.ntp.org
#server 1.ubuntu.pool.ntp.org
#server 2.ubuntu.pool.ntp.org
#server 3.ubuntu.pool.ntp.org

# Use Ubuntu's ntp server as a fallback.
#server ntp.ubuntu.com

server 10.138.16.251 prefer
server 127.127.1.0
fudge 127.127.1.0 stratum 10



# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details.  The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

restrict 10.138.16.251
restrict 10.138.0.0 mask 255.255.0.0 nomodify


# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
#restrict 192.168.123.0 mask 255.255.255.0 notrust


# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
#broadcast 192.168.123.255

# If you want to listen to time broadcasts on your local subnet, de-comment the
# next lines.  Please do this only if you trust everybody on the network!
#disable auth
#broadcastclient

使用ntpdate更新时间

 在客户端只需要运行一下命令接口进行对时操作

sudo ntpdate 10.138.16.232
ntpdate命令是要在ntp进程退出的情况下执行,如果执行上述命令出错,那么请先关闭ntp进程,具体操作日下所示:


root@BJCGNMON01:/etc/init.d# ntpdate 10.138.16.232
27 Feb 14:59:32 ntpdate[18546]: the NTP socket is in use, exiting
root@BJCGNMON01:/etc/init.d# service ntp stop
 * Stopping NTP server ntpd
   ...done.
root@BJCGNMON01:/etc/init.d# ntpdate 10.138.16.232
27 Feb 14:58:13 ntpdate[18557]: step time server 10.138.16.232 offset -98.402560 sec

如果是windows操作系统,按照参考文献1进行修改。
openwrt.img文件刻录,做软件路由。

linux救援模式,dd命令,mount命令,linux下增加缓存文件。
linux软件防火墙,硬件防火墙。


********  路由  ********

linux   dd 命令
dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
dd应用实例
1.将本地的/dev/hdb整盘备份到/dev/hdd
   dd if=/dev/hdb f=/dev/hdd              hdb –> 内存 -> hdd
2.将/dev/hdb全盘数据备份到指定路径的image文件
   dd if=/dev/hdb f=/root/image            hdb –> 内存 -> image文件
3.将备份文件恢复到指定盘
   dd if=/root/image f=/dev/hdb             image文件 –> 内存 -> hdb
4.备份/dev/hdb全盘数据,并利用gzip工具进行压缩,保存到指定路径
    dd if=/dev/hdb | gzip> /root/image.gz
5.将压缩的备份文件恢复到指定盘
   gzip -dc /root/image.gz | dd f=/dev/hdb
6.增加swap交换分区文件大小
第一步:创建一个大小为256M的文件:
dd if=/dev/zero  of=/swapfile  bs=1024 count=262144
第二步:把这个文件变成swap交换分区文件:
mkswap /swapfile
第三步:启用这个swap交换分区文件:
swapon /swapfile
第四步:编辑/etc/fstab文件,使在每次开机时自动加载swap交换分区文件:
/swapfile    swap    swap    default   0 0


例1:要把一张软盘的内容拷贝到另一张软盘上,利用/tmp作为临时存储区。把源盘插入驱动器中,输入下述命令: 

$ dd if =/dev/fd0 of = /tmp/tmpfile 

拷贝完成后,将源盘从驱动器中取出,把目标盘插入,输入命令: 

$ dd if = /tmp/tmpfile of =/dev/fd0 

软盘拷贝完成后,应该将临时文件删除: 

$ rm /tmp/tmpfile

例4:创建一个100M的空文件

dd if=/dev/zero of=hello.txt bs=100M count=1

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

/dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!
/dev/zero,是一个输入设备,你可你用它来初始化文件。


/dev/null------它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。
/dev/zero------该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。
$ dd if=/dev/zero of=./test.txt bs=1k count=1
$ ls -l
total 4
-rw-r--r--     1 oracle    dba           1024 Jul 15 16:56 test.txt


eg:
$ find / -name access_log   2>/dev/null


硬件防火墙和软件防火墙区别: 硬件防火墙直接端口转发,软件防火墙需要软件写网关,linux网关iptables,nat转发


挂接命令(mount) 

首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的。 

命令格式:mount [-t vfstype] [-o options] device dir 
其中: 

1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有: 
光盘或光盘镜像:iso9660 
DOS fat16文件系统:msdos 
Windows 9x fat32文件系统:vfat 
Windows NT ntfs文件系统:ntfs 
Mount Windows文件网络共享:smbfs 
UNIX(LINUX) 文件网络共享:nfs 

2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有: 
loop:用来把一个文件当成硬盘分区挂接上系统 
ro:采用只读方式挂接设备 
rw:采用读写方式挂接设备 
iocharset:指定访问文件系统所用字符集 

3.device 要挂接(mount)的设备。 

4.dir设备在系统上的挂接点(mount point)。 

挂接光盘镜像文件 

1、从光盘制作光盘镜像文件。将光盘放入光驱,执行下面的命令。 
#cp /dev/cdrom /home/sunky/mydisk.iso 或 
#dd if=/dev/cdrom of=/home/sunky/mydisk.iso 
注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件/home/sunky/mydisk.iso 

2、将文件和目录制作成光盘镜像文件,执行下面的命令。 
#mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir 
注:这条命令将/home/sunky/mydir目录下所有的目录和文件制作成光盘镜像文件/home/sunky/mydisk.iso,光盘卷标为:mydisk


 linux命令dmesg用法详解
 
功能说明:显示开机信息。 
语  法:dmesg [-cn][-s <缓冲区大小>] 
补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
参  数: 
-c  显示信息后,清除ring buffer中的内容。  
-s<缓冲区大小>  预设置为8196,刚好等于ring buffer的大小。  
-n  设置记录信息的层级。
 
Linux命令dmesg用来显示开机信息,kernel会将开机信息存储在ring buffer中。
您若是开机时来不及查看信息,可利用dmesg来查看。
开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
也可用cat /var/log/messages查看
示例
  将系统启动信息保存到文件中:
         $ dmesg > messages.txt
       打印输出最近一次的信息: 
        $ dmesg | tail -f
      打印输出最近8次的信息: 
        $ dmesg | tail -8



pkill和kill区别:
pkill 和killall 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill 来杀掉。
应用方法:
#pkill 正在运行的程序名
举例:
[root@localhost beinan]# pgrep -l gaim
2979 gaim
[root@localhost beinan]# pkill gaim
也就是说:
kill 对应的是 PID
pkill 对应的是COMMAND


keepalived使用
openswrt  是个自由开源路由器系统
Opkg是一个轻量级快速套件管理系统,常用于路由器,交换机等嵌入式设备中,用来管理软件包的安装升级和下载
opkg --help 查看

Telnet协议是Tcp/ip协议族中的一员,是internet远程登录服务的标准协议和主要方式。它为用户提供了本地计算机上完成远程主机工作的能力。

1、Telnet语法
telnet [-a][-e escape char][-f log file][-l user][-t term][host [port]]
-a 企图自动登录。除了用当前已登陆的用户名以外,与 -l 选项相同。
-e 跳过字符来进入 telnet 客户提示。
-f 客户端登录的文件名
-l 指定远程系统上登录用的用户名称。
要求远程系统支持 TELNET ENVIRON 选项。
-t 指定终端类型。
支持的终端类型仅是: vt100, vt52, ansi 和 vtnt。
host 指定要连接的远程计算机的主机名或 IP 地址。
port 指定端口号或服务名。

2.使用Telnet登录
登录命令:telnet HOST [PORT] 例如:telnet 61.152.158.132 23(默认端口)
断开Telnet连接的命令:exit
  成功地建立Telnet连接,除了要求掌握远程计算机上的账号和密码外,还需要远程计算机已经开启“Telnet服务”,并去除NTLM验证。也可以使用专门的Telnet工具来进行连接,比如STERM,CTERM等工具。


SMTP (simple mail transfer protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传统邮件的规则,由它来控制信件的中转方式,SMTP协议属于Tcp/ip协议族,他帮助计算机发送或中转信件时找到下一个目标。
端口号:25

Keepalived 配置详解
 全局配置:全局定义(global definition)和静态地址路由(static ipaddress/router)

全局定义:全局定义主要设置keepalived的通信机制和标识
global_defs
{
  notification_email (邮件通知)
   {
         admin@example.com
       }
notification_email_from admin@example.com
smtp_server   127.0.0.1
smtp_connect_timeout 30
router_id  my_hostname

}
 
静态地址和路由
   所谓静态(static)就是说不会随着vrrpd instance的开/关二变化,VIP就不是static的,会随着vrrpd而增加/删除。这个配置可以用来给服务器配置静态的IP地址/路由,当然如果服务器的配置里面已经有这些配置,就不需要设置了。

static_ipaddress
{
   192.168.1.1/24 brd + dev eth0 scope global

}
static_routes
{
 src $SRC_IP to $DST_IP dev $SRC_DEVICE
 src $SRC_IP to $DST_IP via  $GW  dev $SRC_DEVICE

}


VRRP(vrrp)配置

vrrpd的配置:vrrp同步组(synchroization group)和vrrp实例(vrrp instance)

VRRP Sync Groups
 不使用Sync Group的话,如果如果机器(或者说是router)有两个网段,一个内网一个外网,每个网段开启一个VRRP实例,假设VRRP配置为了检测内网,当外网出现问题时,VRRP认为自己仍然健康,那么不会发送Master和Backup的切换,从而导致了问题。Sync group就是为了解决这个问题,可以把两个实例走放在一个sync group,这样的话,group里面任何实例出现问题都会切换。

vrrp_sync_group VG_1 {

group 
{
   inside_network    #这里是实例名
  outside_network 
  }

notify_master  /path/to/to_master.sh
notify_backup /path_to/to_backup.sh
notify_fault     "/path/fault.sh VG_1"
notify               /path/to/notify.sh
smtp_alert
}

notify_master 指定当切换到master时,执行的脚本,这个脚本可以传入参数
notify 指令三个参数,这些参数有keepalived提供
smtp_alter 使用global_defs里面定义的邮件地址和smtp服务器在切换后发送邮件通知


VRRP实例(instance)配置 (见文档)










安装防火墙iptables
yum install iptables
apt-get install iptables

清楚防火墙规则
iptables -F
iptables -X
iptables -Z

开放指定端口

-A和-I参数分别为添加到规则末尾和规则最前面




apache 支持静态页,tomcat支持动态,比如jsp

一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。 
apache可以支持php\cgi\perl,但是要使用java的话,你需要tomcat在apache后台支撑,将java请求由apache转发给tomcat处理。
apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。  
这两个有以下几点可以比较的: 1、两者都是apache组织开发的 2、两者都有HTTP服务的功能 3、两者都是免费的  
不同点: 
Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等) 
Tomcat是Apache组织在符合J2EE的JSP、Servlet标准下开发的一个JSP服务器    

apache是web服务器,动态jsp网页解释器tomacat,jdk提供jsp链接数据库的驱动

apache支持php、cgi、perl、html
tomcat是应用java服务器,支持jsp



route add default gw  192.168.0.1
网关作用就是通过他可以访问外网
一般方式是:在局域网有一台机器,可以直接访问外网,那么局域网内的其他机器,就把这台机器ip作为他们的网关,自己在设置不同ip就可以上网了。。




linux下安装vsftpd服务  可以网页访问。
挂在本地cdram。mount -o loop /dev/cdrom  /mnt/123(loop 挂载“回旋设备”以及“ISO镜像文件)

由于该主目录是mpsp用户建的,usertest是mpsp组的成员,所以usertest默认具有增删查改权限;而usertest作为mpsp组成员,对/home/mpsp下的所有路径具有访问权限(根据各目录的权限设置,默认是这样),登录ftp后会发现,usertest用户可以访问其他目录,并且具有mpsp组的权限,这样做是不允许的,我们需要将usertest用户的访问范围控制在其主目录下。方法如下:
      1. cd /etc/vsftpd 进入ftp配置文件目录
      2. vi vsftpd.conf编辑此文件,找到#chroot_list_enable=YES,删除前面的那个#号,表示开启此限制功能
          找到chroot_list_file:chroot_list_file=/etc/vsftpd/chroot_list
      3. 编辑chroot_list文件,加入你要限制的用户名,一行一个用户.
 
      如果更新了vsftpd.conf,一定要重启ftp,命令如下:
      [root@linuxsir001 root]# /etc/init.d/vsftpd restart
      关闭 vsftpd: [ 确定 ]
      为 vsftpd 启动 vsftpd: [ 确定 ]




针对Centos操作系统  如下是配置IP 地址过程详细介绍:
  1. ⑴、命令配置法:ifconfig和ip 
  2.  
  3.       Ifconfig ethx:x IP/netmask 
  4.  
  5.       ip addr add IP dev ethx label ethX:X 
  6.  
  7.       利用命令配置的只是暂时的IP地址,如果重启网络服务和系统都会失效的。 
  8.  
  9. ⑵、配置文件配置法: 
  10.  
  11.     修改/etc/sysconfig/network-scripts/ifcfg-ethx:x 
  12.  
  13.       DEVICE=ethx:x 
  14.  
  15.       BOOTPROTO=static  
  16.  
  17.       IPIPADDR=   IP地址 
  18.  
  19.       NETMASK=  子网掩码 
  20.  
  21.       GATEWAY=  网关 
  22.  
  23.       ONBOOT=YES   是否开机启用 
  24.  
  25.       HWADDR=...... MAC 
  26.  
  27.       非主要地址不能用DHCP服务获得,必须为静止的。 

八、 DNS配置文件:

 

  1. ⑴、DNS配置文件位置:/etc/resolv.conf 
  2.  
  3. ⑵、DNS配置格式: 
  4.  
  5.          nameserver DNS_IP1 
  6.  
  7.          nameserver DNS_IP2 
  8.  
  9. 指定本地解析: 
  10.  
  11.      /etc/hosts下添加 
  12.  
  13.     目标主机IP        主机名       
  14.  
  15.     fg:172.16.36.1  www.chris.com  
  16.  
  17. DNS解析过程-->/etc/hosts-->DNS 服务器 

九、主机名配置文件:

 

  1. ⑴、配置文件位置: /etc/sysconfig/network 
  2.  
  3. ⑵、配置格式: 
  4.  
  5.          HOSTNAME=名称 
  6.  
  7.          NETWORKING={yes|no}:是否开启网络功能 

  



NTP相关配置

# watch ntpq -p
Every 2.0s: ntpq -p                                  Sat Jul  7 00:41:45 2007

     remote           refid      st t when poll reach   delay   offset  jitter
===========================================================
+193.60.199.75   193.62.22.98     2 u   52   64  377    8.578   10.203 289.032
*mozart.musicbox 192.5.41.41      2 u   54   64  377   19.301  -60.218 292.411

现在我就来解释一下其中的含义

  remote: 它指的就是本地机器所连接的远程NTP服务器
      refid: 它指的是给远程服务器(e.g. 193.60.199.75)提供时间同步的服务器
          st: 远程服务器的层级别(stratum). 由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端. 所以服务器从高到低级别可以设定为1-16. 为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的.
            t: 这个.....我也不知道啥意思^_^
    when: 我个人把它理解为一个计时器用来告诉我们还有多久本地机器就需要和远程服务器进行一次时间同步
       poll: 本地机和远程服务器多少时间进行一次同步(单位为秒). 在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围.之后poll值会逐渐增大,同步的频率也就会相应减小
    reach: 这是一个八进制值,用来测试能否和服务器连接.每成功连接一次它的值就会增加
    delay: 从本地机发送同步要求到服务器的round trip time
    offset: 这是个最关键的值, 它告诉了我们本地机和服务器之间的时间差别. offset越接近于0,我们就和服务器的时间越接近
     jitter: 这是一个用来做统计的值. 它统计了在特定个连续的连接数里offset的分布情况. 简单地说这个数值的绝对值越小我们和服务器的时间就越精确

NTP安全设置(restrict)

运行一个NTP Server不需要占用很多的系统资源,所以也不用专门配置独立的服务器,就可以给许多client提供时间同步服务, 但是一些基本的安全设置还是很有必要的
那么这里一个很简单的思路就是第一我们只允许局域网内一部分的用户连接到我们的服务器. 第二个就是这些client不能修改我们服务器上的时间

关于权限设定部分 
权限的设定主要以 restrict 这个参数来设定,主要的语法为: 
restrict IP地址 mask 子网掩码 参数 
其中 IP 可以是IP地址,也可以是 default ,default 就是指所有的IP 
参数有以下几个: 
ignore :关闭所有的 NTP 联机服务 
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。 
notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网 
noquery :不提供客户端的时间查询




Centos 7  设置开机自启动详细如下:

任务 旧指令 新指令
使某服务自动启动 chkconfig --level 3 httpd  on              systemctl enable httpd.service
使某服务不自动启动 chkconfig --level 3 httpd off systemctl disable httpd.service
检查服务状态 service httpd status systemctl status httpd.service (服务详细信息) 
systemctl is-active httpd.service (仅显示是否 Active)
显示所有已启动的服务 chkconfig --list systemctl list-units --type=service
启动某服务 service httpd start systemctl start httpd.service
停止某服务 service httpd stop systemctl stop httpd.service
重启某服务 service httpd restart systemctl restart httpd.service
 
启动nginx服务
systemctl start nginx.service
设置开机自启动
systemctl enable nginx.service
停止开机自启动
systemctl disable nginx.service
查看服务当前状态
systemctl status nginx.service
重新启动服务
systemctl restart nginx.service
查看所有已启动的服务
systemctl list-units --type=service

Redis侧重于网络栈性能,mysql侧重于内存,网络和文件系统的性能

arp -a   
arp -a 和你通信了的一些机器。IP和MAC .arp的中文意思就是通过IP而知道别人的MAC地址,也就是常说的地址解析。
ARP -d 就是清除缓存中的数据。也是删除IP和MAC绑定的项目。




NTP(http://www.cnblogs.com/xwdreamer/p/3448773.html)
ubuntu下配置时间同步NTP

1参考文献:

1.鸟哥的Linux私房菜:第十五章、时间服务器: NTP 服务器(强烈建议看完)

2.http://www.crsay.com/wiki/wiki.php/server/centos/ntp-set

3.常见错误集锦:http://www.blogjava.net/spray/archive/2008/07/10/213964.html

2架构

Stratum 1/2 Internet NTP Server

Stratum 3 公司防火墙(防火墙带有ntp功能,并且能够连接外网)

Stratum 4 自己搭建ntp server(跟公司防火墙的ntp server对时,这样的好处有两个,一是降低了防火墙的压力,二是降低耦合性,防止因为防火墙的变更而带来更多的改动)

Stratum 5 公司内的各台机器,相当于是一个ntp client。

3安装

3.1在线安装

ntp在线安装的方式很简单,只需要执行以下命令即可帮你安装好ntp以及所有的依赖包

sudo apt-get install ntp
3.2离线安装

如果要离线安装,那么就需要下载ntp安装包和依赖包。我们可以在一个有线环境下运行上面的在线安装,然后到/var/cache/apt/archives这个目录下拷贝完整的ntp安装包和依赖包。当前我已经将这些安装包放到网盘上面去了:http://pan.baidu.com/s/1dDzg95f。

  对于下载的deb包,我们使用dpkg安装包来安装,先安装依赖包,最后安装程序包。具体安装过程如下:


root@BJCGNMON01:/var/cache/apt/archives# dpkg  -i  libopts25_1%3a5.12-0.1ubuntu1_amd64.deb 
Selecting previously unselected package libopts25.
(Reading database ... 51276 files and directories currently installed.)
Unpacking libopts25 (from libopts25_1%3a5.12-0.1ubuntu1_amd64.deb) ...
Setting up libopts25 (1:5.12-0.1ubuntu1) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

root@BJCGNMON01:/var/cache/apt/archives# dpkg  -i  ntp_1%3a4.2.6.p3+dfsg-1ubuntu3.1_amd64.deb 
(Reading database ... 51324 files and directories currently installed.)
Preparing to replace ntp 1:4.2.6.p3+dfsg-1ubuntu3.1 (using ntp_1%3a4.2.6.p3+dfsg-1ubuntu3.1_amd64.deb) ...
Unpacking replacement ntp ...
Setting up ntp (1:4.2.6.p3+dfsg-1ubuntu3.1) ...
 * Starting NTP server ntpd
   ...done.
Processing triggers for ureadahead ...
ureadahead will be reprofiled on next reboot
Processing triggers for man-db ...

  当然还有更加简单的方法,将下载的deb包拷贝到/var/cache/apt/archives目录下,然后在执行一下命令同样可以安装。

sudo apt-get install ntp
安装完毕以后我们可以查看服务是否启动,执行以下命令:


enadmin@ubuntu-server:~/ftp/ntp_ubuntu$ service --status-all
 [ ? ]  acpid
 [ ? ]  apache
 [ + ]  apache2
 [ - ]  apparmor
 [ ? ]  apport
 [ ? ]  atd
 [ - ]  bootlogd
 [ ? ]  console-setup
 [ ? ]  cron
 [ ? ]  dbus
 [ ? ]  dmesg
 [ ? ]  dns-clean
 [ ? ]  friendly-recovery
 [ - ]  grub-common
 [ ? ]  hostname
 [ ? ]  hwclock
 [ ? ]  hwclock-save
 [ ? ]  irqbalance
 [ ? ]  killprocs
 [ ? ]  module-init-tools
 [ ? ]  mysql
 [ + ]  nagios
 [ + ]  nagios-bak
 [ ? ]  network-interface
 [ ? ]  network-interface-container
 [ ? ]  network-interface-security
 [ ? ]  networking
 [ + ]  ntp
 [ ? ]  ondemand

可以看到ntp服务已经启动([+]表示已经启动。)

4配置文件/etc/ntp.conf解析

sudo vim /etc/ntp.conf
这个文件是配置ntp最重要的一个文件,也是ntp配置过程中的唯一难点,之前一直不知道这个配置问价当中配置选项的含义,所以一直无从下手。

4.1配置上层server

利用 server 关键字设定上层 NTP 服务器,上层 NTP 服务器的设定方式为:

server [IP or hostname] [prefer]
在 server 后端可以接 IP 或主机名,个人比较喜欢使用 IP 来设定, perfer 表示『优先使用』的服务器。

4.2利用 restrict 来管理权限控制

在 ntp.conf 档案内可以利用『 restrict 』来控管权限,这个参数的设定方式为:

restrict [IP] mask [netmask_IP] [parameter]
其中 parameter 的参数主要有底下这些:

ignore: 拒绝所有类型的 NTP 联机;
nomodify: 客户端不能使用 ntpc 与 ntpq 这两支程序来修改服务器的时间参数, 但客户端仍可透过这部主机来进行网络校时的;
noquery: 客户端不能够使用 ntpq, ntpc 等指令来查询时间服务器,等于不提供 NTP 的网络校时;
notrap: 不提供 trap 这个远程事件登录 (remote event logging) 的功能。
notrust: 拒绝没有认证的客户端。
如果你没有在 parameter 的地方加上任何参数的话,这表示『该 IP 或网段不受任何限制』。一般来说,我们可以先关闭 NTP 的权限,然后再一个一个的启用允许登入的网段。

ntp server配置

ntp server的需求:

我的上层 NTP 服务器共只有防火墙的ntp server:10.138.16.251。
不对Internet 提供服务,仅允许来自内部网域10.138.0.0/255.255.0.0的查询而已;
侦测一些 BIOS 时钟与 Linux 系统时间的差异并写入 /var/lib/ntp/drift 档案当中。

# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift #草稿文件

#日志文件
statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

#上层ntp server
server 10.138.16.251 prefer 
#让NTP Server和其自身保持同步,如果在/etc/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端
server 127.127.1.0
fudge 127.127.1.0 stratum 5

#不允许来自公网上ipv4和ipv6客户端的访问
restrict -4 default kod notrap nomodify nopeer noquery 
restrict -6 default kod notrap nomodify nopeer noquery

#运行上层ntp server的所有权限
restrict 10.138.16.251

#允许这个网段的对时请求
restrict 10.138.0.0 mask 255.255.0.0 nomodify 

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

使用 ntpd渐进式更新时间

ntp又是服务器,又是客户端,只需要通过配置即可。上面我们将10.138.16.232配置成了ntp服务器,下面这台服务器我们以10.138.16.232作为ntp服务器配置client。


# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift


# Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# Specify one or more NTP servers.

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
#server 0.ubuntu.pool.ntp.org
#server 1.ubuntu.pool.ntp.org
#server 2.ubuntu.pool.ntp.org
#server 3.ubuntu.pool.ntp.org

# Use Ubuntu's ntp server as a fallback.
#server ntp.ubuntu.com

server 10.138.16.251 prefer
server 127.127.1.0
fudge 127.127.1.0 stratum 10



# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details.  The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

restrict 10.138.16.251
restrict 10.138.0.0 mask 255.255.0.0 nomodify


# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
#restrict 192.168.123.0 mask 255.255.255.0 notrust


# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
#broadcast 192.168.123.255

# If you want to listen to time broadcasts on your local subnet, de-comment the
# next lines.  Please do this only if you trust everybody on the network!
#disable auth
#broadcastclient

使用ntpdate更新时间

 在客户端只需要运行一下命令接口进行对时操作

sudo ntpdate 10.138.16.232
ntpdate命令是要在ntp进程退出的情况下执行,如果执行上述命令出错,那么请先关闭ntp进程,具体操作日下所示:


root@BJCGNMON01:/etc/init.d# ntpdate 10.138.16.232
27 Feb 14:59:32 ntpdate[18546]: the NTP socket is in use, exiting
root@BJCGNMON01:/etc/init.d# service ntp stop
 * Stopping NTP server ntpd
   ...done.
root@BJCGNMON01:/etc/init.d# ntpdate 10.138.16.232
27 Feb 14:58:13 ntpdate[18557]: step time server 10.138.16.232 offset -98.402560 sec

如果是windows操作系统,按照参考文献1进行修改。
0 0