linux学习笔记-第十五课-日常管理(二)

一、抓包工具,分析工具

抓包工具 :

tcpdump

格式 :

tcpdump [-AennqX] [-i 接口] [-w 储存档名] [-c 次数] [-r 档案] [所欲撷取的封包数据格式]

常用选项 :

-A :封包的内容以 ASCII 显示,通常用来捉取 WWW 的网页封包资料。
    -e :使用资料连接层 (OSI 第二层) 的 MAC 封包数据来显示;
    -nn:直接以 IP 及 port number 显示,而非主机名与服务名称
    -q :仅列出较为简短的封包信息,每一行的内容比较精简
    -X :可以列出十六进制 (hex) 以及 ASCII 的封包内容,对于监听封包内容很有用
    -i :后面接要『监听』的网络接口,例如 eth0, lo, ppp0 等等的界面;
    -w :如果你要将监听所得的封包数据储存下来,用这个参数就对了!后面接档名
    -r :从后面接的档案将封包数据读出来。那个『档案』是已经存在的档案,
         并且这个『档案』是由 -w 所制作出来的。
    -c :监听的封包数,如果没有这个参数, tcpdump 会持续不断的监听,
         直到使用者输入 [ctrl]-c 为止。

我们可以专门针对某些通讯协议或者是 IP 来源进行封包截取,那就可以简化输出的结果,并取得最有用的信息。常见的表示方法有:
     ‘host foo‘, ‘host 127.0.0.1‘ :针对单部主机来进行封包截取
     ‘net 192.168‘ :针对某个网域来进行封包的截取;
     ‘src host 127.0.0.1‘ ‘dst net 192.168‘:同时加上来源(src)或目标(dst)限制
     ‘tcp port 21‘:还可以针对通讯协议侦测,如 tcp, udp, arp, ether 等
     还可以利用 and 与 or 来进行封包数据的整合显示呢!

1 )示例 :监测网卡eth0的封包信息

[[email protected] ~]# tcpdump -i eth0 -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:15:43.969449 IP 192.168.0.120.22 > 192.168.0.116.50039: Flags [P.], seq 4182134245:4182134453, ack 2359223205, win 292, length 208
09:15:43.969809 IP 192.168.0.116.50039 > 192.168.0.120.22: Flags [.], ack 208, win 251, length 0
09:15:43.972277 IP 192.168.0.120.22 > 192.168.0.116.50039: Flags [P.], seq 208:496, ack 1, win 292, length 288
......................中间省略.................
^C      <==按下 [ctrl]-c 之后结束
952 packets captured                      <==截取到的封包数量
952 packets received by filter            <==由过滤所得的总封包数量
0 packets dropped by kernel               <==被核心所丢弃的封包

09:15:43.972277 IP 192.168.0.120.22 > 192.168.0.116.50039: Flags [P.], seq 208:496, ack 1, win 292, length 288 截取其中一条信息进行分析

09:15:43.972277 :这个是此封包被截取的时间,单位:时:分:秒的格式

IP :使用的通讯协议是IP

192.168.0.120.22 > :来源的IP是192.168.0.120,所使用的端口是22,> 代表传输的方向

192.168.0.116.50039 :目的的IP是192.168.0.116,所使用接收的端口是50039

[P.], seq 208:496 :封包带有 PUSH 的数据传输标志,
且传输的数据为整体数据的 196~472 byte

2 )示例:监测端口

[[email protected] ~]# tcpdump -i eth0 -nn port 22
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:49:43.323168 IP 192.168.0.120.22 > 192.168.0.116.50039: Flags [P.], seq 4182816229:4182816437, ack 2359228693, win 292, length 208
09:49:43.323587 IP 192.168.0.116.50039 > 192.168.0.120.22: Flags [.], ack 208, win 256, length 0
09:49:43.326386 IP 192.168.0.120.22 > 192.168.0.116.50039: Flags [P.], seq 208:496, ack 1, win 292, length 288

3 )示例:以十六进制显示监测的数据

