iptables是linux里比较常用的防火墙,也是centos7.0之前的版本默认自带的防火墙。

配置防火墙需特别注意一件事情:如果服务器在异地机房,需要谨慎配置端口,以免造成新配置生效后无法远程登录的惨状。

以下简述一下iptables常用的操作和设置方法。

1.查看iptables运行状态

# 不用操作系统下略有不同
service iptables status

systemctl | grep "iptables"

2.查看iptables当前使用的规则

iptables --list

3.iptables默认规则

iptables可以分别对 流入 流出 转发 三种数据包进行端口级的默认规则(接受 or 拒绝)

打开iptables配置文件

vim /etc/sysconfig/iptables

找到 *filter 起始的行

样例:

# 丢弃来自所有端口 流入 的数据包
:INPUT DROP [:]
# 接受来自 2至65535 端口 流出 的数据包
:OUTPUT ACCEPT[:]
# 丢弃来自 5至2048端口 转发 的数据包
:FORWARD DROP [:]

接下来就是一般常规的防火墙规则了

一般常用的参数如下:

# -A 添加一条防火墙规则,后面一般接上 INPUT OUTPUT FORWARD
# -i 指定流量进入的网卡,后面接上网卡名称,如:lo eth0 eth1
# -o 指定流量出口的网卡,后面接上网卡名称,如:lo eth0 eth1
# -j 指定规则的行为,后面一般接上 DROP ACCEPT DENY
# -p 指定应用的协议,如 tcp udp icmp http
# --dport 进入数据包的目标端口,后面接上端口名称
# --sport 出口数据包的源端口,后面接上端口名称
# --state 连接的状态,后面一般接上 NEW ESTABLISHED RELATED
# -s 源ip地址,后面接上发起数据的ip地址
# -d 目标ip地址,后面接上数据包的目标ip地址

常用规则示例:

# 允许来自本机(127.0.0.1)的流入流量 流出流量
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT # 允许icmp协议的(例如ping,traceroute)数据包,类似ping,不但需要数据流出,也需要数据流入
-A INPUT -p icmp -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
# 另一种写法
-A INPUT -p icmp --state NEW -j ACCEPT # 允许80端口的所有流量
-A INPUT -p tcp --dport -j ACCEPT
-A OUTPUT -p tcp --sport -j ACCEPT # 拒绝3306端口的所有流量
-A INPUT -p tcp --dport -j DROP
-A OUTPUT -p tcp --sport -j DROP # 只允许来自192.168.1.150的ssh(22端口)连接
-A INPUT -p tcp --dport -s 192.168.1.150 -j ACCEPT
-A OUTPUT -p tcp --sport -d 192.168.1.150 -j ACCEPT

4.保存iptables规则

很多人设置完iptables后,没有保存,或者修改完配置文件后直接执行iptables-save其实都是错的,这样会导致你之前的设置丢失,直接使用iptables-save只适用于通过 iptables -A INPUT -p tcp --dport 3306 -j DROP命令行方式添加的规则进行保存。

简单地说,iptables-save是把当前内存中的iptables规则写入至 /etc/sysconfig/iptables 文件而已。

正确方法是:

先重启iptables

# 不同操作系统有不同
service iptables restart
# 或
systemctl restart iptables

再执行保存

iptables-save

或从不执行iptables-save,只修改配置文件,重启iptables

