设为首页 收藏本站
查看: 952|回复: 0

[经验分享] 网络资源访问控制(iptables)和常用策略的介绍

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-25 09:29:30 | 显示全部楼层 |阅读模式
网络资源访问控制(iptables)
iptables 是Linux 内核集成的 IP 信息包过滤系统。
如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器,那么有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
一种防火墙是一种非常有效地网络安全模式,通过它可以隔离风险区域与安全区域的连接,同时不会妨碍对风险区的访问。
一般firewall都可以达到以下几个目的:
①可以显示进入内部网络的用户并过滤掉不安全的非法用户和服务。
②防止入侵者接近防御设施,多了一道防御。
③限定用户访问特殊网络
④为监视internet安全提供方便
防火墙一般分为三类:硬件防火墙(Unix,Linux等),软件防火墙(checkpoint,iptables等),芯片防火墙等。
目前防火墙产品非常之多,划分的标准也比较杂。 主要分类如下:
1. 从软、硬件形式上分为 软件防火墙和硬件防火墙以及芯片级防火墙。
2.从防火墙技术分为 “包过滤型”和“应用代理型”两大类。
3.从防火墙结构分为 < 单一主机防火墙、路由器集成式防火墙和分布式防火墙三种。
4. 按防火墙的应用部署位置分为 边界防火墙、个人防火墙和混合防火墙三大类。
5. 按防火墙性能分为 百兆级防火墙和千兆级防火墙两类。
防火墙在做信息包过滤决定时,也有一定的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。
    Iptables与netfilter模块关系
在linux下面的防火墙并不是一个服务,而是一个加载到内核中的模块。这个模块就是netfilter模块(网络过滤模块),我们使用iptables工具来管理这个netfilter模块。可以说netfilter就是iptables防火墙。。。。
下面是netfilter模块里的表和链
    QQ截图20151225092744.png
filter表适用于局域网内部,也是默认的表,主要和主机自身有关,主要负责防火墙功能 过滤本机流入流出的数据包。
nat表负责内网和外网的转换解析等。
mangle表一般是做科研用的。
input   :负责过滤所有目标地址是本机地址的数据包,就是过滤进入主机的数据包;
forward  :负责转发流经主机但不进入本机的数据包,和NAT关系很大;
output   :负责处理源地址的数据包,就是对本机发出的数据包;
QQ截图20151225092807.png
这些.ko的模块就是iptables进行加载的模块。实际上真正的防火墙是netfilter,而iptables只是管理这些模块的一个程序。
    netfilter模块不是一个服务,而是一个内核模块,是一个内核机制只能运行在OSI的2.3.4层即数据链路层,网络层和传输层
仅能检查数据包的包头。
iptables的图形化
QQ截图20151225092820.png
防火墙是不能关闭的禁用防火墙只是将里面系统默认的条目清除。
QQ截图20151225092830.png
记住:配置完防火墙一定要保存否则一旦重启之前所做的策略就会不存在。并且为了安全起见最好写一条策略就save一下。
QQ截图20151225092837.png
关于iptables的访问控制规则是一个次序的列表:
当数据包要经过iptables防火墙,首先读取第一条策略,如果第一条策略匹配,则执行,不再读取下面的策略。如果第一条策略没有匹配,则读取第二条策略,如果匹配到第二条策略,则执行,不再读取下面的策略。如果数据包没有匹配到任何策略,则匹配默认策略。默认策略是允许或者拒绝可以由用户自己定义。
    DROP:强制
    REJECT:警告强制
    ACCEPT:允许
    LOG: 不会匹配任何链接的策略,日志(写入所有策略之前)。
用户自定义链
系统默认的是ACCEPT
QQ截图20151225092844.png
所以在写accept策略的时候第一条必须是ERJRCT
下面是一些写策略时的一些参数:
在iptables命令中定义其所做的操作时,可使用一下参数:
-L :显示所选链的所有策略
-A:在所选择的链最尾部添加一条新的策略
-D:从所选链中删除策略
-R:替换所选中的链里指定的策略
-I:从所选链中指定策略前面插入一条新的策略
-F:清空所选链的策略,如果不指定,清空所有
-Z:将所选链的所有计数器归零。
-N:根据用户指定的名字建立新的链
-L :显示所选链的所有策略
-A:在所选择的链最尾部添加一条新的策略
-D:从所选链中删除策略
-R:替换所选中的链里指定的策略
-I:从所选链中指定策略前面插入一条新的策略
-F:清空所选链的策略,如果不指定,清空所有
-Z:将所选链的所有计数器归零。
-N:根据用户指定的名字建立新的链
-X:删除指定用户自定义链
-E:对自定义链进行重命名
-P:为链设置默认策略
在使用上述操作时还可以配合一下参数使用:
-v:该参数使输出的内容详细化
-x:使-L输出时的计数器显示准确的数值
-n:将IP地址和端口以数值的形式显示
--line-numbers:在显示策略时,输入序号
--modprobe:指定iptables探测并装载使用的模块
iptables -L   查看详细信息
iptables -A (所有策略最后)
iptables -I 插入(缺省策略最前)
iptables -L --line-numbers
Iptables –D  删除一个防火墙条目

