Linux系统日常管理2 tcpdump,iptables

Linux系统日常管理2 tcpdump,iptables 

  1. Linux抓包工具

tcpdump 系统自带抓包工具

如果没有安装,需要安装之后才可以使用

安装:

[[email protected] ~]# yum install -y tcpdump

tcpdump -nn

不转换顿口的名字,直接显示端口号

tcpdump -nn -i eth0 tcp and host 192.168.0.1 and port 80

抓取192.168.0.1ip地址的80端口的tcp包,并且不进行端口名字的转换

-i:指定网卡

tcp:表示只抓取tcp的包

192.168.0.1:指定的ip地址

port 80:指定的,只抓取80端口的数据

tcpdump -nn -i eth0 tcp and host 192.168.0.1 and port 80 -w 1.txt

把抓取的数据包写入到1.txt文件中

-w:写入

tcpdump -nn -i eth0 tcp and host 192.168.0.1 and port 80 -c 10 -w 1.txt

抓取10个数据包,并且写入到1.txt文件中

-c:指定抓取多少个包

-s0:抓取所有内容

[[email protected] ~]# tcpdump -nn -i eth0 tcp and not port 80

过滤掉80端口

tcpdump -nn -vs0 tcp and port not 22 -c 100 -w 1.cap

-w:写入

strings:可以查看二进制包里面的内容

wireshark

默认没有安装,需要安装

yum install -y wireshark

抓包分析http请求,查看80端口上面请求的一些东西

tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"

在什么情况下使用:

1、访问日志没有记录

2、不知道配置文件在哪里,不不想去配置日志文件

3、只是抓跑看看内容

4、如果抓包没有任何显示的时候,需要指定网卡在

tshark -i eth0 -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"

tcpdump和tshark都需要用root的身份才可以执行

2. Selinux

getenforce:查看selinux状态

配置文件 /etc/selinux/config

三种状态:

enforcing:开启

permissive:开启但是不生效,触碰规则的时候警告

disabled:关闭

要设置永久关闭,需要更改配置文件,

[[email protected] ~]# cat /etc/selinux/config 
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing #改成SELINUX=disabled,就永久关闭了
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

setenforce 0:临时关闭,重启后失效

setenforce 1:临时启用,但是如果SELINUX=disabled,是无法启用的

如果没有getenforce这个包,需要安装

使用rpm查看包名:

rpm -qf `which getenforce`

安装

yum install -y libselinux-utils

使用yum也可以安装

yum install *selinux*

3. netfilter --  iptables

iptables -nvL 查看规则

iptables -F 清除当前的规则,系统从启后会失效,只是临时的

iptables -Z 计数器清零

service iptables save 保存规则 保存的规则文件为:/etc/sysconfig/iptables

service iptables stop  可以暂停防火墙,但是重启后它会读取/etc/sysconfig/iptables 从而启动防火墙,另外即使我们停止防火墙,但一旦我们添加任何一条规则,它也会开启。

iptables -t  指定表名,默认不加-t则是filter表

filter 这个表主要用于过滤包的,是系统预设的表,内建三个链INPUT、OUTPUT以及FORWARD。INPUT作用于进入本机的包;OUTPUT作用于本机送出的包;FORWARD作用于那些跟本机无关的包。

iptables -nvL -t nat

指定nat表

nat 主要用处是网络地址转换、端口映射,也有三个链。PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。OUTPUT链改变本地产生的包的目的地址。POSTROUTING链在包就要离开防火墙之前改变其源地址。

mangle 主要用于修改数据包的TOS(Type Of Service,服务类型)、TTL(Time ToLive,生存周期)值以及为数据包设置Mark标记,以实现Qos (Quality of Service,服务质量)调整以及策略路由等应用,由于需要相应的路由设备支持,因此应用并不广泛。 五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD

raw   对报文设置一个标志,决定数据包是否被状态跟踪机制处理   只有两个链:OUTPUT、PREROUTING

iptables规则相关:

查看规则 iptables -t nat -nvL

清除规则 iptables -t nat -F

增加/删除规则

