文档库 最新最全的文档下载
当前位置:文档库 › linux防火墙iptables常用规则

linux防火墙iptables常用规则

linux防火墙iptables常用规则
linux防火墙iptables常用规则

linux 防火墙 iptables 常用规则(屏蔽 IP 地址、禁用 ping、协议设置、NAT 与转 发、负载平衡、自定义链)
一、iptables:从这里开始
删除现有规则 iptables -F (OR) iptables --flush
设置默认链策略
iptables 的 filter 表中有三种链:INPUT, FORWARD 和 OUTPUT。默认的链策略是 ACCEPT,你可以将它们设置成 DROP。
iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP
你需要明白,这样做会屏蔽所有输入、输出网卡的数据包,除非你明确指定哪些数 据包可以通过网卡。
屏蔽指定的 IP 地址
以下规则将屏蔽 BLOCK_THIS_IP 所指定的 IP 地址访问本地主机:
BLOCK_THIS_IP="x.x.x.x" iptables -A INPUT -i eth0 -s "$BLOCK_THIS_IP" -j DROP (或者仅屏蔽来自该 IP 的 TCP 数据包)

iptables -A INPUT -i eth0 -p tcp -s "$BLOCK_THIS_IP" -j DROP 允许来自外部的 ping 测试 iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
允许从本机 ping 外部主机 iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
允许环回(loopback)访问 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
二、iptables:协议与端口设定
允许所有 SSH 连接请求
本规则允许所有来自外部的 SSH 连接请求,也就是说,只允许进入 eth0 接口,并 且目的端口为 22 的数据包 iptables-A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables-A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
允许从本地发起的 SSH 连接
本规则和上述规则有所不同, 本规则意在允许本机发起 SSH 连接, 上面的规则与此 正好相反。
iptables-A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables-A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

仅允许来自指定网络的 SSH 连接请求
以下规则仅允许来自 192.168.100.0/24 的网络:
iptables -A INPUT -i eth0 -p tcp-s 192.168.100.0/24 --dport 22 -m state --stateNEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
上例中,你也可以使用-s 192.168.100.0/255.255.255.0 作为网络地址。当然使用上 面的 CIDR 地址更容易让人明白。
仅允许从本地发起到指定网络的 SSH 连接请求
以下规则仅允许从本地主机连接到 192.168.100.0/24 的网络: iptables -A OUTPUT -o eth0 -p tcp-d 192.168.100.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
允许 HTTP/HTTPS 连接请求 # 1.允许 HTTP 连接:80 端口 iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
# 2.允许 HTTPS 连接:443 端口 iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
允许从本地发起 HTTPS 连接

本规则可以允许用户从本地主机发起 HTTPS 连接,从而访问 Internet。
iptables-A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables-A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
类似的,你可以设置允许 HTTP 协议(80 端口)。
-m multiport:指定多个端口
通过指定-m multiport 选项,可以在一条规则中同时允许 SSH、HTTP、HTTPS 连 接: iptables -A INPUT -i eth0 -p tcp-m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp-m multiport --sports 22,80,443 -m state --state ESTABLISHED -j ACCEPT
允许出站 DNS 连接 iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT
允许 NIS 连接
如果你在使用 NIS 管理你的用户账户,你需要允许 NIS 连接。即使你已允许 SSH 连接,你仍需允许 NIS 相关的 ypbind 连接,否则用户将无法登陆。 NIS 端口是动 态的, 当 ypbind 启动的时候, 它会自动分配端口。 因此, 首先我们需要获取端口号, 本例中使用的端口是 853 和 850:
rpcinfo -p | grep ypbind
然后,允许连接到 111 端口的请求数据包,以及 ypbind 使用到的端口:
iptables -A INPUT -p tcp --dport 111 -j ACCEPT iptables -A INPUT -p udp --dport 111 -j ACCEPT iptables -A INPUT -p tcp --dport 853 -j ACCEPT iptables -A INPUT -p udp --dport 853 -j ACCEPT

iptables -A INPUT -p tcp --dport 850 -j ACCEPT iptables -A INPUT -p udp --dport 850 -j ACCEPT
以上做法在你重启系统后将失效,因为 ypbind 会重新指派端口。我们有两种解决方 法: 1.为 NIS 使用静态 IP 地址 2.每次系统启动时调用脚本获得 NIS 相关端口, 并根据上述 iptables 规则添加到 filter 表中去。
允许来自指定网络的 rsync 连接请求
你可能启用了 rsync 服务,但是又不想让 rsync 暴露在外,只希望能够从内部网络 (192.168.101.0/24)访问即可:
iptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT
允许来自指定网络的 MySQL 连接请求
你可能启用了 MySQL 服务,但只希望 DBA 与相关开发人员能够从内部网络 (192.168.100.0/24)直接登录数据库:
iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
允许 Sendmail, Postfix 邮件服务
邮件服务都使用了 25 端口,我们只需要允许来自 25 端口的连接请求即可。
iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT

