文章目录
防火墙
- 硬件:整个企业入口
- 三层路由:H3C 华为 Cisco
- 软件:开源软件 网站内部 封ip
- iptables 写入到Linux内核中 以后服务docker
- firewall C7
- 云防火墙
- 阿里云:安全组
必须熟悉的名词
- 容器:瓶子 存放东西
- 表(table):存放链的容器
- 链(chain):存放规则的容器
- 规则(policy):准许或拒绝规则
iptables 执行过程



- 三种流量:
- 找我的流量 —PREROUTING链
- 我发出去的流量 —POSTROUTING
- 途经我的流量 —FORWARD


表与链(面试题)
#- iptables 是四表五链
#- 4表:
filter表
nat表
raw表
mangle表
#- 五链:
INPUT
OUTPUT
FORWARD
PREROUTING
POSTROUTING
每个表的说明
- filter表
- 防火墙:屏蔽或者准许 端口 ip
| filter表 | 强调:主要和主机自身相关,真正负责主机防火墙功能的(过滤流入流出主机的数据包)filter表表示iptables默认使用的表。这个表定义了三个链。企业工作场景:主机防火墙 |
|---|---|
| input | 负责过滤所有目标地址是本机地址的数据包。通俗来说:就是过滤进入主机的数据包 |
| FORWARD | 负责转发流经主机的数据包。起转发作用,和NAT关系很大,net.ipv4.ip_forward=0 |
| OUTPUT | 处理所有源地址是本地地址的数据包,通俗来讲:就是处理从主机发出去的数据包 |
- nat 表
- 实现NAT功能
- 实现共享上网(内网服务器上外网)
- 端口映射和ip映射
| nat表 | 负责网络地址转换的,即来源与目的的IP地址和port的转换。应用:和主机本身无关,一般用于局域网共享上网或者特殊端口的转换服务相关。工作场景:1.用于企业路由(zebra)或者网关(iptables), 共享上网(POSTROUTING)。2.做内部外部IP地址一对一映射(dmz),硬件防火墙映射IP到内部服务器,ftp服务(PREROUTING)。3.WEB 单个端口映射,直接映射80端口(PREROUTING),这个表定义了3个链,nat功能相当于网络的acl控制。和网络交换机acl类似 |
|---|---|
| OUTPUT | 和主机放出去的数据包有关,改变主机发出数据包的目的地址。 |
| PREROUTING | 在数据包到达防火墙时,进行路由判断之前执行的规则,作用是改变数据包的目的地址、目的端口等 就是收信时,根据规则重写收件人的地址。 例如:把公网xx.xx.xx.xx映射到局域网的yy.yy.yy.yy服务器上 如果是web服务,可以把80端口转换为局域网的服务器9000端口上 10.0.0.61 8080(目的端口)—nat— 10.0.0.7 22 |
| POSTROUTING | 在数据包离开防火墙时进行路由判断之后的规则,作用改变数据包源地址、源端口等 写好发件人的地址,要让家人回信时能够有地址可回。 例如:默认笔记本和虚拟机都是局域网地址,在出网的时候被路由器将源地址改为公网地址。 企业应用:局域网共享上网 |
环境准备及命令
iptables iptables启动或关闭的命令
m01 10.0.0.61 172.16.1.61
web01 10.0.0.7 172.16.1.7
[root@m01 ~]#systemctl stop firewalld
[root@m01 ~]#systemctl disable firewalld
[root@m01 ~]#uname -r #查看系统版本
3.10.0-1160.el7.x86_64
[root@m01 ~]#yum install -y iptables-services #安装iptables
[root@m01 ~]#rpm -ql iptables #查看配置文件
#防火墙相关模块 加载到内核中(临时的)
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
#将防火墙模块加载到内核中(永久)
cat >>/etc/rc.local<<EOF
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
EOF
#查看是否可以使用iptables功能
[root@m01 ~]#lsmod |egrep 'filter|nat|ipt'
nf_nat_ftp 12809 0
nf_conntrack_ftp 18478 1 nf_nat_ftp
iptable_nat 12875 0
nf_nat_ipv4 14115 1 iptable_nat
nf_nat 26583 2 nf_nat_ftp,nf_nat_ipv4
nf_conntrack 139264 6 nf_nat_ftp,nf_nat,xt_state,nf_nat_ipv4,nf_conntrack_ftp,nf_conntrack_ipv4
iptable_filter 12810 0
ip_tables 27126 2 iptable_filter,iptable_nat
libcrc32c 12644 3 xfs,nf_nat,nf_conntrack
#启动iptables并加入开机自启
[root@m01 ~]#systemctl start iptables
[root@m01 ~]#systemctl enable iptables
Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
iptables命令
iptables -t filter -I/A INPUT -p tcp --dport 22 -j DROP
固定iptables 哪个表 插入/追加 INPUT链 协议 目的端口 -j 拒绝掉
[root@m01 ~]#iptables -nL #查看默认的规则
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all

最低0.47元/天 解锁文章
5266

被折叠的 条评论
为什么被折叠?