iptables -A/-D INPUT -s 10.72.11.12 -p tcp --sport 1234 -d 10.72.137.159 --dport 80 -j DROP

把10.72.11.12主机从1234端口出去到达目标10.72.137.159主80端口的包丢掉

-A/D:表示增加/删除一条规则

-I:插入一条规则,跟A的效果类似

-p:地址协议,可以是tcp、udp或icmp

--dport:指定目标端口,跟-p一起使用

--sport:指定源端口,跟-p一起使用

-s:指定源IP,也可以是一个IP段

-d:指定目的IP或者IP段

-j:后面跟动作,有三个选项,允许ACCEPT,丢包DROR,拒绝REJECT

-i:表示指定网卡,不常用,偶尔用到

插入规则,使用了-I之后,插入的规则会在之前规则的前面

iptables -I INPUT -s 1.1.1.1 -j DROP/ACCEPT/REJECT

越在前面越先匹配,应该说是在前面有优先匹配的权限吧

把来自192.168.21.99主机的数据包丢掉

[[email protected] ~]#iptables -I INPUT -s 192.168.21.99 -j DROP

删除192.168.21.99这条主机的规则

[[email protected] ~]# iptables -D INPUT -s 192.168.21.99 -j DROP

通讯协议使用的是tcp协议,并且是通过80端口来访问本机,且IP地址是192.168.21.99主机的包丢掉

[[email protected] ~]# iptables -I INPUT -s 192.168.21.99 -p tcp --dport 80 -j DROP

把本机访问192.168.21.99主机22端口的包丢掉

[[email protected] ~]# iptables -I INPUT -p tcp --dport 22 -d 192.168.21.99 -j DROP

允许192.168.21.0/24这个网段在eth0网卡上通信

[[email protected] ~]# iptables -A INPUT -s 192.168.21.0/24 -i eth0 -j ACCEPT

查看规则带有id号

iptables -nvL --line-numbers

[[email protected] ~]# iptables -nvL --line-number
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1     1964  145K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        2   104 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5     3177  311K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
6        0     0 ACCEPT     tcp  --  *      *       1.1.1.1              0.0.0.0/0           tcp dpt:80

根据规则的id号删除对应规则

iptables -D INPUT 6

[[email protected] ~]# iptables -D INPUT 6
[[email protected] ~]# iptables -nvL --line-number
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1     1981  146K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        2   104 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5     3177  311K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0

iptables -P INPUT [ACCEPT]  用来设定默认规则,默认是ACCEPT ,一旦设定为DROP后,只能使用 iptables -P ACCEPT 才能恢复成原始状态,而不能使用-F参数

开放所有192.168.21.254主机的协议,就是说没有任何端口的过滤和限制

[[email protected] ~]# iptables -A INPUT -s 192.168.21.254 -j ACCEPT

iptables-save > 1.ipt

把规则重定向到1.ipt文件中,也可以说成是备份

iptables-restore < 1.ipt

恢复之前备份的规则,使用反向重定向到iptables

禁止别人ping通你,但是你可以ping通别人

[[email protected] ~]# iptables -I INPUT -p icmp --icmp-type 8 -j DROP

实例:

针对filter表,预设策略INPUT链DROP,其他两个链ACCEPT,然后针对192.168.0.0/24开通22端口,对所有网段开放80端口,对所有网段开放21端口。 脚本如下:

#! /bin/bash 
ipt="/sbin/iptables" 
$ipt -F; $ipt -P INPUT DROP; 
$ipt -P OUTPUT ACCEPT; $ipt -P FORWARD ACCEPT; 
$ipt -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT 
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT

icmp的包有常见的应用,本机ping通外网,外网ping不通本机 iptables -I INPUT -p icmp --icmp-type 8 -j DROP

nat表应用:

路由器就是使用iptables的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

规则备份与恢复:

service iptables save 这样会保存到/etc/sysconfig/iptables

iptables-save > myipt.rule 可以把防火墙规则保存到指定文件中

iptables-restore < myipt.rule  这样可以恢复指定的规则

时间: 2024-10-06 00:12:48

Linux系统日常管理2 tcpdump,iptables的相关文章

