文档库 最新最全的文档下载
当前位置:文档库 › iptables配置实例

iptables配置实例

iptables配置实例
iptables配置实例

iptables配置实例

2009-01-06 11:53

iptables 基本命令使用举例一、链的基本操作

1、清除所有的规则。

1)清除预设表filter中所有规则链中的规则。

# iptables -F

2)清除预设表filter中使用者自定链中的规则。

#iptables -X

#iptables -Z

2、设置链的默认策略。一般有两种方法。

1)首先允许所有的包,然后再禁止有危险的包通过放火墙。

#iptables -P INPUT ACCEPT

#iptables -P OUTPUT ACCEPT

#iptables -P FORWARD ACCEPT

2)

首先禁止所有的包,然后根据需要的服务允许特定的包通过防火墙。

#iptables -P INPUT DROP

#iptables -P OUTPUT DROP

#iptables -P FORWARD DROP

3、列出表/链中的所有规则。默认只列出filter表。

#iptables -L

4、向链中添加规则。下面的语句用于开放网络接口:

#iptables -A INPUT -i lo -j ACCEPT

#iptables -A OUTPUT -o lo -j ACCEPT

#iptables -A INPUT -i eth0 -j ACEPT

#iptables -A OUTPUT -o eth1 -j ACCEPT

#iptables -A FORWARD -i eth1 -j ACCEPT

#iptables -A FORWARD -0 eth1 -j ACCEPT

注意:由于本地进程不会经过FORWARD链,因此回环接口lo只在INPUT和OUTPUT 两个链上作用。

5、使用者自定义链。#iptables -N custom#iptables -A custom -s 0/0 -d 0/0 -p icmp -j DROP#iptables -A INPUT -s 0/0 -d 0/0 -j

DROP

二、设置基本的规则匹配

1、指定协议匹配。

1)匹配指定协议。#iptables -A INPUT -p tcp

2)匹配指定协议之外的所有协议。#iptables -A INPUT -p !tcp

2、指定地址匹配。

1)指定匹配的主机。#iptables -A INPUT -s 192.168.0.18

2)指定匹配的网络。#iptables -A INPUT -s 192.168.2.0/24

3)匹配指定主机之外的地址。#iptables -A FORWARD -s !192.168.0.19

4)匹配指定网络之外的网络。#iptables -A FORWARD -s ! 192.168.3.0/24 3、指定网络接口匹配。

1)指定单一的网络接口匹配。

#iptables -A INPUT -i eth0

#iptables -A FORWARD -o eth0

2)指定同类型的网络接口匹配。#iptables -A FORWARD -o ppp+

4、指定端口匹配。

1)指定单一端口匹配。#iptables -A INPUT -p tcp –sport www

#iptables -A INPUT -p udp –dport 53

2)匹配指定端口之外的端口。#iptables -A INPUT -p tcp –dport !22

3)匹配端口范围。#iptables -A INPUT -p tcp –sport 22:80

4)匹配ICMP端口和ICMP类型。#iptables -A INOUT -p icmp –icimp-type 8 5)指定ip碎片。每个网络接口都有一个MTU(最大传输单元),这个参数定义了可以通过的数据包的最大尺寸。如果一个数据包大于这个参数

值时,系统会将其划分成更小的数据包(称为ip碎片)来传输,而接受方则对这些ip碎片再进行重组以还原整个包。这样会导致一个问题:当

系统将大数据包划分成ip碎片传输时,第一个碎片含有完整的包头信息

(IP+TCP、UDP和ICMP),但是后续的碎片只有包头的部分信息(如源地

址、目的地址)。因此,检查后面的ip碎片的头部(象有TCP、UDP和ICMP一样)是不可能的。假如有这样的一条规则:

#iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 192.168.2.100 –dport 80 -j ACCEPT并且这时的FORWARD的policy为DROP时,系统只

会让第一个ip碎片通过,而余下的碎片因为包头信息不完整而无法通过。可以通过—fragment/-f 选项来指定第二个及以后的ip碎片解决上述

问题。

#iptables -A FORWARD -f -s 192.168.1.0/24 -d 192.168.2.100 -j ACCEPT 注意现在有许多进行ip碎片攻击的实例,如DoS攻击,因此允许ip

碎片通过是有安全隐患的,对于这一点可以采用iptables的匹配扩展来进行限制。

三、设置扩展的规则匹配(举例已忽略目标动作)

1、多端口匹配。

1)匹配多个源端口。#iptables -A INPUT -p tcp -m multiport –sport 22,53,80,1102)

匹配多个目的端口。#iptables -A INPUT -p tcp -m multiport –dpoort 22,53,803)

匹配多端口(无论是源端口还是目的端口)#iptables -A INPUT -p tcp -m multiport –port 22,53,80,1102、

指定TCP匹配扩展使用–tcp-flags 选项可以根据tcp包的标志位进行过滤。#iptables -A INPUT -p tcp –tcp-flags SYN,FIN,ACK SYN

