点评:本文主要介绍了在linux下设置iptables防火墙的详细步骤。这是CentOS防火墙设置的一个例子,你需要的朋友可以参考一下。





让我们讨论如何建立你的CentOS服务器简单的防火墙。我们在这里讨论它对DigitalOcean的CentOS 6 VPS的基础,也适用于Linux系统的Ali云其他类型。(阿里云的云盾系统,所以可以不在自己的VPS设置防火墙)。

需要解释的是,本文只涉及最基本和最常用的防火墙设置,它可以屏蔽一些常见的攻击,但不能完全保证您的服务器的安全性。

随时更新系统并关闭不必要的服务仍然是确保系统安全的重要步骤。

如果你需要一个更全面的了解iptables,看完这篇文章,请阅读谷歌或更深入的信息!

首先,对什么是IPTables简介:

iptables是在Linux内核中,允许管理员通过设置表,执行数据包过滤和NAT内置防火墙链,和相关的规则。一般来说,iptables防火墙已经建立在CentOS 6和其他Linux版本,和iptables服务默认是启动。iptables适用于IPv4,如果你要使用IPv6,你需要使用ip6tables。

iptables的命令格式:


复制代码代码如下所示:
iptables { -表} { } { }命令链规则- jtarget } {


{ -表}:用来表示该表的使用,有三个选项:过滤、NAT和损坏,如果不指定,滤波器的使用作为默认表。事实上,一个单一的服务器防火墙配置,一般来说,我们只需要在可以过滤表部分。过滤器表包括三链,输入,输出,和前

命令显示了iptables的名字来做的,如

-(追加):这个命令将一条规则附加到链的末端。

d(删除)用于删除规则。

-如果有指定的链,则删除链中的所有规则,如果未指定链,则删除链中的所有规则。

目标:是一个规则指定的操作:

接受:接收包(允许它到达目的地),并停止遍历链。

拒绝:拒绝,

此外,有拒绝退货,日志,重定向,马克,镜子,maquerade等等。

具体语法和概念工具不会说更多,请参阅iptablesmanpage公文。

简单的说,iptables防火墙是由一系列的规则(规则)。将需要一个数据请求来与这些规则进行比较。如果它刚好符合规则的定义,数据请求将被接受或拒绝滴。如果不符合任何规则的定义,最后一个默认规则将被应用。

手术开始前:

注:我们必须使快照备份您的服务器上对DigitalOcean / /阿里云的Linode。否则,一旦你用iptables配置的问题,你可能会阻止你的。您不能自己连接到服务器!这一切发生的时候,欲哭无泪,但似乎没有更好的办法了。(DigitalOcean提供webconsole界面,有时会给你一个机会悔改和擦除iptables的设置,但Ali云不)

决定哪些端口需要打开

首先,ssh的端口22是自然打开的,否则我们不能登录到服务器。

一般来说,CentOS的VPS经常被用来作为一个Web服务器内置灯,FTP服务器,邮件服务器,等等。

对于Web服务,您需要打开80个端口,如果它是HTTPS / SSL协议,则需要打开443端口。

邮件服务,因为SMTP,POP3和IMAP协议,需要开放的端口如下:

SMTP:25securesmtp:465pop3:110securepop3:995imap:143imapoverssl:993

FTP服务,你需要打开两20,21端口

第一步:屏蔽最常见的攻击

默认情况下,CentOS的防火墙设置为允许任何数据传递。

首先,让我们明确了iptables的规则:


复制代码代码如下所示:
iptables-f


然后,我们添加规则,以防止简单的扫描和攻击。


复制代码代码如下所示:
iptables ainput PTCP TCP flagsallnone jdrop #没有包(不是所有标识符位)主要是扫描类的数据包
iptables ainput PTCP!————statenew SYN MSTATE jdrop #防止同步洪水攻击
iptables ainput PTCP TCP flagsallall jdrop #所有包(所有标注位设置)也是一个网络扫描的数据包


如需同步洪水,请参阅维基百科的解释。

第二步:为相应的服务打开相应的端口

首先,我们应该接受本地localhost的任何要求,否则数据库连接将无法工作。

一
国际劳工组织jaccept iptables ainput
为不同的服务打开不同的端口


复制代码代码如下所示:
iptables ainput PTCP -- dport22 jaccept # SSH
iptables ainput PTCP -- dport80 jaccept # HTTP
iptables ainput PTCP -- dport443 jaccept # HTTPS
iptables ainput PTCP -- dport25 jaccept # SMTP
iptables ainput PTCP -- dport465 jaccept # securesmtp
iptables ainput PTCP -- dport110 jaccept # POP3
iptables ainput PTCP -- dport995 jaccept # securepop3
iptables ainput PTCP -- dport143 jaccept # IMAP
iptables ainput PTCP -- dport993 jaccept # secureimap


第三步:添加一般规则

首先,允许从服务器端发起的所有连接,并允许返回的响应数据!例如,yumupdate,发起的VPS,必须允许外部数据来更新


复制代码代码如下所示:
iptables的入口-- stateestablished MSTATE,相关jaccept


最后,设置默认策略:屏蔽任何传入的数据请求,并允许从服务器发出的所有请求。


复制代码代码如下所示:
iptables poutputaccept
iptables pinputdrop


在这一点上,规则已经建立起来。

第四步:保存设置

首先,通过下面的命令看看我们的设置是否正确!


复制代码代码如下所示:
iptable-l-n


确认无问题后,执行以下命令


复制代码代码如下所示:
serviceiptablessave


在上述命令后,相应的规则将被写入 / / / iptables sysconfig等文件,你可以检查一下。

最终的执行


复制代码代码如下所示:
serviceiptablesrestart。


启动iptables防火墙使上述设置有效。

最佳方式:

为了维护和修改我的iptables设置更方便,我通常写的所有iptables设置一个单独的文件,经过测试是没有问题的。然后保存它的iptable配置文件。

以下是我自己~ iptables文件/脚本/ firewall.sh


复制代码代码如下所示:
# /斌/狂欢!
# asimpleiptablesfirewallconfiguration
路径= / sbin: /斌: / / sbin目录: / usr /桶;EXPORTPATH
#冲洗/ eraseoriginalrules
iptables-f #清除所有的既定规则
iptables-x #清除用户定义的链/表
iptables-z #零点的所有链数和流量统计
# acceptlocalhostconnetting,nomatterwhatitis
国际劳工组织jaccept iptables ainput
# acceptanyresponsepackagewhichisinitiatedfrominside
iptables ainput MSTATE -- stateestablished,相关jaccept
# blockmostcommonnetworkattacks(reconpacketsandsyn floodattack)
iptables ainput PTCP TCP flagsallnone jdrop
iptables ainput PTCP!————statenew jdrop SYN MSTATE
iptables ainput PTCP TCP flagsallall jdrop
# openportsfordifferentservices
iptables ainput PTCP -- dport22 jaccept # SSH
iptables ainput PTCP -- dport80 jaccept # HTTP
# iptables ainput PTCP -- dport443 jaccept # HTTPS
# iptables ainput PTCP -- dport25 jaccept # SMTP
# iptables ainput PTCP -- dport465 jaccept # securesmtp
# iptables ainput PTCP -- dport110 jaccept # POP3
# iptables ainput PTCP -- dport995 jaccept # securepop
# icmpconfiguration
# topreventicmpddos,wedonotallowicmptype8(回送请求)orlimitthisrequestwith1 /二
# someicmprequestsareallowed。
icmp_type =0341112141618
forticmpin icmp_type美元
做
iptables ainput picmp ICMP类型jaccept TICMP美元
多恩
# iptables ainput picmp -- icmp-type8-mlimit——LIMIT1 /二jaccept
# defaultpolicies
iptables poutputaccept
iptables pinputdrop
#保存 / / / iptables sysconfig等
/ /初始化等。D / iptablessave


您可以根据您的需要做出相应的更改。