深圳市建设注册执业资格中心网站,杭州市下城区建设局门户网站,网站更换ip 备案,官方网站建设ppt背景介绍 在前几天#xff0c;于工发现我们内部的150服务器7554端口被外网访问了。该应用提供着内部的摄像头资源。为了避免被入侵#xff0c;于是我添加了一些iptables规则#xff0c;防止外网的访问。 
解决方式 
解决方式有两种#xff1a; 
关闭公司公网路由器对150服务…背景介绍 在前几天于工发现我们内部的150服务器7554端口被外网访问了。该应用提供着内部的摄像头资源。为了避免被入侵于是我添加了一些iptables规则防止外网的访问。 
解决方式 
解决方式有两种 
关闭公司公网路由器对150服务器进行端口映射在150服务器上进行iptables的规则设置只允许内部网段进行访问。 
对于第一种方式只要将路由器上对应的端口映射关闭即可不需要做其他操作。 
第二种方式需要在150上进行设置 
iptables -I INPUT -p tcp --dport 7554 -j DROP 
iptables -I INPUT -s 192.168.18.0/24 -p tcp --dport 7554 -j ACCEPT
iptables -I INPUT -s 180.168.172.70 -p tcp --dport 7554 -j ACCEPT
service iptables save第一条命令在INPUT链中将所有TCP协议目的端口是7554的数据包全部丢掉 第二条命令在INPUT链中将源IP为192.168.18.0/24网段传输协议为TCP目标端口是7554的数据包接收 第三条命令和第二条类似只不过接受的是某一个具体源IP。 第四条命令保存设置否则重启之后就不再生效。 
iptables可通过 -t 来选择表内建的规则表有三个分别是nat、mangle 和 filter。若没有指定则默认为filter表。 
至此问题就解决了。但是在过程中发现自己对netfilter表不熟悉了iptables命令使用的也不熟练。顺便回顾一遍。 
netfilter的四表五链 
linux的防火墙其实就是netfilter。它主要包含以下四表五链 filter表过滤数据包 Nat表 用于网络地址转换 Mangle表: 修改数据包的服务类型TTL并且可以配置路由器实现QOS RAW表 决定数据包是否被状态跟踪器机制处理 
四张表的由优先级rawmanglenatfilter 
INPUT链进来的数据包应用此规则链中的策略 OUTPUT链外出的数据包应用此规则链中的策略 FORWARD链 转发数据包时应用此规则链中的策略 PREROUTING链对数据包做路由选择前应用此链中的规则 POSTROUTING链 对数据包作路由器选择后应用此链中的规则 
netfilter图可参考以下 由图可知 RAWconntrack表在PREROUTING和OUTPUT链中 mangle表在五链中都有 nat表存在PREROUTING和OUTPUT和POSTROUTING链中 filter表存在FORWARD和INPUT,OUTPUT链中。 
iptables介绍 
iptables只是一个应用工具。通过对netfilter的介绍我们知道linux的防火墙框架就是netfilter。但是它是处于内核空间的我们无法直接去控制。而iptables就是应用层的工具。 
由于iptables内容较多我这里主要通过几个例子来介绍。能够达到看懂命令根据需求去搜索资料即可。 
iptables的命令格式如下 
iptables command chain rule-specification [options]
//chain 指哪一条链 command -APPEND (-A):表示附加它会将规则添加到已有防火墙链中的末尾。规则在防火墙链中的位置很重要因为在一般情况下防火墙链中的最后一条是丢弃所有包。很可能导致新建规则无效 
-DELETE (-D):表示删除规则。一般使用iptables -D chain rulenum删除chain中编号是rulenum的规则 
-INSERT (-I):表示插入规则。一般使用iptables -I chain [rulenum] firewall-rule,在chain中的添加规则为第rulenum条。后面的规则全都加1.若没有指定rulenum默认是第一条 
-LIST (-L):列出规则一般使用iptables -L --line-numbers 
-FLUSH (-F):清空规则。一般使用iptables -F [chain]清空chain中的规则。若没有指定chain则全部清空。 options -P 代表协议。若不指定定协议则默认为all。/etc/protocols文件包含了所支持的协议和值。 
-S 代表源地址。可以是ip网路地址或主机名。若不指明源地址则匹配所有源地址 
-D 代表目的地址。和-S相似。 
-J 表示跳转。指当某个数据包满足该规则时就跳转到写一个处理规则。不再继续顺序处理后面的规则判断。处理规则一般有ACCEPT,DORP,QUEUE,RETURN。分别表示接受丢弃进入队列返回。 
-I 表示进入的网络接口。比如-I eth0,表示该规则主要针对eth0接口进入的数据包。 
-O 代表出站网络接口和-I相似。 
-SPORT 表示源端口。可以指定端口号或端口名称。在/etc/service文件中包含了所有允许的端口和对应的端口号内容很多。 
-DPOT 表示目的端口。和-SPORT相似。 
练习 
基本的iptables的语法已经介绍完了通过几个例子更快的上手。 
删除现有规则。iptables -F阻止一个特定的IP地址。iptables -A INPUT -s $BLOCK_THIS_IP -j DROP允许所有传入SSH。 
iptables -A INPUT  -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT4.将来自422端口的流量全部转到22端口。 
iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 --dport 422 -j DNAT --to 192.168.102.37:22