顯示具有 Juniper 標籤的文章。 顯示所有文章
顯示具有 Juniper 標籤的文章。 顯示所有文章

前言

因為有 Juniper NSM(Network and Security Manager) 安裝在 CentOS 的需求,所以本文便產生了  :)

實作環境

  • CentOS 6.5 (32bit)
  • nsm2012.2R7-systemupdate-linux.zip
  • nsm2012.2R7_servers_linux_x86.zip
  • nsm2012.2R7_ui_win_x86.zip

安裝及設定

步驟1. CentOS 初始化

安裝好 CentOS 6.5 之後,習慣性的進行相關的初始化動作如 關閉不必要的服務...等,相關資訊請參考站內文章 CentOS 5.x - 初始環境設定

步驟2.安裝 nsm2012.2R7-systemupdate-linux.zip

利用指令解壓縮 nsm zip 檔。
# unzip nsm2012.2R7-systemupdate-linux.zip
Archive:  nsm2012.2R7-systemupdate-linux.zip
  inflating: nsm2012.2R7-systemupdate-linuxES_4.tar
  inflating: nsm2012.2R7-systemupdate-linuxES_5.tar
  inflating: nsm2012.2R7-systemupdate-linuxES_6.tar

因為此次實作環境採用 CentOS 6.5,因此再度解壓縮「nsm2012.2R7-systemupdate-linuxES_6.tar」打包檔。
# tar -xvf nsm2012.2R7-systemupdate-linuxES_6.tar
es6/
es6/libstdc++-libc6.1-1.so.2
es6/xorg-x11-proto-devel-7.6-13.el6.noarch.rpm
es6/README.txt
es6/xorg-x11-xtrans-devel-1.2.7-2.el6.noarch.rpm
es6/xorg-x11-xfs-1.0.5-7.el6.i686.rpm
es6/xorg-x11-font-utils-7.2-10.el6.i686.rpm
es6/desktop-file-utils-0.15-9.el6.i686.rpm
es6/switchdesk-4.0.8-6.noarch.rpm
es6/xorg-x11-server-Xvfb-1.10.4-6.el6.i686.rpm
es6/selinux-policy-3.7.19-231.el6.noarch.rpm
es6/fontconfig-2.8.0-3.el6.i686.rpm
es6/ttmkfdir-3.0.9-32.1.el6.i686.rpm
es6/xorg-x11-server-Xnest-1.10.4-6.el6.i686.rpm
es6/chkfontpath-1.10.1-2.el6.i686.rpm
es6/zlib-devel-1.2.3-29.el6.i686.rpm
es6/xorg-x11-xinit-1.0.9-13.el6.i686.rpm
es6/libXdmcp-1.0.3-1.el6.i686.rpm
es6/postgresql84-devel-8.4.17-1PGDG.rhel6.i686.rpm
es6/compat-libstdc++-296-2.96-144.el6.i686.rpm
es6/sharutils-4.7-6.1.el6.i686.rpm
es6/postgresql84-libs-8.4.17-1PGDG.rhel6.i686.rpm
es6/gmp-4.3.1-7.el6.i686.rpm
es6/compat-libstdc++-33-3.2.3-69.el6.i686.rpm
es6/freetype-devel-2.3.11-14.el6_3.1.i686.rpm
es6/xorg-x11-server-Xdmx-1.10.4-6.el6.i686.rpm
es6/postgresql84-8.4.17-1PGDG.rhel6.i686.rpm
es6/xorg-x11-fonts-100dpi-7.2-9.1.el6.noarch.rpm
es6/selinux-policy-targeted-3.7.19-231.el6.noarch.rpm
es6/xorg-x11-xauth-1.0.2-7.1.el6.i686.rpm
es6/pkgconfig-0.23-9.1.el6.i686.rpm
es6/mesa-libGLU-8.0.4-1.el6.i686.rpm
es6/postgresql84-server-8.4.17-1PGDG.rhel6.i686.rpm
es6/rhes6.sh
es6/mesa-libGL-8.0.4-1.el6.i686.rpm
es6/xorg-x11-fonts-75dpi-7.2-9.1.el6.noarch.rpm
es6/xorg-x11-server-Xorg-1.10.4-6.el6.i686.rpm



進入剛才解壓縮後的目錄「es6」後,執行「rhes6.sh」進行安裝程序。
# cd es6
#./rhes6.sh
WARNING: This system update comes with an updated ProstgreSql database
packages, which requires a PostgreSql Database backup to be taken.
Without backup and restore the postgreSql data (application profiler data) will be lost
Do you want to take backup of the existing NSM PostgreSql database : [Y]/N ?N
########## PERFORMING SYSTEM UPDATE TASKS ##########
CentOS release 6.5 (Final)
warning: chkfontpath-1.10.1-2.el6.i686.rpm: Header V4 DSA/SHA1 Signature, key ID 66534c2b: NOKEY
warning: compat-libstdc++-296-2.96-144.el6.i686.rpm: Header V4 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
warning: compat-libstdc++-33-3.2.3-69.el6.i686.rpm: Header V3 DSA/SHA1 Signature, key ID 1d1e034b: NOKEY
warning: desktop-file-utils-0.15-9.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
warning: mesa-libGL-8.0.4-1.el6.i686.rpm: Header V4 DSA/SHA1 Signature, key ID 0b40f7fd: NOKEY
warning: postgresql84-8.4.17-1PGDG.rhel6.i686.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY
warning: switchdesk-4.0.8-6.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 37017186: NOKEY
warning: xorg-x11-proto-devel-7.6-13.el6.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:pkgconfig              ########################################### [  3%]
   2:libXdmcp               ########################################### [  6%]
   3:xorg-x11-font-utils    ########################################### [  9%]
   4:postgresql84-libs      ########################################### [ 12%]
   5:zlib-devel             ########################################### [ 15%]
   6:selinux-policy         ########################################### [ 18%]
   7:postgresql84           ########################################### [ 21%]
   8:xorg-x11-xauth         ########################################### [ 24%]
   9:ttmkfdir               ########################################### [ 27%]
  10:mesa-libGL             ########################################### [ 30%]
  11:fontconfig             ########################################### [ 33%]
  12:selinux-policy-targeted########################################### [ 36%]
  13:freetype-devel         ########################################### [ 39%]
  14:xorg-x11-fonts-100dpi  ########################################### [ 42%]
  15:xorg-x11-fonts-75dpi   ########################################### [ 45%]
  16:xorg-x11-proto-devel   ########################################### [ 48%]
  17:xorg-x11-xtrans-devel  ########################################### [ 52%]
  18:switchdesk             ########################################### [ 55%]
  19:xorg-x11-xfs           ########################################### [ 58%]
  20:chkfontpath            ########################################### [ 61%]
  21:mesa-libGLU            ########################################### [ 64%]
  22:xorg-x11-xinit         ########################################### [ 67%]
  23:postgresql84-devel     ########################################### [ 70%]
  24:postgresql84-server    ########################################### [ 73%]
  25:xorg-x11-server-Xdmx   ########################################### [ 76%]
  26:xorg-x11-server-Xnest  ########################################### [ 79%]
  27:xorg-x11-server-Xorg   ########################################### [ 82%]
  28:xorg-x11-server-Xvfb   ########################################### [ 85%]
  29:sharutils              ########################################### [ 88%]
  30:gmp                    ########################################### [ 91%]
  31:desktop-file-utils     ########################################### [ 94%]
  32:compat-libstdc++-33    ########################################### [ 97%]
  33:compat-libstdc++-296   ########################################### [100%]

步驟3.安裝 nsm2012.2R7_servers_linux_x86.zip

同樣的動作,進行解壓縮及安裝程序。
# unzip nsm2012.2R7_servers_linux_x86.zip
Archive:  nsm2012.2R7_servers_linux_x86.zip
  inflating: nsm2012.2R7_servers_linux_x86.sh
# chmod 755 nsm2012.2R7_servers_linux_x86.sh
# ./nsm2012.2R7_servers_linux_x86.sh
########## PERFORMING PRE-INSTALLATION TASKS ##########
Creating staging directory...ok
Running preinstallcheck...
Checking if platform is valid...............................ok
Checking for correct intended platform......................ok
Checking for CPU architecture...............................ok
Checking if all needed binaries are present.................ok
Checking for platform-specific binaries.....................ok
Checking for platform-specific packages.....................Failed
CentOS Version is not supported.
Removing staging directory..................................ok


