简介:  
图1
Centos做为服务器级操作系统,防火墙是不可缺少的。防火墙的主要功能为控制进出网络包,防火墙就如小区门卫的工作职责,检查出入小区居民的身份,如果不符合小区门卫管理条例的路人,将被拒绝在小区外面。看来防火墙到作用还是非常大的。平常大家用的windows机器上也有防火墙,只不过普通用户是不会关注这个防火墙的,默认情况下windows是不会开启防火墙,因为对于普通用户很难理解防火墙的工作原理,以及如何使用。但做为专业的程序员还是必须要理解的。
原因:
这篇文章我不想照着Centos官方文档翻译出来如何使用iptables,而是先告诉大家我是如何通过对网络编程到理解,以及对Linux的理解来看待Centos的iptables的使用。通过对这些基本概念的理解,就不会再对Iptables规则感到是如此的复杂。
理解:
图2
网络通信的过程为,信息源,媒介,路由,接收端。Centos在这里可以扮演信息源,接收端,路由这三个角色。对应iptables里的:
INPUT:网络包的目标ip地址为本地计算机
FORWARD:网络包路过本地计算机
OUTPUT:从本地计算机发出的网络包
为啥官方文档要用chain这个单词,因为在每一个消息包映射到相应的策略的时候,都要从第一条往下走,如果没有遇到匹配的策略,数据包就会被丢弃。因此每种策略也被叫做chain。通过一个数据包修带的数据信息,iptables可以从协议,ip地址,端口号。以及网络网络状态来对网络包进行处理了。下面简单说下iptables命令。
$iptables -L -v

这个很容易理解,就是列出iptables 所有规则, -v 就是详细信息
$iptables -P INPUT ACCEPT

-P对应的是(policy)策略的意思,对应所有进入的数据包接受,为啥要执行这个命令?因为很多时候都是远程ssh登录主机的,如果没有这条,后面执行的命令,可能将关闭ssh连接,到时候只能去机房从新配置iptables了。
$iptables -F

-F 对应刷新iptables规则,对应的英文为flush。
$iptables -A INPUT -i lo -j ACCEPT

-A 对应增加(append)一条规则, -i对应设备,接口(interface), lo对应localhost, -j对应(jump)。为啥会这样设计。还是开头说的,数据包都是从对应策略的第一条开始走的,一旦遇到匹配的规则,自然是跳转到对应的命令执行上。
$iptables -A INPUT -m state --state  ESTABLISHED, RELATED -j ACCEPT

-m对对应的是加载state模块(module),来检测相应的网络包状态(--state)。ESTABLISHED,和RELATED 对应的是应经建立连接的,或者和建立连接的网络包相关的网络包,直接可以放行。
$iptables -A INPUT -p tcp --dport 22 -j ACCEPT

这条对应的是协议(protocol)为tcp协议,端口为22的网络放行,22不就是ssh默认的端口吗。
$iptables -P INPUT DROP

这条对应所有目的地到本地的数据包,全部丢弃
$iptables -P FORWARD DROP

路过本地的所有数据包丢弃。
$iptables -P OUTPUT ACCEPT

所有从本地发出的数据包,放行。
     上面是如何通过命令行添加一条命令,参考官方网站对iptables的定义,但这种方法不是那么智能,因为这种方法,是刷新整个iptables的规则,如果你ssh链接上去,你以为是你添加了一条规则,然后执行了DROP,很显然你被坑了,你被永久的拒之门外,只能让机房的同学重启机器,因为你没执行iptables save,所以还是上次的规则。
     更安全可靠的方法应给是直接编辑:vi /etc/sysconfig/iptables , 添加一条,保存,这样比较安全。也比较方便,如果通过命令行,就得将所有得规则写成shell,每次得往shell里添加一条命令,然后保存,重启。
总结:
如果对网络通信比较了解,知道两台机器是如何连通的,如何发送网络数据包的。其实还是很容易理解iptalbes涉及的策略为啥要这么设计了。对于里面的各种参数,如果经常使用linux的话,都是很容易记住和理解的。计算机的知识很杂也很多,如果全靠记忆去学习,那随着时间的冲洗很快就将你学习过的东西洗刷的干干净净。只有当你理解了,为啥人家要这样设计,而不是那样设计,这样在你遇到这个问题的时候,你是站在设计者的角度看待问题的,只需要简单的查询下,就可以很快对这东西上手了。还有学习计算机英语也是相当重要,计算机本来就是英语国家人民发明的,所以很多词汇啊,命令啊,参数啊,都是英语单词,或者英语简写。这也是为啥外国人比咱学计算机的一个重要优势。
参考:
1、http://wiki.centos.org/HowTos/Network/IPTables
2、http://www.freesoft.org/CIE/Course/Section3/7.htm
3、http://en.wikipedia.org/wiki/Firewall_(computing)

