iptables防火墙打造安全网络
2008-12-01 09:00
435 查看
安全,在网络中一直是一个亘古不变的话题。只有网络存在就会存在安全问题,你就会面临被攻击的风险。在Linux2.4内核之后使用iptables/netfilter网络架构实现报过滤的防火墙。在一定程度上取代硬件防火墙的常用功能,打造一个安全的网络环境
所谓“包过滤”技术,也就是通过匹配数据的“五元组”---源ip、目的ip、源port、目的port和协议(ip,tcp,udp,icmp等)。一般的网络防火墙也就是通过对这些数据进行匹配,来保证内网安全的。
iptables与netfilter
一、首先要明确这两个概念:
1.linux的防火墙是linux的内核实现的,而不是系统中的服务程序实现的,linux的内核是使用netfilter架构实现这个功能的。
2.iptables只是netfilter的管理工具而已。通过对iptables的管理来实现防火墙的策略。
二、iptables中的“三项纪律”和“五大注意”
1.三项纪律:nat filter以及mangle
2.五大注意:PREROUTING、FORWARD、POSTROUTING、INPUT、OUTPUT
其框架图如下:
--------PREROUTING---→[ROUTING]---->FORWARD-----→POSTROUTING
mangle | mangle ↑ mangle
nat | filter | nat
| |
↓ |
INPUT OUTPUT
| mangle | mangle
↓ filter | nat filter
|------------→Local-----------→|
其中filter、nat、mangel为规则表,其他五个为规则链。其中规则包含在链中,而规则链包含在规则表中。nat针对地址转换、filter针对包过滤(用得最多的也就是它了)、mangel针对策略路由和流量整形(有点QOS的味道),规则链的分配如下:
* filter:INPUT、FORWARD、OUTPUT
* nat :PREROUTING、POSTROUTING、OUTPUT
* mangel:PREROUTING、POSTROUTING、OUTPUT、INPUT、FORWARD
三、iptables的语法以及命令概述
1.iptables [-t 表] <操作命令>[规则号码][匹配条件][-j执行动作]
2.操作命令为A、D、I、R、P、F、Z
-A:追加一条规则 -D:删除规则 -I:插入规则号码 -N:修改表名
-R:替代一条规则 -P:设置默认规则 -F:清空规则 -Z:计数归零
3.查看-[vnx]L
v:详细信息 n:显示ip地址以及端口号 x:在v的基础上禁止单位换算(k)
-L 以列表的形式显示出来
4.匹配条件
-i:流入接口 -o:流出接口 -s:源地址 -d:目的地址 -m 匹配
--sport:源端口 --dport:目的端口 -p:协议(注意是小写哦)
5.处理动作
ACCEPT: 允许(相当于cisco-acl中的permit)
REJECT: 拒绝(相当于cisco-acl中的deny)
DNAT : 目的地址转换与PREROUTING表、-i结合使用
SNAT : 源地址转换与POSTROUTING表、-o结合使用
MASQUERADE:源地址伪装
5.附加模块(一定要跟-m结合使用)
state:按包状态匹配
limit:按包速率匹配(可以防止SYN FLOOD跟DOS攻击哦)
mac :按mac地址匹配(这个用得不多)
multicport:按照多端口匹配
四、实例分析
1.单服务器的防护(以www服务器为例)
一定要保存,记得用-vnL look look查看啊!
* iptables -A INPUT -i l0 -j ACCEPT
* iptables -A INPUT -p tcp -m multiports --dports 22,80 -j ACCEPT
* iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
* iptables -P DROP
* iptables-save
2.做网关服务器
a.记得弄清楚网络拓扑(内网以192.168.1.0/24为例)
b.本机上网
c.设置nat(启用nat,实现MASQUERADE ip伪装)
echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
3.限制内网访问
iptables -A FORWARD -s 192.168.1.100 -j DROP
iptables -A FORWARD -m mac mac-source 11-22-33-44-55 -j DROP
iptables -A FORWARD -d www.sex.com -j REJECT
4.内网做对外服务器
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.1.1
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 81 -j DNAT --to 192.168.1.2:80其中80为真正的服务端口,192.168.1.0/24为内网地址 ppp0为外网接口。
5.预防SYN flood以及DDOS
iptables -A INPUT -i ppp0 -p tcp --tcp-flags ! FIN SYN,ACK SYN -m limit ! --limit 100/s -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp -j DROP
以每秒超过了100个SYN位为1的包,而ACK为0,就进行drop,记得limit后面一定要加条drop命令 !为取反的意思
五.注意的相关问题
1.注意语句的执行顺序
2.常用iptables -nvxL 查看
3.一定要区分匹配什么?怎样去执行?
4.还有就是默认的执行动作是什么?
5.注意链与表的选取
6.表名必须小写、动作跟链名称要大写、匹配一律小写
本文出自 “jascar” 博客,请务必保留此出处http://ciscor.blog.51cto.com/117461/116327
所谓“包过滤”技术,也就是通过匹配数据的“五元组”---源ip、目的ip、源port、目的port和协议(ip,tcp,udp,icmp等)。一般的网络防火墙也就是通过对这些数据进行匹配,来保证内网安全的。
iptables与netfilter
一、首先要明确这两个概念:
1.linux的防火墙是linux的内核实现的,而不是系统中的服务程序实现的,linux的内核是使用netfilter架构实现这个功能的。
2.iptables只是netfilter的管理工具而已。通过对iptables的管理来实现防火墙的策略。
二、iptables中的“三项纪律”和“五大注意”
1.三项纪律:nat filter以及mangle
2.五大注意:PREROUTING、FORWARD、POSTROUTING、INPUT、OUTPUT
其框架图如下:
--------PREROUTING---→[ROUTING]---->FORWARD-----→POSTROUTING
mangle | mangle ↑ mangle
nat | filter | nat
| |
↓ |
INPUT OUTPUT
| mangle | mangle
↓ filter | nat filter
|------------→Local-----------→|
其中filter、nat、mangel为规则表,其他五个为规则链。其中规则包含在链中,而规则链包含在规则表中。nat针对地址转换、filter针对包过滤(用得最多的也就是它了)、mangel针对策略路由和流量整形(有点QOS的味道),规则链的分配如下:
* filter:INPUT、FORWARD、OUTPUT
* nat :PREROUTING、POSTROUTING、OUTPUT
* mangel:PREROUTING、POSTROUTING、OUTPUT、INPUT、FORWARD
三、iptables的语法以及命令概述
1.iptables [-t 表] <操作命令>[规则号码][匹配条件][-j执行动作]
2.操作命令为A、D、I、R、P、F、Z
-A:追加一条规则 -D:删除规则 -I:插入规则号码 -N:修改表名
-R:替代一条规则 -P:设置默认规则 -F:清空规则 -Z:计数归零
3.查看-[vnx]L
v:详细信息 n:显示ip地址以及端口号 x:在v的基础上禁止单位换算(k)
-L 以列表的形式显示出来
4.匹配条件
-i:流入接口 -o:流出接口 -s:源地址 -d:目的地址 -m 匹配
--sport:源端口 --dport:目的端口 -p:协议(注意是小写哦)
5.处理动作
ACCEPT: 允许(相当于cisco-acl中的permit)
REJECT: 拒绝(相当于cisco-acl中的deny)
DNAT : 目的地址转换与PREROUTING表、-i结合使用
SNAT : 源地址转换与POSTROUTING表、-o结合使用
MASQUERADE:源地址伪装
5.附加模块(一定要跟-m结合使用)
state:按包状态匹配
limit:按包速率匹配(可以防止SYN FLOOD跟DOS攻击哦)
mac :按mac地址匹配(这个用得不多)
multicport:按照多端口匹配
四、实例分析
1.单服务器的防护(以www服务器为例)
一定要保存,记得用-vnL look look查看啊!
* iptables -A INPUT -i l0 -j ACCEPT
* iptables -A INPUT -p tcp -m multiports --dports 22,80 -j ACCEPT
* iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
* iptables -P DROP
* iptables-save
2.做网关服务器
a.记得弄清楚网络拓扑(内网以192.168.1.0/24为例)
b.本机上网
c.设置nat(启用nat,实现MASQUERADE ip伪装)
echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
3.限制内网访问
iptables -A FORWARD -s 192.168.1.100 -j DROP
iptables -A FORWARD -m mac mac-source 11-22-33-44-55 -j DROP
iptables -A FORWARD -d www.sex.com -j REJECT
4.内网做对外服务器
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.1.1
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 81 -j DNAT --to 192.168.1.2:80其中80为真正的服务端口,192.168.1.0/24为内网地址 ppp0为外网接口。
5.预防SYN flood以及DDOS
iptables -A INPUT -i ppp0 -p tcp --tcp-flags ! FIN SYN,ACK SYN -m limit ! --limit 100/s -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp -j DROP
以每秒超过了100个SYN位为1的包,而ACK为0,就进行drop,记得limit后面一定要加条drop命令 !为取反的意思
五.注意的相关问题
1.注意语句的执行顺序
2.常用iptables -nvxL 查看
3.一定要区分匹配什么?怎样去执行?
4.还有就是默认的执行动作是什么?
5.注意链与表的选取
6.表名必须小写、动作跟链名称要大写、匹配一律小写
本文出自 “jascar” 博客,请务必保留此出处http://ciscor.blog.51cto.com/117461/116327
相关文章推荐
- iptables防火墙打造安全网络
- 网络安全-iptables防火墙初级配置-纯属笔记
- 网络安全-iptables防火墙
- 使用iptables作为网络防火墙构建安全的网络环境
- 网络安全 之 iptables 防火墙
- linux网络防火墙-iptables配置详解
- linux安全---iptables防火墙
- 网络信息安全之防火墙***检测原理 (四)
- 云安全之 Neutron 网络 和 Nova虚机 防火墙的 [How Nova Implements Security Group and How Neutron Impleme
- Android 网络防火墙的实现 Iptables解决方案
- 网络防火墙之iptables的前世今生和归宿
- IT 网络产品厂商聚焦(路由、交换、网络安全、负载均衡、防火墙、行为管理、邮件网关、计费等)
- linux安全之iptables防火墙详解2
- 网络防火墙之iptables的前世今生和归宿
- iptables chkconfig 网络防火墙管理
- Web主机iptables防火墙安全脚本
- iptables之网络防火墙(FORWARD链)初步实验
- linux系统之网络防火墙(firewalld服务和iptables服务)
- 网络整体安全解决方案--打造坚如磐石的网络
- 网络安全中防火墙和IDS的作用