QQ截图20151225092854.png
匹配主机
-s:来源地址          192.168.0.0/24
-d:目标地址          192.168.0.1
网络接口
-i lo          从接口进来的
-o eth1     从接口出去的
反向选择
-i eth0 ‘!’-s  192.168.0.0/24  
1
iptables -A INPUT ‘!’-s 192.168.0.0/24 -j REJECT



接端口并且接协议
-p tcp --dport 80   访问我的目标端口为80的并且协议为tcp
-p udp --sport 53  访问源端口为53的并且协议为udp
下面我们来进行具体的策略操作
1.阻止源ip地址为192.168.1.56到本机的所有udp通信
1
iptables  -A  INPUT  -P   udp   -s  192.168.1.56   -j  REJECT service iptables save



写过策略一定要service iptables save
2. 阻止源IP地址为192.168.1.56到本机的所有非TCP通信
1
iptables  -A  INPUT  -P tcp -s  192.169.0.100 service iptables save



3. 阻止目标IP地址为192.168.1.57的所有通信
1
iptales  -A OUTPUT  -d 192.168.1.57 -j REJECT





4. 阻止目标IP地址属于192.168.1.0/24网段的所有通信

1
iptables  -A  OUTPUT   -d 192.168.1.0/24  -j REJECT





5. 阻止从eth0进入到源IP地址为192.168.1.57的所有通信
1
iptables  -A  INPUT  -I  eth0  -s 192.168.1.57  -j REJECT





6. 阻止从eth0发出的目标IP地址为192.168.1.57的所有通信
1
iptables  -A  OUTPUT  -o eth0 -d 192.168.1.57 -j  REJECT




7. 阻止源端口大于等于1000且小于等于1024的所有TCP通信
1
Iptables  -A    INPUT  -p   tcp  -m multiport  --sport  1000,1024 –j  REJECT




8. 阻止源端口为1000和1024的所有TCP通信
1
iptables  -A OUTPUT  -P  tcp  -m multiport  --dport   1000,1024 –j REJECT




9. 阻止目标端口为1000和1024的所有TCP通信
1
2
iptables  -A INPUT -s  192.168.0.0/24  -p  tcp  --dport 25  -j  accept
iptables  -A INPUT   -s   192.168.1.0/24




10. 允许192.168.0.0/24的计算机可以访问mailserver,拒绝192.168.1.0/24的网络访问mailserver
1
iptables -A INPUT -s 192.168.0.0/24 -p tcp -m multiport --dport 25,110 -i eth0 -j REJECT




11. 拒绝192.168.0.10访问192.168.1.10的访问FTPserver
1
iptables -A FORWARD -s 192.168.0.10 -d 192.168.1.10 -p tcp --dport 21 -j REJECT



12,拒绝防火墙访问192.168.0.100的SSH
1
iptables -A OUTPUT -d 192.168.0.100 -p tcp --dport ssh -j REJECT



iptables nat表:负责网络地址转换,来源于目的IP地址和端口的转换,一般用于共享上网或特殊端口的转换服务
snat    :地址转换
dnat    :标地址转换
pnat    :标端口转换
状态跟踪
NEW: 第一次发起请求的连接状态
ESTABLISHED: 已建立三次握手的连接
RELATED: 服务器回应的数据包状态
INVALID: 无效的数据包状态
mangle 表:将报文拆开来并修改报文标志位,最后封装起来
5个检查点(内置链)
·PREROUTING
·INPUT
·FORWORD
·OUTPUT
·POSTROUTING   
多条链整合起来叫做表
根据上下文自己分析下这条策略的含义
1
-A OUTPUT -p tcp -m tcp --sport 2000:65535 -m connlimit --connlimit-above 200 --connlimit-mask 32 --connlimit-saddr -j REJECT --reject-with tcp-reset





状态检测的包过滤
-m state
   --state {NEW,ESTATBLISHED,INVALID,RELATED}  指定检测那种状态
-m multiport 指定多端口号
      --sport
      --dport
      --ports
-m iprange 指定IP段
      --src-range ip-ip
      --dst-range ip-ip
-m connlimit 连接限定
      --comlimit-above # 限定大连接个数
-m limit 现在连接速率,也就是限定匹配数据包的个数
      --limit  指定速率
      --limit-burst # 峰值速率,最大限定
-m string 按字符串限定
      --algo bm|kmp  指定算法bm或kmp
      --string "STRING" 指定字符串本身





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-156001-1-1.html 上篇帖子: Linux远程连接windows桌面和screen后台虚拟终端进程管理 下篇帖子: rpm包管理器用法详解 网络 资源
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表