linux防火墙

防火墙前提得是路由能通,这个封包能过来,封包进入本机
防火墙主机内部要有路由
防火墙链上(chain)规则是有先后顺序,封包表头信息满足某条规则就action,并不会进行下面的规则匹配,
如果上面的都没有匹配到,那么就执行默认的规则,也就是policy的action。

规则里先过滤精确的,在放通全部的就可以限制指定的IP

tables
filter 管理本机的表【默认的表】
input 从外部进入本机的封包。从外部主机访问本机时候
output 从本机发出的封包。从本机访问外部主机时候
forward 转发到后端主机上

nat 用在linux路由器主机上,管理防火墙内部的主机。进行来源ip+port与目的ip+port之间的转换。需要结合filter表中的forward链。
prerouting 进入本机。在进行路由判断之前进行的规则,修改目标IP地址。dnat
postrouting 从本机出去。在路由判断之后进行的规则,修改来源IP地址。snat
input
output

POSTROUTING 在修改来源 IP ,
PREROUTING 则在修改目标 IP 。
mangle 管理标志的
options 自定义表

查看指定表上的防火墙规则
v会显示统计信息
iptables -t nat -L -nv
iptables -t nat -L -n

列出防火墙的规则命令
iptables-save
iptables-save -t nat

防火墙规则解释
target代表要执行的动作,有ACCEPT DROP REJECT
prot 代表封包的协议,有tcp udp icmp
opt 额外说明
source 代表封包上的来源ip地址
destination 代表封包的上目标ip地址

清理防火墙规则
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z

设定防火墙
1、设定防火墙filter表上的INPUT链上的默认策略为drop
iptables -t filter -P INPUT DROP

2、设定常见的参数
没有指定的参数,就是接受
-A 在原本规则最后面追加一条
-I 默认插入在第1条规则
-A 链名称

-i 封包进入的网卡名称,与INPUT链结合
-o 封包出去的网卡名称,与OUTPUT 链结合

-p 封包的协议,有tcp udp icmp all

-s 封包表头的来源地址,可以是ip,也可以网段
-s 192.168.1.1
-s 192.168.1.1/24
-s 192.168.1.1/255.255.255.0
如果不允许
-s ! 192.168.1.1
-d 封包表头上的目标地址,可以是ip,也可以网段

–sport 封包表头上的来源地址的端口,通常结合tcp或者udp协议使用
-p tcp --sport 1521
-p udp --sport 1521:1588
–dport 封包表头上的目标地址的端口,通常结合tcp或者udp协议使用

-j 动作,有ACCEPT DROP REJECT LOG

iptables -A INPUT -p tcp -s 172.16.0.131 -j DROP
iptables -A INPUT -p tcp -i eth0 -s 172.16.0.132 -j DROP

-m 外挂模块,state(状态模块)mac(网卡地址)
–state 封包状态
INVALID 无效封包
ESTABLISHED 已经联机成功的封包
NEW 想新建立联机的封包
RELATED 我们主机发送出去的封包有关

-m state --state ESTABLISHED,RELATED
-m mac --mac-source mac地址

禁ping
iptables -A INPUT -i eth34 -p icmp --icmp-type 8 -j DROP

常见的设定

  1. 清除规则
    iptables -F
    iptables -X
    iptables -Z
  2. 设定政策
    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT
    3.制定规则
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    #iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
    iptables -A INPUT -p TCP -i $EXTIF --dport 80 --sport 1024:65534 -j ACCEPT
    4.写入防火墙规则文件里/etc/sysconfig/iptables
    /etc/init.d/iptables save

SNAT 用于内部主机访问外网
出去:POSTROUTING 经过路由后,将来源地址从私网ip修改成public ip
返回:PREROUTING 经过路由前,将目标地址从public ip修改成私网ip地址

eth1是内网网卡 eth0是外网网卡
iptables -A INPUT -i eth1 -j ACCEPT
echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 172.16.0.20/24 -o ens32 -j MASQUERADE

直接修改ip
iptables -t nat -A POSTROUTING -o ens32 -j SNAT --to-source 192.168.1.100

DNAT 用于外部主机访问内部主机,外部先请求到linux路由器上,然后由DNAT将真正的需要转发到内部服务器上
进去:PREROUTING 经过路由之前,将目标地址从public ip修改成私网IP
回来:POSTROUTING 经过路由后,扔到了public ip上,将来源地址从私网ip修改成public ip
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.100.10:80
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

DNAT和SNAT刚好相反

iptables -t nat -A POSTROUTING -s $innet -o $EXTIF -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.16.0.20/24 -o ens32 -j MASQUERADE

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值