Linux运维知识之Linux 配置防火墙详细步骤 (iptables 命令使用方法)
小标 2018-12-21 来源 : 阅读 1185 评论 0

摘要:本文主要向大家介绍了Linux运维知识之Linux 配置防火墙详细步骤 (iptables 命令使用方法),通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

本文主要向大家介绍了Linux运维知识之Linux 配置防火墙详细步骤 (iptables 命令使用方法),通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。


如果您使用的是 ssh 远程,而又不能直接操作本机,那么建议您慎重,慎重,再慎重!

无论如何,iptables 是一个需要特别谨慎设置的东西,万一服务器不在你身边,而你贸然设置导致无法 SSH,那就等着被老板骂吧!!!


通过 iptables 我们可以为我们的 Linux 服务器配置有动态的防火墙,能够指定并记住为发送或接收信息包所建立的连接的状态,是一套用来设置、维护和检查 Linux 内核的 IP 包过滤规则的命令包。iptables 定义规则的方式比较复杂,本文对 Linux 防火墙 Iptables 规则写法进行详细介绍。


概览








[root@ppl ~]# iptables -h
iptables v1.4.21

Usage: iptables -[ACD] chain rule-specification [options]
       iptables -I chain [rulenum] rule-specification [options]
       iptables -R chain rulenum rule-specification [options]
       iptables -D chain rulenum [options]
       iptables -[LS] [chain [rulenum]] [options]
       iptables -[FZ] [chain] [options]
       iptables -[NX] chain
       iptables -E old-chain-name new-chain-name
       iptables -P chain target [options]
       iptables -h (print this help information)


介绍


1.Iptables 规则写法的基本格式是:

  


iptables [-t table] COMMAND chain CRETIRIA -j ACTION   


2.Iptables 规则相关参数说明:



-t table:3 个:filter nat mangle ;定义如何对规则进行管理





chain:指定你接下来的规则到底是在哪个链上操作的,当定义策略的时候,是可以省略的;




CRETIRIA: 指定匹配标准;




-j ACTION: 指定如何进行处理;   




3.Iptables 规则其他写法及说明:

 

iptables -L -n -v #查看定义规则的详细信息


 [root@ppl ~]# iptables -L -n
 Chain INPUT (policy ACCEPT)
 target     prot opt source               destination         
 ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
 ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
 INPUT_direct  all  --  0.0.0.0/0            0.0.0.0/0           
 INPUT_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0           
 INPUT_ZONES  all  --  0.0.0.0/0            0.0.0.0/0           
 DROP       all  --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID
 REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

 Chain FORWARD (policy ACCEPT)
 target     prot opt source               destination         
 ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
 ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
 FORWARD_direct  all  --  0.0.0.0/0            0.0.0.0/0           
 FORWARD_IN_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0           
 FORWARD_IN_ZONES  all  --  0.0.0.0/0            0.0.0.0/0           
 FORWARD_OUT_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0           
 FORWARD_OUT_ZONES  all  --  0.0.0.0/0            0.0.0.0/0           
 DROP       all  --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID
 REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

 Chain OUTPUT (policy ACCEPT)
 target     prot opt source               destination         
 OUTPUT_direct  all  --  0.0.0.0/0            0.0.0.0/0 


iptables 是 Linux 服务器上防火墙配置必备的设置工具,是我们在做好服务器安全及部署大型网络时,常会用到的重要工具,很好的掌握 iptables,可以让我们对 Linux 服务器整个网络的结构有一个比较透彻的了解,更能够很好的掌握 Linux 服务器的安全配置技巧。


配置


我们来配置一个 filter 表的防火墙.


1.首先介绍一下指令和相关配置文件



启动指令:service iptables start


重启指令:service iptables restart


关闭指令:service iptables stop



2.然后是相关配置


/etc/sysconfig/iptables     
vim /etc/sysconfig/iptables


然后进去修改即可,修改完了怎么办?这里很多人会想到 /etc/rc.d/init.d/iptables save 指令,但是一旦你这么干了你刚才的修改内容就白做了。。。


具体方法是:

只修改 /etc/sysconfig/iptables, 使其生效的办法是修改好后先 service iptables restart,然后才调用 /etc/rc.d/init.d/iptables save,

因为 /etc/rc.d/init.d/iptables save 会在 iptables 服务启动时重新加载,要是在重启之前直接先调用了 /etc/rc.d/init.d/iptables save 那么你 的 /etc/sysconfig/iptables 配置就回滚到上次启动服务的配置了,这点必须注意!!!


3.下面介绍一些指令用法(主要还是 man iptables 看下相关资料才行)


   -A:指定链名   
   -p:指定协议类型   
   -d:指定目标地址
   -s:IP地址
   --dport:指定目标端口(destination port 目的端口)   
   --sport:指定源端口(source port 源端口)   
   -j:指定动作类型 


4.如果我不像修改文件直接打命令可以吗,当然没问题,步骤如下:


例如我给 SSH 加放行的语句:

添加 input 记录: iptables -A INPUT -p tcp --dport 22 -j ACCEPT

添加 output 记录: iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

最后注意需要再执行一下 /etc/init.d/iptables save,这样这两条语句就保存到刚才那个 /etc/sysconfig/iptables 文件中了。


5.接下来说明一下步骤,如果机器不在我身边,我只能 SSH 进去做 iptables 规则,那么我必须注意每一步,千万别搞错了,否则就 SSH 链接不上都有可能!


首先要做的是给咱的 SSH 进行 ACCEPT 配置,以免直接无法连接的情况发生:

如果 SSH 端口是 22(这里不建议用默认端口最好改掉 SSH 端口)

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

注意要 /etc/rc.d/init.d/iptables save,以下每一步都最好执行一遍此语句,以下不再累述。


6.cat /etc/sysconfig/iptables 确定是否已经加入配置,可以的话执行 service iptables restart 重启后生效.


示例


拒绝某 IPSSH 链接我的 Linux


iptables -t filter -A INPUT -s 192.168.12.12 -p tcp --dport 22 -j DROP


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维Linux频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程