在linux中配置防火墙是一件比较有风险的事情,尤其是在ECS中,一个不当心的操作,可能就会需要重置服务器。

包括阿里云的官方建议,不要配置防火墙,没有必要什么的吧啦吧啦……

(http://bbs.aliyun.com/read/144977.html?spm=5176.7114037.1996646101.1.b6lbJx)

但是如果真的无此必要,又何必存在这个软件?又为何蛮多IDC将硬件防火墙作为一个噱头来叫卖?

如果我想在公网关闭db端口,仅在内网可访问呢?

当然如上有些吹毛求疵,但是至少我个人觉得,在服务器上开启防火墙还是很有必要的。

1.更新防火墙软件、检查当前状态

yum update iptables
/etc/init.d/iptables status

上图表示防火墙运行中,使用命令

/etc/init.d/iptables stop

service iptables stop

关闭防火墙,确保状态如下图所示:

设置系统服务,禁止iptables自动启动

chkconfig iptables off
chkconfig --list iptables

如上图标示,在所有运行级别上均关闭防火墙自动启动。

如此一来,即使设置出错,至少还可以重启服务器来关闭防火墙。

清除iptables的内置规则和自定义规则

iptabls -F
iptabls -X

2.iptables内置filter、nat和mangle三张表,首先设定默认的通用规则

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

注意,第一条规则链一定要先添加,否则,当执行完第二条命令后,你的ssh就会断开,之前的设置自然也不会保存。该句的意思是,过滤所有的进入(INPUT)数据,并丢弃(DROP)。

下面的两句类似,OUPUT全部接受,FORWARD丢弃

3.设置filter表规则,如果不使用-T 参数指定表,则默认为filter表

如果要仅允许指定的ip地址接入ssh,则使用

iptables -A INPUT -s 192.168.0.3 -p tcp --dport  -j ACCEPT

如果是一个网段,上面的192.168.0.3地址,可换为192.168.0.0/24类似的网段地址。

请注意,如果上面设置了OUTPUT的规则也为DROP,则务必也设置对应的规则,允许ssh数据流出

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

添加其他常用规则

iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT 

设置了如上的基本规则之后,则可以保存配置文件,启动防火墙服务,来测试配置是否成功

/etc/init.d/iptables save
/etc/init.d/iptables restart
/etc/init.d/iptables status

4.总结

4.1.配置防火墙一定要很小心,如果操作不当,可能直接无法远程连接,对于硬件服务器只要去机器面前操作即可,如果是阿里云的,就只能重启或者重置了,一定要当心

4.2.配置防火墙的目的就是为了屏蔽端口,如果全部INPUT都ACCEPT,还不如不设置

4.3.当iptables stop之后,默认修改规则并save后,会覆盖之前的规则,因此可以在iptables运行的时候,修改并保存配置,或者iptables-save > /etc/iptables.rules保存到默认规则中

4.4.参考地址:

http://www.liusuping.com/ubuntu-linux/iptables-firewall-setting.html

http://www.cnblogs.com/wangkangluo1/archive/2012/04/19/2457072.html

如果觉得命令麻烦,可以安装如下的组件,使用setup命令配置:

yum install setuptool ntsysv system-config-network system-config-keyboard system-config-network-tui system-config-firewall system-config-firewall-tui

阿里云ECS每天一件事D2:配置防火墙的更多相关文章

  1. 阿里云ECS每天一件事D1:配置SSH

    近期因为项目需求,采购了两台阿里云ECS,选择的系统为CentOS 6.3 X64 安全加固版,额外买了160G的硬盘,应该够应付此项目的需求了. ECS默认已经配置好了sshd服务,可以使用root ...

  2. 阿里云ECS每天一件事D5:安装php5.4.34

    原本是想把php和nginx合在一起来说的,不过考虑后,还是分开来做吧,已熟悉的更透彻一些. 1.准备类库 yum install autoconf automake libtool re2c fle ...

  3. 阿里云ECS每天一件事D3:挂载硬盘

    阿里云的系统盘通常都不大,对于我们的日常使用,基本不足,因此都会额外购买至少一块硬盘,作为存储数据之用. 数据盘要经过分区.格式化.挂载三个步骤,方能正常使用.  1.数据盘的分区 先使用fdisk命 ...

  4. 阿里云ECS每天一件事D9:nginx1.7整合tomcat8.0

    仅通过8080端口访问jsp显然不是一算是一个太好的方法,可以使用nginx的proxy_pass子模块,实现nginx转发jsp请求至tomcat. 典型的配置如下: server { listen ...

  5. 阿里云ECS每天一件事D8:nginx1.7整合php5.4

    nginx本身的并不能解析php或者jsp,要转发给后端的php或者tomcat以及其他类似的应用程序服务器来提供服务. 首先我需要完成的配置是实现与php的整合,典型的配置信息如下: server ...

  6. 阿里云ECS每天一件事D7:安装tomcat8.0

    这一D,跨越了几个月啊,人是越来越懒,集中写一些,就懒得再记录了.也是因为测试需要,搭建个jsp的服务环境,只是测试,考虑用tomcat就够了. 在Tomcat官网下载最新Core版本,下载之后,将文 ...

  7. 阿里云ECS每天一件事D6:安装nginx-1.6.2

    自从接触nginx就开始喜欢上这个小东西了,似乎没什么特别的原因,就是喜欢而已. 1.安装环境的准备 yum install pcre pcre-devel openssl openssl-devel ...

  8. 阿里云ECS每天一件事D4:安装mysql5.5.40

    Linux平台上MySQL也没什么好说的了,首先准备一下软件环境: yum install gcc gcc-c++ gcc-g77 autoconf automake make cmake bison ...

  9. 阿里云ECS专有网络产品三个步骤配置教程

    阿里云ECS专有网络产品三个步骤配置教程 阿里云专有网络节点已开通地域:美国硅谷可用区1B,新加坡可用区A,北京可用区A,深圳可用区A,杭州可用区D,上海可用区B 举个栗子:购买 美国硅谷可用区1B  ...

随机推荐

  1. 2.Visual Studio 2013中的默认快捷键

    这篇大致是IDE的使用技巧,常用的也就那么几个. 我自己用的最多的是注释.取消注释.格式调整.运行测试.开始调试.断开调试.重新开始调试.删除行ctrl+L.保存.全部保存.打开资源管理器.搜索等几个 ...

  2. SQLServer .mdf和.ldf文件

    .mdf:是数据库数据文件,存放一个数据库的数据信息. .ldf:是数据库日志文件,即日常对数据库的操作的记录如(增.删.改)的文件.

  3. ASP.NET MVC开发必看系列

    一.关于HTTP协议的那些事 这可以说我们开发WEB程序的空气,推荐不断温故知新! HTTP协议 (一) HTTP协议详解 HTTP协议 (二) 基本认证 HTTP协议 (三) 压缩 HTTP协议 ( ...

  4. BZOJ 4000: [TJOI2015]棋盘( 状压dp + 矩阵快速幂 )

    状压dp, 然后转移都是一样的, 矩阵乘法+快速幂就行啦. O(logN*2^(3m)) ------------------------------------------------------- ...

  5. BZOJ 3207: 花神的嘲讽计划Ⅰ( hash + 可持久化线段树 )

    O(NK)暴力搞出所有子串的哈希值, 然后就对哈希值离散化建权值线段树, 就是主席树的经典做法了.总时间复杂度O(NK+(N+Q)logN) ----------------------------- ...

  6. BZOJ 1066: [SCOI2007]蜥蜴( 最大流 )

    结点容量..拆点然后随便写 --------------------------------------------------------------- #include<cstdio> ...

  7. Windows上部署Redis

    http://www.cnblogs.com/gaobing/p/5026136.html

  8. JavaScript中的闭包理解

    原创文章,转载请注明:JavaScript中的闭包理解  By Lucio.Yang 1.JavaScript闭包 在小学期开发项目的时候,用node.js开发了服务器,过程中遇到了node.js的第 ...

  9. C# WINFORM 线程中更新UI

    幸好今天是周末,有时间把这个问题记录一下.在多种语言之间切换,发现开发效率降的很低了,开发成本都集中到调式上了,C/C++这些放弃很久了,突然感觉线程这个问题搞的有点烦躁 我这里提到的线程中更新UI, ...

  10. 一道Python练习题

    有关字符串与编码的,转自廖雪峰Python教程. 小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%',只保留小数点后1位: # -*- co ...