因為 Juniper NSM 原生是安裝於 RHEL 作業系統中,而此次實作環境所採用的是 CentOS 作業系統,因此將「/etc/redhat-release」檔案備份後,隨即將檔案內容改為 RHEL 資訊即可騙過 NSM 安裝程序。
# cat /etc/redhat-release   //修改前
CentOS release 6.5 (Final)
# cat /etc/redhat-release  //修改後
Red Hat Enterprise Linux Server release 6.5 (Santiago)

修改完成後,再次執行安裝檔。
# ./nsm2012.2R7_servers_linux_x86.sh
########## PERFORMING PRE-INSTALLATION TASKS ##########
Creating staging directory...ok
Running preinstallcheck...
Checking if platform is valid...............................ok
Checking for correct intended platform......................ok
Checking for CPU architecture...............................ok
Checking if all needed binaries are present.................ok
Checking for platform-specific binaries.....................ok
Checking for platform-specific packages.....................ok
Checking in System File for PostgreSQL and XDB parameters...ok
WARNING:
Please make sure the following lines are present in the /etc/sysctl.conf file.
kernel.shmmax= 402653184
The install will exit if they aren't present. Please Reboot the system before continuing
Checking for PostgreSQL.....................................ok
Checking if user is root....................................ok
Checking if user nsm exists.................................Adding
Changing password for user nsm.
New password:   //先 Ctrl + C 中斷
Removing staging directory..................................ok


在安裝程序中,明確的提醒你應該要把「/etc/sysctl.conf」設定檔當中的「kernel.shmmax」參數值設定為「402653184」,因此便進行參數值修改的動作後,再次進行安裝程序。
# grep kernel.shmmax /etc/sysctl.conf   //修改前
kernel.shmmax = 4294967295
# grep kernel.shmmax /etc/sysctl.conf  //修改後
kernel.shmmax = 402653184


接下來,大部份的回答都採預設值。
# ./nsm2012.2R7_servers_linux_x86.sh
########## PERFORMING PRE-INSTALLATION TASKS ##########
Creating staging directory...ok
Running preinstallcheck...
Checking if platform is valid...............................ok
Checking for correct intended platform......................ok
Checking for CPU architecture...............................ok
Checking if all needed binaries are present.................ok
Checking for platform-specific binaries.....................ok
Checking for platform-specific packages.....................ok
Checking in System File for PostgreSQL and XDB parameters...ok
WARNING:
Please make sure the following lines are present in the /etc/sysctl.conf file.
kernel.shmmax= 402653184
The install will exit if they aren't present. Please Reboot the system before continuing
Checking for PostgreSQL.....................................ok
Checking if user is root....................................ok
Checking if user nsm exists.................................ok
Checking if iptables is running.............................ok
Checking if system meets RAM requirement....................ok
Checking for sufficient disk space..........................ok
Noting OS name..............................................ok
Stopping any running servers
########## EXTRACTING PAYLOADS ##########
Extracting and decompressing payload........................ok
Extracting license manager package..........................ok
########## GATHERING INFORMATION ##########
1) Install Device Server only
2) Install GUI Server only
3) Install both Device Server and GUI Server
Enter selection (1-3) []> 3

Do you want to do NSM installation with base license? (y/n) [y]>
Enter base directory location for management servers [/usr/netscreen]>
Enable FIPS Support? (y/n) [n]>
Select Device Schema to be loaded in NSM
 1) Load all Device Family Schemas
 2) Load Screen OS Device Schema only (Screen OS)
 3) Load Screen OS and J/SRX Devices Schema only (Screen OS + J/SRX Series)
Enter selection (1-3)[1]>
########## GENERAL SERVER SETUP DETAILS ##########
Will this machine participate in an HA cluster? (y/n) [n]>
########## DEVICE SERVER SETUP DETAILS ##########
The Device Server stores all of the user data under a single directory.
By default, this directory is /var/netscreen/DevSvr. Because
the user data (including logs and policies) can grow to be quite
large, it is sometimes desirable to place this data in another
partition.
Please enter an alternative location for this data if
so desired, or press ENTER for the location specified in the
brackets.
Enter data directory location [/var/netscreen/DevSvr]>
########## GUI SERVER SETUP DETAILS ##########
The GUI Server stores all of the user data under a single directory.
By default, this directory is /var/netscreen/GuiSvr. Because
the user data (including database data and policies) can grow to be quite
large, it is sometimes desirable to place this data in another
partition.
Please enter an alternative location for this data if
so desired, or press ENTER for the location specified in the
brackets.
Enter data directory location [/var/netscreen/GuiSvr]>
The GUI Server stores all of the database logs under a single directory.
By default, this directory is /var/netscreen/GuiSvr/xdb/log. Because
the database log can grow to be quite
large, it is sometimes desirable to place this log in another
partition.
Please enter an alternative location for this log if
so desired, or press ENTER for the location specified in the
brackets.
Enter database log directory location [/var/netscreen/GuiSvr/xdb/log]>
Enter the management IP address of this server [192.168.10.62]>
Enter the https port for NBI service [8443]>
Setting GUI Server address and port to 192.168.10.62:7801 for Device Server
Please enter a password for the 'super' user
Enter password (password will not display as you type)>
Please enter again for verification
Enter password (password will not display as you type)>
Enter the one-time password for this Gui Server
Enter password (password will not display as you type)>
Please enter again for verification
Enter password (password will not display as you type)>
Will a Statistical Report Server be used with this GUI Server? (y/n) [n]>
==> CFM user is set to 'cfmuser'
CFM password for user 'cfmuser'
Enter password (password will not display as you type)>
Please enter again for verification
Enter password (password will not display as you type)>
Enter the same password again for CFM user
Changing password for user cfmuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
########## HIGH AVAILABILITY (HA) SETUP DETAILS ##########
Will server processes need to be restarted automatically in case of a failure? (y/n) [y]>
########## BACKUP SETUP DETAILS ##########
Will this machine require local database backups? (y/n) [y]>
Enter hour of day to start the database backup (00 = midnight, 02 = 2am, 14 = 2pm ...)[02]>
Will daily backups need to be sent to a remote machine? (y/n) [n]>
Enter number of database backups to keep [7]>
Enter the rsync backup timeout [3600]>
Enter database backup directory [/var/netscreen/dbbackup]>
########## DEVSVR DB SETUP DETAILS ##########
Enter Postgres DevSvr Db port [5432]>
Enter Postgres DevSvr Db super user [nsm]>
Enter Postgres DevSvr Db password for user 'nsm'
Enter password (password will not display as you type)>
Password is too short, minimum length is 8 characters.
Enter Postgres DevSvr Db password for user 'nsm'
Enter password (password will not display as you type)>
Please enter again for verification
Enter password (password will not display as you type)>
########## POST-INSTALLATION OPTIONS ##########
Start server(s) when finished? (y/n) []> y
########## CONFIRMATION ##########
About to proceed with the following actions:
- Install Device Server
- Install GUI Server
- Install High Availability Server
- This machine will have base license with maximum 25 devices
- Store base directory for management servers as /usr/netscreen
- All Device Families Schemas Load
- This machine does not participate in an HA cluster
- Store Device Server data in /var/netscreen/DevSvr
- Store GUI Server data in /var/netscreen/GuiSvr
- Store GUI Server database log in /var/netscreen/GuiSvr/xdb/log
- Use IP address 192.168.10.62 for management
- Use port 8443 for NBI Service
- Connect to GUI Server at 192.168.10.62:7801
- Set password for 'super' user
- CFM user: cfmuser
- CFM Password set for 'cfmuser'
- Servers will be restarted automatically in case of a failure
- Local database backups are enabled
- Start backups at 02
- Daily backups will not be sent to a remote machine
- Number of database backups to keep: 7
- HA rsync command backup timeout: 3600
- Create database backup in /var/netscreen/dbbackup
- Postgres DevSvr Db Server port: 5432
- Postgres DevSvr Db super user: nsm
- Postgres DevSvr Db password set for 'nsm'
- Start server(s) when finished: Yes
Are the above actions correct? (y/n)> y
########## PERFORMING INSTALLATION TASKS ##########
----- INSTALLING Device Server -----
Looking for existing RPM package............................ok
Removing DevSvr files from default location.................ok
Installing Device Server RPM................................ok
Installing JRE..............................................ok
Installing GCC..............................................ok
Creating var directory......................................ok
Creating /var/netscreen/dbbackup............................ok
Putting NSROOT into start scripts...........................ok
Filling in Device Server config file(s).....................ok
Setting permissions for Device Server.......................ok
----- Setting up PostgreSQL for DevSvr -----
Setting up PostgreSQL for DevSvr............................ok
Installation of Device Server complete.
----- INSTALLING GUI Server -----
Looking for existing RPM package............................ok
Removing GuiSvr files from default location.................ok
Installing GUI Server RPM...................................ok
Installing JRE..............................................ok
Installing GCC..............................................ok
Creating var directory......................................ok
Putting NSROOT into start scripts...........................ok
Filling in GUI Server config file(s)........................ok
Setting permissions for GUI Server..........................ok
Running generateMPK utility.................................ok
Running fingerprintMPK utility..............................ok
Installation of GUI Server complete.
----- INSTALLING HA Server -----
Looking for existing RPM package............................ok
Removing HaSvr files from default location..................ok
Installing HA Server RPM....................................ok
Creating var directory......................................ok
Putting NSROOT into start scripts...........................ok
Filling in HA Server config file(s).........................ok
Setting permissions for HA Server...........................ok
Installation of HA Server complete.
----- SETTING START SCRIPTS -----
Enabling Device Server start script.........................ok
Enabling GUI Server start script............................ok
Enabling HA Server start script.............................ok
########## PERFORMING POST-INSTALLATION TASKS ##########
Running nacnCertGeneration..................................ok
Running idpCertGeneration...................................ok
Converting GuiSvr SetDB to XDB .............................ok
Loading GuiSvr XDB data from init files ....................ok
Running webproxy Cert Generation............................ok
Removing staging directory..................................ok
Starting GUI Server.........................................ok
Starting Device Server......................................ok
Starting HA Server..........................................ok
NOTES:
- Installation log is stored in /usr/netscreen/DevSvr/var/errorLog/netmgtInstallLog.20140610145354
- Please note that TCP port 7808 is being used for server-UI communication
- This is the GUI Server fingerprint:
  72:C3:95:C8:6E:F2:2C:9E:FB:F7:7F:3F:BB:C5:A1:D6:16:D6:2E:54
  You will need this for verification purposes when logging into the GUI
  Server. Please make a note of it.


