Iptables提供了强大的功能来控制进出系统的流量。
现代Linux内核自带一个叫Netfilter的包过滤框架。网络过滤器可以允许、删除和修改进出系统的流量。iptables用户之间的命令行工具空基于此功能提供了强大的防火墙,可以通过添加规则来配置,形成防火墙策略。Iptables由于其丰富的功能和巴洛克式的命令语法,让人望而生畏。让我们将其中一些作为系统管理员在许多情况下可能会遇到的iptables提示和技巧来探讨。
避免把自己锁在里面
场景:您将更改公司主服务器上的iptables策略规则。你想避免把自己锁在里面,也许是其他人。(需要时间和金钱,导致半夜电话响。)
提示1:在开始处理iptables配置之前,请备份它。
使用以下命令备份配置:
/sbin/iptables-save >。/root/iptables-works
技巧2:更好的方法是在文件名中包含时间戳。
使用以下命令添加时间戳:
/sbin/iptables-save >。/root/iptables-works-`date +%F '
您将获得一个具有以下名称的文件:
/root/iptables-works-2018-09-11
如果您采取措施阻止系统工作,您可以快速恢复它:
技巧3:每次创建iptables策略的备份副本时,创建一个指向名称中“最新”文件的链接。
ln–s/root/iptables-works-` date+% F `/ root/iptables-works-latest
避免在策略规则顶部使用此类一般规则:
iptables-A INPUT-p TCP-DP port 22-j DROP
你在规则中规定的条件越多,你锁定自己的机会就越少。请使用以下内容,而不是上面的非常一般的规则:
iptables-A INPUT-p TCP-d port 22–s 10 . 0 . 0 . 0/8–d 192 . 168 . 100 . 101-j DROP
该规则将(-A)附加到输入链,并且该规则丢弃来自TCP(-p)端口22(-端口22)上的CIDR块10.0.0.0/8的任何数据包,并将其发送到IP地址192 . 168 . 100 . 101(-D 192 . 168 . 100 . 101)
具体的方法有很多。例如,使用-i eth0将处理限制在服务器中的单个网卡上。这样,过滤操作不会将规则应用于etp。
技巧5:将您的ip地址列入白名单,放在策略规则的顶部。
这是一种非常有效的方法,不会自我锁定。
iptables-I INPUT-s & lt;您知识产权>;-j ACCEPT
它需要成为它正常工作的第一条规则。记住,-我把它作为第一条规则插入;-A将其附加到列表的末尾。
技巧6:知道并理解所有当前的规则。
首先,不犯错是成功的一半。如果你了解iptables战略背后的内在工作原理,它会让你的生活更轻松。如有必要,画个流程图。还要记住,策略的作用和应该做什么可能是两回事。
设置工作站防火墙策略
场景:您想要设置一个具有限制性防火墙策略的工作站。
技巧1:将默认策略设置为DROP。
#设置默认的删除策略
*过滤器
:输入丢弃[0:0]
:向前丢弃[0:0]
:输出下降[0:0]
提示2:允许用户完成工作所需的最低服务。
Iptables规则需要允许工作站通过DHCP获得IP地址、网络掩码等重要信息(-p-p UDP-d port 67:68-sport 67:68:68)。规则需要允许入站ssh (-dport22)、出站邮件(-dport25)、DNS(-export 53)、出站ping(-p icmp)、网络时间协议(-dport123-sport123)、出站http (-dport80)和https (-)等
#设置默认的删除策略
*过滤器
:输入丢弃[0:0]
:向前丢弃[0:0]
:输出下降[0:0]
#接受任何相关或已建立的连接
-输入1 -m状态-状态相关,已建立-j接受
-I输出1 -m状态-状态相关,已建立-j接受
#允许环回接口上的所有流量
-输入-i lo -j接受
-输出-o lo -j接受
#允许出站DHCP请求
-A OUTPUT–o eth 0-p UDP-d port 67:68-sport 67:68-j ACCEPT
#允许入站SSH
-A INPUT-I et h0-p TCP-m TCP-d port 22-m state-state NEW-j ACCEPT
#允许出站电子邮件
-A OUTPUT-I et h0-p TCP-m TCP-d port 25-m state-state NEW-j ACCEPT
#出站域名系统查找
-A OutPut-o et h0-p UDP-m UDP-d port 53-j ACCEPT
出站PING请求数
-A OUTPUT–o eth 0-p icmp-j ACCEPT
#出站网络时间协议(NTP)请求
-A OUTPUT–o eth 0-p UDP-d port 123-sport 123-j ACCEPT
#出站HTTP
-A OUTPUT-o eth 0-p TCP-m TCP-d port 80-m state-state NEW-j ACCEPT
-A OUTPUT-o eth 0-p TCP-m TCP-d port 443-m state-state NEW-j ACCEPT
犯
限制IP地址范围
场景:你公司的CEO认为员工在Facebook上花了太多时间,没有完成任何工作。首席执行官告诉首席信息官如何处理员工在Facebook上浪费时间。首席信息官告诉CISO,要对员工在脸书上浪费时间的行为采取措施。最后,你被告知员工在Facebook上浪费了太多时间,你必须做点什么。你决定阻止所有人访问脸谱网。首先,使用主机和whois命令找到Facebook的IP地址。
主持人-www.facebook.com
www.facebook.com是star.c10r.facebook.com的别名。
star.c10r.facebook.com已经向31.13.65.17发表讲话
谁是31.13.65.17 | grep inetnum
inet num:31 . 13 . 64 . 0-31 . 13 . 127 . 255
然后使用CIDR到IPv4转换页面将范围转换为CIDR符号。你得到31.13.64.0/18。要阻止对www.facebook.com的传出访问,请输入:
iptables-A OUTPUT-p TCP-I eth 0–o etp–d 31 . 13 . 64 . 0/18-j DROP
按时间设定规则
场景:拒绝员工访问Facebook的强烈反对导致首席执行官放松了一点(这和他的行政助理提醒他,她保持他的Facebook页面最新)。首席执行官决定只允许他在午餐时间(中午12点到下午1点)访问Facebook.com。假设默认策略是DROP,使用iptables的时间函数打开访问权限。
iptables–A Output-p TCP-m多端口端口http,https-I eth 0-o etp-m time-time start 12:00-time start 12:00-time top 13:00–d
31.13.64.0/18 -j ACCEPT
此命令设置策略以允许(-j ACCEPT)http和https (-m多端口端口http,https)在中午(- timestart 12:00)和13PM(-time top 13:00:00)之间到达Facebook.com(-d 31 . 13 . 64 . 0/18)。
按时间调整-拍摄2
场景:在计划的系统维护停机期间,需要在凌晨2点到3点之间拒绝所有TCP和UDP流量,这样维护任务就不会受到传入流量的干扰。这需要两个iptables规则:
iptables-A INPUT-p TCP-m time-time start 02:00-time top 03:00-j DROP
iptables-A INPUT-p UDP-m time-time start 02:00-time top 03:00-j DROP
根据这些规则,TCP和UDP流量(-p tcp和-p udp)在输入2am(-时间开始02: 00)和3am(-时间停止03: 00)之间被拒绝(-j DROP)(-IUPUT)。
限制与iptables的连接
场景:你的联网Web服务器受到来自世界各地的攻击,他们试图使用DoS(拒绝服务)。为了减轻这些攻击,您可以限制单个IP地址和网络服务器之间的连接数:
iptables–A INPUT–p TCP–syn-m多端口-–dport http,https–m conn limit-–conn limit-高于20–j REJECT-–REJECT-with-TCP-reset
我们来看看这个规则的作用。如果主机在一分钟内向Web服务器(-dport http,https)发送了20个以上的新连接(-p tcp -syn),则拒绝新连接(-j REJECT),并告诉连接主机您拒绝了连接(-REJECT with-TCP-reset)。
监控iptables规则
场景:因为iptables遍历链中的规则,所以iptables基于“第一次匹配获胜”运行,所以频繁匹配的规则应该接近策略的顶部,而不频繁匹配的规则应该接近策略的底部。你怎么知道哪些规则是最多的或者最少的,这样你就可以在顶部或者底部附近下单了?
技巧1:检查每个规则被点击的次数。
使用此命令:
iptables-L-v-n-行号
该命令列出了链中的所有规则(-L)。由于没有指定链,所有链将列出详细的输出(-v),以数字格式和字节计数器(-n)显示数据包。每个规则开头的行号对应于该规则在链中的位置。
使用包和字节计数,您可以将最常访问的规则排在最前面,将最不经常遍历的规则排在最后。
技巧2:删除不必要的规则。
哪些规则根本没有匹配?这些将是从政策中删除的好候选人。您可以通过以下命令找到它:
iptables -nvL | grep -v "0 0 "
注意:这不是零之间的标签;零之间有五个空单元。
提示3:监控正在发生的事情。
我不想实时监控iptables,比如top。使用此命令动态监控iptables活动的活动,并仅显示正在遍历的规则:
watch-interval = 5 ' iptables-NVl | grep-v " 0 0 "
看第一屏' iptables -nvL | grep -v"0 0 0 " ',每五秒钟显示一次输出。这使得观察数据包和字节随时间的变化成为可能。
关于iptables的报告
场景:你的经理认为iptables防火墙很棒,但是每日活动报告更好。有时候写报告比工作重要。
使用包过滤/防火墙/IDS日志分析器FWLogwatch基于iptables防火墙日志创建报告。FWLogwatch支持多种日志格式,并提供多种分析选项。它生成日志文件的每日和每月摘要,这样安全管理员可以节省大量时间,更好地控制网络安全,减少未被注意到的攻击。
以下是FWLogwatch的输出示例:
不仅仅是接受和放弃
我们已经涵盖了iptables的许多方面,从确保您在使用iptables监控iptables时没有锁定自己,到可视化iptables防火墙的活动。这些将使你开始认识到iptables的更多技巧和技巧。
原始链接:
https://open source . com/article/18/10/iptables-提示和技巧
1.《iptables命令 16个系统管理员常用的iptables技巧》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《iptables命令 16个系统管理员常用的iptables技巧》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/1473548.html