允许 IMAP 与 IMAPS # IMAP:143 iptables -A INPUT -i eth0 -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 143 -m state --state ESTABLISHED -j ACCEPT
# IMAPS:993 iptables -A INPUT -i eth0 -p tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 993 -m state --state ESTABLISHED -j ACCEPT
允许 POP3 与 POP3S # POP3:110 iptables -A INPUT -i eth0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 110 -m state --state ESTABLISHED -j ACCEPT
# POP3S:995 iptables -A INPUT -i eth0 -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 995 -m state --state ESTABLISHED -j ACCEPT

防止 DoS 攻击 iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
? ? ?
-m limit: 启用 limit 扩展 –limit 25/minute: 允许最多每分钟 25 个连接 –limit-burst 100: 当达到 100 个连接后,才启用上述 25/minute 限制
三、转发与 NAT
允许路由
如果本地主机有两块网卡,一块连接内网(eth0),一块连接外网(eth1),那么可以使 用下面的规则将 eth0 的数据路由到 eht1:
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
DNAT 与端口转发
以下规则将会把来自 422 端口的流量转发到 22 端口。 这意味着来自 422 端口的 SSH 连接请求与来自 22 端口的请求等效。
# 1.启用 DNAT 转发 iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 --dport 422 -j DNAT --to-destination 192.168.102.37:22
# 2.允许连接到 422 端口的请求 iptables -A INPUT -i eth0 -p tcp --dport 422 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 422 -m state --state ESTABLISHED -j ACCEPT
假设现在外网网关是 xxx.xxx.xxx.xxx,那么如果我们希望把 HTTP 请求转发到内部 的某一台计算机,应该怎么做呢?

iptables -t nat -A PREROUTING -p tcp -i eth0 -d xxx.xxx.xxx.xxx --dport 8888 -j DNAT --to 192.168.0.2:80 iptables -A FORWARD -p tcp -i eth0 -d 192.168.0.2 --dport 80 -j ACCEPT
当该数据包到达 xxx.xxx.xxx.xxx 后,需要将该数据包转发给 192.168.0.2 的 80 端 口,事实上 NAT 所做的是修改该数据包的目的地址和目的端口号。 然后再将该数据 包路由给对应的主机。 但是 iptables 会接受这样的需要路由的包么?这就由 FORWARD 链决定。 我们通过 第二条命令告诉 iptables 可以转发目的地址为 192.168.0.2:80 的数据包。再看一下 上例中 422 端口转 22 端口,这是同一 IP,因此不需要设置 FORWARD 链。
SNAT 与 MASQUERADE
如下命令表示把所有 10.8.0.0 网段的数据包 SNAT 成 192.168.5.3 的 ip 然后发出去:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j snat--to-source 192.168.5.3
对于 snat,不管是几个地址,必须明确的指定要 snat 的 IP。假如我们的计算机使 用 ADSL 拨号方式上网,那么外网 IP 是动态的,这时候我们可以考虑使用 MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j MASQUERADE
负载平衡
可以利用 iptables 的-m nth 扩展,及其参数(–counter 0 –every 3 –packet x), 进行 DNAT 路由设置(-A PREROUTING -j DNAT –to-destination),从而将负载 平均分配给 3 台服务器: iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.101:443
iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 1 -j DNAT --to-destination 192.168.1.102:443 iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 2 -j DNAT --to-destination 192.168.1.103:443

自定义的链
记录丢弃的数据包 # 1.新建名为 LOGGING 的链 iptables-N LOGGING # 2.将所有来自 INPUT 链中的数据包跳转到 LOGGING 链中 iptables -A INPUT -j LOGGING # 3.指定自定义的日志前缀"IPTables Packet Dropped: " iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7 # 4.丢弃这些数据包 iptables -A LOGGING -j DROP

linux防火墙iptables配置(Linux下多网段Nat实现与应用)

Linux下多网段Nat实现与应用 Iptables/netfilter是一个可以替代价格昂贵的商业防火墙的网络安全保护解决方案,能够实现数据包过滤、数据包重定向和网络地址转换(NAT)等多种功能。 准备: 操作系统安装光盘:CentOS-6.1版本 硬件要求:dell poweredge 410(需双网卡) 实现功能: 192.168.11.0/24、192.168.10.0/24网段通过防火墙NAT转换访问外网,并实现数据包过滤。 过程: 步骤#1. 安装操作系统(最基本安装即可) 步骤#2. 设置网卡地址 外网eth0 IP:xx.xx.xx.xx 内网eth1 IP:172.16.1.254 网卡路径:/etc/sysconfig/network-scripts DEVICE=eth0 HWADDR=00:0e:0c:3a:74:c4 NM_CONTROLLED=yes ONBOOT=yes TYPE=Ethernet BOOTPROTO=none IPV6INIT=no USERCTL=no IPADDR=xx.xx.xx.xx NETMASK=255.255.255.252 DEVICE=eth1 HWADDR=00:0e:0c:3a:74:c4 NM_CONTROLLED=yes ONBOOT=yes TYPE=Ethernet BOOTPROTO=none IPV6INIT=no USERCTL=no IPADDR=172.16.1.254 NETMASK=255.255.255.0 步骤#3. 添加路由 把路由写到 /etc/rc.d/rc.local文件里,这样每次启动就不用重新设置了。 route add -net 172.16.1.0 netmask 255.255.255.0 gw 172.16.1.1 route add -net 192.168.11.0 netmask 255.255.255.0 gw 172.16.1.1 route add -net 192.168.10.0 netmask 255.255.255.0 gw 172.16.1.1 route add default gw 60.190.103.217 172.16.1.1是交换机与Linux的内网网卡接口的地址