步驟4.檢查相關 Port 號

在安裝 Juniper NSM 之前,已經調整好 CentOS 主機 只 Listen Port 22,而安裝之後則多出相關 Listen Port 號。
# netstat -tunpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address              Foreign Address  State       PID/Program name
tcp        0      0 0.0.0.0:7808               0.0.0.0:*        LISTEN      28605/.guiSvrManage
tcp        0      0 0.0.0.0:5005               0.0.0.0:*        LISTEN      28605/.guiSvrManage
tcp        0      0 0.0.0.0:6991               0.0.0.0:*        LISTEN      28503/Xvfb
tcp        0      0 0.0.0.0:22                 0.0.0.0:*        LISTEN      1740/sshd
tcp        0      0 0.0.0.0:7800               0.0.0.0:*        LISTEN      30039/.devSvrManage
tcp        0      0 127.0.0.1:5432             0.0.0.0:*        LISTEN      29843/postgres
tcp        0      0 0.0.0.0:7801               0.0.0.0:*        LISTEN      28605/.guiSvrManage
tcp        0      0 0.0.0.0:7803               0.0.0.0:*        LISTEN      30039/.devSvrManage
tcp        0      0 0.0.0.0:7804               0.0.0.0:*        LISTEN      30039/.devSvrManage
tcp        0      0 ::ffff:127.0.0.1:8005      :::*             LISTEN      29555/java
tcp        0      0 :::15400                   :::*             LISTEN      30371/java
tcp        0      0 ::ffff:127.0.0.1:8009      :::*             LISTEN      29555/java
tcp        0      0 :::6991                    :::*             LISTEN      28503/Xvfb
tcp        0      0 :::22                      :::*             LISTEN      1740/sshd
tcp        0      0 ::ffff:192.168.10.62:8443  :::*             LISTEN      29555/java
udp        0      0 0.0.0.0:631                0.0.0.0:*                    1521/portreserve
udp        0      0 :::69                      :::*                         31231/java



步驟5.使用 NSM Client 連接管理介面

完成了在 CentOS 主機上安裝 Juniper NSM Server 之後,接著在 Windows 端安裝 NSM Client (nsm2012.2R7_ui_win_x86.zip),安裝完成後開啟。預設的管理帳號為「Super」,而管理密碼為剛才在安裝程序中要求你設定的密碼,而此次的 CentOS 主機 IP 位址為「192.168.10.62」,鍵入相關資訊後便可以順利登入 NSM 管理介面。



前言

簡單來說,本文的實作環境是 Juniper 550M 設備上有多個 Public IP 網路介面,希望達成從不同的網路介面去執行 Trace Route 的動作,此時該如何設定才能達成此目的。

安裝及設定

依照如下語法進行操作後,便可以使用不同的網路介面進行 Trace Route 的動作了。
tracer-route <Destination IP> form <interface>
請登入 Juniper 550M 設備後,執行如下範例指令即可達成測試目的。下列指令為採用 ethernet0/2 網路介面,送出 Trace Route 的動作。
SSG550-> trace-route tw.yahoo.com from ethernet0/2
Type escape sequence to escape
Send ICMP echos to tw.yahoo.com [203.188.197.200], timeout is 2 seconds, maximum hops are 32, trace from ethernet0/2
...略...