iptables简易使用教程的更多相关文章

  1. Git GUI简易使用教程

    Git GUI简易使用教程:先上图~~~~~ 一. 先从添加文件开始讲(先上图): 1.选中要添加的文件,点击菜单栏的“提交”,选中“缓存为提交”,

  2. Android简易实战教程--第五十一话《使用Handler实现增加、减少、暂停计数》

    转载博客请注明出处:道龙的博客 之前,写过一篇使用异步任务AysncTask实现倒计时的小案例,喜欢的话可以参考博客:Android简易实战教程--第三十三话< AsyncTask异步倒计时&g ...

  3. Android简易实战教程--第五十话《动画扫描》

    祝新年快乐!2017(一起)前行. 转载博客请注明出处:道龙的博客 本篇简答的小案例,使用动画知识,完成一个类似雷达扫描效果,并且加入自定义进度条.对于自定义进度条前面有很详细的解析和案例了,本篇就结 ...

  4. Android简易实战教程--第十六话《SharedPreferences保存用户名和密码》

    之前在Android简易实战教程--第七话<在内存中存储用户名和密码> 那里是把用户名和密码保存到了内存中,这一篇把用户名和密码保存至SharedPreferences文件.为了引起误导, ...

  5. Web压力测试工具 LoadRunner12.x简易入门教程--(一)回放与录制

        LoadRunner12.x简易入门教程--(一)回放与录制 今天在这里分享一下LoadRunner12.x版本的入门使用方法,希望对刚接触LoadRunner的童鞋有所帮助. LoadRun ...

  6. Qt QBarSeries简易柱状图教程

    博客园最强Qt QBarSeries简易柱状图教程 前情提要 每个人的绘图需求不同,此篇教程也是根据需求来改的.我的需求大概如下所示. 通过信号槽的方式接收signals来刷新柱状图,所以每次触发信号 ...

  7. Webpack简易入门教程

    <!-- 其实网上关于webpack的教程已经很多了,但是本人在学习过程中发现很多教程有错误,或者写的很不全面,结果做的过程出现各种各样的问题,对新手不但不友好还会让人浪费很多不必要的时间.所以 ...

  8. Lua简易入门教程

    环境:lua for windows (lfW)主页:http://luaforwindows.luaforge.net/https://code.google.com/p/luaforwindows ...

  9. Windows Git+TortoiseGit简易使用教程

    转载自 http://blog.csdn.net/jarelzhou/article/details/8256139 官方教程:http://tortoisegit.org/docs/tortoise ...

随机推荐

  1. Feeling kind of the sorrow

    It's almost a long time, in this place, but sometimes, feelings do vary. When I stepped in front of ...

  2. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---23

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  3. Python学习杂记_11_函数(一)

    函数也叫方法,就是把实现某种功能的一组代码封装起来,当你需要这个功能时直接调用函数即可. 定义函数:定义函数时要注意 “def”关键字,“:”,“函数体缩进”:用“return”使函数有具体返回值,没 ...

  4. POJ 3480 John [博弈之Nim 与 Anti-Nim]

    Nim游戏:有n堆石子,每堆个数不一,两人依次捡石子,每次只能从一堆中至少捡一个.捡走最后一个石子胜. 先手胜负:将所有堆的石子数进行异或(xor),最后值为0则先手输,否则先手胜. ======== ...

  5. 实现一个Java五子棋

    五子棋手把手教你写: 写在前面的话: 回想起从前初学代码的五子棋简直写的不像样子.今天闲来无事就写了个五子棋的小程序. 一来呢回忆一下很久以前写代码时的感觉. 二来呢顺便帮下诸位有需求的学生,顺利的C ...

  6. eclipse 国际化 $NON-NLS-1$ 含义

    一.$NON-NLS-1$ 含义 Eclipse 如果每行代码里有这个字符串:$NON-NLS-1$ 表示:这一行的第一个字符串是不需要国际化的.同理$NON-NLS-2$,$NON-NLS-3$.. ...

  7. Css 基础学习

    css 基本选择器 css基本选择器有三种方法 第一种: class选择器 .c1{ color: red;} <div class='c1'>hello world</div> ...

  8. VIM正则表达式查找替换

      0. 一些需要注意的不同 VIM中的正则表达式和其他的有点不一样 (1) 有些符号要用\转义,比如\+表示重复一次或以上,其他的还有一些,:h pattern查看(2) 非贪婪匹配用\{-}, 如 ...

  9. 18. 使用模板【从零开始学Spring Boot】

    转:http://blog.csdn.net/linxingliang/article/details/52017098 18.1 使用thymeleaf 整体步骤: (1)       在pom.x ...

  10. Codeforces Round #277.5 (Div. 2)(C题)

    C. Given Length and Sum of Digits... time limit per test 1 second memory limit per test 256 megabyte ...