IPTABLES 规则(Rules)

二、IPTABLES 规则(Rules)
牢记以下三点式理解 iptables 规则的关键:
? ? ?
Rules 包括一个条件和一个目标(target) 如果满足条件,就执行目标(target)中的规则或者特定值。 如果不满足条件,就判断下一条 Rules。
目标值(Target Values)
下面是你可以在 target 里指定的特殊值: ACCEPT – 允许防火墙接收数据包 ? DROP – 防火墙丢弃包 ? QUEUE – 防火墙将数据包移交到用户空间 ? RETURN – 防火墙停止执行当前链中的后续 Rules, 并返回到调用链(the calling chain)中。 如果你执行 iptables --list 你将看到防火墙上的可用规则。 下例说明当前系统没 有定义防火墙,你可以看到,它显示了默认的 filter 表,以及表内默认的 input 链, f orward 链, output 链。 # iptables -t filter --list Chain INPUT (policy ACCEPT) target prot opt source destination
?
Chain FORWARD (policy ACCEPT) target prot opt source Chain OUTPUT (policy ACCEPT) target prot opt source 查看 mangle 表: # iptables -t mangle --list 查看 NAT 表: # iptables -t nat --list 查看 RAW 表:
destination
destination
# iptables -t raw --list /!\注意:如果不指定-t 选项,就只会显示默认的 filter 表。因此,以下两种命令形 式是一个意思: # iptables -t filter --list (or) # iptables --list 以下例子表明在 filter 表的 input 链, forward 链, output 链中存在规则:

Linux关闭防火墙的方法步骤

Linux关闭防火墙的方法步骤 windows操作系统的防火墙好关闭,但是linux操作系统防火墙可能有很多新手朋友不会关闭,下面就让小编教大家Linux 关闭防火墙的方法吧。 Linux关闭防火墙的方法 首先我们打开linux操作系统(小编以fedora操作系统为例),虽然linux提倡命令行操作,但是很多用户可能不是十分习惯,因此很多linux操作系统都有桌面图形界面,跟windows操作系统很像,也更加方便了我们的操作。 我们点击活动,找到应用程序,搜索防火墙,亦或者下拉到防火墙选项。然后点击进入防火墙,在进入之前可能会让我们输入管理员密码,当然是出于安全考虑,我们输入管理员密码即可操作,切记是root管理员的密码,不是你登陆界面的密码。

输入密码之后点击确定进入防火墙操作界面,默认的防火墙都是开启的,我们只需点击禁用按钮便可完成防火墙的禁用,是不是很简单呀,此方法只是适用于类似fedora操作系统这种有图形界面的linux操作系统,其他的linux操作系统可能不适用。 其实我们还有其他的方式关闭防火墙。我们打开终端使用命令行操作来进行防火墙的关闭操作。首先执行临时关闭防火墙操作,在此操作之前我们需要进入root权限进行下面的操作,如果你不使用root权限的话,会提示错误。 终端中输入su命令,输入密码进入root管理员操作权限。输入命令service iptables stop即可关闭防火墙,当然关闭之前我们需要看看防火墙是否开启在进行相关操作,命令跟关闭命令类似,只不过是把stop换成了status.

以上的操作只是临时关闭了防火墙而已,当你的电脑重新启动的时候又会开启,如果你想永久关闭防火墙,可以尝试以下这种方法。打开终端,在root权限下输入chkconfig iptables off即可永久关闭防火墙,当然需要我们重启才能生效。 以上就是小编总结出来的在linux操作系统关闭防火墙的方法,当然有些方法可能只适合个别的linux操作系统,如果一种方法行不通的话,可以尝试另一种方法,以上操作均是在fedora操作系统中进行,其他linux操作系统肯能略有不同,如果行不通的话可以百度一下相关操作系统的关闭方法。

IPTABLES学习心得

IPTABLES学习心得 Blog:https://www.wendangku.net/doc/c04728873.html, Iptables是管理Netfilter的唯一工具,Netfilter直接嵌入在Linux内核。他可以为个人工作站创建一个防火墙,也可以为一个子网创建防火墙,以保护其他的系统平台(市场上有很大一部分硬件防火墙也是使用iptables系统的)。 Netfilter在内核中过滤,没有守护进程,在OSI模型的第2、3、4层插入策略。过滤的速度非常快,因为他只读取数据包头,不会给信息流量增加负担,也无需进行验证。Netfilter提供了一系列的表(tables),每个表由若干个链(chains)组成,而每条链可以由一条或若干条规则(rules)组成。实际上netfilter 是表的容器,表是链的容器,而链又是规则的容器。 Netfilter表和Netfilter链: 表说明: Filter:这个表主要执行数据包过滤。 Nat:主要进行网络地址转换。 Managle:用于修改一些特殊的规则。 链说明: PREROUTING:路由之前,刚到达的数据包。(nat) INPUT:通过路由,目的为地为本机的数据包。(filter) FORWARD:需要通过本地系统进行转发的数据包。(filter) OUTPUT:由本机产生,向外转发,处于POSTROUTING之前的数据包。(nat和filter)POSTROUTIONG:通过路由后,即将离开系统的数据包。(nat) Netfilter的数据包流程: Iptables 基本语法:

