知识点
来源:互联网 发布:挖矿用什么软件 编辑:程序博客网 时间:2024/06/05 01:14
iptables
http://www.cnblogs.com/can-H/p/6726743.html
-t<表>:指定要操纵的表;
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-i:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清楚规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-s:指定要匹配的数据包源ip地址;
-j<目标>:指定要跳转的目标;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
//详述 iptales 工作流程以及规则过滤顺序?
(1)防火墙是一层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
(2)如果匹配上了规则,即明确表明是阻止还是通过,此时数据包就不能向下匹配新规则了。
(3)如果所有规则中没有明确表明是阻止还是通过这个数据包,也就是没有匹配上规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
(4)防火墙的默认规则是对应链的所有的规则执行完才会执行的,(最后执行的规则)
//iptables 有几个表以及每个表有几个链?
filter:INPUT,OUTPUT,FORWARD
NAT :POSTROUTING,PREROUTING,OUTPUT
mangle:INPUT,OUTPUT,FORWARD,POSTROUTING,PREROUTING
raw : PREROUTING, OUTPUT
规则链名包括:
INPUT链:处理输入数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:用于目标地址转换(DNAT)。
POSTOUTING链:用于源地址转换(SNAT)。
动作包括:
accept:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
MASQUERADE:IP伪装(NAT),用于ADSL。
LOG:日志记录。
####//iptables 的几个表以及每个表对应链的作用,对应企业应用场景?
(1)filter:
强调:主要和主机自身有关,真正负责主机防火墙功能的(过滤流入流出主机的数据包。)filter表iptables默认使用的表。这个表轻易了三个链(chains)
企业工作场景:主机防火墙
INPUT:负责过滤所有目标地址是本机地址的数据包,通俗的讲,就是过滤进入主机的数据包
FORWARD:负责转发流经主机的数据包。起转发的作用,和nat关系很大,
OUTPUT:处理所有源地址是本机地址的数据包,通俗的讲,就是处理从主机发出去的数据包
强调:对于filter表的控制是实现本机防火墙功能的重要手段,特别是对INPUT链的控制
(2)nat表:
负责网络地址转换,即来源与目的ip地址的port的转换,应用:和主机本身无关。一般用于局域网共享上网或特殊的端口转换服务相关。
NAT功能一般企业工作场景
1.用于做企业路由(zebra)或网关(iptables),共享上网(postrouting)
2.做内部外部IP地址一对一映射(dmz),硬件防火墙映射IP到内部服务器,ftp服务(prerouting)
3.web,单个端口的映射。直接映射80端口(prerouting)
这个表定义了三个链(chains),nat功能就相当于网络的acl控制。和网络交换机类似
OUTPUT:和主机发出去的数据包有关,改变主机发出数据包的目标地址。
PREROUTING:在数据包到达防火墙时进行路由判断之前执行的规则。作用时改变数据包的目的地址,目的端口等。
POSTROUTING:在数据包离开防火墙时进行路由判断之后执行的规则,作用改变数据包的源地址,源端口等。。例如:笔记本和虚拟机都是192.168.1.0/24,就是出网的时候被我们企业路由器把源地址改成了公网地址了。生产应用:局域网共享上网。
另外两个,raw和mangle在工作不常用,不做过多的解释了
// iptables显示当前所有规则命令
iptables -nL [ --line-num ] ##【】表示可选项
//禁止来自 10.0.0.188 ip 地址访问 80 端口的请求
iptables -I INPUT -p tcp -s 10.0.0.188 --dport 80 -j DROP
//如何使在命令行执行的 iptables 规则永久生效?
/etc/init.d/iptables save/etc/sysconfig/iptables //写入配置文件/etc/init.d/iptables reload //重启服务
//清除已有iptables
iptables -F
iptables -X
iptables -Z
//规则
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #允许本地回环接口(即运行本机访问本机) iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许已建立的或相关连的通行 iptables -A OUTPUT -j ACCEPT #允许所有本机向外的访问 iptables -A INPUT -p tcp --dport 22 -j ACCEPT #允许访问22端口 iptables -A INPUT -p tcp --dport 80 -j ACCEPT #允许访问80端口 iptables -A INPUT -p tcp --dport 21 -j ACCEPT #允许ftp服务的21端口 iptables -A INPUT -p tcp --dport 20 -j ACCEPT #允许FTP服务的20端口 iptables -A INPUT -j reject #禁止其他未允许的规则访问 iptables -A FORWARD -j REJECT #禁止其他未允许的规则访问
//屏蔽IP
iptables -I INPUT -s 123.45.6.7 -j DROP #屏蔽单个IP的命令 iptables -I INPUT -s 123.0.0.0/8 -j DROP #封整个段即从123.0.0.1到123.255.255.254的命令 iptables -I INPUT -s 124.45.0.0/16 -j DROP #封IP段即从123.45.0.1到123.45.255.254的命令 iptables -I INPUT -s 123.45.6.0/24 -j DROP #封IP段即从123.45.6.1到123.45.6.254的命令是
//删除
iptables -L -n --line-numbers ##将所有iptables以序号标记显示iptables -D INPUT 8 ##删除INPUT里序号为8的规则
//实现把访问 10.0.0.8:80 的请求转到 172.16.1.17:80
iptables -t nat -A PREROUTING -d 10.0.0.8 -p tcp --dport 80 -j DNAT --to-destination 172.16.1.17:80
//实现 172.16.1.0/24 段所有主机通过 10.0.0.8 外网 IP 共享上网
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.8
//只允许远程主机访问本机的 80 端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #允许80端口访问iptables -P INPUT DROP #默认拒绝所有服务、端口访问
//请描述如何配置一个 linux 上网网关?
iptables -t nat -A POSTROUTING -o eth0 -s 172.16.1.0/24 -j SNAT --to-source 10.0.0.8
docker
//定义
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
几乎没有性能开销,可一个很容易地在及机器和数据中心运行,他们不依赖任何语言、框架或系统。
解决了运行环境和配置问题,方便发布,也方便做持续集成。
//docker和传统虚拟化(KVM、XEN)方式的不同之处
docker是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统。
传统方式则是在硬件基础上虚拟出自己的系统,再在系统上部署相关的APP应用等。
//docker虚拟化特点
操作启动快、轻量级虚拟化、节省了虚拟机的性能损耗、开源免费、前景及云支持。
//发布的几种方式
蓝绿部署
A/B测试:重在几种中选择一种
灰度发布:平滑过渡,逐渐扩大使用群体。实例:QQ升级。
//镜像、容器、仓库
镜像:其实就是一个模板
容器:使用镜像常见的应用或系统,我们称之为一个容器
仓库:仓库是存放镜像的地方,分为公开仓库和私有仓库两种形式。
//docker的四种网络模式
Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。一个Network Namespace提供了一份独立的网络环境,包括网卡、路由、Iptable规则等都与其他的Network Namespace隔离。一个Docker容器一般会分配一个独立的Network Namespace。
host模式:这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
container模式:指定新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过lo网卡设备通信。
none模式:这个模式和前两个不同。在这种模式下,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。
bridge模式:bridge模式是Docker默认的网络设置,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上。下面着重介绍一下此模式。
//docker中Linux内核六种命名空间隔离的系统调用
Zabbix
//模块
监测中:
资产记录:
报表:
配置:主机群组、模板、维护、动作、关联项事件、自动发现、IT服务。
管理:
//获取网页状态页的数据
在nginx配置中配置监控项页面、curl过滤状态页信息、创建监控项、创建图形。
创建用户、设置媒介类型、设置权限、创建出发动作与策略、测试验证。
lnmp安全问题
http://www.jianshu.com/p/79b618351fdd
lvm主要步骤
硬盘或者分区–>pv–>vg–>lvm
-物理分区或磁盘是 LVM 的第一构建块。这些可以是分区、完整磁盘、 RAID 集或 SAN 磁盘
-物理卷(块设备,分区或完整磁盘,设备必须初始化为lvm物理卷才能与lvm一起使用)
-卷组是存储池 , 由一个或多个物理卷组成
-物理区块是物理卷中存储的小型数据区块 , 用作 LVM 存储的后端
-逻辑区块映射到物理区块 , 构成 LVM 存储的前端。默认情况下 , 每个逻辑区块映射到一个物理区块。启用某些选项将更改此映射。例如 , 镜像会导致每个逻辑区块映射到两个物理区块
-逻辑卷是逻辑区块组。逻辑卷可以像硬盘驱动器分区一样使用
• 准备物理卷
– disk 用于创建与 LVM 结合使用的新分区。在要与 LVM 结合使用的分区上 , 始终将“ 类型 ” 设置为 “ 0x8e Linux LVM”
– pvcreate /dev/vdaN 用于初始化分区 ( 或其他物理设备 ), 使其作为物理卷与 LVM 结合使用。直接在物理卷中创建用于存储 LVM 配置数据的表头
• 创建卷组
– vgcreate vgname /dev/vdaN 将创建名为 vgname 且由物理卷 /dev/vdaN 组成的卷组。您可以在创建时指定其他物理卷 ( 以空格隔开 ), 也可以随后使用 vgextend 添加新物理卷
• 创建和使用新逻辑卷
– lvcreate -n lvname -L 2G vgname 从 vgname 上可用物理区块创建名为 lvname 、容量为 2GB 的新逻辑卷
– mkfs -t ext4 /dev/vgname/lvname 将在新逻辑卷上创建 ext4 文件系统
– mkdir /data 建立所需目录作为挂载点
– 向 /etc/fstab 文件中添加一下条目:
/dev/mapper/vgname-lvname /data ext4 defaults 1 2
– 运行 mount -a 可在 /etc/fstab 中挂载所有文件系统 , 包括您刚刚添加的条目
//LVM的建立
命令:
73 mkdir /weixindata
74 fdisk /dev/vdb
75 fdisk -l
76 partprobe
77 pvcreate /dev/vdb1
78 fdisk -l
80 df ##注意:一定要把上次实验做的停掉
83 mdadm -D /dev/md0
84 mdadm -S /dev/md0
85 mdadm -D /dev/md0
86 pvcreate /dev/vdb1
87 vgcreate vg0 /dev/vdb1
88 lvcreate -L 300M -n lv0 vg0
89 mkfs.xfs /dev/vg0/lv0
90 mount /dev/vg0/lv0 /weixindata/
//拉伸与缩减
拉伸
1 lvextend -L 900M /dev/vg0/lv0 ##-L是拉伸到多大
2 xfs_growfs /dev/vg0/lv0 ##使文件也增大,注意:文件不能格式化,否则内容会丢掉
3 lvextend -L 1500M /dev/vg0/lv0
4 pvcreate /dev/vdb2 ##再加一块硬盘
5 vgextend vg0 /dev/vdb2
6 lvextend -L 1500M /dev/vg0/lv0
7 xfs_growfs /dev/vg0/lv0
缩减:不能用xfs格式的文件,所以先取消挂载,把文件换一种格式
1 umount /weixindata/
2 mkfs.ext4 /dev/vg0/lv0
3 mount /dev/vg0/lv0 /weixindata/
4 df
1 umount /weixindata/ ##先把文件取消挂载
2 e2fsck -f /dev/vg0/lv0 ##做这一步是为了下一步如果缩的过小有提示
3 resize2fs /dev/vg0/lv0 20M ##过小,会有提示的
4 resize2fs /dev/vg0/lv0 300M
5 resize2fs /dev/vg0/lv0 10M ##也过小
6 mount /dev/vg0/lv0 /weixindata/ ##显示的文件大小是300M
7 lvreduce -L 300 /dev/vg0/lv0
8 pvmove /dev/vdb1 /dev/vdb2
9 vgreduce vg0 /dev/vdb1
10 pvremove /dev/vdb1
netstat
-a或--all:显示所有连线中的Socket; -A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址; -c或--continuous:持续列出网络状态; -C或--cache:显示路由器配置的快取信息; -e或--extend:显示网络其他相关信息; -F或--fib:显示FIB; -g或--groups:显示多重广播功能群组组员名单; -h或--help:在线帮助; -i或--interfaces:显示网络界面信息表单; -l或--listening:显示监控中的服务器的Socket; -M或--masquerade:显示伪装的网络连线; -n或--numeric:直接使用ip地址,而不通过域名服务器;-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称; -o或--timers:显示计时器; -p或--programs:显示正在使用Socket的程序识别码和程序名称; -r或--route:显示Routing Table; -s或--statistice:显示网络工作信息统计表; -t或--tcp:显示TCP传输协议的连线状况; -u或--udp:显示UDP传输协议的连线状况; -v或--verbose:显示指令执行过程; -V或--version:显示版本信息; -w或--raw:显示RAW传输协议的连线状况; -x或--unix:此参数的效果和指定"-A unix"参数相同; --ip或--inet:此参数的效果和指定"-A inet"参数相同。
//shell脚本
http://www.jb51.net/article/53967.htm
$$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 $@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 $# 添加到Shell的参数个数 $0 Shell本身的文件名 $1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
top
DNS
到根服务器上进行迭代查询
mysql主从复制与读写分离
http://www.cnblogs.com/luckcs/articles/2543607.html
- 知识点
- 知识点
- 知识点
- 知识点
- 知识点
- 知识点
- 知识点
- 知识点
- 知识点
- 知识点
- 知识点
- 知识点
- 知识点
- 知识点
- 知识点
- 知识点
- 知识点
- 知识点
- maven 遇到failOnMissingWebXml有关问题解决方法
- 二叉树的遍历
- 20170923数据仓库学习总结
- python3类的详解,源代码可以直接复制调试
- 归并排序
- 知识点
- apue 学到的几个unix命令
- mysql编译安装(rhel6.5.x86_64)以及配置
- 安卓开发腾讯X5遇到IllegalArgumentException解决方法
- servlet3.0之ajax文件上传和进度条
- C++中的多继承
- mysql Error2003的错误
- Ubuntu16.04+GTX1070显卡驱动+cuda8.0+cudnn5.1+tensorflow-gpu环境配置
- 下拉多选搜索控件