一、了解防火墙
1.防火墙分为硬件和软件,硬件防火墙ASA,软件防火墙iptables(linux)如ISA(windows)。2.linux的防火墙分为netfilter(内核模块)、iptables(用户工具)、firewall(用户工具) 二、了解iptables结构1.表中存放链,链中放规则,规则对数据包进行处理2.表依据功能进行划分:row状态跟踪、mangle标记、net修改、filter过滤3.链依据时机进行划分:INPUT链:入站 OUTPUT链:出站 FORWARD链:转发 PREROUTING链:路由前 POSTROUTING链:路由后 三、iptables匹配规则1.表的匹配顺序:raw-->mangle-->nat-->filter
2.链的匹配顺序 入站流向:PREROUTING-->INPUT 出站流向:OUTPUT-->POSTROUTING 转发数据流向:PREROUTING-->FORWARD-->POSTROUTING链内规则间匹配:顺序匹配,匹配即停止,LOG除外;无匹配使用默认规则 四、iptables的编写规则1.Iptables –t 表名(小写) 选项(大写) 链名(大写) 条件(小写) –j 动作(大写)其中省略表名,默认是filter;省略链名,默认是表中的所有链;同时省略表和链,默认是filter表中的所有链2.动作:DROP丢弃 ,ACCEPT允许,REJECT拒绝,LOG日志3.选项:1) 增:-A(末尾添加)|-I(是i)(指定位置加入,无位置开始添加)2) 查看:-L(列出显示),-n(数字显示),-v(显示详细),--line-numbers(显示规则的顺序号)3) 删:-D (删除),-F(清空规则)4) 设置默认规则:-PIptables –P 链名 DROP|ACCEPT Iptables –t filter –P INPUT DROP注:一般设置为DROP、默认的策略是ACCEPT,建议只对filter4.条件1) 通用条件:协议,ip,接口-p 协议名地址匹配-s 源地址、-d 目的地址接口配置-i 入站网卡、-o 出站网卡 2) 隐含匹配条件:端口匹配、TCP标记匹配、icmp类型匹配 --sport 源端口、 –dport 目的端口、 --tcp-dlags 检查范围 --icmp-type ICMP类型 3) iptables的状态: ESTABLISHED:已建立链接的对话 NEW:新建立的会话请求 RELATED:已经建立连接的会话的相关会话NEW-ESTABLISHEDRELATED-ESTABLISHED5) 显示匹配条件:多端口匹配、ip地址范围匹配、mac地址匹配、黄太匹配-m multiport –sports 源端口列表-m multiport –dports 目的端口列表-m iprange –src-ange ip范围 (ip1-ip2) -m mac –mac-source mac地址-m state –state 链接状态五、iptables防火墙高级用法
1.SNAT:局域网主机共享单个公网ip上网,隐藏内网主机。通过修改数据包的源IP地址实现iptables -t nat -A POSTROUTING -s 内网段 -o 外网网卡 -j SNAT --to-source 外网的ip地址(将 SNAT --to-source 改为MASQUERADE代表现在使用的网卡的地址,解决公网地址不断变化)2.DNAT:发布内部服务器使用,通过修改数据包的目的地址实现,在路由前时机将公网客户机访问网关的数据中目的 修改为内网服务器地址iptables -t nat -A PREROUTING -i 外网网卡 -d 外网ip 地址 -p tcp --dport 发布的服务端口 -j DNAT --to- destination 内网服务器ip地址:端口六、常用iptables防火墙使用
1.个人电脑使用Iptables –I INPUT –I lo –j ACCEPT ##允许主机回环地址访问Iptables –A INPUT –m start –start ESTABLISHED,RELATED –j ACCEPT ##允许自己访问外网Iptables –P INPUT DROP ##配置默认策略拒绝入站访问Iptables –P FORWRAD DROP ##配置默认策略拒绝出站访问2.服务器防火墙使用
Iptables -A INPUT -p 协议(tcp/udp) -m multiport --dports 对外提供服务端口 -j ACCEPT ##发布端口iptables -A INPUT -s 管理员地址 -p tcp --dport 22 -j ACCEPT ##发布22号端口指定管理员地址,用于管理服务器iptables -t nat -A PREROUTING -i 本地网卡 -d 公网地址 -p tcp --dport 80 -j DNAT --to-destination web服务器ip地址:80 ##发布web服务Iptables –I INPUT –I lo –j ACCEPT ##允许本地间相互访问Iptables –A INPUT –m start –start ESTABLISHED,RELATED –j ACCEPT ##允许自己访问外网Iptables –P INPUT DROP ##配置默认策略拒绝入站访问Iptables –P FORWRAD DROP ##配置默认策略拒绝出站访问