>dig sina.com.cn //查询A记录
;; QUESTION SECTION:
;sina.com.cn. IN A
;; ANSWER SECTION:
sina.com.cn. 37 IN A 202.108.33.32
>dig sina.com.cn ns //查询NS记录
;; QUESTION SECTION:
;sina.com.cn. IN NS
;; ANSWER SECTION:
sina.com.cn. 21478 IN NS ns2.sina.com.cn.
sina.com.cn. 21478 IN NS ns3.sina.com.cn.
sina.com.cn. 21478 IN NS ns1.sina.com.cn.
>dig sina.com.cn soa //查询SOA记录
;; QUESTION SECTION:
;sina.com.cn. IN SOA
;; ANSWER SECTION:
sina.com.cn. 600 IN SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600
另外,还可以
dig @Server sina.com.cn. //在Server服务器上查询sina.com.cn的记录,比如
>dig @210.51.191.22 sina.com.cn
;; QUESTION SECTION:
;sina.com.cn. IN A
;; AUTHORITY SECTION:
sina.com.cn. 21600 IN NS ns1.sina.com.cn.
sina.com.cn. 21600 IN NS ns2.sina.com.cn.
sina.com.cn. 21600 IN NS ns3.sina.com.cn.
;; ADDITIONAL SECTION:
ns1.sina.com.cn. 21600 IN A 202.106.184.166
ns2.sina.com.cn. 21600 IN A 61.172.201.254
ns3.sina.com.cn. 21600 IN A 202.108.44.55
# 查找一个域的授权 dns 服务器
dig sina.com.cn. +nssearch
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns1.sina.com.cn in 31 ms.
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns3.sina.com.cn in 31 ms.
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns2.sina.com.cn in 46 ms.
# 从根服务器开始追踪一个域名的解析过程
>dig news.sina.com.cn +trace
;; global options: printcmd
. 518138 IN NS A.ROOT-SERVERS.NET.
. 518138 IN NS B.ROOT-SERVERS.NET.
. 518138 IN NS C.ROOT-SERVERS.NET.
. 518138 IN NS D.ROOT-SERVERS.NET.
. 518138 IN NS E.ROOT-SERVERS.NET.
. 518138 IN NS F.ROOT-SERVERS.NET.
. 518138 IN NS G.ROOT-SERVERS.NET.
. 518138 IN NS H.ROOT-SERVERS.NET.
. 518138 IN NS I.ROOT-SERVERS.NET.
. 518138 IN NS J.ROOT-SERVERS.NET.
. 518138 IN NS K.ROOT-SERVERS.NET.
. 518138 IN NS L.ROOT-SERVERS.NET.
. 518138 IN NS M.ROOT-SERVERS.NET.
;; Received 228 bytes from 192.168.1.1#53(192.168.1.1) in 15 ms
cn. 172800 IN NS C.DNS.cn.
cn. 172800 IN NS D.DNS.cn.
cn. 172800 IN NS E.DNS.cn.
cn. 172800 IN NS NS.CERNET.NET.
cn. 172800 IN NS A.DNS.cn.
cn. 172800 IN NS B.DNS.cn.
;; Received 297 bytes from 198.41.0.4#53(A.ROOT-SERVERS.NET) in 281 ms
sina.com.cn. 21600 IN NS ns3.sina.com.cn.
sina.com.cn. 21600 IN NS ns1.sina.com.cn.
sina.com.cn. 21600 IN NS ns2.sina.com.cn.
;; Received 136 bytes from 203.119.29.1#53(E.DNS.cn) in 171 ms
news.sina.com.cn. 60 IN CNAME jupiter.sina.com.cn.
jupiter.sina.com.cn. 60 IN CNAME hydra.sina.com.cn.
hydra.sina.com.cn. 60 IN A 218.30.108.61
hydra.sina.com.cn. 60 IN A 218.30.108.62
hydra.sina.com.cn. 60 IN A 218.30.108.63
hydra.sina.com.cn. 60 IN A 218.30.108.64
hydra.sina.com.cn. 60 IN A 218.30.108.65
hydra.sina.com.cn. 60 IN A 218.30.108.66
hydra.sina.com.cn. 60 IN A 218.30.108.67
hydra.sina.com.cn. 60 IN A 218.30.108.68
hydra.sina.com.cn. 60 IN A 218.30.108.69
hydra.sina.com.cn. 60 IN A 218.30.108.72
hydra.sina.com.cn. 60 IN A 218.30.108.73
hydra.sina.com.cn. 60 IN A 218.30.108.74
hydra.sina.com.cn. 60 IN A 218.30.108.55
hydra.sina.com.cn. 60 IN A 218.30.108.56
hydra.sina.com.cn. 60 IN A 218.30.108.57
hydra.sina.com.cn. 60 IN A 218.30.108.58
sina.com.cn. 86400 IN NS ns1.sina.com.cn.
sina.com.cn. 86400 IN NS ns2.sina.com.cn.
sina.com.cn. 86400 IN NS ns3.sina.com.cn.
;; Received 434 bytes from 202.106.184.166#53(ns1.sina.com.cn) in 31 ms
从上面的记录,我们可以看到整个的流程,从根服务器查询到cn的根服务器,然后查询到sina.com.cn的名字服务器,
news.sina.com.cn -> jupiter.sina.com.cn -->hydra.sina.com.cn 最后得到hydra的服务器IP。
;; QUESTION SECTION:
;sina.com.cn. IN A
;; ANSWER SECTION:
sina.com.cn. 37 IN A 202.108.33.32
>dig sina.com.cn ns //查询NS记录
;; QUESTION SECTION:
;sina.com.cn. IN NS
;; ANSWER SECTION:
sina.com.cn. 21478 IN NS ns2.sina.com.cn.
sina.com.cn. 21478 IN NS ns3.sina.com.cn.
sina.com.cn. 21478 IN NS ns1.sina.com.cn.
>dig sina.com.cn soa //查询SOA记录
;; QUESTION SECTION:
;sina.com.cn. IN SOA
;; ANSWER SECTION:
sina.com.cn. 600 IN SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600
另外,还可以
dig @Server sina.com.cn. //在Server服务器上查询sina.com.cn的记录,比如
>dig @210.51.191.22 sina.com.cn
;; QUESTION SECTION:
;sina.com.cn. IN A
;; AUTHORITY SECTION:
sina.com.cn. 21600 IN NS ns1.sina.com.cn.
sina.com.cn. 21600 IN NS ns2.sina.com.cn.
sina.com.cn. 21600 IN NS ns3.sina.com.cn.
;; ADDITIONAL SECTION:
ns1.sina.com.cn. 21600 IN A 202.106.184.166
ns2.sina.com.cn. 21600 IN A 61.172.201.254
ns3.sina.com.cn. 21600 IN A 202.108.44.55
# 查找一个域的授权 dns 服务器
dig sina.com.cn. +nssearch
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns1.sina.com.cn in 31 ms.
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns3.sina.com.cn in 31 ms.
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns2.sina.com.cn in 46 ms.
# 从根服务器开始追踪一个域名的解析过程
>dig news.sina.com.cn +trace
;; global options: printcmd
. 518138 IN NS A.ROOT-SERVERS.NET.
. 518138 IN NS B.ROOT-SERVERS.NET.
. 518138 IN NS C.ROOT-SERVERS.NET.
. 518138 IN NS D.ROOT-SERVERS.NET.
. 518138 IN NS E.ROOT-SERVERS.NET.
. 518138 IN NS F.ROOT-SERVERS.NET.
. 518138 IN NS G.ROOT-SERVERS.NET.
. 518138 IN NS H.ROOT-SERVERS.NET.
. 518138 IN NS I.ROOT-SERVERS.NET.
. 518138 IN NS J.ROOT-SERVERS.NET.
. 518138 IN NS K.ROOT-SERVERS.NET.
. 518138 IN NS L.ROOT-SERVERS.NET.
. 518138 IN NS M.ROOT-SERVERS.NET.
;; Received 228 bytes from 192.168.1.1#53(192.168.1.1) in 15 ms
cn. 172800 IN NS C.DNS.cn.
cn. 172800 IN NS D.DNS.cn.
cn. 172800 IN NS E.DNS.cn.
cn. 172800 IN NS NS.CERNET.NET.
cn. 172800 IN NS A.DNS.cn.
cn. 172800 IN NS B.DNS.cn.
;; Received 297 bytes from 198.41.0.4#53(A.ROOT-SERVERS.NET) in 281 ms
sina.com.cn. 21600 IN NS ns3.sina.com.cn.
sina.com.cn. 21600 IN NS ns1.sina.com.cn.
sina.com.cn. 21600 IN NS ns2.sina.com.cn.
;; Received 136 bytes from 203.119.29.1#53(E.DNS.cn) in 171 ms
news.sina.com.cn. 60 IN CNAME jupiter.sina.com.cn.
jupiter.sina.com.cn. 60 IN CNAME hydra.sina.com.cn.
hydra.sina.com.cn. 60 IN A 218.30.108.61
hydra.sina.com.cn. 60 IN A 218.30.108.62
hydra.sina.com.cn. 60 IN A 218.30.108.63
hydra.sina.com.cn. 60 IN A 218.30.108.64
hydra.sina.com.cn. 60 IN A 218.30.108.65
hydra.sina.com.cn. 60 IN A 218.30.108.66
hydra.sina.com.cn. 60 IN A 218.30.108.67
hydra.sina.com.cn. 60 IN A 218.30.108.68
hydra.sina.com.cn. 60 IN A 218.30.108.69
hydra.sina.com.cn. 60 IN A 218.30.108.72
hydra.sina.com.cn. 60 IN A 218.30.108.73
hydra.sina.com.cn. 60 IN A 218.30.108.74
hydra.sina.com.cn. 60 IN A 218.30.108.55
hydra.sina.com.cn. 60 IN A 218.30.108.56
hydra.sina.com.cn. 60 IN A 218.30.108.57
hydra.sina.com.cn. 60 IN A 218.30.108.58
sina.com.cn. 86400 IN NS ns1.sina.com.cn.
sina.com.cn. 86400 IN NS ns2.sina.com.cn.
sina.com.cn. 86400 IN NS ns3.sina.com.cn.
;; Received 434 bytes from 202.106.184.166#53(ns1.sina.com.cn) in 31 ms
从上面的记录,我们可以看到整个的流程,从根服务器查询到cn的根服务器,然后查询到sina.com.cn的名字服务器,
news.sina.com.cn -> jupiter.sina.com.cn -->hydra.sina.com.cn 最后得到hydra的服务器IP。
Linux 查看某端口在运行什么程序
[ 2009/02/28 19:24 | by selboo ]
当我们用netstat -an的时候,我们有时候可以看到类似的输出:
udp 0 0 0.0.0.0:32768 0.0.0.0:*
但是查找/etc/services又没有这个端口的相关说明,怎么办呢?这个是不是黑客程序?有没有办法查看究竟什么程序监听在这个端口?
使用lsof -i :32768就可以看到:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
rpc.statd 603 root 4u IPv4 953 UDP *:32768
rpc.statd 603 root 6u IPv4 956 TCP *:32768 (LISTEN)
原来是rpc的程序。
使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接。
看另一篇命令详解 linux lsof命令详解
udp 0 0 0.0.0.0:32768 0.0.0.0:*
但是查找/etc/services又没有这个端口的相关说明,怎么办呢?这个是不是黑客程序?有没有办法查看究竟什么程序监听在这个端口?
使用lsof -i :32768就可以看到:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
rpc.statd 603 root 4u IPv4 953 UDP *:32768
rpc.statd 603 root 6u IPv4 956 TCP *:32768 (LISTEN)
原来是rpc的程序。
使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接。
看另一篇命令详解 linux lsof命令详解
linux ulimit
[ 2009/02/27 21:45 | by selboo ]
有时候在程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了.
修改办法:
vi /etc/security/limits.conf
加上:
* soft nofile 8192
* hard nofile 20480
重启就OK
ulimit 命令
用途
设置或报告用户资源极限.
语法
ulimit [ -H ] [ -S ] [ -a ] [ -c ] [ -d ] [ -f ] [ -m ] [ -n ] [ -s ] [ -t ] [ Limit ]
描述
ulimit 命令设置或报告用户进程资源极限,如 /etc/security/limits 文件所定义.文件包含以下缺省值极限:
修改办法:
vi /etc/security/limits.conf
加上:
* soft nofile 8192
* hard nofile 20480
重启就OK
ulimit 命令
用途
设置或报告用户资源极限.
语法
ulimit [ -H ] [ -S ] [ -a ] [ -c ] [ -d ] [ -f ] [ -m ] [ -n ] [ -s ] [ -t ] [ Limit ]
描述
ulimit 命令设置或报告用户进程资源极限,如 /etc/security/limits 文件所定义.文件包含以下缺省值极限:
不用重启系统关闭SeLinux
[ 2009/02/03 20:26 | by selboo ]
selinux简介
SElinux 在linux内核级别上提供了一个灵活的强制访问控制系统(MAC),这个强制访问控制系统是建立在自由访问控制系统(DAC)之上的。
DAC是指系统的安全访问控制都是由系统管理员root自由管理的,不是系统强制行为
MAC运行的时候,比如一个应用程序或者一个线程以某个用户UID或者SUID运行的时候同样对一些其他的对象拥有访问控制限制,比如文件,套接子(sockets)或者其他的线程
通过运行SElinux MAC内核可以保护系统不受到恶意程序的侵犯,或者系统本身的bug不会给系统带来致命影响(把影响限定在一定范围内)
SElinux为每一个用户,程序,进程,还有文件定义了访问还有传输的权限。然后管理所有这些对象之间的交互关系
对于SELinux设定的对象全限是可以根据需要在安装时候规定严格程度,或者完全禁用
在大多数情况下,SElinux对于用户来说是完全透明的,普通用户根本感觉不到Selinux的存在,只有系统管理员才需要对这些用户环境,以及策略进行考虑。这些策略可以按照需要宽松的部署或者应用严格的限制,Selinux提供了非常具体的控制策略,范围覆盖整个linux系统
比如,当一个对象如应用程序要访问一个文件对象,内核中的控制程序检查访问向量缓存(AVC),从这里寻找目标和对象的权限,如果在这里没有发现权限定义,则继续查询安全定义的上下关联,以及文件权限,然后作出准许访问以及拒绝访问的决定。如果在var/log/messages出现avc: denied信息,则表明访问拒绝。
目标和对象通过安装的策略来决定自身的安全关联,同时这些安装的策略也负责给系统产生安全列表提供信息。
除了运行强制模式以外,SELinux可以运行在许可模式,这时候,检查AVC之后,拒绝的情况被记录。Selinux不强制使用这种策略.
下面介绍关闭selinux的方法
Redhat系统,修改/etc/sysconfig/selinux文件:
#SELINUX=enforcing
SELINUX=disabled
查看系统设置selinux开启的情况:
[root@localhost ~]# getenforce
重启系统生效,如果不想重启系统,使用命令
[root@localhost ~]# setenforce 0
SElinux 在linux内核级别上提供了一个灵活的强制访问控制系统(MAC),这个强制访问控制系统是建立在自由访问控制系统(DAC)之上的。
DAC是指系统的安全访问控制都是由系统管理员root自由管理的,不是系统强制行为
MAC运行的时候,比如一个应用程序或者一个线程以某个用户UID或者SUID运行的时候同样对一些其他的对象拥有访问控制限制,比如文件,套接子(sockets)或者其他的线程
通过运行SElinux MAC内核可以保护系统不受到恶意程序的侵犯,或者系统本身的bug不会给系统带来致命影响(把影响限定在一定范围内)
SElinux为每一个用户,程序,进程,还有文件定义了访问还有传输的权限。然后管理所有这些对象之间的交互关系
对于SELinux设定的对象全限是可以根据需要在安装时候规定严格程度,或者完全禁用
在大多数情况下,SElinux对于用户来说是完全透明的,普通用户根本感觉不到Selinux的存在,只有系统管理员才需要对这些用户环境,以及策略进行考虑。这些策略可以按照需要宽松的部署或者应用严格的限制,Selinux提供了非常具体的控制策略,范围覆盖整个linux系统
比如,当一个对象如应用程序要访问一个文件对象,内核中的控制程序检查访问向量缓存(AVC),从这里寻找目标和对象的权限,如果在这里没有发现权限定义,则继续查询安全定义的上下关联,以及文件权限,然后作出准许访问以及拒绝访问的决定。如果在var/log/messages出现avc: denied信息,则表明访问拒绝。
目标和对象通过安装的策略来决定自身的安全关联,同时这些安装的策略也负责给系统产生安全列表提供信息。
除了运行强制模式以外,SELinux可以运行在许可模式,这时候,检查AVC之后,拒绝的情况被记录。Selinux不强制使用这种策略.
下面介绍关闭selinux的方法
Redhat系统,修改/etc/sysconfig/selinux文件:
#SELINUX=enforcing
SELINUX=disabled
查看系统设置selinux开启的情况:
[root@localhost ~]# getenforce
重启系统生效,如果不想重启系统,使用命令
[root@localhost ~]# setenforce 0
linux date命令
[ 2009/01/31 23:44 | by selboo ]
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
说明 :
date 可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 :
时间方面 :
% : 印出 %
%n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
日期方面 :
%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)
若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数
参数 :
-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
--help : 显示辅助讯息
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u : 显示目前的格林威治时间
--version : 显示版本编号
例子 :
显示时间后跳行,再显示目前日期 :
date '+%T%n%D'
显示月份与日数 :
date '+%B %d'
显示日期与设定时间(12:34:56) :
date --date '12:34:56'
注意 :
当你不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date '+%-H:%-M:%-S' 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。
当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
说明 :
date 可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 :
时间方面 :
% : 印出 %
%n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
日期方面 :
%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)
若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数
参数 :
-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
--help : 显示辅助讯息
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u : 显示目前的格林威治时间
--version : 显示版本编号
例子 :
显示时间后跳行,再显示目前日期 :
date '+%T%n%D'
显示月份与日数 :
date '+%B %d'
显示日期与设定时间(12:34:56) :
date --date '12:34:56'
注意 :
当你不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date '+%-H:%-M:%-S' 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。
当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。