前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次iptables实例 原

记一次iptables实例 原

作者头像
阿dai学长
发布2019-04-03 10:27:59
6700
发布2019-04-03 10:27:59
举报
文章被收录于专栏:阿dai_linux

iptables原理解析及使用方法:

iptables一键配置脚本

代码语言:javascript
复制
# 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文件中:

代码语言:javascript
复制
/bin/bash /usr/local/iptables.sh

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

代码语言:javascript
复制
# 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限速

代码语言:javascript
复制
#对外网下载限速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高可用服务,还需要针对该服务单独配置防火墙规则:

代码语言:javascript
复制
#放行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({});

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/01/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • iptables原理解析及使用方法:
    • iptables一键配置脚本
      • 使用iptables对指定ip限速
        • 注意事项:
          • 关于keepalived服务防火墙
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档