iptables 内置了filter、nat 和mangle 三张表,我们可以使用-t 参数来设置对哪张表生效,也可以省略-t 参数,则默认对filter 表进行操作。 图中:这句的意思就是:来自(源地址)192.168.0.1的INPUT链的数据包直接丢弃。Iptables进程服务命令: service iptables save 保存iptables设置,对iptables规则编辑后一定要保存。 service iptables restart 保存设置以后不重启则设置不生效,要设置生生效请重启。service iptables status 检查iptables的设置。类似于iptable –L命令。 Iptables基本的链操作命令: -L 列出某个链或者表中的规则:service iptables status 把这个命令和-L比较下iptables –L:显示filter表中的规则等同于iptables –t filter -L iptables –t nat –L :显示nat表的中的设置: -F 删除某个链或者表中的规则: iptables –F (iptables –t filter –F) 删除filter表中的所有规则; iptables –t nat –F 删除nat表中的所有规则; iptables –t nat –F POSTROUTING 删除nat表中POSTROUTING链的所有规则; -A添加一条规则(在当前的规则后添加,也就是排在所有规则后): iptables -A INPUT –s 192.168.0.1 –j DROP 和实例图中的功能相同,丢弃来自192.168.0.1的数据包,这里省略了-t filter。 添加该语句后,保存设置并重新启动iptalbes 服务,并通过-L的命令查看,就会发现刚添加的这条规则排列在所有规则后。 -----------iptables的匹配规则是按顺序排列的。 -I在制定位置插入一条规则: (如果有回环规则(iptables –A INPUT –I lo –j ACCEPT,则回环永远是第一条)iptables –I 作为第一条规则插入。 iptables X 作为第X条规则插入,X这里代表规则顺序号。 iptables –A INPUT –p tcp –s 192.168.0.1 --dport 22 –j ACCEPT 允许192.168.0.1 通过22端口访问该主机,把它作为第一条规则插入iptables规则列表。-----------iptables的匹配规则是按顺序排列的。 -P 分配连接策略。 iptables –P INPUT DROP 禁止任何输入的数据包。这句慎用。

利用Iptables实现网络黑白名单防火墙怎么设置

利用Iptables实现网络黑白名单防火墙怎么设置 防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。这篇文章主要介绍了详解Android 利用Iptables实现网络黑白名单(防火墙),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 具体步骤 二、Iptables网络黑白名单(防火墙)实现细节 因为考虑到一些权限的问题所以在实现方法上采用的是创建一个systemserver来运行这些方法。并提供出manager到三方应用,这样在调用时可以排除一些权限的限制。同时本文只是做一个简单的参考概述,所以在后文中只提供了增加黑白名单的方法和iptables规则,并没有提供相应的删除规则等,原理类似大家可自行补充添加。

2.1、创建systemserver 2.1.1、在/system/sepolicy/service.te中添加 type fxjnet_service, system_api_service, system_server_service, service_manager_type; 2.2.2、在/system/sepolicy/service_contexts中添加如下, fxjnet u:object_r:fxjnet_service:s0 2.2.3、在frameworks/base/core/java/android/content/Context.java中添加 也可以不添加这个,只不过为了后面调用方便所以添加了。如果跳过此步,那么后面出现Context.FXJNET_SERVICE的地方都用字串代替即可。 public static final String FXJNET_SERVICE="fxjnet";

Linux6 防火墙配置

linux配置防火墙详细步骤(iptables命令使用方法) 通过本教程操作,请确认您能使用linux本机。如果您使用的是ssh远程,而又不能直接操作本机,那么建议您慎重,慎重,再慎重! 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain RH-Firewall-1-INPUT (0 referenc es) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0 ACCEPTah--0.0.0.0/00.0.0.0/0 ACCEPTudp--0.0.0.0/0224.0.0.251udpdpt:5353 ACCEPTudp--0.0.0.0/00.0.0.0/0udpdpt:631 ACCEPTall--0.0.0.0/00.0.0.0/0stateRELATED,ESTABLISHED ACCEPTtcp--0.0.0.0/00.0.0.0/0stateNEWtcpdpt:22 ACCEPTtcp--0.0.0.0/00.0.0.0/0stateNEWtcpdpt:80 ACCEPTtcp--0.0.0.0/00.0.0.0/0stateNEWtcpdpt:25 REJECTall--0.0.0.0/00.0.0.0/0reject-withicmp-host-prohibited

手把手教你Linux关闭防火墙命令

手把手教你Linux关闭防火墙命令 2010-04-28 22:04 1) 重启后永久性生效: 开启: chkconfig iptables on 关闭: chkconfig iptables off 2) 即时生效,重启后失效: 开启: service iptables start 关闭: service iptables stop 需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。 在开启了防火墙时,做如下设置,开启相关端口, 修改/etc/sysconfig/iptables 文件,添加以下内容: -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 或者: /etc/init.d/iptables status 会得到一系列信息,说明防火墙开着。 /etc/rc.d/init.d/iptables stop 关闭防火墙 最后: 在根用户下输入setup,进入一个图形界面,选择Firewall configuration,进入下一界面,选择Security Level为Disabled,保存。重启即可。 ====================================================== ——————————————————————————————— fedora下 /etc/init.d/iptables stop ======================================================= ubuntu下:

