当前位置:文档之家› 用Linux的iptables做代理服务器和防火墙配置详细介绍

用Linux的iptables做代理服务器和防火墙配置详细介绍

用Linux的iptables做代理服务器和防火墙配置详细介绍
用Linux的iptables做代理服务器和防火墙配置详细介绍

用Linux的iptables做代理服务器和防火墙配置详细介绍

用Linux的iptables做代理服务器和防火墙配置详细介绍

代理/防火墙

1.iptables规则表

Filter(针对过滤系统):INPUT、FORWARD、OUTPUT

NAT(针对地址转换系统):PREROUTING、POSTROUTING、INPUT、OUTPUT Mangle(针对策略路由和特殊应用):OUTPUT、POSTROUTING

2.安装包

iptables-1.2.7a-2

3.配置防火墙

1)命令语法

Usge: iptables [-t table] -[ADC] chain rule-specification [options]

iptables [-t table] -I chain [rulenum] rule-specification [options]

iptables [-t table] -R chain rulenum rule-specification [options]

iptables [-t table] -D chain rulenum [options]

iptables [-t table] -[LFZ] [chain] [options]

iptables [-t table] -N chain

iptables [-t table] -X [chain]

iptables [-t table] -P chain target [options]

iptables [-t table] -E old-chain-name new-chain-name

规则操作参数说明:

-A:在所选择的链末添加一条或更多规则;

-D:从所选链中删除一条或更多规则。有两种方法:把被删除规则指定为链中的序号(第一条序号为1),或者指定为要匹配的规则;

-R:从选中的链中取代一条规则。如果源地址或目的地址转换为多地址,该命令会失败。规则序号从1开始;

-I:根据给出的规则序号,向所选链中插入一条或更多规则。所以,如果规则序号为1,规则会插入链的头部。这也是不指定规则序号时的默认方式;

-L:现实所选链的所有规则。如果没有所选链,将显示所有链。也可以和z选项一起用,这是链会自动列出和归零;

-F:清空所选链。这等于把所有规则一个个删除;

-Z:把所有链的包以及字节的计数器清空;

-N:根据给出的名称建立一个新的用户定义链。这必须保证没有同名的链存在;

-X:删除指定的用户自定义链。这个链必须没有被引用,如果被引用,在删除之前必须删除或者替换与之有关的规则。如果没有给出参数,这条命令将试着删除每个非内建的链;

-P:设置链的目标规则;

-E:根据用户给出的名字对指定链进行重名名;

规则定义参数说明:

-p [!]protocol:

规则或者包检查(待查包)的协议。指定协议可以是TCP、UDP、ICMP中的一个或者全部,也可以是数值,代表这些协议中的某一个。当然也可以使用在/etc/protocols中定义的协议名。在协议名前加上"!"表示相反的规则。数字0相

当于所有all。Protocol all会匹配所有协议,而且这是缺省时的选项。在和check 命令结合时,all可以不被使用;

-s[!]address[/mask]:

指定源地址,可以是主机名、网络名和清楚地IP地址。mask说明可以是网络掩码或清楚的数字,在网络掩码的左边指定网络掩码左边"1"的个数,因此,mask 值为24等于255.255.255.0。在指定地址前加上"!"说明指定了相反的地址段。标志--src是这个选项的简写;

-d[!]address[/mask]:

指定目标地址,要获取详细说明请参见-s标志的说明。标志--dst是这个选项的简写;

-j target:

指定规则的目标:也就是说包匹配应当做什么。目标可以为ACCEPT(通过)、DROP(删除)、RETURN(返回)、REDIRECT(重新指向)、SNAT(源地址转换)、DNAT(目标地址转换)、MASQUERADE(伪装)等,还可以是用户自定义链。如果规则的这个选项被忽略,那么匹配的过程不会对包产生影响,不过规则的计数器会增加;

-i[!][name]:

待选的可接受包接口名称,包通过该接口接收(在链INPUT、FORWORD和PREROUTING中进入的包)。当在接口名前使用"!"说明后,指的是相反的名称,如果接口名后面加上"+",则所有以次接口名开头的接口都会被匹配。如果这个选项被忽略,会假设为"+",那么将匹配任意接口;

-O[!][NAME]:

这是包经由该接口送出的可选的出口名称,包通过该口输出(在链FORWARD、OUTPUT和POSTROUTING中送出的包)。其他设置同上。

2)匹配规则扩展选项:

tcp:当指定-p tcp,且未指定其他匹配的扩展,则装载这些扩展。

--source-port[!][port[:port]]:

源端口或端口范围指定。可以是服务名或端口号。使用格式端口:端口也可以指定包含的(端口)范围。如果忽略首端口号,默认是0,如果忽略末端口号,默认是65535,如果第二个端口号大于第一个,则他们进行交换。这个选项可以使用--sport的别名;

--destionation-port[!][port:[port]]:

目标端口或端口范围指定。这个选项可以使用--dport别名来代替;

--tcp-flags[!]mask comp:

匹配指定的TCP标记。第一个参数是要检查的标记,一个用逗号分开的列表,第二个参数是用逗号分开的标记表,是必须设置的。标记如:SYN(同步)、ACK (应答)、FIN(结束)、RST(重设)、URG(紧急)、PSH(送入)ALLNONE。

命令iptables -A FORWARD -p tcp --tcp-flags SYN, ACK, FIN, RST SYN只匹配那些设置了SYN标记而没有设置ACK、FIN和RST标记的包。

udp:当指定-p icmp且未指定其他匹配的扩展时,则装载这些扩展。

--icmp-type[!]typename:这个选项允许指定ICMP类型,可以是一个数值型的ICMP类型,或者是某个由命令"iptables -p icmp -h"所显示的ICMP类型名。

mac:

--mac-source[!]address:匹配物理地址。必须是XX:XX:XX:XX:XX这样的格式。

注意,他只对来自以太设备并进入PREROUTING、FORWORD和INPUT链的包有效。

limit:这个模块匹配标志用来对网络数据的通过速率进行标记,他和LOG目标结合使用,给出有限的登陆数。当达到这个极限值时,使用这个扩展包的规则将进行匹配。(除非使用了!标记),他的扩展选项包括:

--limit rate:最大平均匹配速率,可赋的值有"/second"、"/minute"、"/hour"或"/day"这样的单位,默认是"3/hour";

--limit-burst number:待匹配包初始个数的最大值。若前面指定的极限还没达到这个数值,则该数字加1。默认值是5。

multiport:这个模块匹配一组源端口或目标端口,最多可以指定15个端口。只能和-p tcp或者-p udp连着使用:

--source-port[port[,port]]:如果源端口是其中一个给定端口,则匹配;