#iptables -A FROWARD -p tcp –tcp-flags ALL SYN,ACK上实例中第一个表示SYN、ACK、FIN的标志都检查,但是只有SYN匹配。

第二个表示ALL(SYN,ACK,FIN,RST,URG,PSH)的标志都检查,但是只有设置了SYN和ACK的匹配。#iptables -A FORWARD -p tcp –syn选

项—syn相当于”–tcp-flags SYN,RST,ACK SYN”的简写。

3、limit速率匹配扩展。1)指定单位时间内允许通过的数据包个数,单位时间可以是/second、/minute、/hour、/day或使用第一个子母。

#iptables -A INPUT -m limit –limit 300/hour

2 )指定触发事件的阀值。#iptables -A INPUT -m limit –limit-burst 10用来比对一次同时涌入的封包是否超过10个,超过此上限的包将直

接丢弃。

3)同时指定速率限制和触发阀值。

#iptables -A INPUT -p icmp -m limit –-limit 3/m –limit-burst 3

表示每分钟允许的最大包数量为限制速率(本例为3)加上当前的触发阀值burst 数。任何情况下,都可保证3个数据包通过,触发阀值burst相

当于允许额外的包数量。

4)基于状态的匹配扩展(连接跟踪)每个网络连接包括以下信息:源地址、目标地址、源端口、目的端口,称为套接字对(socket pairs);

协议类型、连接状态(TCP协议)和超时时间等。防火墙把这些信息称为状态(stateful)。状态包过滤防火墙能在内存中维护一个跟踪状态的

表,比简单包过滤防火墙具有更大的安全性,命令格式如下:iptables -m state –-state [!]state [,state,state,state]其中,state表是

一个逗号分割的列表,用来指定连接状态,4种:>NEW: 该包想要开始一个新的连接(重新连接或连接重定向)>RELATED:该包是属于某个已经

建立的连接所建立的新连接。举例:FTP的数据传输连接和控制连接之间就是RELATED关系。>ESTABLISHED:该包属于某个已经建立的连接。

>INVALID:该包不匹配于任何连接,通常这些包被DROP。例如:

(1)在INPUT链添加一条规则,匹配已经建立的连接或由已经建立的连接所建立

的新连接。即匹配所有的TCP回应包。#iptables -A INPUT -m state –state RELATED,ESTABLISHED

(2)在INPUT链链添加一条规则,匹配所

有从非eth0接口来的连接请求包。#iptables -A INPUT -m state -–state NEW -i !eth0又如,对于ftp连接可以使用下面的连接跟踪:

(1)被动(Passive)ftp连接模式。#iptables -A INPUT -p tcp –sport 1024:

–dport 1024: -m state –-state ESTABLISHED -j

ACCEPT#iptables -A OUTPUT -p tcp –sport 1024: –dport 1024: -mstate -–state ESTABLISHED,RELATED -j ACCEPT

(2)主动(Active)ftp连接模式#iptables -A INNPUT -p tcp –sport 20 -m state –-state ESTABLISHED,RELATED -j ACCEPT#iptables -A OUTPUT -p tcp

–OUTPUT -p tcp –dport 20 -m state –state ESTABLISHED -j ACCEPT5)TOS 匹配扩展。

四、设置目标扩展目标扩展由内核模块组成,而且

iptables的一个可选扩展提供了新的命令行选项

Iptables配置实例:

Iptables配置的目的,一个是防止公网的入侵,一个是让内网的兄弟们上网。在没配IPTABLES 之前,只有本机能上网。

Rh8.0的“系统设置”中有个“安全级别”,它主要是针对本机来说的,不能用它来配置iptables。打开“安全级别”,把它配成“无防火墙”级别。

为了配置、测试方便,可以先用“KWrite”编个“脚本”,采用“复制”、“粘贴”方式,把全部语句一次性粘贴到“终端”里执行。这样修改测试都很方便。

打开“其他”—“辅助设施”中的“KWrite”,将下面的样本输入或粘贴到里面(其中,eth0、eth1分别是外、内网卡):

echo "Enable IP Forwarding..."

echo 1 >/proc/sys/net/ipv4/ip_forward

echo "Starting iptables rules..."

/sbin/modprobe iptable_filter

/sbin/modprobe ip_tables

/sbin/modprobe iptable_nat

/sbin/modprobe ip_nat_ftp ;支持被动FTP

/sbin/modprobe ip_conntrack_ftp ;

/sbin/modprobe ip_conntrack_h323 ;支持NETMEETING

/sbin/modprobe ip_nat_h323 ;

iptables -F INPUT

iptables -F FORWARD

iptables -F OUTPUT

iptables -F POSTROUTING -t nat

iptables -F PREROUTING -t nat

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -i eth1 -j ACCEPT

iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT

iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

/etc/rc.d/init.d/iptables restart

iptables -L

再另存为一个文件放到桌面上,便于使用。

