博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记一次iptables实例
阅读量:6242 次
发布时间:2019-06-22

本文共 2321 字,大约阅读时间需要 7 分钟。

hot3.png

iptables原理解析及使用方法:

  • iptables基础概念:
  • iptables详解英文原稿:
  • iptables常用实例:

iptables一键配置脚本

# cat iptables.sh#!/bin/bashipt="/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/siptables -A OUTPUT -d 0.0.0.0/0 -m limit --limit 60/s --limit-burst 30  -j ACCEPTiptables -A OUTPUT -d 0.0.0.0/0 -j DROP

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

参考:

关于limit参数:
关于-m参数:

注意事项:

关于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://my.oschina.net/adailinux/blog/1611112

你可能感兴趣的文章
Quartz2D简单绘制之饼状图
查看>>
你优化系统的目标是什么?
查看>>
SVN(64位)报 Failed to load JavaHL Library. 的解决方法
查看>>
基本运算符
查看>>
黄聪:WordPress 多站点建站教程(三):主站如何调用子站的文章内容、SQL语句如何写?...
查看>>
Activity的启动模式 4种launchMode Intent.FLAG_NEW_TASK 详解
查看>>
hdu 2254 奥运 **
查看>>
数据结构基础
查看>>
UltraISO制作ISO镜像文件
查看>>
ASP.NET MVC 之自定义HtmlHelper
查看>>
声明顺序
查看>>
memcpy内存重叠的解决
查看>>
保存和恢复activity的状态数据[转]
查看>>
JS中call、apply的用法说明
查看>>
C#中对于Enum类型的遍历
查看>>
使用tomcat启动dubbo项目
查看>>
crontab + shell脚本实现文件重命名
查看>>
谈谈-ConstraintLayout完全解析
查看>>
fluent-ffmpeg 常用函数
查看>>
Robot Framework(十五) 扩展RobotFramework框架——远程库接口
查看>>