--destination-port[port[,port]]:如果目标端口是其中一个给定端口,则匹配;

--port[port[,port]]:若源端口和目的端口相等并与某个给定端口相等,则匹配。

owner:此扩展为本地生成包匹配包的创建者,只能用于OUTPUT链,而且,有一些包(如ICMP ping应答)还可能没有所有者,因此永远不会匹配:--uid-owner userid:如果给出有效的user id,那么匹配他的进程产生的包;

--gid-owner groupid:如果给出有效的group id,那么匹配它的进程产生的包;

--sid-owner sessionid:根据给出的会话组成匹配该进程产生的包。

REJECT:作为对匹配的包的相应,返回一个错误的包,其他情况下和DROP相同。此目标只适用于INPUT、FORWARD和OUTPUT链,以及调用这些链的用户自定义链。这几个选项控制返回的错误包的特性:

--reject-with type:其中的type可以是icmp-net-unreachable、icmp-host-unreachable、icmp-port- unreachable、icmp-porto-unreachable、icmp-net-prohibited或者icmp-host- prohibited,该类型会返回相应的ICMP错误信息(默认是port-unreachable)。选项echo-reply也是允许的;它只能用于指定ICMP ping包的规则中,生成ping的回应。

SNAT:这个目标只适用于nat表的POSTROUTING链。它规定修改包的源地址(此连接以后所有的包都会被影响),停止对规则的检查:

--to-source [][:port-port]:

可以指定一个单一的新IP地址,一个IP地址范围,也可以附加一个端口范围(只能在指定-p tcp或者-p udp的规则里)。如果未指定端口范围,源端口是512以下的端口惠被安排为其他的512以下的端口;512到1024之间的端口会被安排为1024以下的,其他端口会被安排为1024或以上。如果可能,端口不会被修改;

--to-destiontion [][:port-port]:

可以指定一个单一的新的IP地址,一个IP地址范围,也可以附加一个端口范围(只能在指定-p tcp或者-p udp的规则里)。如果未指定端口范围,目标端口不会被修改。

MASQUERADE:只用于nat表的POSTROUTING链。只能用于动态获取ip(拨号)连接:如果拥有静态IP地址,要用SNAT。伪装相当于给包发出时所经过接口的IP地址设置一个映像,当借口关闭时,连接会终止。这是因为,当下一次拨号时,未必是相同的接口地址(以后所有建立的连接都将关闭)。他有一个选项:

--to-ports []:指定使用的源端口范围,覆盖默认的SNAT源地址选择。这个选项只适用于指定了-p tcp或者-p udp的规则。

REDIRECT:只适用于nat表的PREROUTING和OUTPUT链,以及只调用他们的用户定义链。他修改包的目标IP地址来发送包到机器自身(本地生成的包被安置为地址127.0.0.1),包含一个选项:

--to-ports []:指定使用的目的端口或端口范围:不指定的话,目标端口不会被修改。只能用于指定了-p tcp或者-p udp的规则。

3)包过滤设置

举例:

假如有这样一个局域网,内部IP地址范围192.168.1.1-254,网关地址为192.168.1.1,绑定在eth0接口上,同时,网关具有外部Internet地址为10.25.0.7,绑定在eth1接口上,防火墙就位于网关上,通过它的设置,对流经防火墙的网络包进行过滤处理。同时,在局域网内部有一台WWW服务器,他的内部地址为192.168.1.2,他被设置为可以接受外部的网络用户访问。

首先清空所有的规则链,并设置规则链的默认策略为DROP,即丢弃所有的网络数据包。

iptables -F

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

新增用户者自定义规则链bad_tcp_packets、allowed和icmp_packets。

iptables -N bad_tcp_packets

iptables -N allowed

iptables -N icmp_packets

下面定义bad_tcp_packets规则链的规则:将要求重导向的网络连接记录起来,然后将报文丢弃(防止本地机器被其他主机作为入侵跳板,侵入别的主机):iptables -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j LOG --log-level INFO --log-prefix "New not syn:"

iptables -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j DROP

下面定义allowed规则链的规则:允许要求连接的网络数据包或相应包进入,将其与网络数据包丢弃:

iptables -A allowed -p TCP --syn -j ACCEPT

iptables -A allwoed -p TCP -m state --state ESTABLLSHED,RELATED -J ACCEPT

IPTABLES -A allowed -p TCP -j DROP

下面定义icmp_packets规则链的规则:允许ping网络数据包进入,将其余的网络数据包丢弃:

iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT

iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

INPUT链,过滤要到达防火墙的网络数据包。

进入防火墙主机的TCP网络数据包必须先进行bad_tcp_packets过滤:

iptables -A INPUT -p TCP -j bad_tcp_packets

从WAN进入防火墙主机的ICMP网络数据包,必须先进行icmp_packets过滤,这是为了避免黑客传送不完整的IP网络数据包,系统会相应ICMP网络数据包,以通知对方,导致主机位置被侦测出来:

iptables -A INPUT -p ICMP -i eth1 -j icmp_packets

从LAN进入防火墙主机的全部单播和广播的网络数据包,均会放行:

iptables -A INPUT -p ALL -i eth0 -d 192.168.1.1 -j ACCEPT

iptables -A INPUT -p ALL -i eth0 -d 192.168.1.255 -j ACCEPT

从LAN进入防火墙主机的DHCP网络数据包,予以放行,只有当防火墙担任DHCP时才使用:

iptables -A INPUT -p UDP -i eth0 --dport 67 --sport 68 -j ACCEPT

从WAN进入防火墙主机的所有网络数据包,检查是否为响应网络数据包,若是则予以放行:

iptables -A INPUT -p ALL -d 10.25.0.7 -m state --state ESTABLISHED,RELATED -j ACCEPT

限制过滤规则的检测频率为每分钟平均流量三个网络数据包(超过)上限的网络数据包将暂停检测,并将瞬间流量设定为一次最多处理三个网络数据包(超过上限的网络数据包将丢弃不予处理),这类网络数据包通常是黑客用来进行拒绝服务攻击:

iptables -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level INFO --log-prefix "IPT INPUT packet dIEd:"

FORWAD链,过滤要通过防火墙的网络数据包

通过防火墙的TCP网络数据包必须先进行bad_tcp_pcakets过滤:

iptables -A FORWAD -P TCP -J bad_tcp_packets

从LAN要到WAN的网络数据包均放行:

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

从WAN到LAN的网络数据包仅放行应答网络数据包:

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

允许来自WAN的PING网络数据包,递送到局域网内的WWW服务器:

iptables -A FORWARD -p ICMP -i eth1 -o eth0 -d 192.168.1.2 -j icmp_packets

