juniper SRX防火墙配置详解

1、JUNOS 操做系统介绍

JUNOS 集成了路由、交换、安全性和一系列丰富的网络服务。目前 Juniper 公司的全系列路由器产品、交换机产品和 SRX 安全产品均采用统一源代码的 JUNOS 操做系统,JUNOS 是全球首款将转发与控制功能相隔离,并采用模块化软件架构的网络操做系统。JUNOS 采用基于 FreeBSD 内核的软件模块化操做系统,支持 CLI 命令行和 WEBUI 两种设备管理方式,其主要功能特色及使用方法下面介绍。web

1.1. 层次化配置结构

JUNOS CLI 使用层次化配置结构,分为操做(operational)和配置(configure)两类模式,在操做模式下可对当前配置、设备运行状态、路由及会话表等状态进行查看及设备运维操做,并经过执行 config 或 edit 命令进入配置模式,在配置模式下可对各相关模块进行配置并可以执行操做模式下的全部命令(run)。在配置模式下 JUNOS 采用分层分级模块下配置结构,以下图所示,edit 命令进入下一级配置(相似 unix cd 命令),up 或 up 、exit 命令退回上一级或多级,top、quit 命令回到根级。shell

首次登录设备时,须要采用console方式,登录用户名为:root,密码为空,登录到cli下之后,执行以下命令,设置root账号的密码。
root# set system root-authentication plain-text-password
new password : root123 
retype new password: root123
密码将以密文方式显示。
注意:必需要首先配置root账号密码,不然后续全部配置的修改都没法提交。安全

1.2. Junos 基础管理操做配置 
1.2.1. CLI 命令行的使用介绍 网络

可经过 console/telnet/ssh 的方式进行命令行 CLI 模式管理设备。默认状况下任何有权限的帐号均可经过 console 登陆管理设备,而 Telnet 和 SSH 须要非 ROOT 的帐户才能够登陆管理设备,可是root帐户能够经过命令开通容许 SSH 管理。 
经过命令行登陆设备后可能会碰 2 种状况: 
第 1 种状况:提示符显示为%,这种状况一般是使用 root 帐户登陆进入了 shell 模式,shell模式没法管理 SRX 设备,须要经过命令 cli,才能进入到操做模式即提示符>。 
例: 
root@srx210% cli 
root@srx210>  
第 2 种状况:提示符直接显示为>即操做模式,操做模式下能够对设备的配置及各个组件运行状态进行查看和信息的收集以及从新启动或关闭设备,但不能变动设备的配置;经过 config 命令进入到配置模式即#模式,在该模式下能够对配置进行变动。 
例: 
root@srx210> configure
root@srx210# 
命令能够简写,能够经过按空格键自动补全,架构

1.3. Junos 配置模式特性app

 (1)JUNOS 经过 set 语句进行配置,配置输入后并不会当即生效,而是做为候选配置(Candidate Config)等待管理员提交确认,管理员经过输入 commit 命令来提交配置,配置内容在经过 SRX 语法检查后才会生效,一旦 commit 经过后当前配置即成为有效配置(Active config)。另外,运维

  (2)JUNOS 容许执行 commit 命令时要求管理员对提交的配置进行两次确认,如执行 commit confirmed 2 命令要求管理员必须在输入此命令后 2 分钟内再次输入 commit 以确认提交,不然 2分钟后配置将自动回退,这样能够避免远程配置变动时管理员失去对 SRX 的远程链接风险。 
  (3)在执行 commit 后配置模式下可经过 run show config 命令查看当前有效配置(Active config)。
  (4) 经过执行 show | compare 比对候选配置和有效配置的差别。并可经过执行 rolback 和 commit 命令返回到之前配置(如 rollback 0/commit 可返回到前1个 commit 配置);
  (5)能够经过执行 save configname.conf 手动保存当前配置,并执行 load override configname.conf / commit 调用前期手动保存的配置。执行 load factory-default / commit 命令可恢复到出厂缺省配置。 
  (6) SRX 经过 delete 语句来删除配置,如: delete security nat 
  (7)Edit 命令用于进入相应的层级,好比对 NAT 进行配置可使用:edit security nat 命令进入 NAT 配置层级,而后使用 set 命令对当前层级下的内容进行配置,用exit退出到root。
  示例:
 root# edit security nat  
 [edit security nat]
 root# exit 
 [edit]
 root#
  (8)SRX 能够经过 copy 命令,快速的复制命令,好比能够快速的将一个接口的配置复制到另外一个接口,使 2 个接口下的配置同样,在更换接口时很是方便。 
例:
root# copy interfaces ge-0/0/1 to ge-0/0/2 
  (9)SRX 能够经过 copy 命令,快速的复制命令,好比能够快速的将一个接口的配置复制到SRX 可对模块化配置进行功能关闭与激活,如执行 deactivate security nat 命令可以使NAT 相关配置失效,并可经过执行 activate security nat NAT 配置再次生效。 
 (10)Rollback 命令,能够回滚配置到前面保存的状态,其中 0 号配置是当前活动配置 ssh


1.3.1. 设置 root 用户口令 tcp

登陆设备后必须设置 ROOT 用户的密码,不然没法提交配置使其生效。 
在 CLI 命令行中的操做 
设置root用户口令 
root# set system root-authentication plain-text-password 
root# new password : root123 
root# retype new password: root123 密码将以密文方式显示,确认后,用下面命令查看时,密码字符会以密文方式显示。 
root# show system root-authentication 
encrypted-password "$1$xavDeUe6$fNM6olGU.8.M7B62u05D6."; # SECRET-DATA ide

1.3.2. 设置远程登陆管理用户 

