基本数据:五元组
源ip
源端口
目的ip
目的端口
协议
1、安装
yum install tcpdump
libpcap:linux上标准的流量监控库
Windows上比较知名的是wincap和npcap
目前市面上主流的各种流量设备,底层都基于以上库
2、使用
# 监控ens33上的流量,并输出到屏幕上
tcpdump -i ens33
# 监控当前服务器80端口的流量
tcpdump and dst port 80 -i ens33
# 监控当前服务器80端口的流量并保存
tcpdump and dst port 80 -i ens33 -w ./target.pcap
# 捕获100条
-c 100
# 下载到Windows用wireshark打开
介绍:基于命令行的防火墙
1、五张表:存储不同的规则
2、五条链:流量的方向
3、规则:
从前到后的依次执行,遇到匹配的规则就不会往下找
4、安装与配置IPtables
systemctl stop firewalld # firewall默认拒绝所有流量,iptables默认允许所有流量
yum install iptables iptables-services
5、基本命令使用
iptables -nL #将端口号以数字形式显示默认表filter中的规则
# 端口转发
确保端口转发功能开启
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p /etc/sysctl.conf
# 命令省略
1、基本使用
启动:systemctl start firewalld
查看状态:systemctl status firewalld
停止:systemctl disable firewalld
禁用:systemctl stop firewalld
重启:systemctl restart firewalld
firewall中,没有表,链,行为,默认拒绝所有流量
2、firewall的区域
不同的区域下,设置不同的防火墙策略,可以不同切换
drop:丢弃
block:阻止
public:公共(默认)
external:外部网络
dmz:管制区
work:工作
home:家庭
internal:内部
trusted:受信任
【注】:如果ping的话,主机超时表示不同,如果显示无法访问目标主机表示被防火墙阻挡。
3、firewall规则用法
firewall规则是是否可以和我建立连接,不是直接把端口堵死
#查看所有规则
firewall-cmd --list-all
#查看所有打开的端口
firewall-cmd --zone=piblic --list-port
#更新防火墙规则
firewall-cmd --reload
#检查防火墙状态
firewall-cmd --state
# 让设定生效
systemctl restart firewalld
#列出所有区域
firewall-cmd --get-zones
#查看区域信息
firewall-cmd --get-active-zones
#设定默认区域,立即生效
firewall-cmd --set-default-zone=public
#查看指定接口所属区域
firewall-cmd --get-zone-of-interface=ens33
#查看可添加的服务
firewall-cmd --get-services
#永久修改
firewall-cmd --permanent <some modification>
firewall-cmd --reload
#查看开放的服务
firewall-cmd --list-services
#查看服务的启动状态
firewall-cmd --query-service ftp
#暂时开放ftp服务
firewall-cmd --add-service=ftp
#永久开放ftp服务
firewall-cmd --add-service=ftp --permanent
#阻止http服务
firewall-cmd --remove-port=http
#开放通过tcp访问3306
firewall-cmd --add-port=3306/tcp
#阻止通过tcp访问336
firewall-cmd --remove-port=3306/tcp
#查看80端口
firewall-cmd --zone=public --query-port=80/tcp
------------------------------------------------------------------
此处不是连接,是丢弃所有包
#拒绝所有包
firewall-cmd --panic-on
#取消拒绝状态
firewall-cmd --panic-off
# 查看是否拒绝
firewall-cmd --query-panic
#将8888端口转发至80
firewall-cmd --add-forward-port=port=8888:proto=tcp:toport=80
#移除端口转发
firewall-cmd --remove-forward-port=port=8888:proto=tcp:toport=80
#开启ip伪装
firewall-cmd --query-masquerade #检查是否允许IP伪装
firewall-cmd --add-masquerade #允许防火墙伪装
firewall-cmd --remove-masquerade #禁止防火墙伪装
#将8888端口的流量转发至10.37.65.91的80端口
firewall-cmd --add-forward-port=port=8888:proto:tcp:toaddr10.37.65.91:toport=80
shell脚本是把一批命令集合在一起,批处理。
1、shell操作
命令 | 作用 |
---|---|
cat /etc/shells | 列出系统之所有的shell |
ksh/csh/zsh/bash | 切换到其他shell |
chsh darkid | 更改darkid用户的默认shell |
cat /etc/passwd | 查看用户默认使用的shell |
echo $SHELL | 查看当前环境变量$SHELL的值 |
2、bash基本操作
命令 | 作用 |
---|---|
TAB | 命令补全 |
history命令或上下键 | 命令历史记录 |
alias gohome=“shutdown -h now” | 命令别名功能 |
crontab | 作业控制功能 |
shell脚本编程 | 编程 |
ls,cat /etc/passwd;mount | 三个命令放在一起,通过;分隔 |
3、echo命令
命令 | 作用 |
---|---|
echo “hello” | 输出hello |
echo -e | 可以使用转移符 |
\n | 换行 |
\r | 回车 |
\ | 反斜杠 |
\0nnn | ASCII码是nnn(八进制)的字符 |
4、环境变量
环境变量是指操作系统预先定义好的一些全局变量,可以任意位置使用,在Linux和Windows中都有。使用频率最高的是$PATH,PATH里面定义了一批文件文件夹路径,表示只要在这个目录下的命令可以直接执行
export PATH=$PATH:/opt
5、变量赋值
#赋值
read name
echo $name
name="darkid"
echo $name
src=/etc/passwd
cp $src /
#! /usr/bin/bash 用什么shell执行
#号代表注释
#执行shell文件
source xxx.sh
bash xxx.sh
sh xxx.sh
或者
chmod u+x
./xxx.sh
# 双引号和单引号和反引号的区别
双引号里面变量有效
单引号里面变量无效
反引号里面执行命令
1、文件与文件夹
2、文本内容处理
3、进程与服务的处理
1、docker与虚拟机的异同
2、安装docker
#安装网络相关命令
yum install net-tools
#安装实用工具
yum install -y yum-utils device-mapper-persistent-data lvm2
#添加yum镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新yum缓存
yum makecache fast
#安装docker-ce
yum -y install docker-ce
#启动docker服务
systemctl start docker 对应的还有stop/restart
#查看docker信息
docker info
#查找centos可用镜像
docker search centos
#镜像仓库地址
https://hub.docker.com https://hub.daocloud.io
【注意】:建议在centos7以上安装docker
3、docker使用
#搜索镜像
docker search hello-world
#拉取镜像
docker pull hello-world 默认拉取最新版本
#运行镜像
docker run hello-world
#查看镜像
docker images
#创建容器
docker create hello-world:latest
#查看容器
docker ps ,docker container ls -a
#启停容器
docker start/stop/restart hello-world(容器名)
#删除容器
docker rm 容器名 (可通过docker container ls -a)
#删除镜像
docker rmi hello-world