允许来自WAN的HTTP,HTTPS网络数据包,递送到局域网的WEB服务器:iptables -A FORWARD -p TCP -i eth1 -o eth0 -d 192.168.1.2 -m multiport --dport 80,443 -j allowed

限制过滤规则的检测频率为每分钟平均流量3各网络数据包(超过上限的网络数据包将暂停检测),并将瞬间流量设定为一次最多处理3个数据包(超过上限的网络数据包将被丢弃不予处理),这类网络数据包通常是黑客用来进行拒绝服务攻击:

iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet dIEd:"

OUTPUT链,过滤从防火墙送出的网络数据包。

从防火墙送出的TCP网络数据包必须先进行bad_tcp_packets过滤:

iptables -A OUTPUT -p TCP -j bad_tcp_packets

对于过滤通过的TCP包和其他类型的包,均会放行:

iptables -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT

iptables -A OUTPUT -p ALL -s 192.168.1.1 -j ACCEPT

iptables -A OUTPUT -p ALL -s 10.25.0.7 -j ACCEPT

限制过滤规则的检测频率为每分钟平均流量3各网络数据包(超过上限的网

络数据包将暂停检测),并将瞬间流量设定为一次最多处理3个数据包(超过上限的网络数据包将被丢弃不予处理),这类网络数据包通常是黑客用来进行拒绝服务攻击:

iptables -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet dIEd:"

4.NAT配置

1)目的NAT(DNAT)

DNAT在外部数据包进入防火墙后且路由之前进行,他把该数据包的目的地址改为内部局域网的地址,然后路由该数据包进入到局域网内部主机。

举例:

iptables -t nat -A PREROUTING -t tcp -d 10.25.0.7 --dport 80 -i eth1 -j DNAT --to 192.168.1.2:80

说明:可以路由到达防火墙的访问80端口(即WWW服务器)的数据包的目的地址改为192.168.1.2。

2)源NAT(SNAT)

SNAT主要用来更改从防火墙发出的数据包的源地址,使得来自局域网的私有地址通过防火墙后,更改为防火墙具有的外部地址,以便数据接收方接收数据后,能够找到正确的回复地址。

举例:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to10.25.0.7 说明:更改所有来自192.168.1.0/24的数据包的源IP地址为10.25.0.7

注意:系统在经过路由及过滤等处理后,直到数据包要送出时,才进行SNAT,有一种SANT的特殊情况是IP伪装,通常建议在用拨号上网时使用,也就是在合法IP地址不固定的情况下使用。

举例:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

5.缓存代理squid

1)安装包

squid-2.5.STABLE1-2

2)主要配置文件

/etc/squid/squid.conf

内容:

http_port:指定了squid监听客户请求的端口,默认值是3128。要使用代理,建议这个端口值和运行squid的机器ip地址一起使用;

举例:http_port 192.168.0.2:3128

说明:squid绑定在ip地址192.168.0.2上,端口为3128。

cache_mgr:当代理页面发生错误时,代理服务器将向这个配置项登记的用户发送邮件消息,将它配置为管理员的实际邮件地址;

举例:cache_mgr shuke@https://www.doczj.com/doc/005379044.html,

说明:当代理页面发生错误,给shuke@https://www.doczj.com/doc/005379044.html,发送消息。

http_access:允许HTTP访问,这个是主要的访问控制列表。默认拒绝所有的访问。

举例:http_access allow all

说明:接受所有访问。

cache_dir:定义磁盘缓存空间,以存储访问过的页面或其他资源的拷贝。

格式:cache_dir Type Directory-Name Fs-specific-data [options]

说明:

Type:存储类型,一般设置为ufs;

Directory-Name:代表缓存的位置,默认的设置是cache_dir ufs /var/spool/squid 100 16 256,其中,100代表缓存空间最大为100M;16到256代表缓存目录下的一级和二级目录数目。

启动命令:/etc/rc.d/init.d/squid start

客户端需要进行的设置:

IE浏览器选项-局域网设置-选中代理服务器和对本地地址不使用代理服务器,填写代理的IP地址和端口号。

3)squid.conf的13个配置选项:

NETWORK OPTIONS (有关的网络选项):

OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM (作用于邻居选择算法的有关选项):

OPTIONS WHICH AFFECT THE CACHE SIZE (定义cache大小的有关选项):LOGFILE PATHNAMES AND CACHE DIRECTORIES (定义日志文件的路径及cache 的目录)

OPTIONS FOR EXTERNAL SUPPORT PROGRAMS (外部支持程序选项)

OPTIONS FOR TUNING THE CACHE (调整cache的选项)

TIMEOUTS (超时)

ACCESS CONTROLS (访问控制)

ADMINISTRATIVE PARAMETERS (管理参数)

OPTIONS FOR THE CACHE REGISTRA TION SERVICE (cache注册服务选项)

HTTPD-ACCELERA TOR OPTIONS (HTTPD加速选项)

MISCELLANEOUS (杂项)

DELAY POOL PARAMETERS (延时池参数)

网络选项:

tcp_incoming_address指定监听来自客户或其他squid代理服务器的绑定ip地址;

tcp_outgoing_address指定向远程服务器或其他squid代理服务器发起连接的ip地址

udp_incoming_address为ICP套接字指定接收来自其他squid代理服务器的包的ip地址udp_outgoing_address为ICP套接字指定向其他squid代理服务器发送包的ip地址;

缺省为没有绑定任何ip地址。该绑定地址可以用ip指定,也可以用完整的域名指定。

交换空间设定选项:

cache_swap_low (percent, 0-100)

cache_swap_high (percent, 0-100)

说明:squid使用大量的交换空间来存储对象。那么,过了一定的时间以后,该交换空间就会用完,所以还必须定期的按照某种指标来将低于某个水平线的对象清除。squid使用所谓的“最近最少使用算法”(LRU)来做这一工作。当已使用的交换空间达到cache_swap_high时,squid就根据LRU所计算的得到每个对象

的值将低于某个水平线的对象清除。这种清除工作一直进行直到已用空间达到cache_swap_low。这两个值用百分比表示,如果你所使用的交换空间很大的话,建议你减少这两个值得差距,因为这时一个百分点就可能是几百兆空间,这势必影响squid的性能。缺省为:

cache_swap_low 90

cache_swap_high 95

maximum_object_size

说明:大于该值得对象将不被存储。如果你想要提高访问速度,就请降低该值;如果你想最大限度地节约带宽,降低成本,请增加该值。单位为K,缺省值为:

maximum_object_size 4096 KB

有关日志的选项:

cache_access_log:

