一、整体介绍
防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Intranet之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入,防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。该计算机流入流出的所有网络通信和数据包均要经过此防火墙。
在网络中,所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络。换句话说,如果不通过防火墙,公司内部的人就无法访问Internet,Internet上的人也无法和公司内部的人进行通信。
二、配置方式以及原理
在linux系统配置防火墙主要的配置方式主要是通过配置两个表,一个是filter表和NAT表,防火墙在应用路邮表的时候是有限从上向下来匹配的,如果上面的匹配成功的话就不会向下再去匹配,所以当我们设置防火墙的时候设置好防火墙表的顺序,当所有的表中都没有的话,会按照默认策略来执行,默认策略是都是允许的
如果我们需要修改默认策略的话我们要执行的命令是
# iptables -P INPUT DROP
:
在filter表中有三个支链分别是INPUT、OUTPUT、FORWARD
INPUT:在input链里面的配置信息主要是关于外部对本地访问的限制的设置
OUTPUT:在output链里面的配置信息主要是关本地对外部访问的限制的设置
FORWARD:在forward链里面的配置信息主要是关于本地与外网相互访问的配置
查看当前防火墙列表的方式
# iptables -L -n
配置filter表的语法
# iptables -t filter【指明表,不写默认是指filter表】-A【A:添加规则、D:删除规则、I:插入一条规则】INPUT【作用链还可以为OUTPUT||FORWARD】 n【n表示的是作用在第几条,只有当前面是I或者D的时候我们才真的需要写;当时A的时候默认添加在最后】-p tcp【指明协议tpc||udp||icmp】【!,如果有叹号表示除了后面的网段,如果有叹号则表示除了后买的网段,作用范围只是后面的一段】-s 192.168.0.0/24 -d【-d+网段,表示目的地址,如果不加网段的话表示防火墙自身】 --sport m:n 【表示源端口m:n,表示从m到n端口】 --dport x:y【表示目的端口x:y,表示从x到y端口】-j ACCEPT【指明动作ACCEPT/DROP/REJECT/LOG】
ACCEPT:表示允许
DROP:表示丢弃,无法链接不会接到反馈
REJECT:会收到访问拒绝的提示
LOG:会记录在日志里面
例:
添加端口22
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
限制只允许固定的ip来连接22端口
# iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT
NAT表的配置
配置前我们首先要做的就是打开防火墙的转发功能
echo 1> /proc/sys/net/ipv4/ip_forward
修改NAT表的案例
# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to- source 192.168.1.1
注:这个命令的意思的 添加 nat 表里面的POSTROUTING链,只要是10.0.0.0/24这个网站的源地址统一转换成公有 192.168.1.1
# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
注:如果防火墙的ip地址是动态获得的按上面的命令来设置
# iptables -t nat -A POSTROUTING -p tcp --dropt 80 -j DNAT --to-dest 10.0.0.2
注:如果访问着个防火墙地址(没有指明源地址为默认防火墙地址)的80端口的,一律转发至10.0.0.2
其他防火墙的常用配置命令
清空防火墙:#iptables -F
重启防火墙:service iptables restart
保存防火墙设置:service iptables save 【重要,我们通过命令修改完了防火墙的配置,如果我们不保存的话,在我们重启防火墙的时候都是会撤销,】
备份防火墙:iptables -save > xx
回复防火墙:iptables -restore < xx
查看防火墙filter表 :iptables -L -n
查看防火墙NAT表: iptables -t nat -L -n