在这个配置里面,INPUT和转发FORWARD功能的缺省值都是拒绝(DROP),这意味着在后面的INPUT和FORWARD语句中没有表明通过(ACCEPT)的都将被拒之门外。这是一个最好的安全模式,经过使用赛门铁克的在线测试,所有公网端口都是隐藏的。注意,所有内网端口都是打开的,本机对内没有安全可言。

其它的语句我就不多说了,最后一句是显示配置执行后的链路结果。

每次修改完后,将整篇语句全部复制,再粘贴到“终端”,它将自动配置、启动、显示一次。反复修改、测试,直到达到你的要求。

最后将整篇语句全部复制,再粘贴到“/etc/rc.d/rc.local”文件后面,你的配置开机后也可以自动执行了。

内容来自: 脚本之家https://www.wendangku.net/doc/2f1795812.html,

# touch /etc/rc.d/firewall

# chmod u+x /etc/rc.d/firewall

# echo "/etc/rc.d/firewall" >> /etc/rc.d/rc.local

# vi /etc/rc.d/firewall

#!/bin/bash

echo "1" /proc/sys/net/ipv4/ip_forward

INET_IFACE="eth1"

INET_IP="10.19.51.182"

LAN_IFACE="eth0"

LAN_IP="192.168.0.1"

LAN_IP_RANGE="192.168.0.0/24"

IPT="/sbin/iptables"

SERVER="192.168.0.100"

DNS="192.168.0.99"

HTTP="80"

MAIL_SMTP="25"

MAIL_POP3="110"

DNS_PORT="53"

/sbin/depmod -a

/sbin/modprobe ip_tables

/sbin/modprobe iptable_nat

/sbin/modprobe ip_nat_ftp

/sbin/modprobe ipt_LOG

$IPT -P INPUT DROP

$IPT -P FORWARD DROP

$IPT -P OUTPUT DROP

$IPT -t nat -P PREROUTING ACCEPT

$IPT -t nat -P POSTROUTING ACCEPT

$IPT -t nat -P OUTPUT ACCEPT

for TABLE in filter nat mangle ; do

$IPT -t $TABLE -F

$IPT -t $TABLE -X

done

$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

for DNS in $(grep ^n /etc/resolv.conf|awk '{print $2}') ; do

$IPT -A INPUT -p udp -s $DNS --sport domain -j ACCEPT

done

$IPT -A INPUT -p tcp --sport $HTTP -j ACCEPT

$IPT -A INPUT -p tcp --sport $MAIL_25 -j ACCEPT

$IPT -A INPUT -p tcp --sport $MAIL_110 -j ACCEPT

$IPT -A INPUT -p tcp --sport $DNS_PORT -j ACCEPT

$IPT -N LOGDENY

$IPT -A LOGDENY -j LOG --log-prefix "iptables:"

$IPT -A LOGDENY -j DROP

$IPT -A INPUT -i ! lo -m state --state NEW,INVALID -j LOGDENY

#if [ "$INET_IFACE" = ppp0 ] ; then

#$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE

#else

#$IPT -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to $INET_IP

#fi

$IPT -t nat -A POSTROUTING -o $INET_IFACE -s 192.168.0.25 -j SNAT --to $INET_IP

$IPT -t net -A PRERROUTING -p tcp -d $INET_IP --dport $HTTP \

-j DNAT --to $SERVER:$HTTP

$IPT -t net -A PRERROUTING -p tcp -d $INET_IP --dport $MAIL_25 \

-j DNAT --to $SERVER:$MAIL_25

$IPT -t net -A PRERROUTING -p tcp -d $INET_IP --dport $MAIL_110 \

-j DNAT --to $SERVER:$MAIL_110

$IPT -t net -A PRERROUTING -p tcp -d $INET_IP --dport $DNS_PORT \

-j DNAT --to $DNS:$DNS_PORT

:wq

#/etc/rc.d/firewall

一个使用iptables配置NAT的实例

2008-07-15 10:41

本文介绍如何在linux系统上使用iptables建立NAT, 我们可以把它做为一个网关, 从而局域网的多台机器可以使用一个公开的ip地址连接外网. 我使用的方法是重写通过NAT系统IP包的源地址和目标地址.

准备:

CPU: PII或更高

系统: 任何Linux版本

软件: Iptables

网卡: 2块

想法:

用你的广域网IP替换xx.xx.xx.xx

用你的局域网IP替换yy.yy.yy.yy

(比如: 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8)

WAN = eth0 有一个外网ip地址 xx.xx.xx.xx

LAN = eth1 有一个内网ip地址 yy.yy.yy.yy/ 255.255.0.0

过程:

步骤#1. 添加2块网卡到你的Linux系统.

步骤#2. 确认你的网卡是否正确安装:

ls /etc/sysconfig/network-scripts/ifcfg-eth* | wc -l

结果输出应为”2″

步骤#3. 配置eth0, 使用外网ip地址(基于ip的外部网络或互连网)

cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

BROADCAST=xx.xx.xx.255 # 附加选项

HWADDR=00:50:BA:88:72:D4 # 附加选项