说明:指定客户请求记录日志的完整路径(包括文件的名称及所在的目录),该请求可以是来自一般用户的HTTP请求或来自邻居的ICP请求。缺省值为:cache_access_log /var/log/squid/access.log,如果你不需要该日志,可以用以下语句取消:cache_access_log none;

cache_store_log

说明:指定对象存储记录日志的完整路径(包括文件的名称及所在的目录)。该记录表明哪些对象被写到交换空间,哪些对象被从交换空间清除。缺省路径为:cache_log /var/log/squid/cache.log,如果你不需要该日志,可以用以下语句取消:cache_store_log none;

cache_log:

说明:指定squid一般信息日志的完整路径(包括文件的名称及所在的目录)。缺省路径为:cache_log /var/log/squid/cache.log;

cache_swap_log:

说明:该选项指明每个交换空间的“swap.log”日志的完整路径(包括文件的名称及所在的目录)。该日志文件包含了存储在交换空间里的对象的元数据(metadata)。通常,系统将该文件自动保存在第一个“cache_dir”说定义的顶级目录里,但是你也可以指定其他的路径。如果你定义了多个“cache_dir”,则相应的日志文件可能是这样的:

cache_swap_log.00

cache_swap_log.01

cache_swap_log.02

后面的数字扩展名与指定的多个“cache_dir”一一对应。需要注意的是,最好不要删除这类日志文件,否则squid将不能正常工作;

pid_filename:

说明:指定记录squid进程号的日志的完整路径(包括文件的名称及所在的目录)。缺省路径为

pid_filename /var/run/squid.pid,如果你不需要该文件,可以用以下语句取消:pid_filename none;

debug_options:

说明:控制作日志时记录信息的多寡。可以从两个方面控制:section控制从几个方面作记录;level控制每个方面的记录的详细程度。推荐的方式(也是缺

省方式)是:debug_options ALL,1,即,对每个方面都作记录,但详细程度为1(最低);

log_fqdn on|off:

说明:控制在access.log 中对用户地址的记录方式。打开该选项时,squid记录客户的完整域名,取消该选项时,squid记录客户的ip地址。注意,如果打开该选项会增加系统的负担,因为squid还得进行客户ip的DNS查询。缺省值为:log_fqdn off。

有关外部支持程序的选项:

ftp_user:

说明:设置登录匿名ftp服务器时的提供的电子邮件地址,登录匿名ftp服务器时要求用你的电子邮件地址作为登录口令(更多的信息请参看本书的相关章节)。需要注意的是,有的匿名ftp服务器对这一点要求很苛刻,有的甚至会检查你的电子邮件的有效性。缺省值为:ftp_user Squid@;

ftp_list_width:

说明:设置ftp列表的宽度,如果设得太小将不能的浏览到长文件名。缺省值为:ftp_list_width 32;

cache_dns_program:

说明:指定DNS查询程序的完整路径(包括文件的名称及所在的目录)。缺省路径为:cache_dns_program /usr/lib/squid/dnsserver;

dns_children:

说明:设置DNS查询程序的进程数。对于大型的登录服务器系统,建议该值至少为10。最大值可以是32,缺省设置为5个。注意,如果你任意的降低该值,可能会使系统性能急剧降低,因为squid主进程要等待域名查询的结果。没有必要减少该值,因为DNS查询进程并不会消耗太多的系统的资源;

dns_nameservers:

说明:指定一个DNS服务器列表,强制squid使用该列表中的DNS服务器而非使用/etc/resolv.conf文件中定义的DNS服务器。你可以这样指定多个DNS服务器:dns_nameservers 10.0.0.1 192.172.0.4

缺省设置为:dns_nameservers none;

unlinkd_program:

说明:指定文件删除进程的完整路径。缺省设置为:unlinkd_program /usr/lib/squid/unlinkd;

pinger_program:

说明:指定ping进程的完整路径。该进程被squid利用来测量与其他邻居的路由距离。该选项只在你启用了该功能时有用。缺省为:pinger_program /usr/lib/squid/pinger;

authenticate_program:

说明:指定用来进行用户认证的外部程序的完整路径。squid的用户认证功能我们将在后面的章节讲述。缺省设置为不认证。

用户访问控制选项:

acl:

说明:定义访问控制列表。

定义语法为:

acl aclname acltype string1 …

acl aclname acltype "file" …

当使用文件时,该文件的格式为每行包含一个条目。

acltype 可以是src dst srcdomain dstdomain url_pattern urlpath_pattern time port proto method browser user 中的一种。

分别说明如下:

src 指明源地址。可以用以下的方法指定:

acl aclname src ip-address/netmask … (客户ip地址)

acl aclname src addr1-addr2/netmask … (地址范围)

dst 指明目标地址。语法为:

acl aclname dst ip-address/netmask … (即客户请求的服务器的ip地址)

srcdomain 指明客户所属的域。语法为:

acl aclname srcdomain https://www.doczj.com/doc/005379044.html, … squid将根据客户ip反向查询DNS。

dstdomain 指明请求服务器所属的域。语法为:

acl aclname dstdomain https://www.doczj.com/doc/005379044.html, … 由客户请求的URL决定。

注意,如果用户使用服务器ip而非完整的域名时,squid将进行反向的DNS 解析来确定其完整域名,如果失败就记录为“none”。

time 指明访问时间。语法如下:

acl aclname time [day-abbrevs] [h1:m1-h2][hh:mm-hh]

day-abbrevs:

S - Sunday

M - Monday

T - Tuesday

W - Wednesday

H - Thursday

F - Friday

A - Saturday

h1:m1 必须小于h2:m2,表达示为[hh:mm-hh]。

port 指定访问端口。可以指定多个端口,比如:

acl aclname port 80 70 21 …

acl aclname port 0-1024 … (指定一个端口范围)

proto 指定使用协议。可以指定多个协议:

acl aclname proto HTTP FTP …

method 指定请求方法。比如:

acl aclname method GET POST …

各类超时设置选项:

negative_ttl time-units:

说明:设置消极存储对象的生存时间。所谓的消极存储对象,就是诸如“连接失败”及"404 Not Found"等一类错误信息。缺省设置为5分钟;

举例:negative_ttl 5 minutes

positive_dns_ttl time-units:

说明:设置缓存成功的DNS查询结果的生存时间。缺省为6小时;

举例:positive_dns_ttl 6 hours

negative_dns_ttl time-units:

说明:设置缓存失败的DNS查询结果的生存时间。缺省为5分钟;

举例:negative_dns_ttl 5 minutes

connect_timeout time-units:

说明:设置squid等待连接完成的超时值。缺省值为2分钟;

举例:connect_timeout 120 seconds

read_timeout time-units:

说明:如果在指定的时间内squid尚未从被请求的服务器读入任何数据,则squid将终止该客户请求。缺省值为15分钟;