iptables的详细中文手册

一句一句解说 iptables的详细中文手册 (2009-06-02 22:20:02) 总览 用iptables -ADC 来指定链的规则,-A添加-D删除-C 修改 iptables - [RI] chain rule num rule-specification[option] 用iptables - RI 通过规则的顺序指定 iptables -D chain rule num[option] 删除指定规则 iptables -[LFZ] [chain][option] 用iptables -LFZ 链名[选项] iptables -[NX] chain 用-NX 指定链 iptables -P chain target[options] 指定链的默认目标 iptables -E old-chain-name new-chain-name -E 旧的链名新的链名 用新的链名取代旧的链名 说明 Iptalbes 是用来设置、维护和检查Linux内核的IP包过滤规则的。 可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作'target'(目标),也可以跳向同一个表内的用户定义的链。 TARGETS 防火墙的规则指定所检查包的特征,和目标。如果包不匹配,将送往该链中下一条规则检查;如果匹配,那么下一条规则由目标值确定.该目标值可以是用户定义的链名,或是某个专用值,如ACCEPT[通过], DROP[删除], QUEUE[排队], 或者RETURN[返回]。 ACCEPT 表示让这个包通过。DROP表示将这个包丢弃。QUEUE表示把这个包传递到用户空间。RETURN表示停止这条链的匹配,到前一个链的规则重新开始。如果到达了一个内建的链(的末端),或者遇到内建链的规则是RETURN,包的命运将由链准则指定的目标决定。 TABLES 当前有三个表(哪个表是当前表取决于内核配置选项和当前模块)。 -t table 这个选项指定命令要操作的匹配包的表。如果内核被配置为自动加载模块,这时若模块没有加载,(系统)将尝试(为该表)加载适合的模块。这些表如下:filter,这是默认的表,包含了内建的链INPUT(处理进入

iptables防火墙架构实验报告

iptables防火墙架构实验报告 班级:10网工三班学生姓名:谢昊天学号:1215134046 实验目的和要求: 1、熟悉和掌握TCP/IP协议的基础概念和方法; 2、掌握防火墙的概念、功能分类及实现方法; 3、掌握Linux系统防火墙和基于iptables的防火墙的配置方法。 4、参考课本课本P201,图9-2,完整实现SNAT的功能。 实验内容与分析设计: 防火墙在实施安全的过程中是至关重要的。一个防火墙策略要符合四个目标,而每个目标通常都不是一个单独的设备或软件来实现的。大多数情况下防火墙的组件放在一起使用以满足公司安全目的需求。防火墙要能满足以下四个目标: 1> 实现一个公司的安全策略 防火墙的主要意图是强制执行你的安全策略,比如你的安全策略需要对MAIL服务器的SMTP流量做限制,那么你要在防火墙上强制这些策略。 2> 创建一个阻塞点 防火墙在一个公司的私有网络和分网间建立一个检查点。这种实现要求所有的流量都要经过这个检查点。一旦检查点被建立,防火墙就可以监视,过滤和检查所有进出的流量。网络安全中称为阻塞点。通过强制所有进出的流量都通过这些检查点,管理员可以集中在较少的地方来实现安全目的。 3> 记录internet活动 防火墙还能强制记录日志,并且提供警报功能。通过在防火墙上实现日志服务,管理员可以监视所有从外部网或互联网的访问。好的日志是适当网络安全的有效工具之一。 4> 限制网络暴露 防火墙在你的网络周围创建了一个保护的边界。并且对于公网隐藏了内部系统的一些信息以增加保密性。当远程节点侦测你的网络时,他们仅仅能看到防火墙。远程设备将不会知道你内部网络的布局以及都有些什么。防火墙提高认证功能和对网络加密来限制网络信息的暴露。通过对所能进入的流量进行检查,以限制从外部发动的攻击。

2018Linux防火墙iptables配置详解

2018-Linux防火墙iptables配置详解 一、开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain RH-Firewall-1-INPUT (0 references) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 可以看出我在安装linux时,选择了有防火墙,并且开放了22,80,25端口. 如果你在安装linux时没有选择启动防火墙,是这样的 [root@tp ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 什么规则都没有. (2)清除原有规则. 不管你在安装linux时是否启动了防火墙,如果你想配置属于自己的防火墙,那就清除现在filter的所有规则. [root@tp ~]# iptables -F清除预设表filter中的所有规则链的规则 [root@tp ~]# iptables -X清除预设表filter中使用者自定链中的规则 我们在来看一下

iptables命令详解_共进电子

Iptables规则是如何练成的 本章将详细地讨论如何构建Iptables规则。Iptables 包含三个表(filter、nat 、mangle),默认使用filter表,每个表包含若干条链(PREROUTING,POSTROUTING,OUTPUT,INPUT和FORWARD),每条规则就添加到相应的链上。规则就是指向标,在一条链上,对不同的连接和数据包阻塞或允许它们去向何处。插入链的每一行都是一条规则。我们也会讨论基本的matche及其用法,还有各种各样的target。 流程图 1. 基础 我们已经解释了什么是规则,在内核看来,规则就是决定如何处理一个包的语句。如果一个包符合所有的条件(就是符合matche语句),我们就运行target 或jump指令。书写规则的语法格式是: iptables [-t table] command [chain] [match] [-j target/jump] 注意target指令必须在最后。如果你不想用标准的表,就要在[table]处指定表名。一般情况下没有必要指定使用的表,因为iptables 默认使用filter表来执行所有的命令。也没有必要非得在这里指定表名,实际上几乎可在规则的任何地

方。当然,把表名在开始处已经是约定俗成的标准。 尽管命令总是放在开头,或者是直接放在表名后面,我们也要考虑考虑到底放在哪儿易读。command告诉程序该做什么,比如:插入一个规则,还是在链的末尾增加一个规则,还是删除一个规则,下面会仔细地介绍。 Chain 指定表的哪条规则链。 match细致地描述了包的某个特点,以使这个包区别于其它所有的包。在这里,我们可以指定包的来源IP 地址,网络接口,端口,协议类型,或者其他什么。下面我们将会看到许多不同的match。 最后是数据包的目标所在。若数据包符合所有的match,内核就用target来处理它,或者说把包发往target。比如,我们可以让内核把包发送到当前表中的其他链(可能是我们自己建立的),或者只是丢弃这个包而没有什么处理,或者向发送者返回某个特殊的应答。下面有详细的讨论。 2. Tables 选项-t用来指定使用哪个表,它可以是下面介绍的表中的任何一个,默认的是filter表。 Table 2-1. Tables Table(表名)Explanation (注释) nat nat表的主要用处是网络地址转换,即Network Address Translation,缩写为NA T。做过NAT操作的数据包的地址就被改变了,当然这种改变是根据我们 的规则进行的。属于一个流的包只会经过这个表一次。如果第一个包被允许做 NA T或Masqueraded,那么余下的包都会自动地被做相同的操作。也就是说, 余下的包不会再通过这个表,一个一个的被NA T,而是自动地完成。这就是 我们为什么不应该在这个表中做任何过滤的主要原因。PREROUTING 链的作 用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。OUTPUT链 改变本地产生的包的目的地址。POSTROUTING链在包就要离开防火墙之前 改变其源地址。 mangle这个表主要用来mangle数据包。我们可以改变不同的包及包头的内容,比如TTL,TOS(服务类型)或MARK。注意MARK并没有真正地改动数据包, 它只是为包设了一个标记。防火墙内的其他的规则或程序(如tc)可以使用这 种标记对包进行过滤或高级路由。注意,mangle表不能做任何NAT,它只是 改变数据包的TTL,TOS或MARK,而不是其源目地址。NAT是在nat表中 操作的。 filter filter表是专门过滤包的,内建三个链,可以毫无问题地对包进行DROP、LOG、ACCEPT和REJECT等操作。FORW ARD链过滤所有不是本地产生的并且目

2.1.5 节点防火墙和SELinux配置.

2.1.5 节点防火墙和SELinux配置 1.防火墙设置 在控制和计算节点上分别执行以下操作进行防火墙设置。(1)停止iptables服务。 [root@controller ~]# service iptables stop iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] (2)将iptables服务配置为开机不自动启动。 [root@controller ~]# chkconfig iptables off 2.SELinux设置 在控制和计算节点上分别执行以下操作进行SELinux设置。(1)编辑SELinux的配置文件。 [root@controller ~]# vi /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=permissive # 将SELinux配置为允许模式 # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted 配置完成后,重新启动控制节点和计算节点。

Linux下iptables

Linux防火墙iptables学习笔记(一)入门要领 要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有 很多数据包进入,离开,或者经过我们的计算机。 首先我们要弄明白,防火墙将怎么对待这些数据包。这些数据包会经过一些相应的规则链,比如要进入你的计算机的数据包会首先进入INPUT链,从我们的计算机发出的数据包会经过OUTPUT链,如果一台计算机做一个网络的网 关(处于内网和外网两个网络连接的两台计算机,这两台计算机之间相互通讯的数据包会经过这台计算机,这台计算机即相当于一个路由器),可能会有很多数据经过这台计算机,那么这些数据包必经FORWARD链,FORWARD链即数据转发链。明白了这些“链”的概念我们才能进一步学习使用iptables。 现在我们再来分析一下iptables规则是如何工作的,假如我们要访问网站https://www.wendangku.net/doc/c04728873.html,,我们要对https://www.wendangku.net/doc/c04728873.html,发出请求,这些数据包要经过OUTPUT链,在请求发出前,Linux的内核会在OUTPUT链中检查有没有相应的规则适合这个数据包,如果没有相应的规则,OUTPUT链还会有默认的规则,或者允许,或者不允许(事实上,不允许有两种,一种是把请求拒绝,告诉发出请示的程序被拒绝;还有一种是丢弃,让请求发出者傻等,直到超时)。如果得到允许,请求就发出了,而https://www.wendangku.net/doc/c04728873.html,服务器返回的数据包会经过INPUT链,当然,INPUT链中也会有相应的规则等着它。 下面我们介绍几个iptable的命令 iptables-L[-t filter] 这条命令是显示当前有什么已经设置好的防火墙规则,可能的显示结果如下:Chain INPUT(policy ACCEPT)target prot opt source destination Chain FORWARD(policy ACCEPT)target prot opt source destination Chain OUTPUT(policy ACCEPT)target prot opt source destination 从这里我们可以看出,iptables有三个链分别是INPUT OUTPUT和FORWARD. 其中 INPUT是外部数据要进过我们主机的第一外关卡(当然你前面也可以再加硬件防火墙). OUTPUT是你的主机的数据送出时要做的过绿卡 FORWARD是转发你在NAT时才会用到 要设置iptables主要是对这三条链进行设置,当然也包括-nat的另外三个链我们以后再说 你要用iptables你就得启到它启动命令service iptables restart iptables的默认设置为三条链都是ACCEPT如下: iptables-P INPUT ACCEPT iptables-P OUTPUT ACCEPT iptables-P FORWARD ACCEPT 以上信息你可以用iptables-L看到 总体来说iptables可以有二种设置

linux防火墙配置实验

单个IP地址建立连接 和DOS 攻击 实验 第九组 2017.05.19 单个IP地址限制连接 实验原理: 防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。 netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。iptables 组件是一种工具,

也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。 实验环境 攻击者win7 64位 ip:172.16.9.1,被攻击者虚拟机vm构造,与宿主机采用桥接,在同一网段,ip为1.1.1.2 实验目的: 通过Vmware虚拟机,配置网关,以及模拟外网,内网,Web服务器。通过 外网来进行DOS攻击,通过在被攻击的主机上抓包可以清楚地看到整个攻击过程,并且在网关上设置了NAT地址转换,在访问外网时将内网地址转换成公网地址(SNAT),以及外网访问内网时将公网地址转换成内网地址(DNAT)。并且可以在网关上设置上网时间,限制某些应用访问Internet等。 实验拓扑:

实验步骤: 搭建实验环境(Vmware虚拟机作为平台),按照逻辑拓扑图进行连接。 1.配置网关 1)配置三块网卡,分别是eth0,eth1,eth2,全部设置为桥接模式。 2)Eth1 ip地址192.168.9.1,eth2 ip地址192.168.19.1,eth0 ip地址1.1.9.1 3)使用命令echo “1”> /proc/sys/net/ipv4/ip_forward,打开路由功能 4)使用命令 /etc/init.d/iptables stop。关闭防火墙。 5)制定NAT转化策略,建议当底层网络全部通时再测试NAT。 2.配置主机(包括web服务器,外网主机) 1)配置一块网卡eth0 添加ip地址,模式为桥接。 2)增加各自的默认网关。 3)关闭本地防火墙。 3.调试dos攻击程序,在模拟外网的pc上编译执行,在web服务器上抓包观察。 4.观察NAT转化是否实现 5.实验截图: 5.1.将网卡配置为桥接模式。