IPADDR=xx.xx.xx.xx

NETMASK=255.255.255.0 # ISP提供

NETWORK=xx.xx.xx.0 # 可选

ONBOOT=yes

TYPE=Ethernet

USERCTL=no

IPV6INIT=no

PEERDNS=yes

GATEWAY=xx.xx.xx.1 # ISP提供

步骤#4. 配置eth1, 使用局域网地址(内部网络)

cat /etc/sysconfig/network-scripts/ifcfg-eth1

BOOTPROTO=none

PEERDNS=yes

HWADDR=00:50:8B:CF:9C:05 # Optional

TYPE=Ethernet

IPV6INIT=no

DEVICE=eth1

NETMASK=255.255.0.0 # Specify based on your requirement BROADCAST=”"

IPADDR=192.168.2.1 # Gateway of the LAN

NETWORK=192.168.0.0 # Optional

USERCTL=no

ONBOOT=yes

步骤#5. 配置主机 (可选)

cat /etc/hosts

127.0.0.1 nat localhost.localdomain localhost

步骤#6. 配置网关

cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=nat

GATEWAY=xx.xx.xx.1 # 互连网或外网网关, ISP提供

步骤#6. 配置DNS

cat /etc/resolv.conf

nameserver 203.145.184.13 # 主DNS服务器, ISP提供nameserver 202.56.250.5 # 第二个DNS服务器, ISP提供

步骤#8. 使用IP Tables配置NAT

# 删除刷新缺省表如”filter”, 其它表如”nat”需清楚标明: iptables –flush # 刷新所有过滤规则和NAT表.

iptables –table nat –flush

iptables –delete-chain

#删除所有非缺省的规则链和nat表

iptables –table nat –delete-chain

#建立IP转发和伪装

iptables –table nat –append POSTROUTING –out-interface eth0 -j MASQUERADE

iptables –append FORWARD –in-interface eth1 -j ACCEPT

#打开内核的包转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward

#应用iptables配置

service iptables restart

步骤#9. 测试

# 用一台客户机ping网关

ping 192.168.2.1

然后测试能否访问外网:

ping https://www.wendangku.net/doc/2f1795812.html,

内部网络客户端的配置

局部办公网络的所有计算机把网关设置为linux(系统)网关的内网ip地址. DNS设置为ISP提供的DNS.

Windows’95,2000,XP上的配置:

选择“开始” -> “设置” -> “控制面版”

选择“网络” 图标

选择“配置”, 然后双击以太网络的”TCP/IP”部分(不是TCP/IP -> 拨号适配器)

然后输入:

“网关”: 使用linux系统的内网ip地址.(192.168.2.1)

“DNS配置”: 使用IPS提供的DNS地址. (通常使用互连网地址)

“IP地址”: ip地址(192.168.XXX.XXX - 静态)和掩码(小的本地办公网络通常使用255.255.0.0).

linux下IPTABLES配置详解

如果你的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中使用者自定链中的规则

我们在来看一下