举例:read_timeout 15 minutes

request_timeout:

说明:设置在建立与客户的连接后,squid将花多长时间等待客户发出HTTP 请求。缺省值为30秒。

举例:request_timeout 30 seconds;

clIEnt_lifetime time-units:

说明:设置客户在与squid建立连接后,可以将该连接保持多长时间;

注意,因为客户建立的每个连接都会消耗一定的系统资源,所以如果你是为一个大型网络提供代理服务的话,一定要正确地修改该值。因为如果同一时间的连接数量太大的话,可能会消耗大量的系统资源,从而导致服务器宕机。缺省值为1天,该值太大了,建议根据你自己的情况适当减小该值。

举例:clIEnt_lifetime 1 day

half_closed_clIEnts on/off:

说明:有时候由于用户的不正常操作,可能会使与squid的TCP连接处于半关闭状态,这时候,该TCP连接的发送端已经关闭,而接收端正常工作。缺省地,squid将一直保持这种处于半关闭状态的TCP连接,直到返回套接字的读写错误才将其关闭。如果将该值设为off,则一旦从客户端返回“no more data to read”的信息,squid就立即关闭该连接;

举例:half_closed_clIEnts on

pconn_timeout:

说明:设置squid在与其他服务器和代理建立连接后,该连接闲置多长时间后被关闭。缺省值为120秒;

举例:pconn_timeout 120 seconds

ident_timeout:

说明:设置squid等待用户认证请求的时间。缺省值为10秒;

举例:ident_timeout 10 seconds

shutdown_lifetime time-units:

说明:当收到SIGTERM 或者SIGHUP 信号后,squid将进入一种shutdown pending的模式,等待所有活动的套接字关闭。在过了shutdown_lifetime所定义的时间后,所有活动的用户都将收到一个超时信息。缺省值为30秒;

举例:shutdown_lifetime 30 seconds

管理参数选项:

cache_mgr:

说明:设置管理员邮件地址。缺省为管理员;

举例:cache_mgr root

cache_effective_user / cache_effective_group:

说明:如果用root启动squid,squid将变成这两条语句指定的用户和用户组。

缺省变为squid用户和squid用户组。注意这里指定的用户和用户组必须真是存在于/etc/passwd中。如果用非root帐号启动squid,则squid将保持改用户及用户组运行,这时候,你不能指定小于1024地http_port;

举例:

cache_effective_user squid

cache_effective_group squid

visible_hostname:

说明:定义在返回给用户的出错信息中的主机名;

举例:visible_hostname https://www.doczj.com/doc/005379044.html,

unique_hostname:

说明:如果你有一个代理服务器阵列,并且你为每个代理服务器指定了同样的“visible_hostname”,同时你必须为它们指定不同的“unique_hostname”来避免“forwarding loops ”(传输循环)发生。

其它杂项:

1. dns_testnames

说明:设置进行DNS查询测试,如果第一个站点解析成功则立即结束DNS查询测试。如果你不愿意进行DNS查询测试,就不要去掉缺省的设置;

举例:#dns_testnames https://www.doczj.com/doc/005379044.html, https://www.doczj.com/doc/005379044.html, https://www.doczj.com/doc/005379044.html, https://www.doczj.com/doc/005379044.html,

logfile_rotate:

说明:通常,squid会定期的将日志文件更名并打包。比如正在使用的日志文件为access.log,squid会将其更名并打包为access.log.1.gz;过了一定时间后,squid 又会将access.log.1.gz 更名为access.log.2.gz并将当前的日志文件更名并打包为access.log.1.gz,以此循环。logfile_rotate所指定的数字即为打包并备份的文件的数量,当达到这一数目时,squid将删除最老的备份文件。缺省值为10。如果你想手动来进行这些操作,你可以用logfile_rotate 0来取消自动操作;

err_html_text:

说明:用该语句定义一个字符串变量,可以用%L在返回给用户的错误信息文件中引用。错误信息文件通常在/etc/squid/errors目录中,这是一些用HTML写成的脚本文件,你可以自己修改它;

deny_info:

说明:你可以定制自定义的拒绝访问信息文件,并且可以和不同的用户列表相关联。当用户被http_access相关规则拒绝时,squid可以向用户显示你自定义的相应的拒绝访问信息文件;

举例:

Usage: deny_info err_page_name acl

比如:

deny_info ERR_CUSTOM_ACCESS_DENIED bad_guys

memory_pools on|off:

说明:如果你将该项设为on,则squid将保留所有已经分配(但是未使用)的内存池以便在将来使用。缺省为on;

举例:memory_pools on

log_icp_querIEs on|off:

说明:设置是否对ICP请求作日志。如果你的系统负载很大,你可以用off来取消该功能;

举例:log_icp_querIEs on

always_direct:

说明:该选项允许你指定某些用户类,squid将这些用户类的请求直接转发给被请求的服务器;

举例:

a lways_direct allow|deny [!]aclname …

如:直接转发FTP请求可以这样设置:

acl FTP proto FTP

always_direct allow FTP

never_direct

说明:与always_direct相反;

举例:

Usage: never_direct allow|deny [!]aclname …

比如,为了强制除了本地域的其他用户使用代理服务器,你可以这样设置:acl local-servers dstdomain https://www.doczj.com/doc/005379044.html,

acl all src 0.0.0.0/0.0.0.0

never_direct deny local-servers

never_direct allow all

icon_directory:

说明:指明向用户传送错误信息时所用到的图标文件的目录;

举例:icon_directory /usr/lib/squid/icons

error_directory:

说明:指明向用户传送错误信息所用到的错误描述文件的目录。

举例:error_directory /etc/squid/errors

5.透明代理的设置

编辑/etc/squid/squid.conf,修改参数如下:

httpd_accel_host virtual

httpd_accel_port 80

httpd_accel_with_proxy on

httpd_accel_uses_host_header on

运行/etc/rc.d/init.d/squid reload使设置生效,然后,使用iptables工具添加两条端口转向和网络地址转换规则:

iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 这条命令将把所有局域网用户通过linux接入服务器访问WWW服务的访问请求,重定向到工作在3128端口的squid处理;

iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 166.32.129.10

这条命令是把所有来自192.168.1.0网段,并且将要从eth0网络接口(即internet连接)发出的数据包的源地址,更改为这个代理服务器所设置的外部IP 地址166.32.129.10。

设置完毕,在局域网内的用户,将计算机的网关更改为192.168.1.2,则可以获得透明代理的服务了。

iptables防火墙架构实验报告

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

防火墙双机热备配置案例

