1. 防火墙

保护对象上的分类:

主机防火墙:针对于单个主机进行防护
网络防火墙:往往部署于网络边界,对流入以及流出的流量进行过滤
物理上的分类:

硬件防火墙:拥有经过特别设计的硬件及芯片,性能高、成本高
软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低、成本低

2. firewalld 与 iptables

2.1 异同点

相同点:
firewalld 与 iptables 都是Linux
中防火墙的管理程序,但其实其角色主要为对于防火墙策略的管理,
真正的防火墙执行者是位于内核中的 Netfilter。

不同点:
iptables 仅能通过命令行进行配置; firewalld提供了图形接口,类似windows防火墙的操作方式

iptables 每一个单独更改意味着清除所有旧的规则,并从 /etc/sysconfig/iptables 中读取所有新的规则;

firewalld 在有规则变动后,可以仅仅运行规则中的不同之处,
即在 firewalld 运行时间内,改变设置时可以不丢失现行链接

iptables 的配置文件在 /etc/sysconfig/iptables 中;

firewalld 的配置文件在 /usr/lib/firewalld/ 和 /etc/firewalld/ 中的各种 XML 文件中

iptables 没有守护进程,并不能算是真正意义上的服务;
firewalld 有守护进程

3. 相关命令

windows系统 添加路由
route add 172.16.0.0 mask 255.255.255.0 10.0.0.12

iptables  nat转换
可以过滤网络数据包,可以修改网络数据包(ttl,源ip,目的ip)的工具
ttl 可以在网络上存活的时间,为0则此包丢失

iptables -t nat -F
centos7中使用firewalld  纯命令行 + 图形界面
两者都是基于内核netfilter模块

4. iptables 四表五链

四表:
filter  过滤
nat     转换
mangle  修改数据包信息
raw     追踪数据包

五链:
PREROUTING:数据包进入路由表之前

INPUT:通过路由表后目的地为本机

FORWARD:通过路由表后,目的地不为本机

OUTPUT:由本机产生,向外转发

POSTROUTIONG:发送到网卡接口之前
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE
[root@mysql ~]# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  172.16.1.0/24        anywhere        

iptables -F  清空
iptables -F -t filter
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s 10.0.0.1 --dport22 -j DROP
iptables -A INPUT -p tcp  -s 10.0.0.1 --dport 22 -j ACCEPT
-A APPEND
-I INSERT
端口过滤:
白名单:
默认策略 DROP
iptables -A INPUT -p TCP -S 10.0.0.1 --dport 22 -j ACCEPT #先将自己加入白名单
iptables -P INPUT DROP #修改默认策略

黑名单
默认策略 ACCEPT
iptables -A INPUT -p tcp -s 10.0.0.1 --dport22 -j DROP

说明:iptables规则从上往下匹配,即第一条匹配上,后面的规则不生效

iptables实现多层端口映射

端口映射:在外昂中访问内网中的服务
VPN 
高级路由器

iptables -t nat -A PREROUTING -d 10.0.0.100 -p tcp --dport 3022 -j DNAT --to-destination 192.168.0.2:22

-t nat表
-A PREROUTING链 数据包进来的时候处理
-p tcp协议 
-d 目的ip地址
--dport 目的端口
-J 指定动作 DNAT
DNAT 做目的ip地址转换
--to-destination

把Linux变成路由器(iptables + dhcp服务)

dhcp 分配信息包括:
ip 
子网掩码
dns

vim /etc/dhcp/dhcp.conf

subnet 192.168.0.0 netmask 255.255.255.0 {
        range dynamic-bootp 192.168.0.26  192.168.0.200      
		option domain-name-servers 223.5.5.5
	    option routers                  192.168.0.12;
        option broadcast-address        192.168.0.255;
        default-lease-time 21600;
        max-lease-time 43200;
}