- 浏览: 109887 次
- 性别:
- 来自: 福建泉州
最新评论
-
xihuyu2000:
顶一个,我也要去CSDN了
将博客搬至CSDN -
shellfish:
建议把这个:PATH=$PATH:$JAVA_HOME/bin ...
RHEL 5.4 安装 JDK 6U23 -
EdgenHuang:
不用,但是个人认为,使用annotation没有任何的好处,这 ...
Struts2.1.6 -
guava:
请问我要用annotation在web.xml还要配置什么吗? ...
Struts2.1.6
参考:
http://hi.baidu.com/%CD%FC%D5%E6%E9%AA/blog/item/96dd04fe3a94a89959ee9089.html
http://unix-cd.com/vc/www/15/2010-09/16355.html
http://blogold.chinaunix.net/u/3995/showart_118489.html
一、iptables的规则表、链结构
1.规则表(iptables管理4个不同的规则表,其功能由独立的内核模块netfilter实现)
filter: INPUT OUTPUT FORWARD
nat: PREROUTING POSTROTING OUTPUT
mangle: PREROUTING POSTROUTING INPUT OUTPUT FORWARD
raw: OUTPUT PREROUTING
2.规则链
INPUT: 当收到访问防火墙本机的数据包(入站)时,应用此链中的规则
OUTPUT: 当防火墙本机向外发送数据包(出站)时,应用此链中的规则
FORWARD: 收到需要通过防火墙发送给其它地址的数据包,应用此链
PREROUTING: 做路由选择之前,应用此链
POSTROUTING: 对数据包做路由选择之后,应用此链中的规则
二、数据包的匹配流程
1.规则表之间的优先级
raw mangle nat filter
2.规则链之间的优先级
入站数据流向: 来自外界的数据包到达防火墙,首先被PREROUTING规则链(是否被修改地址等)处理,之后会进行路由选择(判断该数据包应该发往何处),如果数据包的目标地址是防火墙本机,那么内核将其传递给INPUT链进行处理,通过以后再交给本机的应用程序进行响应
转发数据流向: 来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后进行路由选择,如果数据包的目标地址是其它外部地址,则内核将其传递给FORWARD链进行处理,然后再交给POSTROUTIING规则链(是否修改数据包的地址等)进行处理。
出站数据流向: 防火墙本机向外部地址发送数据包,首先被OUTPUT规则链处理,之后进行路由选择,然后交给POSTROUTING规则链(是否修改数据包的地址等)进行处理。
3.规则链内部各防火墙规则之间的优先顺序
依次按第1条规则、第2条规则、第3条规则……的顺序进行处理,找到一条能够匹配的数据包规则,则不再继续检查后面的规则(使用LOG记录日志的规则例外)。如果找不到匹配规则,就按照规则链的默认策略进行处理
三、iptables的基本语法格式
iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]
命令选项:
-A, --append chain rule-specification
-D, --delete chain rule-specification
-D, --delete chain rulenum
-I, --insert chain [rulenum] rule-specification
-R, --replace chain rulenum rule-specification
-L, --list [chain]
-F, --flush [chain]
-Z, --zero [chain]
-N, --new-chain chain
-X, --delete-chain [chain]
-P, --policy chain target
-E, --rename-chain old-chain new-chain
其他选项:
-h, --help
-v, --verbose
-V, --version
-n, --numeric
-x, --exact
--line-numbers
--modprobe=command
规则参数:
-p, --protocol [!] protocol
-s, --source [!] address[/mask]
-d, --destination [!] address[/mask]
-j, --jump target
-g, --goto chain
-i, --in-interface [!] name
-o, --out-interface [!] name
[!] -f, --fragment
-c, --set-counters PKTS BYTES
四、规则
1.添加INPUT规则
# iptables -t filter -A INPUT -p tcp -j ACCEPT
//在filter表的INPUT链的末尾添加一条防火墙规则
# iptables -I INPUT -p udp -j ACCEPT
//在filter表的INPUT链中插入一条防火墙规则(省略 –t filter,按默认处理filter表)
# iptables -I INPUT 2 -p icmp -j ACCEPT
//在filter表的INPUT链中插入一条防火墙规则,作为链中的第二条规则
2.查看规则表
# iptables -L INPUT --line-numbers
//查看filter表中INPUT链中的所有规则,同时显示各条规则的顺序号
# iptables -nvL
//查看filter表各链中所有规则的详细信息,同时以数字形式显示地址和端口号(-L选项放在最后,否则会将vn当成链名)
3.删除、清空规则
# iptables -D INPUT 2
//删除filter表INPUT链中的第二条规则
# iptables -F
//不指定表名时,默认清空filter表
# iptables -t nat -F
//清空nat表中各链的所有规则
# iptables -t mangle -F
//清空mangle表中各链的所有规则
4.设置规则链的默认策略
# iptables -t filter -P FORWARD DROP
//将filter表中FORWARD规则的默认策略设为DROP
# iptables -P OUTPUT ACCEPT
//将filter表中OUTPUT规则的默认策略设为ACCEPT
5. 获得iptables相关选项的帮助信息
# iptables -p icmp -h
//查看iptables命令中关于icmp协议的帮助信息
6.新增、删除自定义规则链
# iptables -t raw -N TCP_PACKETS
//在raw表中新增一条自定义的规则链,链名为TCP_PACKETS
# iptables -t raw -X
//清空raw表中用户自定义的所有规则链
# iptables -t filter -N MyLAN1
# iptables -A FORWARD -s 192.168.1.0/24 -j MyLAN1
# iptables -A FORWARD -d 192.168.1.0/24 -j MyLAN1
# iptables -A MyLAN1 -p icmp DROP
//自定义一个新的链MyLAN1,转发192.168.1.0/24网段的数据包均交给该链中的规则处理
五、条件匹配
1.通用(general)条件匹配(直接使用,而不依赖于其他的条件匹配及其扩展)
协议匹配(允许使用的协议名包含在/etc/protocols文件中):
# iptables -I INPUT -p icmp REJECT
//拒绝进入防火墙的所有icmp数据包
# iptables -I FORWARD -p ! icmp -j ACCEPT
//允许防火墙转发icmp协议以外的所有数据包(叹号表示取反)
地址匹配:
# iptables -A FORWARD -s 192.168.1.11 -j REJECT
//拒绝转发来自192.168.1.11主机的数据
# iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
//允许转发来自192.168.0./24网段的数据
网络接口匹配:
# iptables -A INPUT -i eth1 -s 192.168.0.0/16 -j DROP
# iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
//丢弃从外网接口eth1进入防火墙本机的源地址为私网地址的数据
# iptables -I INPUT -s 10.20.30.0/24 -j DROP //设置封堵策略
# iptables -I FORWARD -s 10.20.30.0/24 -j DROP
# at now +2 hours
at> iptables -D INPUT 1
at>iptables -D FORWAD 1
at> <EOT>
job 5 at 2020-09-26 19:15
//管理员在网关服务器上检测到来自某个IP网段(如10.10.30.0./24)的频繁扫描,
//希望设置iptables规则封堵IP地址段,两个小时后解封
2. 隐含(implicit)条件匹配(需要指定的协议匹配为前提,其对应的功能由iptables自动(隐含)的装载入内核)
端口匹配:
# iptables -A INPUT -p tcp --dport 22 -s 202.13.0.0/16 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP
//仅允许系统管理员从202.13.0.0/16网段使用SSH方式远程登录防火墙主机
# iptables -A INPUT -P tcp --dport 20:1024 -j ACCEPT
# iptables -A OUTPUT -p tcp --sport 20:1024 -j ACCEPT
//允许本机开放从TCP端口20~1024提供的应用服务
# iptables -A FORWARD -p udp -s 192.168.0.0/24 --dport 53 -j ACCEPT
# ipatbles -A FORWARD -p udp -d 192.168.0.0./24 --dport 53 -j ACCEPT
//作为网关使用时,允许转发来自192.168.0.0/24局域网的DNS解析请求数据包
TCP标记匹配:
# iptables -P INPUT DROP
# iptables -I INPUT -i eth1 -p tcp --tcp-flags SYN,RST,ACK SYN -j ACCEPT
# iptables -I INPUT -i eth1 -p tcp - tcp-flags ! --syn -j ACCEPT
//拒绝从外网接口eth1直接访问防火墙本机的数据包,但是允许相应防火墙TCP请求的数据包进入
ICMP类型匹配:
# iptables -A INPUT -p icmp --icmp-type Echo-Request -j DROP
# iptables -A INPUT -p icmp --icmp-type Echo-Replay -j ACCEPT
# iptables -A INPUT -p icmp --icmp-type destination-Unreachable -j ACCEPT
//禁止其他主机ping防火墙主机,但是允许从防火墙上ping其他主机(允许接受ICMP回应数据)
3.显式(explicit)条件匹配(由额外的内核模块提供,因此需要手工指定匹配方式,lsmod 命令查看内核模块)
MAC地址匹配(主要用于检查数据包的源MAC地址):
# iptables -A FORWARD -m mac --mac-source 00:0C:29:27:55:3F -j DROP
//禁止转发来自MAC地址为00:0C:29:27:55:3F的主机数据包
多端口匹配(检查数据包的源端口、目标端口时,用于匹配多个不连续的端口号):
# iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
//允许防火墙本机对外开放TCP端口20、21、25、110以及被动模式FTP端口1250~1280
多IP地址匹配:
# iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP
禁止转发IP地址为192.168.1.20~192.168.1.99 的TCP的数据包
状态匹配:
# iptables -A FORWARD -m state --state NEW -p tcp ! --syn -j DROP
//禁止转发与正常TCP连接无关的非 --syn请求数据包
# iptables -A INPUT -p tcp -m state --state NEW -j DROP
# iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
//拒绝访问防火墙的新数据包,但允许响应或与已有连接相关的数据包
六、数据包控制
ACCEPT: 允许数据包通过
DROP: 直接丢弃数据包,不给出任何回应信息
REJECT:拒绝数据包通过,必要时会给数据发送一个响应信息
LOG: 在/var/log/messange文件中记录日志信息,然后将数据包传递给下一条规则
# iptables -I INPUT -p tcp --dport 22 -j DROP
# iptables -I INPUT -P tcp --dport 22 -j LOG
//对于尝试通过SSH方式登录防火墙主机的访问数据,记录日志信息并禁止其访问
# iptables -R INPUT 1 -p tcp --dport 22 -m limit --limit 3/minite --limit-burst 8 -j LOG
//将记录日志的频率限制为平均三次/分钟 ,允许的峰值为八次
七、导出、导入防火墙规则
# iptables-save > /etc/sysconfig/iptables 或 service iptables save
# service iptables restart
# chkconfig --level 35 iptables on
//把当前设置的防火墙规则信息输出到终端,将当前调试好的iptables规则保存到配置文件,
//并通过iptables服务脚本自动加载
# iptables-retore < /etc/sysconfig/iptables
//从已保存的配置文件中导入iptables规则
八、服务命令
# chkconfig iptables on
//永久打开防火墙
# chkconfig iptables off
//永久关闭防火墙
# service iptables start
//打开防火墙,即时生效,重启后还原
# service iptables stop
//关闭防火墙,即时生效,重启后还原
发表评论
-
将博客搬至CSDN
2013-11-25 14:54 812没办法,只能搬走了 -
RHEL 5.4 Tomcat 6 Startup Script (开机启动)
2011-01-13 18:36 1710[edgen@rhel54 ~]$ su - root口 ... -
RHEL 5.4 安装花生壳 phlinux 1.0
2011-01-12 15:40 1268[edgen@rhel54 ~]$ su - root口令:[ ... -
RHEL 5.4 Oracle 10g Startup Script(开机启动)
2011-01-05 17:59 1331[edgen@rhel54 ~]$ su - root口令:[ ... -
RHEL 5.4 Network
2011-01-05 13:02 1037[edgen@rhel54 ~]$ hostnamerhel5 ... -
RHEL 5.4 安装 Oracle 10g R2
2011-01-04 12:07 2303[edgen@rhel54 ~]$ su口令:[root@rh ... -
RHEL 5.4 SELinux
2011-01-04 11:41 663[root@rhel54 ~]# vi /etc/selinu ... -
RHEL 5.4 firewall
2011-01-04 11:36 867[edgen@xiangyoujiuyou ~]$ su - ... -
RHEL 5.4 手工安装管理 vsftpd 2.0.5-16
2010-12-30 17:32 1990[edgen@rhel54 ~]$ su 口令: [roo ... -
RHEL 5.4 关闭系统的蜂鸣警报声
2010-12-28 10:55 751[edgen@rhel54 ~]$ cat /etc/in ... -
RHEL 5.4 安装 Apache tomcat 6.0.29
2010-12-28 10:14 1956[edgen@rhel54 ~]$ ll Desktop/总计 ... -
RHEL 5.4 下让 Firefox 允许在 JavaEye 编辑器中copy paste
2010-12-28 00:40 829[edgen@rhel54 ~]$ pwd /home/ed ... -
VI 命令
2010-12-27 23:15 839进入vi的命令 vi filename :打开或新建文件,并将 ... -
RHEL 5.4 安装 JDK 6U23
2010-12-27 22:09 1563[edgen@rhel54 ~]$ java -version ... -
RHEL 5.4 安装 VMware Tools
2010-12-26 23:12 3553Vmtools VM tools顾名思义就是Vmwa ... -
linux 命令备忘
2010-12-26 22:02 776ALT+F2 // 和WIN+RUN,打开“运行...”, ... -
Xshell 编码方式修修改 utf8
2010-12-26 21:47 9825选择 Xshell 3.0 的“文件/打开”打开session ... -
VMware Workstation 7.1 手动完全安装RHEL 5.4
2010-12-26 20:44 2108安装环境:VMware Workstati ... -
从光盘中安装RedHat Enterprise Linux 5.4 的补充光盘
2010-12-26 13:24 2732[root@localhost edgen]# mount ... -
VMworkstation快捷键
2010-12-25 23:03 887如果已经改变了参数设置(Edit/Preferences…)中 ...
相关推荐
RHEL5.4与RHCS(Red Hat Cluster Suite)集群配置是Red Hat Enterprise Linux系统中构建高可用性与负载均衡集群的重要部分。RHCS是基于Pacemaker和Corosync项目开发的集群软件,它提供了对服务和资源的管理和配置,...
在vmware中安装RHEL5.4(32_86x)+界面安装oracle10g详细手册
在Red Hat Enterprise Linux (RHEL) 5.4上安装Oracle 11.2是一个涉及多个步骤的过程,确保操作系统和所需软件包满足Oracle数据库的严格要求。以下是对这些步骤的详细解释: 1. **检查系统内核版本**: Oracle 11.2...
【标题】"rhel5.4远程安装共10页.pdf.zip" 提供的是关于Red Hat Enterprise Linux(RHEL)5.4版本的远程安装指南,这个文档可能详细阐述了如何通过网络对RHEL系统进行无盘或者基于网络的安装过程。在RHEL中,远程...
本文将详细介绍如何在RHEL5.4系统上升级到OpenSSH 6.5的RPM包。 首先,我们需要了解RHEL5.4是一个较旧的操作系统版本,而OpenSSH 6.5相较于其默认版本可能包含更多的安全修复和功能改进。因此,升级OpenSSH是确保...
rhel 5.4 ibm 3850 raid driver
标题中的“rhel5.4”指的是Red Hat Enterprise Linux 5.4,这是一个由Red Hat公司发行的企业级Linux操作系统版本。CentOS 5.4是RHEL的一个克隆版本,提供了一个免费的、社区支持的平台,其核心与RHEL 5.4相同。这个...
数据库管理\mysql主从同步(RHEL 5.4)
本文将详细讲解如何在VMware vSphere环境下,基于RHEL5.4 64位操作系统搭建Oracle 10g RAC。 首先,RHEL5.4(Red Hat Enterprise Linux)是Red Hat公司推出的一款稳定的企业级Linux发行版,64位版本能更好地支持...
RHEL5.4 支持ASM功能的包,包括oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm oracleasmlib-2.0.4-1.el5.i386.rpm oracleasm-support-2.1.7-1.el5.i386.rpm
在RHEL5.4的环境下,安装oracle,并且安装weblogic集群后,部署应用
在vmware中安装rhel5.4,并界面安装oracle10g详细手册,这个是doc的文档。
Oracle 11G在RHEL5.4 X86上的完全安装手册详细阐述了在特定的操作系统和硬件架构上安装Oracle 11G数据库的整个过程。 首先,手册提到了在VMware Workstation上安装Linux操作系统。VMware Workstation是一个可以在一...
Gforge5.7.1在RHEL5.4下的安装
【RH033 最后一个版本的官方教材 RHEL 5.4】是针对Red Hat Enterprise Linux (RHEL) 5.4版本的一份重要学习资料,尤其对于那些准备考取Red Hat Certified Engineer (RHCE)认证的人来说,这份教材具有极高的参考价值...
RHEL5.4配置squid代理[整理].pdf
根据提供的文件内容,以下是关于RHEL5.4 Oracle11g R2 RAC实施的知识点: 1. **Oracle Real Application Clusters (RAC)**:RAC是Oracle数据库的一种高可用性解决方案,允许多个数据库实例共享同一个物理数据库。在...