双机热备 网络卫士防火墙可以实现多种方式下的冗余备份,包括:双机热备模式、负载均衡模式和连接保护模式。 在双机热备模式下(最多支持九台设备),任何时刻都只有一台防火墙(主墙)处于工作状态,承担报文转发任务,一组防火墙处于备份状态并随时接替任务。当主墙的任何一个接口(不包括心跳口)出现故障时,处于备份状态的防火墙经过协商后,由优先级高的防火墙接替主墙的工作,进行数据转发。 在负载均衡模式下(最多支持九台设备),两台/多台防火墙并行工作,都处于正常的数据转发状态。每台防火墙中设置多个VRRP备份组,两台/多台防火墙中VRID相同的组之间可以相互备份,以便确保某台设备故障时,其他的设备能够接替其工作。 在连接保护模式下(最多支持九台设备),防火墙之间只同步连接信息,并不同步状态信息。当两台/多台防火墙均正常工作时,由上下游的设备通过运行VRRP或HSRP进行冗余备份,以便决定流量由哪台防火墙转发,所有防火墙处于负载分担状态,当其中一台发生故障时,上下游设备经过协商后会将其上的数据流通过其他防火墙转发。 双机热备模式 基本需求 图 1双机热备模式的网络拓扑图 上图是一个简单的双机热备的主备模式拓扑图,主墙和一台从墙并联工作,两个防火墙的Eth2接口为心跳口,由心跳线连接用来协商状态,同步对象及配置信息。 配置要点 ?设置HA心跳口属性 ?设置除心跳口以外的其余通信接口属于VRID2 ?指定HA的工作模式及心跳口的本地地址和对端地址 ?主从防火墙的配置同步 WEBUI配置步骤 1)配置HA心跳口和其他通讯接口地址 HA心跳口必须工作在路由模式下,而且要配置同一网段的IP以保证相互通信。接口属性必须要勾选“ha-static”选项,否则HA心跳口的IP地址信息会在主从墙运行配置同步时被对方覆盖。 ?主墙 a)配置HA心跳口地址。 ①点击网络管理>接口,然后选择“物理接口”页签,点击eth2接口后的“设置”图标,配置基本信息,如下图所示。 点击“确定”按钮保存配置。

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的内网网卡接口的地址

C防火墙配置实例

C防火墙配置实例Prepared on 21 November 2021

本文为大家介绍一个H3C防火墙的配置实例,配置内容包括:配置接口IP地址、配置区域、配置NAT地址转换、配置访问策略等,组网拓扑及需求如下。 1、网络拓扑图 2、配置要求 3、防火墙的配置脚本如下 discur # sysnameH3CF100A # superpasswordlevel3cipher6aQ>Q57-$.I)0;4:\(I41!!! # firewallpacket-filterenable firewallpacket-filterdefaultpermit # insulate # # firewallstatisticsystemenable # radiusschemesystem server-typeextended # domainsystem # local-usernet1980 passwordcipher###### service-typetelnet level2 # aspf-policy1 detecth323 detectsqlnet detectrtsp detecthttp detectsmtp detectftp detecttcp detectudp # # aclnumber3001 descriptionout-inside

rule1000denyip aclnumber3002 descriptioninside-to-outside rule1000denyip # interfaceAux0 asyncmodeflow # interfaceEthernet0/0 shutdown # interfaceEthernet0/1 shutdown # interfaceEthernet0/2 speed100 duplexfull descriptiontoserver firewallpacket-filter3002inbound firewallaspf1outbound # interfaceEthernet0/3 shutdown # interfaceEthernet1/0 shutdown # interfaceEthernet1/1 shutdown # interfaceEthernet1/2 speed100 duplexfull descriptiontointernet firewallpacket-filter3001inbound firewallaspf1outbound natoutboundstatic # interfaceNULL0 # firewallzonelocal setpriority100 # firewallzonetrust addinterfaceEthernet0/2 setpriority85

firewall防火墙配置-RHEL7

尽管工作在Linux内核的网络过滤器代码上,总体上和旧有的配置防火墙的方法是不兼容的。Red Hat Enterprise Linux 7 和其他的新版本则需要依靠新的配置方法。 本文的所有命令都基于RHEL 7. 防火墙工作网络 首先,检查防火墙是否在运行。使用列表1中的systemctl status firewalld命令。 列表1.下面的序列表明防火墙是活动状态且在运行中。这些斜线是有帮助的,当你试图将表1全面显示出来,使用-1命令。 [root@rhelserver ~]# systemctl status firewalld - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/; enabled) Active: active (running)since Thu 2014-05-22 07:48:08 EDT; 14min ago Main PID: 867 (firewalld) CGroup: / └─867 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid May 22 07:48:08 systemd[1]: Started firewalld - dynami… 防火墙中的一切都与一个或者多个区域相关联。 配置之后,RHEL 7服务器正常会在公共区域,但是你也许会想将它放置在另一个网络配置防火墙访问。这时使用firewall-cmd --get-default-zone命令,该命令显示你的服务器在哪一个网络。如果你想查看配置特定网络的详细信息,你可以使用列表2中的firewall-cmd --zone=zonename --list-all命令。

linux安全加固配置综合实训

“信息安全管理与评估”实验任务书 实验环境设置 实验环境设置包含了三个竞赛阶段的基础信息:网络拓扑图、IP地址规划表、设备初始化信息。 此次实验在截图中的右上角要有完成此项任务的人的信息。 1.网络拓扑图 2.设备初始化信息 PS:三层交换机做好配置之后请不要保存配置到交换机。 网络安全设备配置与防护 每个队伍提交的答案保存到WORD文档中。以下配置都要截图,截图内容为配置关键步骤

