Java教程

iptables

本文主要是介绍iptables,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前言:

iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的”安全框架”中,这个”安全框架”才是真正的防火墙,这个框架的名字叫netfilter

一、iptables整体图

 

 

所以,根据上图,我们能够想象出某些常用场景中,报文的流向:

到本机某进程的报文:PREROUTING –> INPUT

由本机转发的报文:PREROUTING –> FORWARD –> POSTROUTING

由本机的某进程发出报文(通常为响应报文):OUTPUT –> POSTROUTING

二、表和链

一共有4张表5张链

每个”链”中的规则都存在于哪些”表”中。

PREROUTING      的规则可以存在于:raw表,mangle表,nat表。

INPUT          的规则可以存在于:mangle表,filter表,(centos7中还有nat表,centos6中没有)。

FORWARD         的规则可以存在于:mangle表,filter表。

OUTPUT         的规则可以存在于:raw表mangle表,nat表,filter表。

POSTROUTING      的规则可以存在于:mangle表,nat表。

表(功能)<–>   链(钩子):

raw     表中的规则可以被哪些链使用:PREROUTING,OUTPUT

mangle  表中的规则可以被哪些链使用:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

nat     表中的规则可以被哪些链使用:PREROUTING,OUTPUT,POSTROUTING(centos7中还有INPUT,centos6中没有)

filter  表中的规则可以被哪些链使用:INPUT,FORWARD,OUTPUT

三、常用规则

filter:常用三个链:

Chain INPUT(policy Accept)

Chain FORWARD(policy DROP)

Chain OUPUT(policy Accept)

1、查看filter表所有链

iptables -t filter -L -n

-t:指定表,filter,filter表为默认表,可不写

-L:列出

-n:添加行号

2、添加规则

iptables -t filter -A INPUT -j DROP -p tcp --dport 8081 
-j DROP: 将表丢弃
-- dport: 指定8081端口
- p:指定TCP 协议

3、删除第一条规则

iptables -t filter -D INPUT 1

4、FORWARD

iptables -t filter -I FORWARD -j ACCEPT

5、OUTPUT

将发往192.168.0.144的TCP包全部丢弃

iptables -t filter -A OUTPUT -j DROP -p tcp -d 192.168.0.144

开放18086端口

iptables -I INPUT -p tcp --dport 18080 -j ACCEPT

  

这篇关于iptables的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!