防火墙Firewall设置方法之iptables篇
发布时间:2012-07-11 16:38:47 作者:佚名 我要评论
Firewall 防火墙,工作在网络或主机的边缘,对进出本网络或主机的数据包根据事先设置好的规则进行检查并且能够在数据包匹配到之后由预置的动作进行处理的组件的组合
Firewall 防火墙,工作在网络或主机的边缘,对进出本网络或主机的数据包根据事先设置好的规则进行检查并且能够在数据包匹配到之后由预置的动作进行处理的组件的组合,有规则(符合条件,就有规则指定的动作进行处理);
主机防火墙:管理本主机;
网络防火墙:管理整个网络;
防火墙的分类:
1、包过滤型防火墙:工作在TCP/IP层,根据tcp首部或ip首部数据进行判断,安全性较
低,效率较高;
1、简单包过滤;
2、带状态检测的包过滤;
1)NEW状态;-建立连接;
2)ESTABLISHED状态;-建立连接并传输数据;
3)INVALID状态(无法识别的状态);
4)RELATED(相关联的状态);
2、应用层网关防火墙:工作在应用层,根据数据包传输的实际数据进行判断,安全性较高,效率较低;
防火墙工作在内核空间,需要在内核空间开口子去定义规则(只有管理员可以定义规则,命令是否正确等),在内核上开的口子称为Netfilter(网络过滤器);
地址转换功能:NAT 网络地址转换;
1)SNAT 源网络地址转换;在POSTROUTING上做转换;
连接跟踪;
2)DNAT目标地址转换;在PREROUTING上做转换;
mangle 数据包每经过一次路由减1然后将ip首部打开修改TTL值加1,让访问用户不知
道有防火墙;
raw----没多做解释;
filter过滤在INPUT,OUTPUT和FORWARD接口上;
nat地址转换在PREROUTING,POSTROUTING,OUTPUT接口上;
mangle撕裂在PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING接口上;
raw在PREOUTING和OUTPUT接口上;
优先级排序:raw--->mangle--->nat--->filter
iptables命令用法:
iptables [-t TABLE] COMMAND CHAIN [creteria] -j ACTION
-t {raw|mangle|nat|filter},默认filter
COMMAND的分类:
规则管理类:
-A 追加到最后一条(append);
-I # 插入第几条(insert);
-D # 表示删除第几条(delete);
-R # 表示替换某条规则;
链接管理类:
-F 清空(flush)链中规则,加链表示清空某条链;
-N 新建链(new),可以用-j跳转到这个链上;
-X 删除自己定义的空链;
-E 重命名(rename);
默认策略:
-P (policy);
清空计数器:
-Z (zero);
每条规则(包括默认策略)都有两个计算器;
1)被此规则匹配到的所有数据包的个数;
2)被此规则匹配到的所有数据包的大小之和;
查看类:
-L (list)列表的格式显示;
-L的子选项:-n (以纯数字的格式显示numeric);
-v 详细的信息(verbose),-vv或-vvv更详细;
-x 显示精确信息不做单位换算(exactly);
--line-numbers 规则显示行号;
匹配条件creteria:
基本匹配:
-s SOURCE:(IP,NETWORK)或加!表示取反(例:! -s NETWORK);(可以省略表示多有主机)
-d DESTIONIP(目标地址);
-p {tcp|udp|icmp};
-i INTERFACE 表示从哪个网卡流进来;(仅用于INPUT,FORWARD,POSTROUTING)
-o INTERFACE 表示从哪个网卡流出去;(仅用于OUTPUT,FORWARD,PRETROUTING)
扩展匹配:指的是调用iptables的模块,以便扩展iptables的匹配功能;
隐含扩展
-p tcp
--sport PORT
--dport PORT
--tcp-flags 检查tcp的标志位;
只检查ACK,SYN,RST,FIN
SYN的简写--syn
-p udp
--sport PORT
--dport PORT
-p icmp
--icmp-type
ping命令的TYPE:
echo-request请求用8代替; www.jb51.net
echo-reply 回应用0代替;
3----自己查看TCP/IP详解书;
显示扩展(必须用-m指定检测状态);
-m state --state 检测状态
-m multiport这个模块匹配一组源或目标端口,可以指定多达15个端口;
--source-ports 22,53,80
--destination-ports 22,53,80
--ports 22,53,80
-m iprange(指定ip范围)
--src-range ip-ip
--dst-range ip-ip
-m connlimit(并发连接限定)
--connlimit-above # (超过#个)
-m limit
--limit rate 限定速率;
--limit-burst number 限定峰值;
-m string 字符串匹配;
--algo bm|kmp(算法);
--string “STRING”
-m time 时间限制;
--timestart value(10:00);
--timestop value
--days lsitofday
--datestart date
--datestop date
-j ACTION(ACTION的选项);
ACCEPT 允许;
DROP 拒绝(悄悄的丢弃);
REJECT 拒绝(直接拒绝);
SNAT 源地址转换;
DNAT 目标地址转换;
REDIRECT 重定向端口;
RETURN 返回INPUT链;
如何开放FTP服务:
主动模式下:
tcp 20(数据),21(命令);
被动模式下:
tcp 21,>1023的端口;
上述需要将RELATED(相关联的状态)打开;
modprobe ip_nat_ftp
lsmod | grep tcp
redhat中iptables的脚本文件为/etc/rc.d/init.d/iptables
service iptables start 启用保存的规则;
service iptables stop 清空链;
/etc/sysconfig/iptables 保存规则的文件;
/etc/sysconfig/iptables-config 向iptables脚本提供配置文件的文件;
将规则保存到配置文件中的方法:
1)service iptables save 将规则保存到配置文件中的命令;
2)iptables-save > /etc/sysconfig/iptables-test (将生效的规则保存至自己指定文件中);
iptables-restore < /etc/sysconfig/iptables-test (从另外自己指定的规则文件启用规则);
地址转换:
源地址转换:
-j SNAT --to-source 192.168.100.1 指定源地址转换成其它地址;
-j MASQUERADE(地址伪装,比SNAT占用更多的资源,当ADSL拨号上网做转换时比较常用);
目标地址转换:一般要限定协议和端口;
-j DNAT --to-destination 192.168.100.2
PNAT端口转换:
-j DNAT --to-destination 192.168.100.2[:port]请求的和转发的相同可省略,不相
同不省略;
-j LOG 转发日志;
--log-prefix “DNAT for web”可以与-m limit --limit 3/minute --limit-burst 3合用;
利用iptables的recent模块来抵御DOS攻击;(以拒绝服务的方式实现,很有限)
-m recent
--set --name SSH
--update --seconds 300 --hitcount 3
利用iptables的recent模块来抵御DOS攻击示例;
ssh: 远程连接,
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j DROP
1.利用connlimit模块将单IP的并发设置为3,会误杀使用NAT上网的用户,可以根据实际情况增大该值;
2.利用recent和state模块限制单IP在300s内只能与本机建立3个新连接,被限制一分钟后即可恢复访问;
下面对最后两句做一个说明:
1.第一句是记录访问tcp 22端口的新连接,记录名称为SSH;
--set 记录数据包的来源IP,如果IP已经存在将更新已经存在的条目;
2.第三句是指SSH记录中的IP,300s内发起超过3次连接则拒绝此IP的连接;
--update 是指每次建立连接都更新列表;
--seconds必须与--rcheck或者--update同时使用;
--hitcount必须与--rcheck或者--update同时使用;
3.iptables的记录:/proc/net/ipt_recent/SSH
摘自 凌驾于linux之上博客
主机防火墙:管理本主机;
网络防火墙:管理整个网络;
防火墙的分类:
1、包过滤型防火墙:工作在TCP/IP层,根据tcp首部或ip首部数据进行判断,安全性较
低,效率较高;
1、简单包过滤;
2、带状态检测的包过滤;
1)NEW状态;-建立连接;
2)ESTABLISHED状态;-建立连接并传输数据;
3)INVALID状态(无法识别的状态);
4)RELATED(相关联的状态);
2、应用层网关防火墙:工作在应用层,根据数据包传输的实际数据进行判断,安全性较高,效率较低;
防火墙工作在内核空间,需要在内核空间开口子去定义规则(只有管理员可以定义规则,命令是否正确等),在内核上开的口子称为Netfilter(网络过滤器);
地址转换功能:NAT 网络地址转换;
1)SNAT 源网络地址转换;在POSTROUTING上做转换;
连接跟踪;
2)DNAT目标地址转换;在PREROUTING上做转换;
mangle 数据包每经过一次路由减1然后将ip首部打开修改TTL值加1,让访问用户不知
道有防火墙;
raw----没多做解释;
filter过滤在INPUT,OUTPUT和FORWARD接口上;
nat地址转换在PREROUTING,POSTROUTING,OUTPUT接口上;
mangle撕裂在PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING接口上;
raw在PREOUTING和OUTPUT接口上;
优先级排序:raw--->mangle--->nat--->filter
iptables命令用法:
iptables [-t TABLE] COMMAND CHAIN [creteria] -j ACTION
-t {raw|mangle|nat|filter},默认filter
COMMAND的分类:
规则管理类:
-A 追加到最后一条(append);
-I # 插入第几条(insert);
-D # 表示删除第几条(delete);
-R # 表示替换某条规则;
链接管理类:
-F 清空(flush)链中规则,加链表示清空某条链;
-N 新建链(new),可以用-j跳转到这个链上;
-X 删除自己定义的空链;
-E 重命名(rename);
默认策略:
-P (policy);
清空计数器:
-Z (zero);
每条规则(包括默认策略)都有两个计算器;
1)被此规则匹配到的所有数据包的个数;
2)被此规则匹配到的所有数据包的大小之和;
查看类:
-L (list)列表的格式显示;
-L的子选项:-n (以纯数字的格式显示numeric);
-v 详细的信息(verbose),-vv或-vvv更详细;
-x 显示精确信息不做单位换算(exactly);
--line-numbers 规则显示行号;
匹配条件creteria:
基本匹配:
-s SOURCE:(IP,NETWORK)或加!表示取反(例:! -s NETWORK);(可以省略表示多有主机)
-d DESTIONIP(目标地址);
-p {tcp|udp|icmp};
-i INTERFACE 表示从哪个网卡流进来;(仅用于INPUT,FORWARD,POSTROUTING)
-o INTERFACE 表示从哪个网卡流出去;(仅用于OUTPUT,FORWARD,PRETROUTING)
扩展匹配:指的是调用iptables的模块,以便扩展iptables的匹配功能;
隐含扩展
-p tcp
--sport PORT
--dport PORT
--tcp-flags 检查tcp的标志位;
只检查ACK,SYN,RST,FIN
SYN的简写--syn
-p udp
--sport PORT
--dport PORT
-p icmp
--icmp-type
ping命令的TYPE:
echo-request请求用8代替; www.jb51.net
echo-reply 回应用0代替;
3----自己查看TCP/IP详解书;
显示扩展(必须用-m指定检测状态);
-m state --state 检测状态
-m multiport这个模块匹配一组源或目标端口,可以指定多达15个端口;
--source-ports 22,53,80
--destination-ports 22,53,80
--ports 22,53,80
-m iprange(指定ip范围)
--src-range ip-ip
--dst-range ip-ip
-m connlimit(并发连接限定)
--connlimit-above # (超过#个)
-m limit
--limit rate 限定速率;
--limit-burst number 限定峰值;
-m string 字符串匹配;
--algo bm|kmp(算法);
--string “STRING”
-m time 时间限制;
--timestart value(10:00);
--timestop value
--days lsitofday
--datestart date
--datestop date
-j ACTION(ACTION的选项);
ACCEPT 允许;
DROP 拒绝(悄悄的丢弃);
REJECT 拒绝(直接拒绝);
SNAT 源地址转换;
DNAT 目标地址转换;
REDIRECT 重定向端口;
RETURN 返回INPUT链;
如何开放FTP服务:
主动模式下:
tcp 20(数据),21(命令);
被动模式下:
tcp 21,>1023的端口;
上述需要将RELATED(相关联的状态)打开;
modprobe ip_nat_ftp
lsmod | grep tcp
redhat中iptables的脚本文件为/etc/rc.d/init.d/iptables
service iptables start 启用保存的规则;
service iptables stop 清空链;
/etc/sysconfig/iptables 保存规则的文件;
/etc/sysconfig/iptables-config 向iptables脚本提供配置文件的文件;
将规则保存到配置文件中的方法:
1)service iptables save 将规则保存到配置文件中的命令;
2)iptables-save > /etc/sysconfig/iptables-test (将生效的规则保存至自己指定文件中);
iptables-restore < /etc/sysconfig/iptables-test (从另外自己指定的规则文件启用规则);
地址转换:
源地址转换:
-j SNAT --to-source 192.168.100.1 指定源地址转换成其它地址;
-j MASQUERADE(地址伪装,比SNAT占用更多的资源,当ADSL拨号上网做转换时比较常用);
目标地址转换:一般要限定协议和端口;
-j DNAT --to-destination 192.168.100.2
PNAT端口转换:
-j DNAT --to-destination 192.168.100.2[:port]请求的和转发的相同可省略,不相
同不省略;
-j LOG 转发日志;
--log-prefix “DNAT for web”可以与-m limit --limit 3/minute --limit-burst 3合用;
利用iptables的recent模块来抵御DOS攻击;(以拒绝服务的方式实现,很有限)
-m recent
--set --name SSH
--update --seconds 300 --hitcount 3
利用iptables的recent模块来抵御DOS攻击示例;
ssh: 远程连接,
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j DROP
1.利用connlimit模块将单IP的并发设置为3,会误杀使用NAT上网的用户,可以根据实际情况增大该值;
2.利用recent和state模块限制单IP在300s内只能与本机建立3个新连接,被限制一分钟后即可恢复访问;
下面对最后两句做一个说明:
1.第一句是记录访问tcp 22端口的新连接,记录名称为SSH;
--set 记录数据包的来源IP,如果IP已经存在将更新已经存在的条目;
2.第三句是指SSH记录中的IP,300s内发起超过3次连接则拒绝此IP的连接;
--update 是指每次建立连接都更新列表;
--seconds必须与--rcheck或者--update同时使用;
--hitcount必须与--rcheck或者--update同时使用;
3.iptables的记录:/proc/net/ipt_recent/SSH
摘自 凌驾于linux之上博客
相关文章
手动处理IE被劫持的详细方法 IE浏览器被劫持的手动处理方法
IE浏览器被劫持了.上网时经常会遇到.下面的方法很有用2012-06-20- 突然发现IE7的搜索框不能用了,以为是IE出了问题,几次修复无果后,重新装了IE8,结果无法添加新的搜索引擎,其实用金山急救箱查杀下即可。2010-06-02
- 本文主要介绍了病毒的知识以及如何杀毒防毒2012-05-31
- 蠕虫病毒是一种常见的计算机病毒。它是利用网络进行复制和传播,传染途径是通过网络和电子邮件。2012-05-31
- McAfee一款不错的杀毒软件,是服务器上最好用,最安全的杀毒软件,尤其是其企业版的灵活得到了用户的好评,现在分享授权码。2010-10-19
- 使用杀毒的方法都是用一般的操作,比如杀毒软件、打开进程管理器关闭不熟悉的进程等。今天小编就为网友们了解一种神奇的杀毒方法,那就是记事本杀毒,感兴趣的朋友不要错过2013-12-13
利用麦咖啡(McAfee)对服务器Web站点进行有效安全设置与管理
本文主要拿ASP文件做演示,大家可以修改E:\wwwroot**.asp为我们所希望限制的文件格式2010-09-23- Dr.Web大蜘蛛反病毒2008专业版,在软件程序设计的又如何呢,我们今天来检查一下它的卸载过程。2009-11-04
- 本文为大家详细介绍下McAfee和Agent的详细卸载步骤以及CMA 这么重要性介绍,感兴趣的朋友可以参考下哈,希望对大家有所帮助2013-07-03
- 大家都知道恶意软甲就在我们的身边,时刻准备着侵占我们的电脑,那么怎么才能知道那些恶意软件是否感染了我们的电脑呢?一起来看看吧2016-09-09
最新评论