以及验证结果。 1.在公司总部的防火墙上配置,并且新增一个用户,用户名(队长全拼英文),密码123456, 该用户只有查看配置权限,不具有添加配置或修改配置的权限。 2.在公司总部的防火墙上配置SNAT实现内网用户访问外网。 3.在公司总部的防火墙上配置,在外出差的用户需要通过l2tpVPN来做到访问内网的目的。 4.在公司总部的防火墙上配置,启用SYN+FIN防御,启用ICMP flood防御(参数为500包/ 秒阻断60秒)。 5.一个外网用户想访问公司内网http服务。在公司总部防火墙配置DNAT实现端口映射访问 http服务。(网页内容为小组成员) 6.在公司总部防火墙内配置屏蔽内网BT。同时屏蔽MSN。 7.在公司总部的防火墙上配置。限制内网中指定IP地址的主机 8.在公司总部的三层交换机上配置HDCP服务。通过MAC地址绑定IP地址的配置实现一台主 机获取192.168.1.1,一台获取192.168.2.1。 9.三层交换机通过动态NAT(多转多的方式)的方式实现与防火墙通信。 10.三层交换机配置主机MAC地址绑定连接端口。当不同主机连接上去时发生丢弃行为。 11.三层交换机接口都设置为快速端口。不参与STP竞选。 12.在公司总部的三层交换机上配置,允许使用console和telnet和ssh方式管理设备。同 时telnet只允许同时在线5个用户。ssh用户名为队长全拼英文。 linux操作系统安全防护 任务环境说明: 操作系统:Redhat Linux AS5; 1.修改ssh的配置文件,禁止root直接登录,退出所有账号,使用root直接ssh登录 操作系统,将提示信息截图。 2.修改密码策略配置文件,确保密码最小长度为8位,然后创建新账号,并赋予密码低 于8位,将错误提示信息截图。 3.修改/etc/pam.d/ system-auth文件,确保错误登录10次,锁定此账户10分钟,将 配置截图。 4.修改配置文件,将登录超时设置为10分钟,并截图。 5.禁用ssh服务。拒绝通过ssh远程登录系统。将配置与验证结果截图。(先做第一题所 以与这题没有冲突) 6.使用root帐号登录系统,创建一个UID为0的帐号,然后使用一行命令查找本系统 UID为0的帐号有哪些,并截图。 7.查找是否存在空口令的用户存在。将截图重定向到/root/123.txt中。将配置与验证 结果截图。 8.配置GRUB密码。以及GRUB界面停留时间设定为1秒。且在进入系统的时候不显示加 载进度条(显示纯文本初始化系统的界面)。将配置与验证结果截图。 9.系统不响应ping。需要永久生效。将配置与验证结果截图。 10.禁止使用Ctrl+Alt+Del关机。将配置截图。 11.配置默认为init3等级进入系统。将配置与验证结果截图

防火墙典型配置举例

1.1防火墙典型配置举例

[Quidway-acl-101]rule deny ip source any destination any #配置规则允许特定主机访问外部网,允许内部服务器访问外部网。 [Quidway-acl-101]rule permit ip source129.38.1.40destination any [Quidway-acl-101]rule permit ip source129.38.1.10destination any [Quidway-acl-101]rule permit ip source129.38.1.20destination any [Quidway-acl-101]rule permit ip source129.38.1.30destination any #配置规则允许特定用户从外部网访问内部服务器。 [Quidway]acl102 [Quidway-acl-102]rule permit tcp source202.39.2.30destination 202.38.160.10 #配置规则允许特定用户从外部网取得数据(只允许端口大于1024的包)。 [Quidway-acl-102]rule permit tcp source any destination 202.38.160.10.0.0.0destination-port greater-than1024 #将规则101作用于从接口Ethernet0进入的包。 [Quidway-Ethernet0]firewall packet-filter101inbound #将规则102作用于从接口Serial0进入的包。 [Quidway-Serial0]firewall packet-filter102inbound

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

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中使用者自定链中的规则 我们在来看一下

H3C防火墙配置实例

精心整理本文为大家介绍一个H3C防火墙的配置实例,配置内容包括:配置接口IP地址、配置区域、配置NAT地址转换、配置访问策略等,组网拓扑及需求如下。 1、网络拓扑图 2、配置要求 3、防火墙的配置脚本如下 discur # sysnameH3CF100A # superpasswordlevel3cipher6aQ>Q57-$.I)0;4:\(I41!!! # firewallpacket-filterenable firewallpacket-filterdefaultpermit # insulate # # firewallstatisticsystemenable # radiusschemesystem server-typeextended # domainsystem # local-usernet1980 passwordcipher###### service-typetelnet level2 # aspf-policy1 detecth323 detectsqlnet detectrtsp detecthttp detectsmtp detectftp detecttcp detectudp # # aclnumber3001

descriptionout-inside rule1000denyip aclnumber3002 descriptioninside-to-outside rule1000denyip # interfaceAux0 asyncmodeflow # interfaceEthernet0/0 shutdown # interfaceEthernet0/1 shutdown # interfaceEthernet0/2 speed100 duplexfull descriptiontoserver firewallpacket-filter3002inbound firewallaspf1outbound # interfaceEthernet0/3 shutdown # interfaceEthernet1/0 shutdown # interfaceEthernet1/1 shutdown # interfaceEthernet1/2 speed100 duplexfull descriptiontointernet firewallpacket-filter3001inbound firewallaspf1outbound natoutboundstatic # interfaceNULL0 # firewallzonelocal setpriority100 # firewallzonetrust

思科PIX防火墙简单配置实例

思科PIX防火墙简单配置实例 在本期应用指南中,管理员可以学到如何设置一个新的PIX防火墙。你将设置口令、IP地址、网络地址解析和基本的防火墙规则。 假如你的老板交给你一个新的PIX防火墙。这个防火墙是从来没有设置过的。他说,这个防火墙需要设置一些基本的IP地址、安全和一些基本的防火墙规则。你以前从来没有使用过PIX防火墙。你如何进行这种设置?在阅读完这篇文章之后,这个设置就很容易了。下面,让我们看看如何进行设置。 基础 思科PIX防火墙可以保护各种网络。有用于小型家庭网络的PIX防火墙,也有用于大型园区或者企业网络的PIX防火墙。在本文的例子中,我们将设置一种PIX 501型防火墙。PIX 501是用于小型家庭网络或者小企业的防火墙。 PIX防火墙有内部和外部接口的概念。内部接口是内部的,通常是专用的网络。外部接口是外部的,通常是公共的网络。你要设法保护内部网络不受外部网络的影响。 PIX防火墙还使用自适应性安全算法(ASA)。这种算法为接口分配安全等级,并且声称如果没有规则许可,任何通信都不得从低等级接口(如外部接口)流向高等级接口(如内部接口)。这个外部接口的安全等级是“0”,这个内部接口的安全等级是“100”。 下面是显示“nameif”命令的输出情况: pixfirewall# show nameif nameif ethernet0 outside security0 nameif ethernet1 inside security100 pixfirewall# 请注意,ethernet0(以太网0)接口是外部接口(它的默认名字),安全等级是0。另一方面,ethernet1(以太网1)接口是内部接口的名字(默认的),安全等级是100。 指南 在开始设置之前,你的老板已经给了你一些需要遵守的指南。这些指南是: ·所有的口令应该设置为“思科”(实际上,除了思科之外,你可设置为任意的口令)。 ·内部网络是10.0.0.0,拥有一个255.0.0.0的子网掩码。这个PIX防火墙的内部IP地址应该是10.1.1.1。

Linux防火墙 iptables详细介绍