转载于:https://www.cnblogs.com/fengju/p/6174316.html

Centos环境下部署游戏服务器-iptables相关推荐

  1. Centos环境下部署游戏服务器-软件安装

    这篇文章主要介绍一下游戏服务器需要安装的软件和需要修改的配置.现介绍下项目,本项目服务器端是c++ + mysql组合,客户端是as写的,需要安装的服务为Mysql,Php,Apache, 以及一个n ...

  2. 在Windows环境下部署SVN服务器

    一.下载SVN的服务端 Downloads | VisualSVN 二.下载SVN的客户端 Downloads · TortoiseSVN 同时下载语言包 三.SVN服务端的安装及配置 设置服务器目录 ...

  3. iis服务器部署项目,IIS环境下部署项目的详细教程

    分享IIS环境下部署项目的详细教程 1.环境部署 1.1安装IIS7 进入控制面板,选择"程序和功能",进入如下页面后 找到World Wide Web Services,确保选中 ...

  4. 阿里云ECS服务器Linux环境下配置php服务器(三)--项目部署篇

    在前两篇里,我们分别介绍了如何购买阿里云服务器,安装基本软件和配置(请看阿里云ECS服务器Linux环境下配置php服务器(一)--基础配置篇) 以及如何安装使用phpMyAdmin(请看阿里云ECS ...

  5. asp项目如何部署到服务器,IIS环境下部署项目的详细教程

    分享IIS环境下部署项目的详细教程 1.环境部署 1.1安装IIS7 进入控制面板,选择"程序和功能",进入如下页面后,点击"Turn Windows features ...

  6. 多云环境下部署 k3s 集群

    多云环境下部署 k3s 集群 最近在玩k3s,刚好手上有三台云服务器(白嫖的一年亚马逊,双11买的腾讯云,朋友的阿里云),尝试跨云厂商搭建k3s集群玩玩 一.基础配置 服务器信息 系统 公网IP 内网 ...

  7. 陌生环境下部署的思路

    陌生环境下部署的思路 由来 场景一 场景二 场景三 整体的随想 经验 由来 本篇的由来不是来自偶然,但是如果说是必然又会显得很唐突.在现场实施部署工作中,难免会遇到各种个样"突发" ...

  8. Windows和Linux环境下搭建SVN服务器

    --------------------------Windows下搭建SVN服务器----------------------------- 一.安装SVN服务端 软件包Setup-Subversi ...

  9. centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复...

    centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复 有时候我们会碰到这样的业务场景: 1.将大的数据库恢复到本地进行业务测试 ...

最新文章

  1. 今年的谷歌I/O大会,或许会有这些东西
  2. 008 centos7安装docker ce
  3. Segment Routing — Overview
  4. 005-SDK框架之LYWSDKCallBackListener.h
  5. php单词出现频率,PHP计算文件或数组中单词出现频率
  6. Linux系统高可用集群软件之Keepalived
  7. mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
  8. 侣信即时通讯系统的技术解析
  9. Leetcode算法题(C语言)12--旋转图像
  10. zookeeper下载地址及常见配置项
  11. 一篇文章带你弄懂大数据!
  12. 20172307 2017-2018-2 《程序设计与数据结构》实验5报告
  13. 牛客小白月赛9: D. 树上求和(dfs序+线段树)
  14. 为什么是GCN(转)
  15. ae效果英文版翻译对照表_AE自带特效中英文对照表
  16. 2022年高压电工模拟考试及高压电工复审模拟考试
  17. Python如何抓取APP数据?抓包工具Fiddler介绍
  18. SEO判断是否是搜索引擎蜘蛛跳转(快照劫持)
  19. 更好的设计接口_设计可以而且必须做得更好
  20. html多级列表不连续如何显示,完美解决word多级列表的编号不显示问题

热门文章

  1. linux下svn服务器的安装配置和使用
  2. Eclipse IDE for c/c++ 可以设置变量匹配高亮显示颜色
  3. Spring源码学习笔记:起源发展和核心模块主要职能
  4. 【note】Swift初见笔记
  5. 外点罚函数matlab程序_关于图像轮廓识别的程序实现
  6. python2.7使用TimeDelta中total_seconds()方法的问题
  7. 简单的Net::FTP模块的简单应用
  8. Windows 7下的Excel 2010同时打开多个独立的窗口
  9. HTML ajax 上传文件限制文件的类型和文件大小
  10. 分布式系统事务一致性解决方案(转)