Linux防火墙练习题一

1.1)设定INPUT为ACCEPT 1.2)设定OUTPUT为ACCEPT 1.3)设定FORWARD为ACCEPT 参考答案: iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT 2)定制源地址访问策略 2.1)接收来自192.168.0.3的IP访问 2.2)拒绝来自192.168.0.0/24网段的访问 参考答案: iptables -A INPUT -i eth0 -s 192.168.0.3 -j ACCPET iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j DROP 3)目标地址192.168.0.3的访问给予记录,并查看/var/log/message 参考答案: iptables -A INPUT -s 192.168.0.3 -j LOG 4)定制端口访问策略 4.1)拒绝任何地址访问本机的111端口 4.2)拒绝192.168.0.0/24网段的1024-65534的源端口访问SSH 参考答案: iptables -A INPUT -i eth0 -p tcp --dport 111 -j DROP iptables -A INPUT -i eth0 -p tcp -s 192.168.0.0/24 --sport 1024:65534 --dport ssh -j DROP 5)定制CLIENT端的防火墙访问状态 5.1)清除所有已经存在的规则; 5.2)设定预设策略,除了INPUT设为DROP,其他为ACCEPT; 5.3)开放本机的lo可以自由访问; 5.4)设定有相关的封包状态可以进入本机; 参考答案: iptables -F iptables -X iptables -Z iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -m state --state INV ALID -j DROP 6)定制防火墙的MAC地址访问策略 6.1)清除所以已经存的规则; 6.2)将INPUT设为DROP 6.3)将目标计算机的MAC设为ACCEPT 参考答案:

