1. linux系统下的抓包工具
工具tcpdump 格式:
tcpdump -nn -i eth0 tcp and host 192.168.0.1 and port 80
//-nn 表示ip和端口都已数字的形式显示; tcp表示只要tcp的包,host指定包的来源地址或者目标地址;port指定来源端口或者目标端口
tcpdump -nn -vs0 tcp and port not 22 -c 100 -w 1.cap
//-v 显示详细信息;-s0 表示抓取完整数据包,默认不加抓取数据包时默认抓取长度为68字节; -c指定数据包的数量; -w 把抓到的数据写入到一个文件中
工具wireshark, 命令tshark
抓包分析http请求:
#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"
2. Linux防火墙-selinux
配置文件 /etc/selinux/config
三种状态:enforcing, permissive, disabled 默认为enforcing, 即打开状态,但我们通常会关闭它,修改配置文件改为disabled
命令行修改:#setenforce 0/1 查看防火墙状态:#getenforce 若没有这两个命令,#yum install -y libselinux-utils 安装
3. Linux防火墙 - 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作用于那些跟本机无关的包。
nat 主要用处是网络地址转换,也有三个链。
PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。OUTPUT链改变本地产生的包的目的地址。POSTROUTING链在包就要离开防火墙之前改变其源地址。
mangle 这个表主要是用于给数据包打标记,然后根据标记去操作哪些包。这个表几乎不怎么用。
查看规则 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
插入规则:
#iptables -I INPUT -s 1.1.1.1 -j DROP/ACCEPT/REJECT
iptables -nvL --line-numbers 查看规则带有id号 iptables -D INPUT 1 根据规则的id号删除对应规则 iptables -P INPUT DROP 用来设定默认规则,默认是ACCEPT。 一旦设定为DROP后,只能使用 iptables -P ACCEPT 才能恢复成原始状态(使用远程控制软件时谨慎操作)。
icmp的包有常见的应用
本机ping通外网,外网ping不通本机。
#iptables -I INPUT -p icmp --icmp-type 8 -j DROP
iptables规则备份与恢复:
#iptables-save > myipt.rule 可以把防火墙规则保存到指定文件中
iptables-restore < myipt.rule 这样可以恢复指定的规则
4. Linux系统服务管理
ntsysv 类似于图形化配置系统的各个服务是否开启,相当于windows下面的msconfig配置启动项。
安装:yum install -y ntsysv 常用服务:crond, iptables, network, sshd, syslog, irqbalance, sendmail, microcode_ctl 查看系统所有服务的命令: chkconfig --list 我们可以自定义增加服务: chkconfig --add service_name 也可以删除它们: chkconfig --del service_name 打开或关闭指定服务: chkconfig service_name on/off 也可以指定级别: chkconfig --level [345] service_name on/off
5. Linux系统日志
系统掌管日志的服务是 rsyslog
配置文件 /etc/rsyslog.conf 配置文件中有一个核心关键词用来定义日志类型和级别,格式类似: kern.info .左边定义日志的类型,.右边定义日志的级别
日志类型常用的有:
kern (内核信息); user (由用户程序生成的信息); mail (与电子邮件有关的信息); auth (由 pam_pwdb 报告的认证活动); lpr (与打印服务有关的信息);\ news (来自新闻服务器的信息); authpriv (包括私有信息(如用户名)在内的认证活动); uucp(由 uucp 生成的信息.(uucp = unix to unix copy)); cron(与任务计划有关的信息); ftp(与 FTP 有关的信息); local0 ~ local7(由自定义程序使用,例如使用 local5 做为 ssh 功能); *通配符代表除了 mark 以外的所有功能; mark (rsyslog内部功能用于生成时间戳)
日志级别:
emerg 系统不可用 alert 需要立即被修改的条件 crit (临界)阻止某些工具或子系统功能实现的错误条件 err 阻止工具或某些子系统部分功能实现的错误条件 warning 预警信息 notice 具有重要性的普通条件 info 提供信息的消息 debug 不包含函数条件或问题的其他信息 none (屏蔽所有来自指定设备的消息)没有优先级,通常用于排错 *除了none之外的所有级别
-/var/log/maillog 文件前面加一个减号表示日志不立即写入文件 @192.168.0.1 可以指定远程的日志服务器
/var/log/messages 核心日志, centos6日志归档以年月日的格式归档 日志归档其实是配置文件/etc/logrotate.conf所配置 /var/log/wtmp 查看用户登录历史 使用命令 last /var/log/btmp 使用命令lastb 查看无效登录历史 /var/log/maillog /var/log/secure dmesg /var/log/dmesg
6. screen工具
screen相当于一个虚拟终端,它不会因为网络中断而退出,每次登录都可以进入那个screen
使用方法:直接输入screen命令 screen -ls 查看已经开启的screen Ctrl +a 再按d退出该screen会话,只是退出,并没有结束。结束的话输入Ctrl +d 或者输入exit 退出后还想再次登录某个screen会话,使用sreen -r screenid 若只有一个screen 直接screen -r screen -S aming ; 登录的话 screen -r aming