远程管理设备一般使用:HTTP/HTTPS/TELNET/SSH 几中协议,其中 ROOT 帐户可使用 HTTP/HTTPS/SSH;TELNET 必需要新建一个 Super-User 级别的帐户才能够。 
在 CLI 管理方式中的相关配置 
root# set system login user lab class super-user authentication plain-text-password 
root# new password : lab123 
root# retype new password: lab123 
增长一个超级管理员帐户 lab,密码为 lab123

1.3.3.     容许远程管理设备配置 

在 CLI 管理方式中的相关配置 
set system services telnet 
set system services web-management http   /***在系统级开启telnet/http 远程接入管理服务***/ 
set system services web-management http interface ge-0/0/0.0    /***把容许经过WEB管理的接口加入到http interface中,本例中加入了ge-0/0/0.0即容许经过外网的接口从WEB管理设备***/ 
set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.238/24 
set routing-options static route 0.0.0.0/0 next-hop 192.168.1.2     /***配置逻辑接口地址及缺省路由,SRX 接口要求IP 地址必须配置在逻辑接口下(相似ScreenOS 的子接口),一般使用逻辑接口0 便可***/ 
set security zones security-zone untrust interfaces ge-0/0/0.0  /***将ge-0/0/0.0 接口放到安全区域中,相似ScreenOS***/ 
set security zones security-zone untrust host-inbound-traffic system-services ping 
set security zones security-zone untrust host-inbound-traffic system-services http 
set security zones security-zone untrust host-inbound-traffic system-services telnet 
set security zones security-zone untrust host-inbound-traffic system-services ssh 
/***在untrust zone 打开容许远程登录管理服务,ScreenOS 要求基于接口开放服务,SRX 要求基于Zone 开放,此处容许外网经过Ping/http/telnet/ssh访问其zone中的接口 ***/ 

show interfaces terse  查看接口简明信息
show interfaces |display set

1.3.4. 设备恢复出厂介绍 

恢复出厂值一般可经过 2 种方式,即执行恢复出厂值命令和使用针状物长压硬件面板上的 reset 孔。 
1.在 CLI 管理方式中的相关配置  
root# load factory-default 
若是恢复成功,须要从新设置 root 密码,并提交配置文件后须要从新启动设备。不然设备可能会工做不正常。 
2.经过 Reset 孔重置设备 
在面板上有一个标识为 reset 的小孔,使用曲别针粗细的针状物,顶到底等待约至少 15 秒,看到 Status 状态灯,又绿转为桔色后放开,再待 Status 灯又桔转为绿色,说明重置完成。若是不成功可将设备重启或重启后再试。 

2.1. 设备关机 

关机的两种状况,一种关机能够完全切断电源,另外一种关机只是关闭 JUNOS 软件,设备不切断电源,不一样的设备会有不一样的状况。 
在 CLI 管理方式中的相关配置支持关机的命令: 
1.    切断电源,命令成功后,设备处于断电状态。 
user@host> request system power-off 
2.    关闭JUNOS 系统,能够经过Console 中按任意键后启动设备。 
user@host> request system halt 
… 
The operating system has halted. Please press any key to reboot 

 3.4. 策略相关配置 
策略是对安全区段之间而言的,是有方向性的。策略的组成元素有地址、地址集、服务、服务集和时间。  
3.4.1. 策略地址及地址集对象定义 

本例中作以下定义: 
在 untrust 区段中定义地址集:DNSGROUP 地址名称为:DNS10,对应地址为:192.168.1.10/32;并将 DNS10 放入 DNSGROUP 在 trust 区段定义地址名称为 Lan,对应地址为 172.17.1.0/24 
在 CLI 管理方式中的相关配置 
set security zones security-zone untrust address-book address DNS10 192.168.1.10/32 
set security zones security-zone untrust address-book address-set DNSGROUP address DNS10 
set security zones security-zone trust address-book address Lan 172.17.1.0/24 


3.4.2. 策略服务对象定义 

设备中已经预约义了大多数经常使用的服务,能够直接引用到策略中,可是有些不经常使用的服务端口就须要本身定义。本例中定义一个 TCP-8080 端口在 CLI 管理方式中的相关配置 
set applications application tcp-8080 protocol tcp
set applications application tcp-8080 source-port 8770
set applications application tcp-8080 destination-port 80


3.4.3. 策略时间调度对象定义 

时间计划可让策略在特定的时间生效。 
本例中定义一个时间计划名称为:AllowDNS,时间范围为天天中午 12:00-13:00。在 CLI 管理方式中的相关配置 
set schedulers scheduler AllowDNS daily start-time 12:00:00 stop-time 13:00:00

3.4.4. 策略配置举例 

在完成接口、路由和 zone 的基本配置外,zone之间要相互通讯,必须经过策略明确容许后才能够通信,不然默认动做就是拒绝(能够经过命令将默认动做更改成容许)。本例中建立一条策略容许从 Trust 的地址 Lan 到 Untrust 的地址集 DNSGROUP 的自定义服务 TCP-8080 的访问,并受调试时间 AllowDNS 的限制。 
在 CLI 管理方式中的相关配置 
set security policies from-zone trust to-zone untrust policy AllowDNS match source-address Lan 
set security policies from-zone trust to-zone untrust policy AllowDNS match destination-address DNSGROUP 
set security policies from-zone trust to-zone untrust policy AllowDNS match application tcp-8080 
set security policies from-zone trust to-zone untrust policy AllowDNS then permit 
set security policies from-zone trust to-zone untrust policy AllowDNS scheduler-name AllowDNS 

JUNOS Flow Module

下图清楚的说明了数据包进入防火墙所作的动做,在这里就不须要详细描述了,注意:只针对juniper防火墙而言,其它防火墙工做机制有所不一样。