[[email protected] ~]# tcpdump -i eth0 -nn port 22 -X -c 1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:55:47.264963 IP 192.168.0.120.22 > 192.168.0.116.50039: Flags [P.], seq 4188295253:4188295461, ack 2359246885, win 292, length 208
        0x0000:  4510 00f8 c2b9 4000 4006 f4f9 c0a8 0078  [email protected]@......x
        0x0010:  c0a8 0074 0016 c377 f9a4 5055 8c9f 4025  [email protected]%
        0x0020:  5018 0124 8327 0000 8578 31ae e713 1540  P..$.‘[email protected]
        0x0030:  63d5 51cb 41e9 a67b 6ecd ab3b a8b3 3df7  c.Q.A..{n..;..=.
        0x0040:  999a 4d66 abc8 9100 f000 4763 3851 fe84  ..Mf......Gc8Q..
        0x0050:  5d71 eb81 918b 0161 cc44 b9e7 5994 9fd7  ]q.....a.D..Y...
        0x0060:  bb3d e795 666e 277e c840 4500 ff1f 525b  .=..fn‘[email protected][
        0x0070:  2a11 46a0 8bb9 b10d dc69 6110 4658 b926  *.F......ia.FX.&
        0x0080:  5246 f375 c8a8 b5d4 4161 e688 bcb5 4740  [email protected]
        0x0090:  386b 01b1 874f 6432 5b02 59f3 ce70 20ce  8k...Od2[.Y..p..
        0x00a0:  5604 7bc9 0a7e b593 bb66 8be9 3edc a047  V.{..~...f..>..G
        0x00b0:  62bd fb58 1613 6458 80bd b632 00bc 4472  b..X..dX...2..Dr
        0x00c0:  542e a051 7716 6ef8 d37a 6187 322e 23d5  T..Qw.n..za.2.#.
        0x00d0:  9d80 4fb0 009a 1383 3313 3d74 e20a f263  ..O.....3.=t...c
        0x00e0:  fc2d 6c49 4305 509d 280b a54c 6059 4745  .-lIC.P.(..L`YGE
        0x00f0:  a8f5 6932 a5a0 aa24                      ..i2...$
1 packets captured
4 packets received by filter
0 packets dropped by kernel

分析工具 :

wireshark

二、iptables

1 )查看规则与策略

选项 :

-t :后面接 table ,例如 nat 或 filter ,若省略此项目,则使用默认的 filter
    -L :列出目前的 table 的规则
    -n :不进行 IP 与 HOSTNAME 的反查,显示讯息的速度会快很多!
    -v :列出更多的信息,包括通过该规则的封包总位数、相关的网络接口等

示例 :

[[email protected] ~]# iptables -nvL
Chain INPUT (policy ACCEPT 42 packets, 3866 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain OUTPUT (policy ACCEPT 25 packets, 3048 bytes)
 pkts bytes target     prot opt in     out     source               destination

主要项目解释

  • target:代表进行的动作, ACCEPT 是放行,而 REJECT 则是拒绝,此外,尚有 DROP (丢弃) 的项目!
  • prot:代表使用的封包协议,主要有 tcp, udp 及 icmp 三种封包格式;
  • opt:额外的选项说明
  • source :代表此规则是针对哪个『来源 IP』进行限制?
  • destination :代表此规则是针对哪个『目标 IP』进行限制?

2 ) 对策略的修改

选项与参数:
     -P :定义政策( Policy )。注意,这个 P 为大写啊!
     ACCEPT :该封包可接受
     DROP   :该封包直接丢弃,不会让 client 端知道为何被丢弃。

示例 :

# iptables -P INPUT DROP
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT

3 ) 增加一条规则

[-AI 链名] 针对某的链进行规则的 "插入" 或 "累加"
             -A :新增加一条规则,该规则增加在原本规则的最后面。例如原本已经有四条规则,
                  使用 -A 就可以加上第五条规则!
             -I :插入一条规则。如果没有指定此规则的顺序,默认是插入变成第一条规则。
                  例如原本有四条规则,使用 -I 则该规则变成第一条,而原本四条变成 2~5 号
             链 :有 INPUT, OUTPUT, FORWARD 等,此链名称又与 -io 有关

[-io 网络接口] 设定封包进出的接口规范
                 -i :封包所进入的那个网络接口,例如 eth0, lo 等接口。需与 INPUT 链配合;
                 -o :封包所传出的那个网络接口,需与 OUTPUT 链配合;

[-p 协议] 设定此规则适用于哪种封包格式,主要的封包格式有: tcp, udp, icmp 及 all

[-s 来源IP/网域] 来源 IP/网域:设定此规则之封包的来源项目,可指定单纯的 IP 或包括网域,例如:IP  :192.168.0.100 网域:192.168.0.0/24, 192.168.0.0/255.255.255.0 均可。
          若规范为『不许』时,则加上 ! 即可,例如: -s ! 192.168.100.0/24 表示不允许192.168.100.0/24 之封包来源;

[-d 目标IP/网域] 同 -s ,只不过这里指的是目标的 IP 或网域

-j[ACCEPT|DROP|REJECT|LOG]后面接动作,主要的动作有接受(ACCEPT)、丢弃(DROP)、拒绝(REJECT)及记录(LOG)

[-s 来源IP/网域] [--sport 端口范围]
      [-d 目标IP/网域] [--dport 端口范围] -j [ACCEPT|DROP|REJECT]
       选项与参数:
       --sport 端口范围:限制来源的端口号码,端口号码可以是连续的,例如 1024:65535
       --dport 端口范围:限制目标的端口号码。

示例 :

# iptables -A -i eth0 INPUT -s 192.168.0.0/24 -p tcp -j ACCEPT

4  ) 删除规则

-D :删除动作

--line-numbers :显示规则编号

示例 :

# iptables -nvL --line-number   <== 查看规则并显示编号
Chain INPUT (policy DROP)
num  target     prot opt source               destination
1    ACCEPT     all  --  192.168.1.0/24       0.0.0.0/0
2    DROP       tcp  --  192.168.1.70         0.0.0.0/0

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

# iptables -D INPUT 2    <== 删除INPUT链中的规则2,

5 )规则相关的清除

选项与参数:
       -F :清除所有的已订定的规则;
       -X :杀掉所有使用者 "自定义" 的 chain (应该说的是 tables )
       -Z :将所有的 chain 的计数与流量统计都归零

6 )iptables的保存,备份与恢复

① # /etc/init.d/iptables save   <== 保存当前规则,使之生效;

② # iptables-save > ipt.rule   <== 备份当前的规则,恢复用“<”用反向重定向即可

③ # iptables -F     <== 清空规则表,注:策略不会被清除

④ # /etc/init.d/iptables stop     <== 停掉所有策略与规则

注意 :

     主机规则设定流程 :

  1. 规则归零:清除所有已经存在的规则 (iptables -F...),最少是STOP掉服务
  2. 预设政策:除了 INPUT 这个自定义链设为 DROP 外,其他为预设 ACCEPT;
  3. 信任本机:由于 lo 对本机来说是相当重要的,因此 lo 必须设定为信任装置;
  4. 回应封包:让本机主动向外要求而响应的封包可以进入本机 (ESTABLISHED,RELATED)
  5. 信任用户:这是非必要的,如果你想要让区网的来源可用你的主机资源时


ICMP 封包规则的比对:针对是否响应 ping 来设计

# iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j ACCEPT


nat表应用:

路由转发功能
假设您的机器上有两块网卡eth0和eth1,其中eth0的IP为192.168.10.11,eth1的IP为172.16.10.11
。eth0连接了intnet
但eth1没有连接,现在有另一台机器(172.16.10.12)和eth1是互通的,那么如何设置也能够让连接eth1的这台机器能够连接
intnet?

# echo "1" > /proc/sys/net/ipv4/ip_forward  <== 开启路由转发功能
# iptables -t nat -A POSTROUTING -s 172.16.10.0/24 -o eth0 -j MASQUERADE  <== 执行转发规则
时间: 2024-10-08 05:59:06

linux学习笔记-第十五课-日常管理(二)的相关文章

linux学习笔记-第十四课-日常管理(一)

一.w和uptime [[email protected] ~]# w  20:29:01 up 28 min,  1 user,  load average: 0.00, 0.00, 0.00 USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT mylinux  pts/0    192.168.1.105    20:12    0.00s  0.32s  0.26s sshd: my

linux学习笔记-第十六课-日常管理(三)

一.任务计划 1 )任务计划分为两类: 一类是一次性任务计划,由at控制的 另一类是例行周期性计划,由cron控制的 2 )at 一次性任务计划 选项与参数:    -m  :当 at 的工作完成后,即使没有输出信息,亦以 email 通知使用者该工作已完成.    -l  :at -l 相当於 atq,列出目前系统上面的所有该使用者的 at 排程:    -d  :at -d 相当於 atrm ,可以取消一个在 at 排程中的工作:    -v  :可以使用较明显的时间格式列出 at 排程中的

linux学习笔记-第二十五课-NFS与FTP

一.NFS NFS是Network File System的缩写,即网络文件系统. NFS服务器安装 1.NFS服务器主要的软件是rpcbind(rhel 5中的版本叫portmap)和nfs-utils rpcbind:是RPC主程序,负责NFS端口的监听. nfs-utils:是NFS主程序 我们只有通过yum或者RPM来安装就可以 2.启动NFS [[email protected] ~]# service nfs start 启动 NFS 服务:                     

linux学习笔记-第十八课-LAMP之环境搭建(一)

一.LAMP搭建前的准备 LAMP是四套软件的缩写,分别指的是L-Linux,A-Apache,M-Mysql,P-php,利用这四套软件搭建的web的运行环境. 搭建前需要需要下载好软件 apache http://syslab.comsenz.com/downloads/linux/httpd-2.2.16.tar.gz mysql  32位 :http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glib

linux学习笔记-第二十四课-LNMP-Nginx高级配置(三)

一.用户认证 用户认证功能是利用Apache的工具htpasswd生成的密钥,所以需要安装Apache的这个工具即可,我们用yum来安装就可以. [[email protected] ~]# yum install -y httpd-tools [[email protected] ~]# htpasswd -cm /usr/local/nginx/conf/.htpasswd mydiscuz New password: Re-type new password: Adding passwor

linux学习笔记-第十九课-LAMP之 mysql (四)

mysql日常操作指令 1 )mysql管理员密码的更改,mysql安装完毕后,管理员root的密码默认为空,需要进行修改 格式 :mysqladmin -u root password '新密码' 示例 : [[email protected] ~]# mysqladmin -u root password '123456' [[email protected] ~]# mysql -u root -p # 这时候就需要使用密码登陆mysql Enter password:          

linux学习笔记-第二十六课-Samba与squid

一.Samba Samba是SMB的一种实现方法,主要用来实现Linux系统的文件和打印服务.Linux用户通过配置使用Samba服务器可以实现与Windows 用户的资源共享.守护进程smbd和nmbd是Samba的核心,在全部时间内运行.nmbd程序使得通过企图计算机可以浏览Linux服务器. 1.Samba的安装 我们只通过yum安装 [[email protected] ~]# yum install -y samba 2.Samba配置 [[email protected] ~]# v

linux学习笔记-第十九课-LAMP之php 与 mysql 配置(三)

一.php 编译完的php,配置文件为空,我们需要将php的配置文件(php.ini)从解压的源码包中的php.ini-development(开发调试模板)和php.ini-production(生产运行模板)中复制一份到php的配置目录中,且名字改为php.ini 1 )disable_functions 配置 默认为空,修改为 disable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passt

linux学习笔记-第十九课-LAMP之网站搭建(二)

一.网站搭建前提 搭建好LAMP运行环境 下载网站程序,这里以Discuz X 3.2 作为示例 Discuz 程序下载地址:    简体中文GBK http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip    繁体中文BIG5 http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_TC_BIG5.zip    简体UTF-8 http://download.comsenz.c