第一阶段考试:实战Linux系统日常管理

1. [项目名称] 实战Linux系统日常管理 [项目说明] 1.安装部署rhel系统,组建RAID磁盘阵列. 2.安装nginx 通过脚本编写 nginx服务服务启动脚本 [项目考核技能点] 1.安装部署rhel系统,网络设置. 2.shell脚本的基本用法 3. nginx的安装 4.整个方案中要包括:系统的安装,磁盘分区格式化,shell脚本的应用等相关内容. 项目环境可以参考如下: 1.安装两台rhel主机 对应主机名与IP :xuegod63.cn 192.168.1.63 xuego

linux系统日常管理

以下资料来源于<跟阿铭学Linux> 1.监控当前系统状态 1. w查看当前系统的负载 [[email protected] sbin]# w 15:23:46 up 3:34, 2 users, load average: 0.03, 0.05, 0.00 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root tty1 - 12:26 2:55m 0.11s 0.11s -bash root pts/0 10.72.137.53 1

第16章 &#160; linux系统日常管理

1. 如何看当前Linux系统有几颗物理CPU和每颗CPU的核数?物理cpu个数:cat /proc/cpuinfo |grep -c 'physical id'CPU一共有多少核:grep -c processor /proc/cpuinfo  将CPU的总核数除以物理CPU的个数,得到每颗CPU的核数. 2. 查看系统负载有两个常用的命令,是哪两个?这三个数值表示什么含义呢?两个命令分别是  w 和 uptime load average: 0.00, 0.00, 0.00 这三个系统负载值

Linux系统日常管理1 w,vmstat,top,sar,free,ps监控命令

一. w, uptime 命令w, uptime [[email protected] ~]# w  04:02:31 up 1 day,  8:25,  1 user,  load average: 0.00, 0.00, 0.00 USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT root     pts/0    192.168.21.103   23:38    0.00s  0

2015-04-15 Linux系统日常管理1

内容概要: 监控系统状态 – w, vmstat 命令w, uptime system load averages  单位时间段内活动的进程数   查看cpu的个数和核数 vmstat  1 vmstat 1 10 vmstat各指标含义: r :表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了: b :表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要关注一下了 si :由交换区进入内存的数量: so :由内存进入交换区的数

lesson - 12 Linux系统日常管理1

监控系统状态 – w, vmstat命令w, uptimesystem load averages 单位时间段内活动的进程数 查看cpu的个数和核数vmstat 1vmstat 1 10vmstat各指标含义:r :表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了:b :表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要关注一下了si :由交换区进入内存的数量:so :由内存进入交换区的数量:bi :从块设备读取数据的量(读磁

linux系统日常管理的命令

1.监控系统的负载  w    查看当前系统的负载,详细显示主机运行时间,登录用户数,系统平均负载信息: uptime    查看当前系统的负载和主机运行时间,简单显示: 显示说明: 17:30:02    //系统当前时间: up  8:06    //主机已运行时间,时间越大,说明机器越稳定. 3 users    //用户连接数(是总的连接数,不是用户数) load average: 0.05, 0.08, 0.02    //系统平均负载,统计最近1,5,15分钟内系统的平均负载: 第二

lesson - 13 Linux系统日常管理2

内容概要: 1. Linux抓包工具 tcpdump 系统自带抓包工具tcpdump -nn -i eth0 tcp and host 192.168.0.1 and port 80tcpdump -nn -vs0 tcp and port not 22 -c 100 -w 1.cap wireshark 在linux下也可以安装 yum install -y wireshark抓包分析http请求:tshark -n -t a -R http.request -T fields -e "fra

centos linux系统日常管理3 第十六节课

上半节课 下半节课 Linux系统服务管理 ntsysv工具ntsysv 类似图形界面管理工具,如果没有该命令安装  yum install -y ntsysv  常用服务:crond, iptables, network, sshd, syslog, irqbalance, sendmail, microcode_ctl 保存后需要reboot才能生效 chkconfig (命令行服务管理工具) 列出服务列表: chkconfig --list 关闭2级别 : chkconfig --leve