Linux 防火墙的功能及安全策略

Linux 防火墙的功能及安全策略 防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。因此,防火墙的功能有以下几点: ●防火墙是网络安全的屏障 一个防火墙(作为阻塞点、控制点)能极大地提高一个内部网络的安全性,并通过过滤不安全的服务而降低风险。由于只有经过精心选择的应用协议才能通过防火墙,所以网络环境变得更安全。如防火墙可以禁止诸如众所周知的不安全的NFS 协议进出受保护网络,这样外部的攻击者就不可能利用这些脆弱的协议来攻击内部网络。防火墙同时可以保护网络免受基于路由的攻击,如IP选项中的源路由攻击和ICMP重定向中的重定向路径。防火墙应该可以拒绝所有以上类型攻击的报文并通知防火墙管理员。 ●防火墙可以强化网络安全策略 通过以防火墙为中心的安全方案配置,能将所有安全软件(如口令、加密、身份认证、审计等)配置在防火墙上。与将网络安全问题分散到各个主机上相比,防火墙的集中安全管理更经济。例如在网络访问时,一次一密口令系统和其它的身份认证系统完全可以不必分散在各个主机上,而集中在防火墙一身上。 ●对网络存取和访问进行监控审计 如果所有的访问都经过防火墙,那么,防火墙就能记录下这些访问并作出日志记录,同时也能提供网络使用情况的统计数据。当发生可疑动作时,防火墙能进行适当的报警,并提供网络是否受到监测和攻击的详细信息。另外,收集一个网络的使用和误用情况也是非常重要的。首先的理由是可以清楚防火墙是否能够抵挡攻击者的探测和攻击,并且清楚防火墙的控制是否充足。而网络使用统计对网络需求分析和威胁分析等而言也是非常重要的。 ●防止内部信息的外泄 通过利用防火墙对内部网络的划分,可实现内部网重点网段的隔离,从而限制了局部重点或敏感网络安全问题对全局网络造成的影响。再者,隐私是内部网络非常关心的问题,一个内部网络中不引人注意的细节可能包含了有关安全的线索而引起外部攻击者的兴趣,甚至因此而暴漏了内部网络的某些安全漏洞。使用防火墙就可以隐蔽那些透漏内部细节如Finger,DNS等服务。Finger显示了主机的所有用户的注册名、真名,最后登录时间和使用shell类型等。但是Finger显示的信息非常容易被攻击者所获悉。攻击者可以知道一个系统使用的频繁程度,这个系统是否有用户正在连线上网,这个系统是否在被攻击时引起注意等等。防火墙可以同样阻塞有关内部网络中的DNS信息,这样一台主机的域名和IP地址就不会被外界所了解。

