iptables简易使用教程
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简易使用教程的更多相关文章
- Git GUI简易使用教程
Git GUI简易使用教程:先上图~~~~~ 一. 先从添加文件开始讲(先上图): 1.选中要添加的文件,点击菜单栏的“提交”,选中“缓存为提交”,
- Android简易实战教程--第五十一话《使用Handler实现增加、减少、暂停计数》
转载博客请注明出处:道龙的博客 之前,写过一篇使用异步任务AysncTask实现倒计时的小案例,喜欢的话可以参考博客:Android简易实战教程--第三十三话< AsyncTask异步倒计时&g ...
- Android简易实战教程--第五十话《动画扫描》
祝新年快乐!2017(一起)前行. 转载博客请注明出处:道龙的博客 本篇简答的小案例,使用动画知识,完成一个类似雷达扫描效果,并且加入自定义进度条.对于自定义进度条前面有很详细的解析和案例了,本篇就结 ...
- Android简易实战教程--第十六话《SharedPreferences保存用户名和密码》
之前在Android简易实战教程--第七话<在内存中存储用户名和密码> 那里是把用户名和密码保存到了内存中,这一篇把用户名和密码保存至SharedPreferences文件.为了引起误导, ...
- Web压力测试工具 LoadRunner12.x简易入门教程--(一)回放与录制
LoadRunner12.x简易入门教程--(一)回放与录制 今天在这里分享一下LoadRunner12.x版本的入门使用方法,希望对刚接触LoadRunner的童鞋有所帮助. LoadRun ...
- Qt QBarSeries简易柱状图教程
博客园最强Qt QBarSeries简易柱状图教程 前情提要 每个人的绘图需求不同,此篇教程也是根据需求来改的.我的需求大概如下所示. 通过信号槽的方式接收signals来刷新柱状图,所以每次触发信号 ...
- Webpack简易入门教程
<!-- 其实网上关于webpack的教程已经很多了,但是本人在学习过程中发现很多教程有错误,或者写的很不全面,结果做的过程出现各种各样的问题,对新手不但不友好还会让人浪费很多不必要的时间.所以 ...
- Lua简易入门教程
环境:lua for windows (lfW)主页:http://luaforwindows.luaforge.net/https://code.google.com/p/luaforwindows ...
- Windows Git+TortoiseGit简易使用教程
转载自 http://blog.csdn.net/jarelzhou/article/details/8256139 官方教程:http://tortoisegit.org/docs/tortoise ...
随机推荐
- FileInputStream/FileOutputStream的应用
这是一对继承于InputStream和OutputStream的类,用于本地文件读写(二进制格式读写并且是顺序读写,读和写要分别创建出不同的文件流对象): 本地文件读写编程的基本过程为: ① 生成文 ...
- HttpClient 简介与使用
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的 URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而 ...
- 关于js延迟加载(异步操作)的方式
一.概述 最近重新开始学习js,在第一章的一个小节里写到了“脚本调用策略”,书上写的这部分不多,但是发现在我之前的(笔)面试中,问到的频率还是比较高的.自己一直习惯于直接把所有js文件写在head里, ...
- Unity工程资源破解
Unity工程资源提取其实还是很方便的,网上也有很多相关介绍,比如雨凇就专门写了一遍关于破解Unity资源的文章(http://www.xuanyusong.com/archives/3618 ...
- (入门SpringBoot)SpringBoot结合logback(六)
SpringBoot结合logback日志: 1.配置资源文件: #日志配置信息logbacklogging.config=classpath:logback-spring.xmllog.path=E ...
- hosts不支持泛解析
hosts不支持泛解析,只能是一个域名对应一个IP. 如果想要实现只能用一些第三方的DNS软件做解析.
- Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
这一篇文章是继http://www.cnblogs.com/EasonJim/p/5954155.html的升级版,由于CCNET已经过时,所以我把打包过程的CCNET工具换成Jenkins去实现,批 ...
- 苹果iOS APP配置HTTPS,iOS ATS配置SSL,苹果ATS标准解决方案
参考沃通:
- 【windows】windows系统下,在任务管理器的进程选项卡中查看PID/任务管理器怎么查看PID
PID,就是windows上的进程ID,是一个进程的唯一标识值. 那今天启动JDK跑起来一个项目之后,想要在任务管理器中查看这个JDK所在进程的PID但是看不到. 怎么解决? 1.我在任务管理器的服务 ...
- Centos7/RedHat7 下 python3使用cx-freeze打包matplotlib程序遇到的问题和解决办法
折腾了一天遇到了几个头疼的问题,还好回去前解决掉了 第一个:执行cxfreeze打包好的程序遇到 tkinter 和 _tkinter的缺失问题 首先终端:python tkinter python ...