十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
iptables被称为数据包过滤器,只能检查数据链路层,IP层以及传输层的协议
网站的建设创新互联公司专注网站定制,经验丰富,不做模板,主营网站定制开发.小程序定制开发,H5页面制作!给你焕然一新的设计体验!已为成都混凝土泵车等企业提供专业服务。iptables有五个内置链:
PREROUTING:路由钱(不能做过滤)
INPUT:报文转发到本机
FORWARD:报文转发输出到其它机器
OUTPUT:经由本机进程转发
POSTROUTING:路由决策发生以后
iptables的功能:
filter:过滤,防火墙
nat:用于修改源IP或目标IP,也可以修改端口;
mangle:拆解报文,作出修改后,并重新封装起来;
raw:关闭nat表上启用的连接追踪机制
功能<-->链的对应关系:
功能只能应用到那些链上面
raw:PREROUTING,OUTPUT
mangle:PREOUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
nat:PREROUTING,{Centos 7 INPUT}OUTPUT,POSTROUTING
filter:INPUT,FORWARD,OUTPUT
报文流向:
流入本机:PREROUTING-->INPUT
由本机流出:OUTPUT-->POSTROUTING
转发:PREROUTING-->FORWARD-->POSTROUTING
iptables(管理工具,命令行配置)/netfilter(内核模块,具体功能它来实现)
组成部分:根据规则匹配条件来尝试匹配报文,一旦匹配成功,就有规则定义的处理动作做出处理;
匹配条件:
基本匹配条件
扩展匹配条件
处理动作:
基本处理动作
扩展处理动作
自定义处理动作
添加过则的考量点:
(1)要实现那种功能:判断添加到哪个表上;
(2)报文流经的路径:判断添加到哪个链上;
链:链上 的规则次序,即为检查的次序;因此,隐含一定的应用法则;
(1)同类规则(访问同一应用),匹配范围小的放上面;
(2)不同类的规则(访问不同应用),匹配到报文频率较大的放上面;
(3)将那些可由一条规则描述的多个规则合并起来;
(4)设置默认策略;
iptables规则格式:
iptables [-t table] COMMAND chain [-m matchname [per-match-options]] -j targetname[per-target-options]
-t table: 不加-t选项的默认为filter
raw,mangle,nat,filter
COMMAND:
链管理:
-N:new,自定义一条新的规则链;
-X:delete,删除自定义的规则链;
-P:Policy,设置默认策略;对filter表中的链而言,其默认策略有;
ACCEPT:接受
DROP:丢弃
REJECt:拒绝
-E:重命名自定义链;引用计数不为0的自定义链不能够被重命名,也不能被删除;
规则管理:
-A:append,追加;
-I:Insert,插入,要指明位置,省略时表示第一条;
-D:delete,删除;
(1)指明规则序号;
(2)指明规则本身;
-R:replace,替换指定的规则链;
-F:flush,清空指定的规则链;
-Z:zero,置零;
iptables的每条规则都有两个计数器;
(1)匹配到的报文的个数;
(2)匹配到的所有报文的大小之和;
查看:
-L:list,列出指定链上的所有规则;
-n --line-numbers,以数字格式显示地址和端口号;
-v:verbose,详细信息
-x:exactly,显示计数器结果的精确值;
chain:
PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
匹配条件:
基本匹配条件:无需加载任何模块,由iptables/netfilter自行提供;
[!]-s,--source address[/mask][,...]:检查报文中的源IP地址是否符合此处理的地址或范围
[!]-d,--destination address[/mask][,...]:检查报文中的目标IP地址是否符合此处指定的地址范围;
[!]-p,--protocol protocol
protocol:tcp,udp,icmp
[!]-i,--in-interface name:数据报文流入的接口;只能应用于数据报文流入的缓解,只能应用于PREROUTING,INPUT和FORWARD链;
[!]-o,--out-Interface name:数据报文流出的接口;只能应用于数据报文流出的环节,只能
扩展匹配条件:需要加载扩展模块,方可生效;
隐式扩展:不需要手动加载扩展模块;因为他们是对协议的扩展,所以,但凡使用-p指明了协议,就表示已经指明的要扩展的模块;
tcp:
[!]--source-port,--sport port[:port]:匹配报文的源端口;可以是端口范围;
[!]--destination-port,--dport port[:port]:匹配报文的目标端口;可以是端口范围;
[!]--tcp-flage mask comp
例如:“--tcp-flagsSYN,ACK,FIN,RST SYN”表示,要检查的标志位为SYN,ACK,FIN,RST四个,其中SYN必须为1,余下的必须为0;
[!]--syn:用于第一次握手,相当于“--tcp-flagsSYN,ACK,FIN,RST SYN”;
udp:
[!]--source-port,--sport port[:port]:匹配报文的源端口;可以是端口范围;
[!]--destination-port --dport port[:port]:匹配报文的目标端口;可以是端口范围;
icmp:
[!]--icmp-type {type[/code]|typename}
echo-requesr:8 请求
echo-reply:0:响应
显示扩展:必须要手动加载扩展模块,[-m matchname [per-match-options]];
显示扩展将在下一小结用具体示例详解
处理动作:
-j targetname
ACCEPT
DROP
REJECT
防火墙(服务)
Centos 6:
sevice iptables {start|stop|restart|status}
start:读取事先保存的规则,并应用到netfilter上;
stop:清空netfilter上的规则,以及还原默认策略等;
status:显示生效的规则
restart:清空netfilter上的规则,再读取事先保存的规则,并应用到netfilter上;
Centos 7:
systemctl start|stop|restart|status firewalld.service
systemctl disabled firewalld.server
systemctl stop firewalld.service
防火墙基本配置命令:
查看iptables规则链命令
iptables -t filter -L -n --line-numbers -v
清空规则链
iptables -t filter -F
清空自定义规则链
iptables -t filter -X
现在我们设置192.168.32.144(本机)拒绝192.168.32.145主机所有的访问
iptables -t filter -A INPUT -s 192.168.32.145 -d 192.168.32.144 -j DROP
删除这一条规则则
iptables -t filter -D INPUT 1
修改上述规则链只限制192.168.32.145对本机的icmp协议
iptables -t filter -R INPUT 1 -s 192.168.32.145 -d 192.169.32.144 -p icmp -j REJECT
iptables -A INPUT -s 192.168.32.145 -d 192.168.32.144 -p icmp -j REJECT
在本机流入接口做限制192.168.32.145的icmp协议访问
iptables -A INPUT -s 192.168.32.145 -d 192.168.32.144 -p icmp -o eno16777736 -j DROP
限制192.168.32.145主机使用ssh访问192.168.32.144
iptables -t filter -A INPUT -s 192.168.32.145 -d 192.168.32.144 -p tcp --dport 22 -j DROP
限制其它主机ping本主机,但是不限制本主机ping其它主机
iptables -A INPUT -d 192.168.32.144 -p icmp --icmp-type 8 -j DROP
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。