Minecraft(我的世界)中文论坛
标题: iptables教程 -- linux防测压攻击的神器 2015.8.3更新
作者: DarcJC 时间: 2015-2-7 14:27
标题: iptables教程 -- linux防测压攻击的神器 2015.8.3更新
本帖最后由 z25096708 于 2015-8-3 11:23 编辑
MCBBS好像又奇葩了,我一修改格式就完全乱了。。。
不改了,SSH拼写问题别回复了
详情可以在SKYCATCHER大大的这个帖子看到
我只负责教大家iptables,windows的问题自己找别人去
我使用的系统:ubuntu 14.04
打开终端【ssh
先输入查看iptables的情况
如果你安装系统选择了启动防火墙【windows azure这些提供商是强制启动的】
且没有进行改动,提示的信息应该是这样的
- Chain INPUT (policy ACCEPT)
- target prot opt source destination
- Chain FORWARD (policy ACCEPT)
- target prot opt source destination
- Chain OUTPUT (policy ACCEPT)
- target prot opt source destination
- Chain RH-Firewall-1-INPUT (0 references)
- target prot opt source destination
- ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
- ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
- ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
- ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
- ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
- ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
- ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
- ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
- ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
- ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
- REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
复制代码
我们可以看见它默认开放了22【shh端口】80【网页端口】25【stmp端口】
若你没有启动防火墙则是
- Chain INPUT (policy ACCEPT)
- target prot opt source destination
- Chain FORWARD (policy ACCEPT)
- target prot opt source destination
- Chain OUTPUT (policy ACCEPT)
- target prot opt source destination
复制代码
可以看到,没有添加一个规则。
TIP:若你服务器没有打开防火墙,且服务器是远程的,要注意不要贸然打开防火墙。后果。嘻嘻
嗯,windows azure提供的linux系统,一开始是打开防火墙的【我一开始不知道,于是我的minecraft服务器就开在80端口了= =】
怎么关闭呢?
关闭防火墙
卸载怎么办?
一般来说,你需要在这俩个指令前加sudo。sudo后有空格。不需要大写。
反正我的要加sudo。这是以root用户的身份强制执行
如果你的系统原本就没有防火墙【无良啊】
怎么办?
安装咯
好了,切回正题
你们想自己设置?那好吧,用这个指令
若是提示限权不足,请在前面加sudo。下面不说这个了
这个可以清楚所有预设的规则。也就是说22,25,80也连接不上了。远程用户谨慎进行。
好吧,你的iptables发现了很多其他规则?那应该是被动过手脚【无良
你又不想清除所有规则?
那么,看下面的
清除所有自定义规则。
好吧,你用错指令了?
这还不算晚,,你还没保存呢
让我们重启下就一切都会好了
怎么保存设置?
- /etc/rc.d/init.d/iptables save
复制代码 是的,就是这个代码。
为啥会有这种代码?我怎么知道= =
然后让我们重启防火墙,让他生效
妈呀,我用不了这个指令。这是一些残缺系统会遇到的【无良】,那就重新安装iptables吧。
配置:
好了,终于到了配置iptables了。。。。
想要安全点?
用这个指令吧。拒绝任何在规则以外的链接。DROP是啥意思?扔掉咯
控制流出的数据
你可以把DROP改成ACCEPT。你看下面吧,你这么做本帖就没意义了
- iptables -p OUTPUT ACCEPT
复制代码 意思是不在OUTPUT规则里的数据,全部可以通过。
ACCEPT什么意思?同意啊。。。【通过】。再看看上面的吧。
最后一个代码,原理同上
好吧,警告:用SHH登录的千万别用= =
你前面清除了所有规则,你现在用第一条,你就完蛋了,找客服去吧。886
下面是两条命令,让SHH可以登录的咯
- iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
复制代码 看到数字相信大家都明白了。不过那些丧心病狂的改了端口的人,那就修改下数字就好了。
你要开MINECRAFT服务器?你把OUTPUT的规则改成DROP了?
好吧,我们得加个规则了。允许25565端口通过【丧心病狂的人自己想吧= =很简单的】
- iptables -A OUTPUT -p tcp --sport 25565 -j ACCEPT
复制代码 【设置成APPECT的别蛋疼用了啊。。。】
我来给个格式吧,
- iptables -A [INPUT/OUTPUT/FORWARD] -p [tcp/udp] --[OUTPUT用sport,INPUT用dport] -j [ACCEPT/DROP]
复制代码 大家自己设置把。
对了,有一个不得不说的
要允许PING包的通过的话,用以下指令
- iptables -A OUTPUT -p icmp -j ACCEPT
复制代码 【你把OUTPUT设置成ACCEPT就不用了】
- iptables -A INPUT -p icmp -j ACCEPT
复制代码 【把INPUT设置成ACCEPT就不用了】
但是我还是建议不要打开。许久之前,DDOS都是给服务端发送最大大小的PING包以达到搞崩服务器的目的。
更加严密的限制:
限制登录SHH的IP
- iptables -A INPUT -s [ip] -p tcp --dport 22 -j ACCEPT
复制代码 ip改成你的IP。方括号去掉,上文全部方括号都要去掉。又不是搞数据库
ip可以是这样的格式:42.159.197.0/24
这样代表允许42.159.197.1-42.159.197.255全部的ip
【AB段是42.159的都是windows azure的ip】
24是子网掩码
设置了这里上面就别设置ssh登录的了。
因为那里不限制ip
生效的话请保存后重启防火墙
【以上方法建议天朝不要用,因为天朝的动态IP,,,,】
当然这个东东也可以用来弄IP白名单
举个栗子:
- iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 25565 -j ACCEPT
复制代码
这样就只有内网用户可以连接了、 = -
也可以做黑名单
栗子:
- iptables -A INPUT -s 127.0.0.1 -p tcp -dport 25565 -j DROP
复制代码
好吧,到这里终于有FORWARD规则的用处了咯= =
这是转发的规则
把FORWARD设置成DROP再来吧= =
- iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP
复制代码 以上代码是扔掉没用的TCP包。
然后防止ddos攻击
- iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
复制代码 处理IP。每秒100个。单位不能少咯。
- iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
复制代码 这个是过滤icmp【就是ping的包】。每秒仅允许一个。开启限制的触发点是10个之后。
意思就是他发了10个ping包之后。每秒只允许通过一个。
然后就是还是防范的
禁止非法链接
- iptables -A INPUT -m state --state INVALID -j DROP
- iptables -A OUTPUT -m state --state INVALID -j DROP
- iptables-A FORWARD -m state --state INVALID -j DROP
复制代码 允许现在已和服务器建立的链接
- iptables-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- iptables-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
复制代码
然后
The end~
注释:
由于udp按道理来说不常用(至少mc用不上),所以我就不讲了咯..
作者: 小析 时间: 2015-2-7 14:29
正版服就表示笑笑
作者: DarcJC 时间: 2015-2-7 14:31
你也不看看国内有多少盗版。。。
我是有正版,但是玩家木有= =
作者: hejin439 时间: 2015-2-7 14:32
看帖子回复是一种美德,LZ加油~~~
作者: leavessoft 时间: 2015-2-7 14:38
感谢lz分享,测压工具现在满大街都是。。哎
作者: Ayamuta 时间: 2015-2-7 15:02
头像不错...
作者: hejin439 时间: 2015-2-7 15:13
{:10_512:}你的头像也不错哟
作者: gudan22168 时间: 2015-2-7 19:29
想说有点看不懂。。
作者: Byepast 时间: 2015-2-8 20:44
赞一个
但首先……是ssh不是shh = =
其次……我觉得该向小白介绍一些23端口……手一抖禁了23就呵呵了
作者: 7024 时间: 2015-2-24 01:31
支持技术党 已经学习了
iptables加载规则后别忘了启动它
作者: Lucency 时间: 2015-2-26 14:40
很棒的作品!
作者: 799371437 时间: 2015-3-13 18:56
真心不错的教程 从里面提取出来了两条 流畅度大大提升
作者: slz9073 时间: 2015-3-13 22:37
国内正版加阿里云6g流量冲洗
作者: wasdwsio 时间: 2015-3-24 13:29
楼主··2003系统怎么放压测啊!!
作者: DarcJC 时间: 2015-3-25 20:16
对不起。iptables不支持win系列的
作者: wasdwsio 时间: 2015-3-25 21:24
好吧 谢谢了
不知道有没有别的WIN用的放测压的!!
求告知!
作者: 彩虹城 时间: 2015-3-26 22:16
不懂吧。 加个QQ, {:10_492:}
作者: wangchujinqwe 时间: 2015-5-23 01:30
很好,给你一个赞
作者: 黄总 时间: 2015-6-7 14:36
LZ很辛苦啊,但是。。。。我太渣看不懂额。请问我只想防止BC跨服的漏洞应该做哪几个步骤呢?(我是远程SSH,CentOS系统,上面讲的远程谨慎使用我不是清楚啊。。。)
作者: Bolly 时间: 2015-8-18 12:55
非常不错
作者: 羽郑 时间: 2016-1-17 16:03
求教蛤蟆吃联机!!!!!
作者: 2498625549 时间: 2019-5-5 11:47
............