Iptables静态防火墙基础教程
文章目录
检查Iptables是否安装
Iptables相关的文件
配置Iptables规则
自定义规则
保存规则
Iptables对于刚入门Linux的新手都比较难理解和配置。但是如果你掌握了其中的诀窍,你就会发现其实没有那么难学。Iptables是Linux的静态防火墙,用来创建规则来过滤数据包和Nat模块。简单地说,Iptables为Linux网络连接的防火墙。
检查Iptables是否安装
在配置Iptables之前,我们首先得确认Iptalbes是否已经安装了:
# rpm -qa | grep iptables
执行命令后应该会打印出iptables-your.installed.version这样的信息。如果没有,则表示没有安装,你可以下载最新的rpm软件包通过命令rpm -Uvh iptables-downloaded.version.rpm安装,或是直接使用yum安装:
#yum install iptables
Iptables相关的文件
/etc/init.d/iptables:这个是用来开始、停止Iptables或是保存规则的初始化脚本。
/etc/sysconfig/iptables:所有的规则都保存在这个文件。
/sbin/iptables:是Iptables的二进制文件。
在真正开始配置规则时,我们先来看看当前的配置:
#iptables -L
默认的,当前只有三条规则链:INPUT、OUTPU、FORWARD。
INPUT规则链包含进站数据包的规则,OUTPUT规则链包含出站数据包规则,FORWARD规则链包含转发数据包到其它主机的规则。
Iptables大多数用来配置处理从网络进入Linux服务器的数据包,所以INPUT规则链经常会到用到。当有数据包通过Linux核心,下面几个指令会决定数据包被匹配之后如何处理。
ACCEPT: 数据包允许通过其到达目的地。
REJECT: 数据包被拒绝并返回给发数据包的主机一个简单的解释。
DROP: 数据包被拒绝不返回任何信息。
配置Iptables规则
在开始配置规则之前,有必要提出三点建议:
1、规则的顺序很重要。比如一开始你就添加了一个阻止任何的规则,那么你下面的允许规则都不会起作用了。
2、你要记住编写的规则是存储在内存中,不会自动存储磁盘,因此你重启之后,规则就不会了,所以你需要手动执行初始化脚本来保存规则。
3、如果你是在远程来管理服务器,比如SSH,那么配置规则之前首先得添加允许ssh的规则,要不Iptables会把你阻止在外。
# iptables -A INPUT -s 213.10.10.13 -d 192.168.1.1 -p TCP -dport 22 -j ACCEPT
说明:
-A:附加INPUT规则链;
-s: 来源IP,例子中就是你当前登录ssh所用的电脑IP;
-d:目的地址,例子中就是服务器IP
-p:通信协议
–dport:目的端口,例子中是ssh默认端口22;
-j:代表“Jump”,所以之前的规则都匹配,则接受数据包。
下面让我们来为一般的数据包设置基本的规则。Iptables的特性之一是能确定数据包的状态。下面是在一个新的连接的数据包状态:
NEW:第一服务器发送给第二服务器一个SYN数据包来新建一个连接。
RELATED: 第二服务器接收SYN数据包并发送给第一服务器一个SYN-ACK数据包来确定连接正常。
ESTABLISHED: 第一服务器接收到SYN-ACK数据包并发送给第二服务器ACK服务器来做最后的确认,至此连接建立完成,两台服务器开始传输数据。
为了让你的服务器能与其它服务器建立TCP连接,Iptables必须配置如下:
# iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i eth0 -m state –state RELATED,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -m state –state RELATED,ESTABLISHED
自定义规则
阻止IP:
# iptables -A INPUT -s 213.10.10.13 -j DROP
这条规则表示阻止从IP213.10.10.13传进来的数据包。
# iptables -A INPUT -d 192.168.1.15 -j REJECT
这条规则表示阻止从局域网IP192.168.1.15来的数据包。
允许IP:
# iptables -A INPUT -s 213.10.10.13 -d 192.168.1.4 -p tcp –dport 21
这条规则表示接受来自IP 213.10.10.13到目标地址ftp服务器192.168.1.4的数据包。
当你配置来必要的规则之后,到时候在最后增加拒绝所有的规则了:
# iptables -A INPUT -j REJECT
# iptables -A FORWARD -j REJECT
这些规则必须在最后添加。
要删除一个规则,只需把”-A”替换成”-D”即可。
保存规则
为了保存Iptables规则,只需执行以下命令:
# /etc/init.d/iptables save
停止Iptables来刷新所有规则:
# /etc/init.d/iptables stop
重新启动Iptables从/etc/sysconfig/iptables加载最新规则:
# /etc/init.d/iptables start
这只是一个基础的Iptables教程,适合配置比较简单的规则,如果需要配置复杂的规则,还需要深入的学习。
本文转自网络由网络安全攻防研究室(www.91ri.org)信息安全小组收集整理。
Iptables静态防火墙基础教程的更多相关文章
- iptables增加、删除、修改、查询、保存防火墙策略教程
一.查看现有防火墙策略 iptables -L -n iptables -L -n --line-number #--line-number参数会显示策略编号,该编号在删除策略时使用 二.增加防火墙策 ...
- 第一篇:动态防火墙firewalld和静态防火墙iptables
动态防火墙firewalld firewalld提供了一个动态管理的防火墙,它支持网络(network)/防火墙区域(firewall zones )来定义网络连接( network connecti ...
- ASP.NET Core 静态文件 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 静态文件 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 静态文件 前几章节中,我们学习了 ASP.NET Core 的中间件 ...
- Spring Boot 2.x基础教程:Swagger静态文档的生成
前言 通过之前的两篇关于Swagger入门以及具体使用细节的介绍之后,我们已经能够轻松地为Spring MVC的Web项目自动构建出API文档了.如果您还不熟悉这块,可以先阅读: Spring Boo ...
- Memcache教程 Memcache零基础教程
Memcache是什么 Memcache是danga.com的一个项目,来分担数据库的压力. 它可以应对任意多个连接,使用非阻塞的网络IO.由于它的工作机制是在内存中开辟一块空间,然后建立一个Hash ...
- Memcache基础教程
Memcache是什么 Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力. 它可以应 ...
- (转)Windows驱动编程基础教程
版权声明 本书是免费电子书. 作者保留一切权利.但在保证本书完整性(包括版权声明.前言.正文内容.后记.以及作者的信息),并不增删.改变其中任何文字内容的前提下,欢迎任何读者 以任何形式(包括 ...
- 一篇memcache基础教程
Memcache是什么Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力.它可以应对任 ...
- Memcache第一篇---基础教程
Memcache是什么 Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力. 它可以应 ...
随机推荐
- InstallShield在MySQL和Oracle中执行SQL脚本的方法InstallShield在MySQL和Oracle中执行SQL脚本的方法
简述 InstallShield已经内建了对MySQL和Oracle的支持.但是这个功能是通过ODBC实现的,它对SQL脚本的格式要求非常严格,因此已经通过官方客户端测试的脚本在IS中执行时往往就会报 ...
- bzoj 4551
4551 思路: 乱搞: 代码: #include <cstdio> #include <cstring> #include <iostream> #include ...
- 安装配置SVN
官网下载地址,下载完之后如果想看到中文,可以下载语言包进行安装,安装之后TortoiseSVN -> Settings -> General -> Language选项中选择:中文( ...
- 【LOJ】#2068. 「SDOI2016」探险路线
题解 少考虑了情况,导致我以为是暴力讨论一次角落移动 de了两天才反应过来--简直降智 事实上,我们把移动分三类,一种是在边界跳过一段,一种是在左上角上左上左上左这样撞墙,在右下角下右下右下右这么撞墙 ...
- caffe 如何训练自己的数据图片
申明:此教程加工于caffe 如何训练自己的数据图片 一.准备数据 有条件的同学,可以去imagenet的官网http://www.image-net.org/download-images,下载im ...
- Emacs 编辑verilog 学习日记
终于开始写博客啦.以前一直打算写.由于工作忙一次次延期了.写博客的好处不必多说. 以前有一些学习心得总是用一个word,或者note记录一些.时间久了都不知道弄哪儿去了.. 从今天开始记录学习中 ...
- Windows Installer服务总是自动关闭导致无法安装在win10上安装英伟达显卡驱动的解决方案
你可以依次点击"开始→程序→附件→命令提示符",键入:msiexec /unregister, 然后再键入msiexec /regserver.应该就能解决. 更多的参考:How ...
- HDU - 1022 Train Problem I STL 压栈
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Python 中的面向对象和异常处理
在之前我们已经说过了 Python 中内置的主要的几种对象类型,(数,字符串,列表,元组和字典).而面向对象的核心人物还没出场呢 .那么我们常说的对象是什么类型的呢,其实他的类型就是“类”.继承封装和 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...