Linux防火墙 iptables详细介绍

周旭光unixzhou@https://www.wendangku.net/doc/c04728873.html, Linux防火墙iptables 周旭光 unixzhou@https://www.wendangku.net/doc/c04728873.html, 2011年5月10日 目录 1、Linux防火墙基础 (2) 1、iptables的规则表、链结构 (2) 1.1 规则表 (2) 1.2 规则链 (2) 2、数据包的匹配流程 (2) 2.1 规则表之间的优先级 (2) 2.2 规则链之间的优先级 (2) 2.3 规则链内部各防火墙规则之间的优先顺序 (3) 2、管理和设置iptables规则 (3) 2.1 iptables的基本语法格式 (3) 2.2 管理iptables规则 (3) iptables命令的管理控制项 (3) 2.3 条件匹配 (5) 2.3.1 通用(general)条件匹配 (5) 2.3.2 隐含(implicit)条件匹配 (6) 2.3.3 显示(explicit)条件匹配 (6) 2.4 数据包控制 (7) 3、使用防火墙脚本 (8) 3.1 导出、导入防火墙规则 (8) 3.2 编写防火墙脚本 (8)

1、Linux防火墙基础 1、iptables的规则表、链结构 1.1 规则表 iptables管理4个不同的规则表,其功能由独立的内核模块实现。 filter表:包含三个链INPUT , OUTPUT , FORWARD nat表:PREROUTING , POSTROTING , OUTPUT mangle表:PREROUTING , POSTROUTING , INPUT , OUTPUT , FORWARD raw表:OUTPUT , PREROUTING 1.2 规则链 INPUT链当收到访问防火墙本机的数据包(入站)时,应用此链中的规则 OUTPUT链当防火墙本机向外发送数据包(出站)时,应用此链中的规则 FORWARD链收到需要通过防火墙发送给其他地址的数据包,应用此链 PREROUTING链做路由选择之前,应用此链 POSTROUTING链对数据包做路由选择之后,应用此链中的规则 2、数据包的匹配流程 2.1 规则表之间的优先级 Raw mangle nat filter 2.2 规则链之间的优先级 入站数据流向:来自外界的数据包到达防火墙,首先呗PREROUTING规则链处理(是否被修改地址),之后会进行路由选择(判断该数据包应该发往何处),如果数据包的目标地址是防火墙本机,那么内核将其传递给INPUT 链进行处理,通过以后再交给上次的应用程序进行响应 转发数据流向:来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后进行路由选择,如果数据包的目标地址是其他外部地址,则内核将其传递给FPRWARD链进行处理,然后再交给POSTROUTIING 规则链(是否修改数据包的地址等)进行处理。 出站数据流向:防火墙本身向外部地址发送数据包,首先被OUTPUT规则链处理,之后进行路由选择,然后

相关文档
相关文档 最新文档