周旭光unixzhou@https://www.doczj.com/doc/005379044.html, Linux防火墙iptables 周旭光 unixzhou@https://www.doczj.com/doc/005379044.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规则链处理,之后进行路由选择,然后

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防火墙实验SEED

Linux Firewall Exploration Lab Machine A IP: 192.168.121.131 Machine B IP: 192.168.121.132 Machine C IP: 192.168.121.133 任务1: 使用防火墙 - sudo ufw enable - sudo ufw disable - sudo ufw status 任务a) Prevent A from doing telnet to Machine B. 任务b) Prevent B from doing telnet to Machine A. 1、Machine A - sudo ufw enable Machine B result: 2、Machine A - sudo ufw disable Machine B result: 任务c) Prevent A from visiting an external web site. Machine A - sudo ufw deny out to 10.0.6.30 https://www.doczj.com/doc/005379044.html, --- 10.0.6.30

任务2: 防火墙内部怎样工作 在过去,实现防火墙功能需要去重新编译Linux的内核,也就是需要编辑内核代码并且重建整个内核映像。这样做费时费力。但是,现在的Linux操作系统提供了一些新的机制减轻我们的负担,即不需要重新编译整个内核即可实现防火墙功能。下面将介绍的两种机制就是Loadable Kernel Module(LKM) and Netfilter. ?LKM可加载内核模块 LKM允许外部在内核仍处于运行状态时向内核添加一个新的模块。这个新加入的内核可以实现内核功能的定向扩展,并且不需要重新编译内核或者重新启动计算机。 其内部必须包含两个函数:init_module()和clean()函数。 ?Netfilter Netfilter的架构就是在整个网络流程的若干位置放置了一些检测点HOOK,而在每个检测点上登记了一些处理函数进行处理(如包过滤,NAT等,甚至可以是用户自定义的功能)。 IP层的五个HOOK点的位置如下图所示:

H3C防火墙配置实例

本文为大家介绍一个H3C防火墙的配置实例,配置内容包括:配置接口IP地址、配置区域、配置NAT地址转换、配置访问策略等,组网拓扑及需求如下。 1、网络拓扑图 2、配置要求 1)防火墙的E0/2接口为TRUST区域,ip地址是:192.168.254.1/29; 2)防火墙的E1/2接口为UNTRUST区域,ip地址是:202.111.0.1/27; 3)内网服务器对外网做一对一的地址映射,192.168.254.2、192.168.254.3分别映射为202.111.0.2、202.111.0.3; 4)内网服务器访问外网不做限制,外网访问内网只放通公网地址211.101.5.49访问192.168.254.2的1433端口和192.168.254.3的80端口。 3、防火墙的配置脚本如下 dis cur # sysname H3CF100A # super password level 3 cipher 6aQ>Q57-$.I)0;4:\(I41!!! # firewall packet-filter enable firewall packet-filter default permit # insulate # nat static inside ip 192.168.254.2 global ip 202.111.0.2 nat static inside ip 192.168.254.3 global ip 202.111.0.3 #

firewall statistic system enable # radius scheme system server-type extended # domain system # local-user net1980 password cipher ###### service-type telnet level 2 # aspf-policy 1 detect h323 detect sqlnet detect rtsp detect http detect smtp detect ftp detect tcp detect udp # object address 192.168.254.2/32 192.168.254.2 255.255.255.255 object address 192.168.254.3/32 192.168.254.3 255.255.255.255 # acl number 3001 description out-inside rule 1 permit tcp source 211.101.5.49 0 destination 192.168.254.2 0 destination-port eq 1433 rule 2 permit tcp source 211.101.5.49 0 destination 192.168.254.3 0 destination-port eq www rule 1000 deny ip acl number 3002 description inside-to-outside rule 1 permit ip source 192.168.254.2 0 rule 2 permit ip source 192.168.254.3 0 rule 1000 deny ip # interface Aux0 async mode flow # interface Ethernet0/0 shutdown # interface Ethernet0/1 shutdown

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

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

Linux常用服务器配置实验指导书 - 副本

常用服务器配置实验指导书 (1) 实验目的: (1) 实验内容: (1) 实验内容一网络参数的基本设置方法 (1) 实验内容二samba服务器应用 (4) 实验内容三FTP服务器应用 (8) 实验总结: (11) 常用服务器配置实验指导书 实验目的: 1.掌握SAMBA,FTP服务器的基本原理 2.掌握SAMBA,FTP服务器的基本配置方法 3.掌握网络基本参数的配置方法 实验环境:安装LINUX系统的计算机(已安装常用服务器) 实验内容: 实验内容一网络参数的基本设置方法 1.使用redhat-config-network管理工具实现网络参数设置 首先,启动管理工具,有两种方法: ●在终端下输入“redhat-config-network”命令 ●“主菜单→系统设置→网络”。 然后双击网卡ehto进行参数设置,激活网卡。

2.使用netconfig程序配置网络 a.启动netconfig程序:#netconfig b.设置相应的网络属性,如IP地址、子网掩码、默认网关和DNS服务器地址,确认配置完成后单击“OK”按钮保存设置。

c.重新启动网络服务 使用netconfig程序进行网络配置后只是修改了相应的网络配置文件,并没有使所作的配置在当前系统中生效,需要使用“service network restart”命令重新启动网络服务,才可以 使新的配置在当前系统中生效。 3. 命令行实现Linux网络配置 常用命令:# ifconfig 设备名IP地址[netmask …] [broadcast…] 作用:设置网卡的IP地址,子网掩码和广播地址

防火墙配置实例

C I S C O5520防火墙配置实例 本人在项目中已经两次接触到思科5500系列防火墙的配置应用了,根据项目的需求不同,详细的配置也不一样,因此汇总了一个通用版本的思科5500系列防火墙的配置,不详之处,请各位大虾给予指点,谢谢! CD-ASA5520# show run : Saved : ASA Version (2) ! hostname CD-ASA5520&nb sp; //给防火墙命名 enable password 9jNfZuG3TC5tCVH0 encrypted // 进入特权模式的密码 names dns-guard ! interface GigabitEthernet0/0 //内网接口: duplex full //接口作工模式:全双工,半双,自适应 nameif inside //为端口命名:内部接口inside security-level 100 //设置安全级别 0~100 值越大越安全 ! interface GigabitEthernet0/1 //外网接口 nameif outside //为外部端口命名:外部接口outside

security-level 0 ! interface GigabitEthernet0/2 nameif dmz security-level 50 ! interface GigabitEthernet0/3 shutdown no nameif no security-level no ip address ! interface Management0/0 //防火墙管理地址shutdown no nameif no security-level no ip address ! passwd encrypted ftp mode passive clock timezone CST 8 dns server-group DefaultDNS

相关主题
文本预览
相关文档 最新文档