[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

什么都没有了吧,和我们在安装linux时没有启动防火墙是一样的.(提前说一句,这些配置就像用命令配置IP一样,重起就会失去作用),怎么保存.

[root@tp ~]# /etc/rc.d/init.d/iptables save

这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用.

[root@tp ~]# service iptables restart

现在IPTABLES配置表里什么配置都没有了,那我们开始我们的配置吧

(3)设定预设规则

[root@tp ~]# iptables -p INPUT DROP

[root@tp ~]# iptables -p OUTPUT ACCEPT

[root@tp ~]# iptables -p FORWARD DROP

上面的意思是,当超出了IPTABLES里filter表里的两个链规则(INPUT,FORWARD)时,不在这两个规则里的数据包怎么处理呢,那就是DROP(放弃).应该说这样配置是很安全的.我们要控制流入数据包

而对于OUTPUT链,也就是流出的包我们不用做太多限制,而是采取ACCEPT,也就是说,不在着个规则里的包怎么办呢,那就是通过.

可以看出INPUT,FORWARD两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过.

这样设置还是挺合理的,当然你也可以三个链都DROP,但这样做我认为是没有必要的,而且要写的规则就会增加.但如果你只想要有限的几个规则是,如只做WEB服务器.还是推荐三个链都是DROP.

注:如果你是远程SSH登陆的话,当你输入第一个命令回车的时候就应该掉了.因为你没有设置任何规则.

怎么办,去本机操作呗!

(4)添加规则.

首先添加INPUT链,INPUT链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链

为了能采用远程SSH登陆,我们要开启22端口.

[root@tp ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT

[root@tp ~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT(注:这个规则,如果你把OUTPUT 设置成DROP的就要写上这一部,好多人都是望了写这一部规则导致,始终无法SSH.在远程一下,是不是好了.

其他的端口也一样,如果开启了web服务器,OUTPUT设置成DROP的话,同样也要添加一条链:

[root@tp ~]# iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT ,其他同理.)

如果做了WEB服务器,开启80端口.

[root@tp ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT

如果做了邮件服务器,开启25,110端口.

[root@tp ~]# iptables -A INPUT -p tcp --dport 110 -j ACCEPT

[root@tp ~]# iptables -A INPUT -p tcp --dport 25 -j ACCEPT

如果做了FTP服务器,开启21端口

[root@tp ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT

[root@tp ~]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT

如果做了DNS服务器,开启53端口

[root@tp ~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT

如果你还做了其他的服务器,需要开启哪个端口,照写就行了.

上面主要写的都是INPUT链,凡是不在上面的规则里的,都DROP

允许icmp包通过,也就是允许ping,

[root@tp ~]# iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成DROP的话)

[root@tp ~]# iptables -A INPUT -p icmp -j ACCEPT (INPUT设置成DROP的话)允许loopback!(不然会导致DNS无法正常关闭等问题)

IPTABLES -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)

IPTABLES -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)

下面写OUTPUT链,OUTPUT链默认规则是ACCEPT,所以我们就写需要DROP(放弃)的链. 减少不安全的端口连接

[root@tp ~]# iptables -A OUTPUT -p tcp --sport 31337 -j DROP

[root@tp ~]# iptables -A OUTPUT -p tcp --dport 31337 -j DROP

有些些特洛伊木马会扫描端口31337到31340(即黑客语言中的elite 端口)上的服务。既然合法服务都不使用这些非标准端口来通信,阻塞这些端口能够有效地减少你的网络上可能被感染的机器和它们的远程主服务器进行独立通信的机会

还有其他端口也一样,像:31335、27444、27665、20034 NetBus、9704、137-139(smb),2049(NFS)端口也应被禁止,我在这写的也不全,有兴趣的朋友应该去查一下相关资料.

当然出入更安全的考虑你也可以包OUTPUT链设置成DROP,那你添加的规则就多一些,就像上边添加

允许SSH登陆一样.照着写就行了.

下面写一下更加细致的规则,就是限制到某台机器

如:我们只允许192.168.0.3的机器进行SSH连接

[root@tp ~]# iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT

如果要允许,或限制一段IP地址可用192.168.0.0/24 表示192.168.0.1-255端的所有IP.

24表示子网掩码数.但要记得把/etc/sysconfig/iptables 里的这一行删了.

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 因为它表示所有地址都可以登陆.

或采用命令方式:

[root@tp ~]# iptables -D INPUT -p tcp --dport 22 -j ACCEPT

然后保存,我再说一边,反是采用命令的方式,只在当时生效,如果想要重起后也起作用,那就要保存.写入到/etc/sysconfig/iptables文件里.

[root@tp ~]# /etc/rc.d/init.d/iptables save

这样写!192.168.0.3 表示除了192.168.0.3的ip地址

其他的规则连接也一样这么设置.

在下面就是FORWARD链,FORWARD链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链,对正在转发链的监控.

开启转发功能,(在做NAT时,FORWARD默认规则是DROP时,必须做)

[root@tp ~]# iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

[root@tp ~]# iptables -A FORWARD -i eth1 -o eh0 -j ACCEPT

丢弃坏的TCP包

[root@tp ~]#iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP 处理IP碎片数量,防止攻击,允许每秒100个

[root@tp ~]#iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT

设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包.

[root@tp ~]#iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

我在前面只所以允许ICMP包通过,就是因为我在这里有限制.

二,配置一个NAT表放火墙

1,查看本机关于NAT的设置情况

[root@tp rc.d]# iptables -t nat -L

Chain PREROUTING (policy ACCEPT)

target prot opt source destination

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

SNAT all -- 192.168.0.0/24 anywhere to:211.101.4 6.235

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

我的NAT已经配置好了的(只是提供最简单的代理上网功能,还没有添加防火墙规则).关于怎么配置NAT,参考我的另一篇文章

当然你如果还没有配置NAT的话,你也不用清除规则,因为NAT在默认情况下是什么都没有的

如果你想清除,命令是

[root@tp ~]# iptables -F -t nat

[root@tp ~]# iptables -X -t nat

[root@tp ~]# iptables -Z -t nat

2,添加规则

添加基本的NAT地址转换,(关于如何配置NAT可以看我的另一篇文章),

添加规则,我们只添加DROP链.因为默认链全是ACCEPT.

防止外网用内网IP欺骗

[root@tp sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP

[root@tp sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP

[root@tp sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP

如果我们想,比如阻止MSN,QQ,BT等的话,需要找到它们所用的端口或者IP,(个人认为没有太大必要)

例:

禁止与211.101.46.253的所有连接

[root@tp ~]# iptables -t nat -A PREROUTING -d 211.101.46.253 -j DROP 禁用FTP(21)端口

[root@tp ~]# iptables -t nat -A PREROUTING -p tcp --dport 21 -j DROP

这样写范围太大了,我们可以更精确的定义.

[root@tp ~]# iptables -t nat -A PREROUTING -p tcp --dport 21 -d 211.101.46.253 -j DROP

这样只禁用211.101.46.253地址的FTP连接,其他连接还可以.如web(80端口)连接.

按照我写的,你只要找到QQ,MSN等其他软件的IP地址,和端口,以及基于什么协议,只要照着写就行了.

最后:

drop非法连接

[root@tp ~]# iptables -A INPUT -m state --state INVALID -j DROP

[root@tp ~]# iptables -A OUTPUT -m state --state INVALID -j DROP

[root@tp ~]# iptables-A FORWARD -m state --state INVALID -j DROP

允许所有已经建立的和相关的连接

[root@tp ~]# iptables-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

[root@tp ~]# iptables-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

[root@tp ~]# /etc/rc.d/init.d/iptables save

这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用.[root@tp ~]# service iptables restart

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防火墙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防火墙架构实验报告

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

利用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";

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链过滤所有不是本地产生的并且目

关于 iptables 入站 出站以及NAT实例

关于 iptables 入站出站以及NAT实例 本文是自己工作上的iptables笔记总结,适合的可以直接拿去用,不适合的,适当修改即可! iptbales默认ACCEPT策略,也称通策略,这种情况下可以做拦截策略,还有种叫堵策略,然后开放通的规则。(我偏向堵策略,自己需要开放什么在开,以下例子也是在此基础上的) iptables 一些参数名称: 四表五链:fifter表、NAT表、Mangle表、Raw表。 INPUT链、OUTPUT链、FORWARD链、PREROUTING链、POSTROUTING链 INPUT链–处理来自外部的数据。 OUTPUT链–处理向外发送的数据。 FORWARD链–将数据转发到本机的其他网卡设备上。 PREROUTING链–处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。(NAT表需要开启linux路由 net.ipv4.ip_forward = 1) POSTROUTING链–处理即将离开本机的数据包。它会转换数据包中的源IP 地址(source ip address),通常用于SNAT(source NAT)。 OUTPUT链–处理本机产生的数据包。 iptables 新建时情况所有记录 iptables -F iptables -X iptables -F -t mangle iptables -t mangle -X iptables -F -t nat iptables -t nat -X 开放22 SSH端口 iptables -A INPUT -p tcp -p tcp --dport 22 -j ACCEPT (允许外部访问本机的22端口) iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT (有进就有出,IP包是来回的)

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

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(处理进入

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命令大全

数据包经过防火墙的路径 图1比较完整地展示了一个数据包是如何经过防火墙的,考虑到节省空间,该图实际上包了三种情况: 来自外部,以防火墙(本机)为目的地的包,在图1中自上至下走左边一条路径。 由防火墙(本机)产生的包,在图1中从“本地进程”开始,自上至下走左边一条路径 来自外部,目的地是其它主机的包,在图1中自上至下走右边一条路径。 图1 如果我们从上图中略去比较少用的mangle表的图示,就有图2所显示的更为清晰的路径图.

图2 禁止端口的实例 禁止ssh端口 只允许在192.168.62.1上使用ssh远程登录,从其它计算机上禁止使用ssh #iptables -A INPUT -s 192.168.62.1 -p tcp --dport 22 -j ACCEPT #iptables -A INPUT -p tcp --dport 22 -j DROP

?禁止代理端口 #iptables -A INPUT -p tcp --dport 3128 -j REJECT ?禁止icmp端口 除192.168.62.1外,禁止其它人ping我的主机 #iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type echo-request -j ACCEPT #iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request –j ?DROP 或 #iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type 8 -j ACCEPT #iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j DROP 注:可以用iptables --protocol icmp --help查看ICMP类型 还有没有其它办法实现? ?禁止QQ端口 #iptables -D FORWARD -p udp --dport 8000 -j REJECT 强制访问指定的站点

iptables配置

netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。 虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。 netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。 iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。 iptables包含4个表,5个链。其中表是按照对数据包的操作区分的,链是按照不同的Hook点来区分的,表和链实际上是netfilter的两个维度。 4个表:filter,nat,mangle,raw,默认表是filter(没有指定表的时候就是filter表)。表的处理优先级:raw>mangle>nat>filter。 filter:一般的过滤功能 nat:用于nat功能(端口映射,地址映射等) mangle:用于对特定数据包的修改 raw:有限级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能 5个链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING。 PREROUTING:数据包进入路由表之前

Linux防火墙的配置实例

Linux防火墙的配置实例 我们该如何利用Linux操作系统自带的防火墙来提高网络的管理控制功能呢?具体的来说,我们可以分三步走。一是先在Linux服务器上开一个后门,这个后门是专门给我们网络管理员管理服务器用的。二是把所有的进站、出站、转发站接口都关闭,此时,只有通过我们上面开的后门,管理员才能够远程连接到服务器上,企图任何渠道都不能连接到这台主机上。三是根据我们服务器的用途,把一些需要用到的接口开放出去。 1) 永久性生效,重启后不会复原 开启: chkconfig iptables on 关闭: chkconfig iptables off 2) 即时生效,重启后复原 开启: service iptables start 关闭: service iptables stop 清除原有规则. 不管你在安装linux时是否启动了防火墙,如果你想配置属于自己的防火墙,那就清除现在filter的所有规则. [root@tp ~]# iptables -F 清除预设表filter中的所有规则链的规则 [root@tp ~]# iptables -X 清除预设表filter中使用者自定链中的规则 我们在来看一下 [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 什么都没有了吧,和我们在安装linux时没有启动防火墙是一样的.(提前说一句,这些配置就像用命令配置IP一样,重起就会失去作用),怎么保存. [root@tp ~]# /etc/rc.d/init.d/iptables save

Windows和Linux防火墙实例

一、Windows系统中的防火墙实例 Windows防火墙是一个基于主机的状态防火墙,它丢弃所有未请求的传入流量,即那些既没有对应于为响应计算机的某个请求而发送的流量(请求的流量),也没有对应于已指定为允许的未请求的流量(异常流量)。Windows防火墙提供某种程度的保护,避免那些依赖未请求的传入流量来攻击的恶意用户和程序。这里以对目前常用的Windows XP Service Pack 2自带防火墙为实例,介绍它的基本配置及应用。 打开Windows XP的访问控制面板,这里包括Windows自带防火墙。Windows XP SP2与之前的Windows系列相比,自带防火墙新增了以下主要特性: 1、默认对计算机的所有连接启用。 2、应用于所有连接的全局配置选项。 3、用于全局配置的新增对话框集。 4、全新的操作模式。 5、启动安全性。 6、本地网络限制。 7、异常流量可以通过应用程序文件名指定。 8、对Internet协议第6版(IP V6)的内建支持,配置对话框可同时配置IPv4和IPv6流量。 9、采用Netsh和组策略的新增配置选项。 打开自带防火墙,可以看到对话框中包含“常规”、“异常”和“高级”三个选项卡,如图7-9所示。完成这些选项卡的设置,便可以实现对Windows防火墙的基本安全配置。新的Windows防火墙对话框包含以下选项卡: 图7-9 Windows防火墙的“常规”选项卡 在“常规”选项卡上,主要有以下几个可选项: (1)“启用(推荐)” 选择这个选项可以对“高级”选项卡上所选择的所有网络连接启用Windows防火墙,这也是默认功能。Windows防火墙启用后将仅允许请求的和例外的传入流量。例外的网

iptables系统配置防火墙和NAT功能的实例学习

iptables系统配置防火墙和NAT功能的实例学习 来源: ChinaUnix博客日期:2007.11.01 11:55(共有0条评论) 我要评论 关于Slackware 9.1.0 的配置说明 ********************************************************* * * *******关于防火墙系统恢复操作和启动方法说明******************* * * ********************************************************* 该系统主要作用就是对内部服务器作静态nat映射和端口访问控制。 在防火墙中,系统启动时已经自动启动了以上防火墙脚本,启动位置为:/etc/rc.d/rc.local文件中,sh /etc/rc.d/nat_firewall.sh #在系统启动时自动启动该脚本 如果需要手动启用防火墙和静态nat映射功能,操作以下步骤即可。 cd /etc/rc.d/ ./portnat.sh 如果用户不需要对内部服务器作任何端口控制,只需要作静态nat映射,只要执行以下文件,即可恢复不设防火墙状态。 cd /etc/rc.d/ ./no_firewall.sh ********************************************************** * * ****关于Slackware 9.1.0 系统配置防火墙和NAT功能的配置说明***** ****(nat_firewall.sh) * **********************************************************

(完整版)linux下各种服务进程之iptables详解

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

RHEL5配置iptables防火墙

RHEL5.4配置iptables防火墙 关于linux下面配置iptables防火墙的讨论, Iptables与netfilter模块关系 在linux下面的防火墙并不是一个服务,而是一个加载到内核中的模块。这个模块就是netfilter模块(网络过滤模块),我们使用iptables工具来管理这个netfilter 模块。 Iptables的模式 Enabled 默认拒绝所有 Disabled 默认允许所有 我们可以通过system-config-securitylevel这条命令通过图形界面修改, 这里可以选择enabled模式和disabled模式。 关于netfilter表和netfilter链

这张图就很清楚的显示了netfilter表和netfilter链。 Filter table里面有三条链: INPUT 目的地是访问防火墙本身的数据包 OUTPUT 源地址是防火墙出去的数据包 FORWARD 数据包的源地址和目的地址都不是防火墙的数据包Nat table里面也有三条链: OUTPUT 数据包在出网关之前被丢给代理服务器PREROUTING 做目的NAT转换(路由判断之前) POSTROUTING 做源NAT转换(路由判断之后) Mangle talbe里面有五条链: INPUT OUTPUT FORWARD PREROUTING POSTROUTING 关于iptables数据包的流程 这张图就显示了整个iptables防火墙在工作时候的数据包流程。 关于iptables的访问控制规则

当数据包要经过iptables防火墙,首先读取第一条策略,如果第一条策略匹配,则执行,不在读取下面的策略。如果第一条策略没有匹配,则读取第二条策略,如果匹配到第二条策略,则执行,不在读取下面的策略。如果数据包没有匹配到任何策略,则匹配默认策略。默认策略是允许或者拒绝可以由用户自己定义。 关于iptables的匹配规则 -s 192.168.0.0/24 源地址为192.168.0.0/24的网段 -d 192.168.0.10 目的地址为192.168.0.10的主机 -i eth0 从eht0进来的数据包 -o eth0 从eth0出去的数据包 ‘!’ 192.168.0.10 反向选择 -p tcp --dport 80 协议的类型,目标端口是80 -p udp --sport 53 协议类型,源端口是53 关于iptables的规则目标 DROP 拒绝 ACCEPT 允许 LOG 日志,匹配到这条策略后,还是会继续往下面读取策略。REJECT 拒绝,但是会给用户回应的信息。 关于iptables基本链操作 Iptables -L 查看iptables table(默认显示filter table) Iptables -nL 以IP地址的方式显示 Iptables -L --line-numbers 显示策略条目的行号 Iptables -vL 查看iptables table(显示更具体的信息) Iptables -A 追加iptables的策略条目(默认会追加策略的最后面) Iptables -I 插入iptables的策略条目(默认插入到策略的最前面) Iptables -I INPUT 2 插入成iptables策略条目的第二条策略 Iptables -D INPUT 2 删除iptables策略条目的第二条策略

linux防火墙iptables常用规则(屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链)

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

XenServer的iptables(防火墙)安全设置

XenServer的iptables(防火墙)安全设置 在XenServer运维中,会遇到各种攻击,暴力破解服务器的密码等等,如何做好服务器的一些安全呢,可以通过iptables进行简单防御。 备注:XenSystem云平台和XenServer通讯是通过22(SSH默认端口),443这2个端口通讯的,其中443端口不能修改,22端口可以修改。 小知识:关于iptables表,表里面的规则都是从上到下执行的,意思就是说,您在上面允许了一个IP,但是在下面确禁止了这个IP,那么这个时候,禁止这个IP这条规则是无效的。 实例规则一:禁止某个IP访问。 首先查看一下xenserver服务器的默认iptables表,会看到里面已经存在一些规则了。 命令:cat /etc/sysconfig/iptables 编辑器编辑iptables表,在:RH-Firewall-1-INPUT - [0:0] 规则下面添加一条禁止IP的规则,当然您也可以禁止某个IP段。 编辑命令:vi /etc/sysconfig/iptables iptables规则:-A INPUT -s 192.168.11.176 -p tcp -m tcp -j DROP

禁止某个IP段,比如禁止192.168.11.0/24这个段。 iptables规则:-A INPUT -s 192.168.11.0/24 -p tcp -m tcp -j DROP 保存,重启iptables,被禁止这个IP已经无法访问服务器了。 命令:service iptables restart 实例规则二:只允许某个IP或者IP段访问服务器。 XenServer服务器中,已经有规则允许访问的端口了,首先我们要把这些允许的端口注释或者删除,如下图。 在:RH-Firewall-1-INPUT - [0:0] 规则下面添加一条允许IP或者IP段的规则。 允许单个IP规则:

iptables防火墙的启动、停止以及开启关闭端口的操作

本文由我司收集整编,推荐下载,如有疑问,请与我司联系iptables 防火墙的启动、停止以及开启关闭端口的操作2017/05/25 0 CentOS 配置防火墙操作实例(启、停、开、闭端口):注:防 火墙的基本操作命令:查询防火墙状态: [root@localhost ~]# service iptables status 停止防火墙: [root@localhost ~]# service iptables stop 启动防火墙: [root@localhost ~]# service iptables start 重启防火墙: [root@localhost ~]# service iptables restart 永久关闭防火墙: [root@localhost ~]# chkconfig iptables off 永久关闭后启用: [root@localhost ~]# chkconfig iptables on1、查看防火墙状态[root@localhost ~]# service iptables status2、编辑/etc/sysconfig/iptables 文件。我们实例中要打开8080 端口和9990 端口用编辑器打开/etc/sysconfig/iptables3、依葫芦画 瓢,我们添加8080 端口和9990 端口4、保存/etc/sysconfig/iptables 文件,并在终端 执行[root@localhost ~]# service iptables restart5、从新查看防火墙状态[root@localhost ~]# service iptables status6、这时候,服务器的8080 和9990 端口就可以对外提供服务了。7、其他端口的开放模式就是类如此开放模式。 shutdown-hnow--立即关机shutdown-h10:53--到10:53 关机,如果该时间小于当前 时间,则到隔天shutdown-h 10--10 分钟后自动关机shutdown-rnow--立即重启shutdown-r 30’TheSystemWillRebootin30Mins’--30 分钟后重启并并发送通知给其它在 线用户 tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!

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