iptables静态防火墙入门讲解
![]() | ![]() | |
![]() | iptables对刚入门Linux新手一般比较难理解和配置。但是如果掌握了其中的诀窍,就会发现其实没有那么难学。iptables是Linux的静态防火墙,用来创建规则来过滤数据包和NAT模块。 简单地说,iptables为Linux网络连接的防火墙。 检查iptables是否安装 在配置Iptables之前,我们首先得确认Iptalbes是否已经安装了: rpm -qa | grep iptables执行命令后应该会打印出iptables-your.installed.version这样的信息。如果没有,则表示没有安装,可以下载最新的 rpm软件包通过命令rpm -Uvh iptables-downloaded.version.rpm安装,或是直接使用yum安装: yum install iptablesiptables相关的文件 /etc/init.d/iptables: 这个是用来开始、停止Iptables或是保存规则的初始化脚本。 /etc/sysconfig/iptables: 所有的规则都保存在这个文件。 /sbin/iptables: 是Iptables的二进制文件。 在真正开始配置规则时,我们先来看看当前的配置: iptables -L默认的,当前只有三条规则链:INPUT、OUTPU、FORWARD。INPUT规则链包含进站数据包的规则,OUTPUT规则链包含出站数据包规则,FORWARD规则链包含转发数据包到其它主机的规则。 Iptables大多数用来配置处理从网络进入Linux服务器的数据包,所以INPUT规则链经常会到用到。当有数据包通过Linux核心,下面几个指令会决定数据包被匹配之后如何处理。 ACCEPT: 数据包允许通过其到达目的地。 REJECT: 数据包被拒绝并返回给发数据包的主机一个简单的解释。 DROP: 数据包被拒绝不返回任何信息。 配置iptables规则 在开始配置规则之前,有必要提出三点建议: 1、规则的顺序很重要。比如一开始你就添加了一个阻止任何的规则,那么你下面的允许规则都不会起作用了。 2、你要记住编写的规则是存储在内存中,不会自动存储磁盘,因此你重启之后,规则就不会了,所以你需要手动执行初始化脚本来保存规则。 3、如果你是在远程来管理服务器,比如SSH,那么配置规则之前首先得添加允许ssh的规则,要不iptables会把你阻止在外。 iptables -A INPUT -s 213.10.10.13 -d 192.168.1.1 -p TCP -dport 22 -j ACCEPT说明: -A:附加INPUT规则链; -s: 来源IP,例子中就是你当前登录ssh所用的电脑IP; -d:目的地址,例子中就是服务器IP -p:通信协议www.atcpu.com –dport:目的端口,例子中是ssh默认端口22; -j:代表“Jump”,所以之前的规则都匹配,则接受数据包。 下面让我们来为一般的数据包设置基本的规则。Iptables的特性之一是能确定数据包的状态。下面是在一个新的连接的数据包状态: NEW:第一服务器发送给第二服务器一个SYN数据包来新建一个连接。 RELATED: 第二服务器接收SYN数据包并发送给第一服务器一个SYN-ACK数据包来确定连接正常。 ESTABLISHED: 第一服务器接收到SYN-ACK数据包并发送给第二服务器ACK服务器来做最后的确认,至此连接建立完成,两台服务器开始传输数据。 为了让你的服务器能与其它服务器建立TCP连接,iptables必须配置如下: iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPTiptables -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPTiptables -A OUTPUT -m state --state RELATED,ESTABLISHED自定义规则 阻止IP: iptables -A INPUT -s 213.10.10.13 -j DROP这条规则表示阻止从IP213.10.10.13传进来的数据包。 iptables -A INPUT -d 192.168.1.15 -j REJECT这条规则表示阻止从局域网IP192.168.1.15来的数据包。 允许IP: iptables -A INPUT -s 213.10.10.13 -d 192.168.1.4 -p tcp --dport 21这条规则表示接受来自IP 213.10.10.13到目标地址FTP服务器192.168.1.4的数据包。 当配置来必要的规则之后,到时候在最后增加拒绝所有的规则了: iptables -A INPUT -j REJECTiptables -A FORWARD -j REJECT这些规则必须在最后添加。 要删除一个规则,只需把”-A”替换成”-D”即可。 保存规则 为了保存Iptables规则,只需执行以下命令: /etc/init.d/iptables save停止Iptables来刷新所有规则: /etc/init.d/iptables stop重新启动Iptables从/etc/sysconfig/iptables加载最新规则: /etc/init.d/iptables start这只是一个基础的iptables教程,适合配置比较简单的规则,如果需要配置复杂的规则,还需要深入的学习 | |
![]() | ![]() |