环境centos7.4 iptables httpd
关闭防火墙 selinux
节点 192.168.191.128 192.168.191.129
(128操作)
yum -y install iptables iptables-services
systemctl start iptables
iptables -nL #查看规则
iptables -F #清空规则
配置规则
iptables -t nat -A POSTROUTING -d 192.168.191.129 -p tcp --dport 80 -j SNAT --to-source 192.168.191.128
iptables -t nat -A PREROUTING -d 192.168.191.128 -p tcp --dport 80 -j DNAT -- to-destination 192.168.191.129:80
iptables -t nat -nL
开启路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
退出刷新规则
sysctl -p
(129操作)
安装httpd
yum -y install httpd
systemctl start httpd
systemctl enable httpd
vim /var/www/html/index.html #默认访问页面
hello world
systemctl restart httpd
测试
转发成功!
1.iptables工作原理分类
主机防火墙:主要是用来防范单台主机的进出报文;-----filter表
网络防火墙: 能够实现对进出本网络的所有主机报文加以防护----nat表
raw mangle nat filter(常用的就是nat表filter表)
iptables缺点:
(1)防火墙虽然可以过滤互联网的数据包,但却无法过滤内部网络的数据包。因此若有人从内部网络攻击时,防火墙没有作用。
(2)电脑本身的操作系统亦可能因一些系统漏洞,使入侵者可以利用这些漏洞绕过防火墙过滤,从而入侵电脑。
(3)防火墙无法有效阻挡病毒攻击,尤其是隐藏在数据中的病毒。
PS:没有绝对安全的操作系统,虽然防火墙有这些缺点,但还是能阻挡大多数来自于外网的攻击!
1、四个表:
必须是小写
raw ------------追踪数据包, ----此表用处较少,可以忽略不计。
mangle ------------给数据包打标记,做标记。
nat ------------网络地址转换即来源与目的的IP地址和port的转换。
filter ------------做过滤的,防火墙里面用的最多的表。
#表的应用顺序:raw-》mangle-》nat-》filter
2、五个链
五链:(必须是大写)链里面写的是规则。
PREROUTING -----------------进路由之前数据包
INPUT -----------------就是过滤进来的数据包(输入)
FORWARD -----------------转发
OUTPUT -----------------发出去的数据包
POSTROUTING -----------------路由之后数据包
#所有的访问都是按顺序:
入站:比如访问自身的web服务流量。先PREROUTING(是否改地址),再INPUT(是否允许)到达程序。
转发:经过linux网关的流量.先PREROUTING(是否改地址),然后路由。转发给FORWARD(转发或者丢弃),最后经过POSTROUTING(看看改不改地址。)
出站:源自linux自身的流量.先OUTPUT,再给POSTROUTING(是否改IP)。
#规则顺序:逐条匹配,匹配即停止。
3、四表五链
raw表里面:
PREROUTING
OUTPUT
总结:数据包跟踪 内核模块iptables_raw
===============================================================================
mangel表里面有5个链:
PREROUTING
INPUT
FORWARD
OUTPUT
POSTROUTING
路由标记用的表。内核模块iptables_mangle
================================================================================
nat表里面的链:
PREROUTING
INPUT
OUTPUT
POSTROUTING
转换地址的表(改IP,改端口。当网关使用的linux。保护内外网流量。内核模块叫iptable_nat)
=================================================================================
filter表有三个链:重点
INPUT #负责过滤所有目标是本机地址的数据包通俗来说:就是过滤进入主机的数据包
FORWARD #负责转发经过主机的数据包。起到转发的作用
OUTPUT #处理所有源地址是本机地址的数据包通俗的讲:就是处理从主机发出的数据包
总结:根据规则来处理数据包,如转或者丢。就是实现主机型防火墙的主要表。
内核模块 iptable_filter
4、iptables语法
iptables -t 表名 动作 [链名] [-p 匹配条件] [-j 控制类型]
-j:控制类型, 通过前面匹配到之后是丢弃还是保留数据包的处理方式:
ACCEPT允许,
REJECT拒绝,
DROP丢弃。 不会给用户返回任何的拒绝消息,不推荐使用。
LOG写日志(log不适用匹配,只是记录一下)
动作:添规则还是删除规则
-p:匹配条件:数据包特征ip,端口等
如果不写-t 默认使用filter表
动作
修改默认规则: -P (大p)
删除规则:-D
修改规则:-R
追加规则: -A 默认追加到链的末尾
插入规则:-I (大i),在链的开头(或指定序号)插入一条规则