Linux操作系统进阶

Linux操作系统进阶

一、TCPDump流量监控工具

基本数据:五元组

源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打开

二、IPtables防火墙

介绍:基于命令行的防火墙

1、五张表:存储不同的规则

  • filter表:默认表,负责过滤数据包,使用频率高
  • nat表:用于网络地址转换
  • mangle:修改数据包,流量整形,给数据包打标识
  • raw表:很少用,配置连接跟踪相关内容
  • security表:安全Linux防火墙规则,新增的表,使用频率低

2、五条链:流量的方向

  • input:匹配目标ip是本机的数据包,入站
  • output:出口数据包,出站
  • forward:匹配流经本机的数据包,转发
  • prerouting:修改目的地址,用来做DNAT。例如:把内网80端口映射到互联网端口
  • postrouting:修改源地址,用来做SNAT。例如:局域网共享一个ip接入internet

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

# 命令省略

三、firewalld基础应用

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
  • 富规则

Linux操作系统进阶_第1张图片

  • 端口转发
#将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环境与变量

shell脚本是把一批命令集合在一起,批处理。

  • 默认shell是bash

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 /

五、shell基本编程

#! /usr/bin/bash   用什么shell执行

#号代表注释

#执行shell文件
source xxx.sh
bash xxx.sh
sh xxx.sh
或者
chmod u+x
./xxx.sh

# 双引号和单引号和反引号的区别
双引号里面变量有效
单引号里面变量无效
反引号里面执行命令

六、安卓

  • ADB :安卓连接桥梁,直接操纵安卓

七、Windows配套命令

1、文件与文件夹

Linux操作系统进阶_第2张图片

2、文本内容处理

Linux操作系统进阶_第3张图片

3、进程与服务的处理

Linux操作系统进阶_第4张图片

八、Docker基础命令与应用

1、docker与虚拟机的异同

  • 安装虚拟机软件,在虚拟机上安装操作系统,把操作系统的虚拟机文件备份,随时复制并启动该系统
  • 在Linux上安装docker软件,从镜像仓库(pull)操作系统或应用环境,基于该镜像文件创建一个容器(运行环境),备份容器以供下次使用(直接export容器,将容器提交commit为本地镜像)
  • 虚拟机完全模拟一套全新的硬件环境,docker环境不虚拟硬件,直接使用宿主机资源,docker默认不限制cpu和内存资源,也可以主动添加限制资源
  • 虚拟机可以直接与宿主机或局域网连接分配ip地址,桥接或者nat。而docker容器无法获取ip地址,跟随宿主机的ip地址。
  • 镜像相当于容器的模板,通过镜像创建容器,容器修改后也可提交为镜像,删除容器并不会删除镜像,删除镜像则无法创建容器

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

你可能感兴趣的:(网络安全)