专栏首页阿dai_linux记一次iptables实例 原

记一次iptables实例 原

iptables原理解析及使用方法:

iptables一键配置脚本

# cat iptables.sh

#!/bin/bash
ipt="/usr/sbin/iptables"

#默认策略:禁止所有进来的包、放行转发的包和所有出去的包
$ipt -P INPUT DROP
$ipt -P FORWARD ACCEPT
$ipt -P OUTPUT ACCEPT

#清空原有规则:
$ipt -F

#放行指定状态的包(必须有)!!!否则将断开所有非指定ip远程连接
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#对中控机开放22端口,两种格式,如果未使用-m参数,第二中格式将导致无法进行远程连接
$ipt -A INPUT -s 192.168.228.129/32 -p tcp --dport 22 -j ACCEPT
#格式2:$ipt -A INPUT -s 192.168.228.129/32  -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

#对内网开放所有端口
$ipt -A INPUT -s 123.110.228.242/32 -p tcp --dport 0:65535 -j ACCEPT

#允许本机访问外网,不允许任何网络访问本机
#$ipt -A INPUT -p icmp --icmp-type 8 -j DROP

#放行ping命令使用的端口
$ipt -A INPUT -p icmp -j ACCEPT
$ipt -A INPUT -i lo -j ACCEPT

如果要使以上规则重启依然生效,需要将脚本的执行命令写入/etc/rc.local文件中:

/bin/bash /usr/local/iptables.sh

或者,将以上配置放入iptables的配置文件:

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
# drop all input packages except rules follow
:INPUT DROP [0:0]
# allow all forward packages
:FORWARD ACCEPT [0:0]
# allow all output packages
:OUTPUT ACCEPT [0:0]


# accept state=ESTABLISHED or state=RELATED input connection
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#放行ping使用的端口
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT

#对中控机开放22端口
-A INPUT -s 192.168.228.129/32  -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

#对内网开放所有端口
-A INPUT -s 36.110.16.242/32 -p tcp --dport 0:65535 -j ACCEPT

#允许本机访问外网
#-A INPUT -p icmp --icmp-type 8 -j DROP

使用iptables对指定ip限速

#对外网下载限速1Mbit/s
iptables -A OUTPUT -d 0.0.0.0/0 -m limit --limit 60/s --limit-burst 30  -j ACCEPT
iptables -A OUTPUT -d 0.0.0.0/0 -j DROP

说明:iptables是根据每秒的数据包数量来管理数据流入流出速度的,关于数据包量和Mbit的换算规则请参考:https://www.zhihu.com/question/37320333 (没看明白,具体怎么搭配还需要自己去测试)。需要注意的是(纠正链接中的一个错误解释)“--limit-burst”决定了下载速度的大小,而“--limit”的值是本地每秒能产生的供应“--limit-burst”使用的包的数量,保证其大于等于“--limit-burst”就可以保证下载速度。

参考: 关于limit参数:http://blog.sina.com.cn/s/blog_6e5e78bf0101tuq9.html 关于-m参数:https://my.oschina.net/u/3497124/blog/1361009

注意事项:

关于iptables的默认策略(一定要注意!!!)。

  • iptables的默认策略(如,iptables -P INPUT DROP),只能通过“iptables -P INPUT ACCEPT”来清除,iptables -F对其不生效。
  • 一定要在执行“iptables -F”命令之前先执行“iptables -P INPUT ACCEPT”,否则将断开远程连接,酿造惨案!!!

关于keepalived服务防火墙

如果配置可keepalived高可用服务,还需要针对该服务单独配置防火墙规则:

#放行keepalived:
-A INPUT -i em1 -d 10.0.0.0/8 -p vrrp -j ACCEPT
-A OUTPUT -o em1 -d 10.0.0.0/8 -p vrrp -j ACCEPT

参考:https://www.cnblogs.com/tugeler/p/6620300.html

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux系统管理工具-vmstat、top、sar、nload、w命令

    解析: 第一行从左边开始显示的信息依次是:时间,系统运行时间,登录用户数,平均负载(1min平均负载、5min平均负载、15min平均负载)。 load av...

    阿dai学长
  • python-字符串处理

    我们想把其中的日期改为美国日期格式'mm/dd/yyyy'.比如 2019-06-12 改成 06/12/2019 格式

    阿dai学长
  • Apache用户认证、域名跳转、访问日志格式 原

    注意: 本章使用浏览器进行检测的前提是在物理机hosts文件添加虚拟机IP和虚拟主机域名。

    阿dai学长
  • CentOS配置防火墙

    版权声明:本文为[他叫自己Mr.张]的原创文章,转载请注明出...

    他叫自己MR.张
  • Linux 防火墙 iptables 规则 原

    用户2836074
  • 用wxPython打造Python图形界面

    当你为小部件的位置提供精确的坐标时,使用的技术称为绝对定位。大多数GUI工具包都提供了这种功能,但实际上并不推荐使用这种功能。

    AiTechYun
  • 零基础如何学习大数据,大数据学习路线是什么

    在目前,当零基础学习大数据视频教程前,首先我们要学习Java语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。

    用户2292346
  • 我们正在进入一个软件定义的时代 要学会创造性地运用大数据和人工智能 | 大咖周语录

    从云计算到大数据,人工智能已经具备了相对坚实的基础。不过,从当下人工智能的发展现状看,大部分的人工智能还停留在大数据分析阶段,距离真正的人工智能还有一定的距离。...

    数据猿
  • 干货 | 从小白到大数据技术专家的学习历程

    ·大数据处理技术怎么学习呢?首先我们要学习Java语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。

    华章科技
  • 判断链表是否为空和求链表长度

    爱学习的孙小白

扫码关注云+社区

领取腾讯云代金券