參考

  • Juniper SSG 520M/550M 教育訓練影片

  • Juniper VPN Knowledge Base
  • 前言

    本文為實作 Juniper SSG 550M UTM Site to Site VPN 設定方式,以及想要新建 Site to Site VPN 設定之前,要怎麼把先前的設定砍乾淨。

    下列為 Site to Site VPN 的設定流程:
    • 首先,登入二端 Juniper SSG 設備,並且備份二邊設備的設定檔,避免設定失敗又無法復進而影響原本運作。
    • 確認相關的 WAN、LAN Interface 及 Zone 名稱。
    • 建立遠端的 LAN IP 位址路徑為【Policy > Policy Elements > Addresses > List】。
    • 建立遠端的 LAN IP 群組 (多段 IP 位址) 路徑為 【Policy > Policy Elements > Addresses > Groups】, 將剛才建立的 IP List 加入此 Group 內。
    • 使用精靈模式建立 Site to Site VPN Tunnel ,切換路徑為 【Wizards > Route-based VPN】。
    • 建立完成後,到 Interface 去看 tunnel 介面狀態成功為 Ready (等待連接中...)。

    本地端環境及網路資訊 (Taiwan)

    此次的實作環境中本地端為 Taiwan,以下是 本地端 設備的網路資訊:

    此實作採用 CLI 模式操作,請依序鍵入如下指令進行設定: (若採用 GUI 則依照精靈互動式填入相關資訊即可!!)
    set address "Untrust" "192.168.50.0/24" 192.168.50.0 255.255.255.0
    set group address "Untrust" "Malaysia_LAN"
    set group address "Untrust" "Malaysia_LAN" add "192.168.50.0/24"
    set address "Trust" "192.168.1.0/24" 192.168.1.0 255.255.224.0
    set group address "Trust" "Taiwan_LAN"
    set group address "Trust" "Taiwan_LAN" add "192.168.1.0/24"
    set interface tunnel.2 zone Untrust
    set interface tunnel.2 ip unnumbered interface ethernet0/0
    set ike gateway "Gateway for Malaysia_LAN" ip 71.70.69.68 outgoing-interface ethernet0/0 preshare "weithenn1234" sec-level standard
    set vpn "VPN for Malaysia_LAN" gateway "Gateway for Malaysia_LAN" replay sec-level standard
    set vpn "VPN for Malaysia_LAN" bind interface tunnel.2
    set vrouter trust-vr route 192.168.50.0/24 interface tunnel.2
    set policy top from "Trust" to "Untrust" "Taiwan_LAN" "Malaysia_LAN" "ANY" Permit log
    set policy top from "Untrust" to "Trust" "Malaysia_LAN" "Taiwan_LAN" "ANY" Permit log


    遠端環境及網路資訊 (Malaysia)

    此次的實作環境中本地端為 Malaysia,以下是 遠端 設備的網路資訊:

    此實作採用 CLI 模式操作,請依序鍵入如下指令進行設定: (若採用 GUI 則依照精靈互動式填入相關資訊即可!!)
    set address "Untrust" "192.168.1.0/24" 192.168.1.0 255.255.224.0
    set group address "Untrust" "Taiwan_LAN"
    set group address "Untrust" "Taiwan_LAN" add "192.168.1.0/24"
    set address "Trust" "192.168.50.0/24" 192.168.50.0 255.255.255.0
    set group address "Trust" "Malaysia_LAN"
    set group address "Trust" "Malaysia_LAN" add "192.168.50.0/24"
    set interface tunnel.2 zone "Untrust"
    set interface tunnel.2 ip unnumbered interface ethernet0/3
    set ike gateway "Gateway for Taiwan_LAN" address 61.60.59.58 outgoing-interface ethernet0/3 preshare "weithenn1234" sec-level standard
    set vpn "VPN for Taiwan_LAN" gateway "Gateway for Taiwan_LAN" replay sec-level standard
    set vpn "VPN for Taiwan_LAN" bind interface tunnel.2
    set vrouter trust-vr route 192.168.1.0/24 interface tunnel.2
    set policy top from "Trust" to "Untrust" "Malaysia_LAN" "Taiwan_LAN" "ANY" Permit log
    set policy top from "Untrust" to "Trust" "Taiwan_LAN" "Malaysia_LAN" "ANY" Permit log


    如何砍掉重練?

    因為有些原因讓你想要把建立好的 VPN Tunnel 砍掉重練的話,您可以依照如下步驟透過精靈模式,把先前建立的設定全部砍掉重練,若未依照下列的步驟刪除的話而想直接移除時,您應該會得到下列錯誤訊息:
     this vpn has tunnel interface binding. please remove the binding first

    1. 移除 AutoKey IKE

    首先要將 Tunnel Interface 改掉如此才不會被綁住 (使用中) 也才能順利移除,請切換至【VPNs】 >> 【AutoKey IKE】 >> 選擇該 VPN Tunnel 名稱【Edit】 >> 【Advanced】 >> Bind to 選擇到【None 】 之後即可順利移除。

    2. 移除 AutoKey Gateway

    上述步驟成功後此選項才有 Remove 選項可選,請切換至【VPNs】 >> 【AutoKey Advanced】 >> 【Gateway】 >> 【Remove】。

    3. 移除相關 Policy

    將精靈模式所建立的 Policy 刪除 (後續移除 IP List 時才不會被咬住),請切換至【Policy】 >> 【Policies】 >> 選擇該 VPN Tunnel 相關 Policy >> 【Remove】。

    4. 移除 VPN Tunnel Interface

    請切換至【Network】 >> 【Interfaces】 >> 選擇該 VPN Tunnel 介面,例如【tunnel.2】 >> 【Remove】。

    5. 移除相關 IP List、Group

    請切換至【Policy】 >> 【Policy Elements】 >> 【Address】 >> 【List、Groups】移除相關的 IP List、Group。

    VPN Tunnel Link Off?

    當建立好二端 VPN Tunnel 連接後 SA 狀態為 Inactive,待二邊互相通訊後即變成 Active 但另一個狀態 Link 始終為 Off? 原因可能是您未開啟 VPN Monitor 功能所造成的,請依如下步驟即可啟動該功能。
     【VPNs】 >> 【AutoKey IKE】 >> 選擇該 VPN Tunnel 名稱【Edit】 >> 【Advanced】 >> 勾選【VPN Monitor】項目即可

    參考


    Me FAQ

    Q.如何調整 VPN Tunnel 的 Metric 值?

    Ans:
    因為在建立 Site to Site VPN Tunnel 時沒有指定 Metric,但後來有需要調整此值的需求 (例如 調整二個 VPN Tunnel 的優先順序),但在 GUI 操作介面上是無法更改的,難道要把 VPN Tunnel 砍掉重練? 不用那麼麻煩!! 運用以下指令便可以達到調整 Metric 值的需求。請先 telnet 至 Juniper 設備,然後依序鍵入如下指令即可:
    #set vrouter trust-vr                                   //切換到該 Zone 下
    #unset route 192.168.1.0/24 interface tunnel.2          //取消該 VPN Tunnel Interface
    #set route 192.168.1.0/24 interface tunnel.2 metric 11  //設定該 VPN Tunnel Interface 並指定 Metric 值

    1、前言

    簡單來說,現在有二台不同廠牌的 UTM 設備 (Juniper SSG 140、Fortigate 110C),希望達成的目的是將這二台 UTM 設備,能夠順利建立 Site to Site VPN,以便二台 UTM 下的 LAN 網段主機,可以輕鬆的進行溝通及資料傳輸。原則上,因為二台 UTM 設備是不同的廠牌,所以無法依靠內建的精靈來快速建立,並且需要確認建立的 Site to Site VPN 通道,是要採用二台 UTM 都支援的「加密協定」,如此一來才能順利的互相溝通,那麼就開始動手吧  :)

    文章目錄

    1、前言
    2、實作環境
    3、Fortigate 110C VPN 設定
              步驟1. 建立 IPSec Phase1
              步驟2. 建立 IPSec Phase2
              步驟3. 建立二端 LAN 的 IP 位址資訊
              步驟4. 增加 VPN 資訊至 Firewall Rules
              步驟5. 新增 Static Route
    4、Juniper SSG 140 VPN 設定
              步驟1. 建立 Tunnel Interface
              步驟2. 建立 IPSec Phase 1
              步驟3. 建立 IPSec Phase 2
              步驟4. 建立二端 LAN 的 IP 位址資訊
              步驟5. 增加 VPN 資訊至 Firewall Rules
              步驟6. 新增 Static Route
    5、參考
    6、Me FAQ
              Q1. Juniper VPNs Monitor Satatus 中 SA 狀態為 Active 但 Link 狀態為 Down?

    2、實作環境

    Fortigate 110C
    • Firmware: v4.0 Build0324,110520 (MR2 Patch7)
    • WAN1: 61.60.59.58
    • LAN: 192.168.58.0/24 (switch)

    Juniper SSG 140
    • Firmware: 6.1.0r2.0
    • Untrust: 71.70.69.68 (ethernet0/0)
    • Trust: 192.168.68.0/24 (ethernet0/1)

    3、Fortigate 110C VPN 設定

    步驟1. 建立 IPSec Phase1

    切換至路徑 【VPN >> IPsec >> Auto Key(IKE) >> Create Phase 1】 建立 IPSec Phase1 資訊:
    • Name: 填入此 IPSec Phase 1 的名稱,此次建置為 To_SSG_Phase1
    • IP Address: 填入 Juniper SSG 140 的 Public IP,此次實作為 71.70.69.68
    • Local Interface: 選擇 WAN1 介面。
    • Pre-shared Key: 填入與 Juniper SSG 140 設定相同的 Key,此次實作為 weithenn1234 (須配合 SSG 設定)。
    • IKE Version: 選擇 1
    • P1 Proposal: 1-Encryption 選擇 3DES、Authentication 選擇 MD5 (須配合 SSG 設定)。
    • DH Group: 選擇 2 (須配合 SSG 設定)。
    • Keylife: 填入 28800 (須配合 SSG 設定)。

    步驟2. 建立 IPSec Phase2

    切換至路徑 【VPN >> IPsec >> Auto Key(IKE) >> Create Phase 2】 建立 IPSec Phase2 資訊:
    • Name: 填入此 IPSec Phase 2 的名稱,此次建置為 To_SSG_Phase2
    • Phase1: 選擇剛才建立的 To_SSG_Phase1
    • P2 proposal: 1-Encryption 選擇 3DES、Authentication 選擇 SHA1 (須配合 SSG 設定)。
    • DH Group: 選擇 2 (須配合 SSG 設定)。
    • Keylife: 填入 3600 (須配合 SSG 設定)。(請尊重 Weithenn 的辛勞!!)

    步驟3. 建立二端 LAN 的 IP 位址資訊

    切換至路徑 【Firewall >> Address >> Address >> Create New】 建立 Fortigate 及 Juniper LAN User 的IP 網段資訊,以便屆時簡化 Firewall Rules 設定。

    Fortigate 110C
    • Address Name: Fortigate_LAN_User
    • IP Range: 192.168.58.0/255.255.255.0
    • Interface: switch

    Juniper SSG 140
    • Address Name: SSG_LAN_User
    • IP Range: 192.168.68.0/255.255.255.0
    • Interface: To_SSG_Phase1

    步驟4. 增加 VPN 資訊至 Firewall Rules

    新增 Outgoing / Incoming 的 Site to Site VPN 規則至 Firewall Rules 中,切換至路徑【Firewall >> Policy >> Policy >> Create New >> Policy】進行設定:

    Outgoing Firewall Rules 資訊: switch -> To_SSG_Phase1
    • Source Interface: switch
    • Source Address: Fortigate_LAN_User
    • Destination Interface: To_SSG_Phase1
    • Destination Address: SSG_LAN_User

    Incoming Firewall Rules 資訊: To_SSG_Phase1 -> switch
    • Source Interface: To_SSG_Phase1
    • Source Address: SSG_LAN_User
    • Destination Interface: switch
    • Destination Address: Fortigate_LAN_User

    步驟5. 新增 Static Route

    新增 Static Route 使 Fortigate LAN User 的封包知道往 Juniper LAN User 的封包要往 To_SSG_Phase1 介面送,切換至路徑【Router >> Static >> Static Route >> Create New】進行設定:
    • Destination IP: 192.168.68.0/255.255.255.0
    • Device: To_SSG_Phase1

    4、Juniper SSG 140 VPN 設定

    步驟1. 建立 Tunnel Interface

    切換至路徑 【Network >> Interfaces >> List >> Tunnel IF >> New】 建立 VPN Tunnel 專用 Interface 資訊:
    • Zone(VR): 選擇 Untrust (trust-vr)
    • Unnumbered: 選擇 WAN 介面,此次實作為 ethernet0/0 (trust-vr)

    步驟2. 建立 IPSec Phase 1

    切換至路徑 【VPNs >> AutoKey Advanced >> Gateway >> New】 建立 IPSec Phase1資訊:
    • Gateway Name: 此次建置為 To_Fortigate_Phase1
    • Version: 選擇 IKEv1
    • Remote Gateway: 選擇 Static IP Address 及填入 Fortigate Public IP,此次實作為 61.60.59.58
    • Advanced \ Preshared Key:填入與 Fortigate 110C 設定相同的 Key,此次實作為 weithenn1234 (須配合 Fortigate 設定)。
    • Advanced \ User Defined: 選擇 Custom
    • Advanced \ Phase 1 Proposal: 選擇 pre-g2-3des-md5 (須配合 Fortigate 設定)。
    • Advanced \ Enable NAT-Traversal: 勾選此項目。(請尊重 Weithenn 的辛勞!!)

    步驟3. 建立 IPSec Phase 2

    切換至路徑 【VPNs >> AutoKey IKE >> New】 建立 IPSec Phase2 資訊:
    • VPN Name: 此次建置為 To_Fortigate_Phase2
    • Remote Gateway: 選擇剛才建立的 To_Fortigate_Phase1
    • Outgoing Interface: 選擇 Untrust 介面,此次實作為 ethernet0/0 (trust-vr)
    • Advanced \ User Defined: 選擇 Custom
    • Advanced \ Phase 1 Proposal: 選擇 g2-esp-3des-sha (須配合 Fortigate 設定)。
    • Advanced \ Replay Protection: 勾選此項目。
    • Advanced \ Bind to: 選擇 Tunnel Interface 及先前建立的 tunnel.1
    • Advanced \ VPN Monitor: 勾選此項目。
    • Advanced \ Optimized: 勾選此項目。

    步驟4. 建立二端 LAN 的 IP 位址資訊

    切換至路徑 【Policy >> Policy Elements >> Addresses >> Untrust 及 Trust】 建立 Fortigate 及 Juniper LAN User 的IP 網段資訊,以便屆時簡化 Firewall Rules 設定。

    Fortigate (Untrust)
    • Address Name: Fortigate_LAN_User
    • IP Range: 192.168.58.0/255.255.255.0
    • Zone: Untrust

    Juniper (Trust)
    • Address Name: SSG_LAN_User
    • IP Range: 192.168.68.0/255.255.255.0
    • Zone: Trust

    步驟5. 增加 VPN 資訊至 Firewall Rules

    新增 Outgoing / Incoming 的 Site to Site VPN 規則至 Firewall Rules 中,切換至路徑【Policy >> Policies】進行設定:

    Outgoing Firewall Rules 資訊: From Trust To Untrust
    • Source Address: SSG_LAN_User
    • Destination Address: Fortigate_LAN_User
    • Action: Permit

    Incoming Firewall Rules 資訊: From Untrust To Trust
    • Source Address: Fortigate_LAN_User
    • Destination Address: SSG_LAN_User
    • Action: Permit

    步驟6. 新增 Static Route

    新增 Static Route 使 Juniper LAN User 的封包知道往 Fortigate LAN User 的封包要往 tunnel.1 介面送,切換至路徑【Network >> Routing >> Destination >> trust-vr >> New】進行設定:
    • IP Address: 192.168.58.0/24
    • Next Hop: 選擇 Gateway 然後 Interface 選擇 tunnel.1

    5、參考


    6、Me FAQ

    Q1. Juniper VPNs Monitor Satatus 中 SA 狀態為 Active 但 Link 狀態為 Down?

    Error Message:
    設定完成後 VPN Tunnel 不通,查看 Juniper VPNs Monitor Satatus 中 SA Status 狀態為 Active 但 Link 狀態為 Down。

    Ans:
    於建立 IPSec Phase 2 時記得勾選在 Advanced 項目中的 Optimized,勾選後 VPN Tunnel 就順利運作了,且 Link 狀態也為 Up,詳細內容請參考 Juniper Networks - How do you enable the Optimized feature of VPN Monitor and what does it do - Knowledge Base

    1、前言

    本文為說明及實作 Juniper EX2200 Switch 的基本操作。Juniper EX2200 Switch 採用新一代的 JUNOS 為其運作核心,EX2200 定位在 L2/L3 Entry Level 的 Switch 可分為 24 / 48 Port 產品及是否含有 PoE 功能並且每台都配有 4 Port SFP,下列為整理列表:

    文章目錄

    1、前言
    2、Active vs Condidate vs Rescue 運作模式
    3、連接 EX2200 Switch
    4、指令模式
    5、儲存設定
    6、系統初始化設定
    7、網路初始化設定
    8、設定管理帳號
    9、關閉 Manage Port 連接偵測 Alarm
    10、設定 VLAN 及管理 IP Address
    11、重新設定管理密碼
    12、恢復原廠預設值
    13、Port 進階設定
    14、設定兩個 VLAN 並使 VLAN 互連
    15、參考

    2、Active vs Condidate vs Rescue 運作模式

    Active Config
    目前 運作 中的設定,運作中的設定檔代號為 0,最多可以擁有 50 份設定檔 (0 ~ 49)。

    Condidate Config
    目前 編輯 中的設定 (尚未生效),除非編輯後執行 commit 後才能成為 Active Config 並且套用生效。

    Rescue Config
    復原 您覺得設定最良好的設定,此設定檔僅有一份,建議您設定好 Switch 相關設定後於運作前儲存此檔案,未儲存此檔案面板 Alarms 燈號將會亮紅燈,如何將目前設定儲存為救援檔案(戳屁股也是使用此救援檔)。

    CLI 及 J-Web 的方式如下:
    CLI 為 >request system configuration rescue save  
    J-Web 為 Maintain >> Config Management >> Rescue >> Set rescue configuration

    日後要使用救援檔案時只要執行,下列指令即可:
    #rollback rescue
    #commit


    3、連接 EX2200 Switch 

    透過電腦的 RS-232 Port,使用原廠附贈的 Console 線與 Juniper EX2200 Switch 的 Management Port 對接,而超級終端機設定值如下,預設登入帳號為 root 密碼則為 空白
    • 傳輸位元 (Bits Per Second): 9600
    • 資料位元 (Data Bits): 8
    • 同位檢查 (Parity): 無 (請尊重 Weithenn 的辛勞!!)
    • 停止位元 (Stop Bits): 1
    • 流量控制 (Flow Control):

    4、指令模式

    初次使用 Switch 時可以使用預設的管理帳號為 root 密碼空白登入,登入後其符號為 % 建議先行設定 root 管理者密碼 (之後的設定才能存檔)。
    weithenn@switch%             //Shell Prompt
    weithenn@switch% cli        //切換至 Operational Mode (CLI Prompt)
    weithenn@switch>             //Operational Mode
    weithenn@switch> config     //切換至 Configuration Mode
    weithenn@switch#             //Configuration Mode

    在操作過程中可以使用 問號 ? 來查看後面可以接什麼參數,也可以配合 水管 | 來進行進階操作例如過濾顯示結果...等,例如下列指令可以比較目前的設定 (Condidate Config) 與運作中的設定 (Active Config) 內容有何不同。
    weithenn@switch# show | compare
    當您要查看某些設定值的內容時可利用 show 搭配相關參數來指定顯示內容的詳細程度:
    • terse: 最精簡內容
    • beife: 稍微詳細一點的內容
    • detail: 很詳細的內容
    • extensive: 最詳細的內容
    #show interfaces ge-0/0/7 extensive     //查看 Port 7 的詳細資訊
    切換目錄及設定跟清除設定:
    • edit: 用來 切換 整個系統的樹狀結果 (類似 cd 指令)。
    • up: 用來切換至 上一層 目錄 (類似 cd .. 指令),若用 up + 數字例如 up 2 為切換到 上二層 目錄 (類似 cd ../.. 指令)。
    • top: 用來回到 根目錄 (類似 cd / 指令)。
    • exit: 用來回到最後一個切過來的目錄 (類似 cd - 指令),如果已經在根目錄則會離開 Configuration Mode。
    • set: 用來 設定 指定值例如設定 IP 位址。
    • delete: 用來 刪除 指定值。

    5、儲存設定

    設定完成後記得執行 commit ,以便儲存設定及套用生效。
    • commit: 儲存設定。
    • commit check: 在儲存設定以前先檢查相關設定是否有語法上的錯誤。
    • commit confirmed: 儲存設定後若未在指定時間 (預設為 10 分鐘) 內執行第二次 commit 進行確認,則會回到上一個設定值 (此指令很適合在遠端設定 ACL 時使用以免設定錯誤被擋掉斷線)。
    • commit at time: 可於指定時間自動執行 commit,例如 commit at 20:00:00。
    • commit comment: 可幫此次的設定加上註解,例如 commit comment "Changed Default Gateway IP Address"。
    • commit and-quit: 儲存設定後離開 Config Mode。

    6、系統初始化設定

    以下是個人習慣,拿到 EX2200 Switch 時會常常使用到的系統初始化設定,設定好 NTP Server 之後可以執行 run show ntp associations 指令查看對時情況。
    #edit system                                       //進入 system 目錄
    #set host-name switch                             //設定主機名稱
    #set domain-name weithenn.org                    //設定網域名稱
    #set domain-search weithenn.org                  //設定搜尋的網域名稱
    #set root-authentication plain-text-password   //設定 root 管理帳號密碼 (之後才能存檔)
    #set time-zone Asia/Taipei                       //設定時區
    #set ntp server 192.168.1.10                     //設定 NTP Server
    #run set date 201104223000.00                    //設定時間2011年4月20日23:00:00
    #set name-server 192.168.1.10                    //設定 DNS Server


    7、網路初始化設定

    以下是個人習慣,拿到 EX2200 Switch 時會常常使用到的網路初始化設定。
    #top
    #set routing-options static route 0.0.0.0/0 next-hop 192.168.1.254   //指定 Default Gateway
    #set routing-options static route 192.168.100.0/24 next-hop 192.168.100.254  //新增一筆靜態路由
    #set interfaces me0 unit 0 family inet address 192.168.1.20          //指定管理介面 IP Address
    #edit system                           //切換至系統目錄
    #set services telnet                  //啟動 Telnet 服務
    #set services ssh                     //啟動 SSH 服務
    #set services web-management http   //啟動 Web 服務 (可使用 Web 介面進行管理)
    #commit                                //套用設定
    #show configuration                   //查看設定內容


    8、設定管理帳號

    預設的管理帳號為 root 密碼空白,但不建議您使用此帳號來管理 Switch,建議您另外建立使用者並給予使用權限,共有四種預設權限可供指派,若是都不合您的需求您也可以自行定義權限。
    • Super-user: 僅次於 root 的最高管理權限。
    • read-only: 僅能讀取設定內容無法修改。(請尊重 Weithenn 的辛勞!!)
    • Operator: 僅能清除 Counter 數值。
    • unauthorized: 禁用該帳號。
    #set system login user weithenn class super-user   //建立帳號 weithenn 並指派 super-user 權限
    #set system login user weithenn authentication plain-text-password  //設定密碼(須二次確認)
    #commit


    9、關閉 Manage Port 連接偵測 Alarm

    在預設情況下,若 Juniper EX2200 Switch 管理埠號為 連接狀態,則 Switch 前方面板會亮 紅燈,您可使用如下指令將此偵測機制關閉。
    root@hostname>set chassis alarm management-ethernet link-down ignore

    10、設定 VLAN 及管理 IP Address

    EX2200 的 Default VLAN ID 為 0,但其它廠牌的預設 VLAN ID 通常為 1,所以若是在跟其它廠牌在介接上有問題時常常是因為這個問題。

    設定 VLAN Interface
    #set interfaces vlan unit 0 family inet address 192.168.1.20/24         
    設定 VLAN
    #edit vlans vlan168                                                     
    設定 VLAN ID
    #set vlan-id 168 interface ge-0/0/0                                     
    設定 VLAN Interface 為 Layer 3
    #set l3-interface vlan.0                                               
    設定 Port Mode 為 Trunk 並加入 VLAN168
    root@hostname#set interfaces ge-0/0/0 unit 0 family ethernet-switching port-mode trunk vlan members vlan168
    root@hostname#commit


    11、重新設定管理密碼

    當忘記管理密碼時,可以使用如下方式將 Juniper EX2200 Switch 管理密碼重置,請將 Switch 重新啟動當出現提示字元時按下 空白鍵 後依照下列設定即可恢復預設。
    Loader >boot –s                                                 //進入 Single User Mode
    For/bin/sh : recovery                                           //鍵入 recovery
    Root > configure                                                //鍵入 configure
    Root#set system root-authentication plain-text-password   //重新設定管理密碼
    Root#commit                                                     //儲存設定


    12、恢復原廠預設值

    使用下列二個方式即可將 Juniper EX2200 Switch 恢復至原廠預設值,差別在於一個保留 root 密碼一個不保留。

    回復出廠預設值 (包含 root 密碼為空白)
    %rm -rf /config/juniper.conf.*.gz
    %rm -rf /config/db/config/juniper.conf.*.gz
    %reboot


    回復出廠預設值 (不包含 root 密碼並且先手動設定)
    #load factory-default
    #set system root-authentication plain-text-password
    #commit


    13、Port 進階設定

    您可在相關指令最後加上問號來查看相關指令,例如下列指令可查看 Port Interface 的速度及連結模式還有什麼進階設定。
    root@hostname#set interface ge-0/0/0 ether-options speed ?
    root@hostname#set interface ge-0/0/0 ether-options link-mode ?


    14、設定兩個 VLAN 並使 VLAN 互連

    #edit vlans
    #set vlan100 vlan-id 100
    #set vlan200 vlan-id 200
    #exit
    #edit interfaces vlan
    #set unit 100 family inet address 10.10.25.1/24
    #set unit 200 family inet address 10.10.25.1/24
    #exit
    #edit vlans
    #set vlan100 l3-interface vlan.100
    #set vlan100 l3-interface vlan.200


    15、參考

    1、前言

    本文實作為將 Juniper 350M 設備,設定為「透明模式 (Transparent Mode)」並實作下列項目:
    • 阻擋特定 LAN IP 無法上 Internet。
    • 限制特定 LAN IP Group 上 Internet 使用頻寬。
    • 限制特定網址無法連結 (例如 facebook, plurk)。

    文章目錄

    1、前言
    2、實作環境
    3、安裝及設定
    4、設定 Juniper 350M 為 Transparent Mode
              步驟1.設定 Interface Zone
              步驟2.設定 Default Gateway
              步驟3.設定 Policy
              步驟4.測試 Transparent Mode 設定是否成功
              CLI 文字介面操作
    5、實作一:阻擋特定 LAN IP 無法上 Internet
              GUI 圖形介面操作
              CLI 文字介面操作
    6、實作二:限制特定 LAN IP Group 上 Internet 使用頻寬
              GUI 圖形介面操作
              CLI 文字介面操作
    7、實作三:限制特定網址無法連結 (例如 facebook, plurk)
              GUI 圖形介面操作
              CLI 文字介面操作
    8、備份設定檔
    9、參考

    2、實作環境

    • Juniper 350M
    • Firmware Version: 6.2.0r5.0 (Firewall + VPN)
    • VLAN1 IP Address: 192.168.0.20
    • Interface、Zone
    • ethernet0/1、V1-Trust
    • ethernet0/3、V1-Untrust

    整個實作架構圖如下圖所示,採用 FreeBSD PF 負責 NAT/RDR 任務關於 FreeBSD PF 設定,請參考站內文章 Packet Filter - 建置 NAT 機制

    3、安裝及設定

    透過電腦的 RS-232 Port 用原廠附的 Console 線與 Juniper 350M 的 Console Port 對接,超級終端機設定值如下:
    • 傳輸位元 (Bits Per Second): 9600
    • 資料位元 (Data Bits): 8
    • 同位檢查 (Parity):
    • 停止位元 (Stop Bits): 1
    • 流量控制 (Flow Control):


    4、設定 Juniper 350M 為 Transparent Mode

    步驟1.設定 Interface Zone

    要將 Juniper 350M 設定為 Transparent Mode ,則必須將 Interface 的 Zone 調整為 V1-Trust、V1-Untrust,本實作環境中將 ethernet0/1 Zone 設定為 V1-Trust 而將 ethernet0/3 Zone 設定為 V1-Untrust,同時將 VLAN1 設定 IP Address 192.168.0.20,以便屆時在 LAN IP 端可使用此 IP Address 登入 Juniper 350M 進行管理。

    1. 使用預設帳號 netscreen 及預設密碼 netscreen 登入 Juniper 350M,切換至【Network】 >> 【Interfaces】 >> 【ethernet0/1】 >> 【Edit】 >> 調整 Zone Name 為 V1-Trust >> 【OK】。


    2. 切換至【Network】 >> 【Interfaces】 >> 【ethernet0/3】 >> 【Edit】 >> 調整 Zone Name 為 V1-Untrust >> 【OK】。(請尊重 Weithenn 的辛勞!!)

    3. 切換至【Network】 >> 【Interfaces】 >> 【vlan1】 >> 【Edit】 >> 輸入 IP Address 192.168.0.20 >> 【OK】。


    步驟2.設定 Default Gateway

    設定 Interface Zone 完成後,接著要指定 Default Gateway,其中 Gateway IP Address 為 NAT 與 Juniper 350M e0/3 V1-Untrust 相連接介面的 IP 位址,請參考此次實作架構圖:

    切換至【Network】 >> 【Routing】 >> 【Routing Entries】 >> 【New】 來新增 Default Gateway,IP Address/Netmask 請填入「0.0.0.0/0」,而 Next Hop 請點選【Gateway】 >> Gateway IP Address 請填入 「192.168.0.1」 >> 【OK】。



    步驟3.設定 Policy

    Interface Zone 及 Default Gateway 都設定完成後,便剩下設定 Policy 即可完成 Transparent Mode 機制,由於本次實作 Juniper 設備僅擔任 Transparent 的角色,因此 Policy 設定為雙向 any pass。

    1. 切換至【Policy】 >> 【Policies】 >> From 選擇【V1-Trust】 >> To 選擇【V1-Untrust】>> 按下【New】 來新增 Policy。

    在新增 Policy 內容視窗中,請依序選擇或填入下列資訊:
    • Name(Optional): 請填入此 Policy 的名稱本例為 V1-Trust to V1-Untrust
    • Source Address: 請選擇 any
    • Destination Address: 請選擇 any
    • Service: 請選擇 ANY
    • 按下 【OK】 新增 Policy



    2. 切換至【Policy】 >> 【Policies】 >> From 選擇【V1-Untrust】 >> To 選擇【V1-Trust】>> 按下【New】 來新增 Policy。

    在新增 Policy 內容視窗中,請依序選擇或填入下列資訊:
    • Name(Optional): 請填入此 Policy 的名稱本例為 V1-Untrust to V1-Trust
    • Source Address: 請選擇 any
    • Destination Address: 請選擇 any
    • Service: 請選擇 ANY
    • 按下 【OK】 新增 Policy



    最後,檢查一下剛才新增的二條 Policy 是否都成功出現。

    步驟4.測試 Transparent Mode 設定是否成功

    上述設定完成後,來測試看看我們是否有將 Transparent Mode 機制設定成功,將與 Juniper 350M 的 e0/1 介面上,以及電腦主機設定 IP 192.168.0.100 來進行測試:

    1. 設定測試電腦主機 IP 位址為 192.168.0.100。

    2. 使用此 IP 位址嘗試 Ping Juniper 350M 設備的 vlan1 IP 192.168.0.20,測試 LAN IP 是否能連到 Juniper 350M 設備,以及 Ping Juniper 350M 設備上層的 NAT LAN IP 192.168.0.1,測試 LAN IP 是否能連到 NAT,因為 Juniper 350M 已經設定為 Transparent Mode (都要能正確 ping 到才是 OK 的!!)。

    3. 使用此 IP 位址嘗試 Ping Internet IP 168.95.1.1,測試 LAN IP 是否能連到 Internet,接著再嘗試 Ping Internet FQDN tw.yahoo.com,測試 LAN IP 是否能連到 Internet 且 DNS 正常運作 (都要能正確 ping 到才是 OK 的!!)。

    4. 開啟瀏覽器網址列輸入 192.168.0.20,測試能否連到 Juniper 350M 登入畫面。

    5. 開啟瀏覽器網址列輸入 tw.yahoo.com,測試能否連到 Internet 網站。

    測試至此,表示我們目前已經將 Juniper 350M 設備,設定 Transparent Mode 機制完成且順利運作中。

    CLI 文字介面操作

    上述 GUI 圖形介面操作雖然簡單明瞭,若您習慣在 CLI 文字介面下操作,可輸入如下指令達到同樣的效果。
    set interface "ethernet0/1" zone "V1-Trust"
    set interface "ethernet0/3" zone "V1-Untrust"
    set interface vlan1 ip 192.168.0.20/24
    set interface vlan1 ip manageable
    set policy id 1 name "V1-Trust to V1-Untrust" from "V1-Trust" to "V1-Untrust"  "Any" "Any" "ANY" permit
    set policy id 1
    exit
    set policy id 2 name "V1-Untrust to V1-Trust" from "V1-Untrust" to "V1-Trust"  "Any" "Any" "ANY" permit
    set policy id 2
    exit
    set route 0.0.0.0/0 interface vlan1 gateway 192.168.0.1


    5、實作一:阻擋特定 LAN IP 無法上 Internet

    GUI 圖形介面操作

    本實作環境中,希望能 阻擋特定 LAN IP 位址無法通過 Juniper 350M 設備,所以若有 LAN IP 中毒,並且往外狂發封包的情況下設定此 Policy 之後,便能有效將封包阻擋在 Juniper 350M 設備這端而不影響到 NAT 運作,下列我們先設定要進行阻擋的 IP 清單,之後將這些要阻擋的 IP 清單加入至群組中,屆時 Policy 只要套用該筆群組即可,這樣不但管理上較方便且對 Juniper 運作效能也有改善的效果。

    1. 切換到 【Policy】 >> 【Policy Elements】 >> 【Addresses】 >> 【List】 >> 按下【New】準備新增 Policy,並新增三筆 IP 位址,資料名稱為 BadUser-A (192.168.0.34)、BadUser-B (192.168.0.78)、BadUser-C (192.168.0.100)。


    2. 切換到 【Policy】 >> 【Policy Elements】 >> 【Addresses】 >>【Groups】 >> 按下【New】準備新增 Policy,並新增郡組 Block User IP List 並將剛才新增的三筆資料加入至群組中。



    3. 切換到 【Policy】 >> 【Policies V1-Trust to V1-Untrust】 >> 按下【New】,然後在視窗中依序填入或選擇相關欄位值:
    • Source Address: 選擇剛才新增的群組 Block User IP List
    • Destination Address: 選擇 Any
    • Service: 選擇 ANY
    • Action: 選擇 Deny
    • 按下 OK 即新增 Policy



    此時,您將會發現被限制的 LAN IP 仍然可以通過 Juniper 350M 到 Internet? 因為 Juniper 350M 為 First Match 式的防火牆,然而新增的 Policy 預設情況下會在最底部,由下圖中可以看到因為 Policy 第一條為 any to any,所以 LAN IP 當然可以通過 Juniper 350M 設備到 Internet,要使 Policy 生效我們只需要把該 Policy 往上移即可。

    阻擋 Policy 往上移 LAN IP 仍 可以 通過 Juniper 350M 到 Internet。


    阻擋 Policy 往上移後 LAN IP 即 無法 通過 Juniper 350M 到 Internet。


    CLI 文字介面操作

    上述 GUI 圖形介面操作雖然簡單明瞭,若您習慣在 CLI 文字介面下操作,可輸入如下指令達到同樣的效果。
    set address "V1-Trust" "BadUser-A" 192.168.0.34 255.255.255.0
    set address "V1-Trust" "BadUser-B" 192.168.0.78 255.255.255.0
    set address "V1-Trust" "BadUser-C" 192.168.0.100 255.255.255.0
    set group address "V1-Trust" "Block User IP List"
    set group address "V1-Trust" "Block User IP List" add "BadUser-A"
    set group address "V1-Trust" "Block User IP List" add "BadUser-B"
    set group address "V1-Trust" "Block User IP List" add "BadUser-C"
    set policy id 3 from "V1-Trust" to "V1-Untrust"  "Block User IP List" "Any" "ANY" deny
    set policy id 3
    exit


    6、實作二:限制特定 LAN IP Group 上 Internet 使用頻寬

    GUI 圖形介面操作

    本文實作環境中,希望能限制特定 LAN IP Group 通過 Juniper 350M 設備時,網路頻寬會被限制在指定的數值 200 kbps,所以不管屆時 LAN IP Group 內有多少筆記錄,只要其內所有的 IP 都將共用 200kbps。

    1. 切換到 【Policy】 >> 【Policy Elements】 >> 【Addresses】 >> 【List】 >> 按下【New】,新增三筆 IP 資料名稱為 QosUser-A (192.168.0.100)、QosUser-B (192.168.0.113)、QosUser-C (192.168.0.150)。

    2. 切換到 【Policy】 >> 【Policy Elements】 >> 【Addresses】 >>【Groups】 >> 按下【New】,新增郡組 Qos User IP List 並將剛才新增的三筆資料加入至群組中。


    3. 切換到 【Policy】 >> 【Policies V1-Trust to V1-Untrust】 >> 按下【New】,然後在視窗中依序填入或選擇相關欄位值:
    • Source Address: 選擇剛才新增的群組 Qos User IP List
    • Destination Address: 選擇 Any
    • Service: 選擇 ANY
    • 移至最下方按下 Advanced,勾選【Traffic Shaping】 >> 選擇【Maximum Bandwidth】 並填入頻寬大小為 200 kbps,按下 【OK】 >> 【OK】 即新增 Policy




    4. 完成後,記得將此 Policy 移至 any to any policy 之前,才會正確套用生效。

    若您想了解此 Policy 套用之後,使用的頻寬狀況可以切換到 【Reports】 >> 【Policies】 >> 點選【View Detail】圖示,便可以即時看到 Policy 頻寬使用情況。


    CLI 文字介面操作

    上述 GUI 圖形介面操作雖然簡單明瞭,若您習慣在 CLI 文字介面下操作,可輸入如下指令達到同樣的效果。
    set address "V1-Trust" "QosUser-A" 192.168.0.100 255.255.255.0
    set address "V1-Trust" "QosUser-B" 192.168.0.113 255.255.255.0
    set address "V1-Trust" "QosUser-C" 192.168.0.150 255.255.255.0
    set group address "V1-Trust" "Qos User IP List"
    set group address "V1-Trust" "Qos User IP List" add "QosUser-A"
    set group address "V1-Trust" "Qos User IP List" add "QosUser-B"
    set group address "V1-Trust" "Qos User IP List" add "QosUser-C"
    set policy id 4 from "V1-Trust" to "V1-Untrust"  "Qos User IP List" "Any" "ANY" permit traffic mbw 200
    set policy id 4


    7、實作三:限制特定網址無法連結 (例如 facebook, plurk)

    GUI 圖形介面操作

    若公司要防止員工上班種菜浪費公司頻寬,您也可以利用 DNS 方式來阻擋相關網站即可,由於是利用 DNS 方式來阻擋,因此也必須為您的 Juniper 350M 設定 DNS Server 清單,如此一來 Juniper 350M 才能判斷網站的 FQDN 解析之後的 IP Address,並且進行後續的阻擋動作。(請尊重 Weithenn 的辛勞!!)

    1. 切換到 【Policy】 >> 【Policy Elements】 >> 【Addresses】 >> 【List】 >> 按下【New】,然後在視窗中依序填入或選擇相關欄位值:
    • Address Name 請填入 facebook
    • 點選【Domain Name】並填入 facebook.com
    • Zone 請選擇 V1-Untrust
    • 按下【OK】新增記錄


    2. 切換到 【Policy】 >> 【Policy Elements】 >> 【Addresses】 >> 【List】 >> 按下【New】,然後在視窗中依序填入或選擇相關欄位值:
    • Address Name 請填入 plurk
    • 點選【Domain Name】並填入 plurk.com
    • Zone 請選擇 V1-Untrust
    • 按下【OK】新增記錄


    3. 切換到 【Policy】 >> 【Policy Elements】 >> 【Addresses】 >>【Groups】 >> 按下【New】,
    新增群組 Block Sites List ,並且將剛才新增的二筆資料加入至群組中。



    4. 切換到 【Network】 >> 【DNS】 >> 【Host】,然後在視窗中依序填入或選擇相關欄位值:
    • Primary DNS Server 請填入 168.95.192.1
    • Secondary DNS Server 請填入 168.95.1.1
    • 按下【Apply】即指定 DNS Server 生效,您可按下【Show DNS Lookup Table】即會顯示 facebook.com、plurk.com 其 FQDN 所解析的 IP Address



    5. 切換到 【Policy】 >> 【Policies V1-Trust to V1-Untrust】 >> 按下【New】,然後在視窗中依序填入或選擇相關欄位值:
    • Source Address: 選擇 Any
    • Destination Address: 選擇剛才新增的群組 Block Sites List
    • Service: 選擇 ANY
    • Action: 選擇 Deny
    • 按下 OK 即新增 Policy


    6. 別忘了,新增的 Policy 在最底部,記得將 Policy 調整至 any to any policy 之前才能正確套用生效。

    完成 Policy 的新增作業後,由下圖測試結果可以看到使用者可正常瀏覽 Yahoo 奇摩網站,卻無法瀏覽剛才限制的 facebook.com 及 plurk.com 二個網站。



    CLI 文字介面操作

    上述 GUI 圖形介面操作雖然簡單明瞭,若您習慣在 CLI 文字介面下操作,可輸入如下指令達到同樣的效果。
    set dns host dns1 168.95.192.1
    set dns host dns2 168.95.1.1
    set address "V1-Untrust" "facebook" facebook.com
    set address "V1-Untrust" "plurk" plurk.com
    set group address "V1-Untrust" "Block Sites List"
    set group address "V1-Untrust" "Block Sites List" add "facebook"
    set group address "V1-Untrust" "Block Sites List" add "plurk"
    set policy id 5 from "V1-Trust" to "V1-Untrust"  "Any" "Block Sites List" "ANY" deny
    set policy id 5
    exit


    8、備份設定檔

    相關機制都設定並測試完畢後,記得備份設定檔,以便發生不可預期錯誤時可快速回復至當初的設定檔。請切換到 【Configuration】 >> 【Update】 >> 【Config File】 >> 按下【Save To File】 即可備份設定檔至目前登入的主機上。

    9、參考