Bài Viết Về PIX FIREWALL
Tác giả: Nguyễn Thị Băng Tâm
Chương 2: CẤU HÌNH CƠ BẢN CỦA PIX
1. ASA Security levels
Khi cấu hình PIX firewall , một điều quan trọng cần lưu ý là cấu
hình pix có 2 interface cũng giống như cấu hình cho pix có 6
interface . Đó là vì PIX firewall hoạt động dựa trên cơ chế ASA
(Adaptive Security Algorithm) sử dụng Security levels . Giữa 2
interface thì một sẽ có Security level cao hơn , một có Security
level thấp hơn .
ASA Security levels :
Security level thiết kế cho interface là inside (trusted) hoặc
interface outside (untrusted) quan hệ với các interface khác . Một
interface được xem là inside trong mối quan hệ với các interface
khác nếu nó có Security level cao hơn các interface khác , một
interface được xem là outside nếu nó có Security level thấp hơn
Security level của các interface khác .
Quy tắc cơ bản cho Security level là :
Khi PIX firewall được cấu hình với 6 command cơ bản , dữ liệu
có thể đi vào pix thông qua một interface với Security level cao
hơn , đi qua pix và đi ra ngoài thông qua interface có Security
level thấp hơn . Ngược lại , dữ liệu đi vào interface có Security
level thấp hơn không thể đi qua pix và đi ra ngoài thông qua
interface có Security level cao hơn nếu trên pix không có cấu hình
conduit hoặc access-list để cho phép nó thực hiện điều này .
Security level xắp xếp từ 0 đến 100 , cụ thể :
- Security level 100 : đây là Security level cao nhất cho một
interface . Nó được sử dụng cho inside interface của PIX
firewall , là cấu hình mặc định cho Pix và không thể thay đổi .
Vì 100 là Security level trusted nhất cho interface , mạng của
tổ chức thường ở sau interface này , không ai có thể truy nhập
vào mạng này trừ khi được phép thực hiện điều đó . Việc cho
phép đó phải được cấu hình trên pix , các thiết bị bên trong
mạng này có thể truy cập ra mạng outside .
- Security level 0 : đây là Security level thấp nhất . Security
level này được sử dụng cho outside interface . Đây là cấu hình
mặc định cho Pix và không thể thay đổi . Vì 0 là Security
level ít trusted nhất cho một interface , các untrusted network
thường ở sau interface này . Các thiết bị ở outside chỉ được
phép truy cập vào pix khi nó được cấu hình để làm điều đó .
Interface này thường được dùng cho việc kết nối internet .
- Security level 1-99 : Các Security level này có thể được đăng
kí cho perimeter interface kết nối đến PIX , mà thông thường
là những kết nối đến một mạng hoạt động như là demilitarized
zone (DMZ) . DMZ là một thiết bị hay là một mạng thường
được sử dụng cho phép user từ untrusted network truy cập vào
. DMZ là vùng được cách ly với môi trường internal , trusted .
Ví dụ về ASA với pix có 3 interface , Security level trong ví dụ
này cụ thể như sau :
• Outside security 0 đến DMZ security 50 thì DMZ này được
coi là inside . Do đó cần phải có static translation với
conduit cấu hình cho phép các session được khởi tạo từ
outside đến DMZ .
• Inside security 100 đến DMZ security 50 thì DMZ này được
coi là outside . Do đó global và nat thường được cấu hình để
cho phép các session khởi tạo từ inside interface đến DMZ
interface .
Note : Một PIX firewall có thể có đến 4 perimeter network do
đó nó có tối đa tổng cộng là 6 interfaces .
Khi có nhiều kết nối giữa PIX firewall và các perimeter device thì
:
• Dữ liệu đi từ interface có Security level cao hơn đến interface
có Security level thấp hơn : Cần phải có một translation (static
hay dynamic) để cho phép traffic từ interface có Security level
cao hơn đi đến interface có Security level thấp hơn . Khi đã có
translation này , traffic bắt đầu từ inside interface đến outside
interface sẽ được phép , trừ khi nó bị chặn bởi access-list ,
authentication hoặc là authorization .
• Dữ liệu đi từ interface có Security level thấp hơn đến interface
có Security level cao hơn : 2 điều quan trọng cần thiết phải
được cấu hình để cho traffic từ interface có security thấp hơn
đến interface security cao hơn là static translation và conduit
hoặc access-list . Nếu conduit được cấu hình , user cũng có
thể chặn traffic nếu cấu hình thêm authentication hoặc là
authorization .
• Dữ liệu đi qua 2 interface có Security level như nhau : Không
có traffic đi giữa 2 interface có level như nhau .
2. Cấu hình cơ bản của PIX firewall
Phần này sẽ mô tả cấu hình cơ bản cần thiết để sử dụng PIX
firewall và cách thiết lập kết nối cơ bản từ internal network đến
public Internet .
a. Các mode truy nhập :
Cũng giống như các thiết bị của Cisco , pix cũng có các mode sau
:
- Unprivileged mode : là mode được sử dụng khi ta truy nhập
vào pix lần đầu tiên thông qua cổng console hoặc telnet .
Mode này cho phép ta xem tập hợp các lệnh có trong pix .
User không thể thay đổi cấu hình tại mode này .
- Privileged mode : tại mode này user có thể thay đổi một vài
cấu hình hiện tại và xem cấu hình trong pix . Các câu lệnh ở
mode unprivileged đều hoạt động tốt ở mode này . Khi ta đã
vào được mode privileged , thì ta có thể vào được
configuration mode .
- Configuration mode : Tại mode này ta có thể thay đổi cấu
hình của hệ thống . Tất cả các lệnh unprivileged , privileged ,
configuration đều làm việc ở mode này .
- Monitor mode : Tại mode này cho phép ta thao tác một số cấu
hình đặc biệt như là update image hay password recovery .
Dấu hiệu để nhận biết đang ở trong mode nào :
Mode dấu hiệu
Unprivileged
mode
Pixfirewall>
Privileged
mode
Pixfirewall#
Configuration
mode
Pixfirewall(config)#
Monitor
mode
Monitor>
b. Các lệnh dùng để duy trì và kiểm tra PIX firewall
- Enable command : lệnh enable cho phép ta tiến vào mode
privileged . Để thoát ra và trở về mode trước đó , sử dụng
disable command .
- Enable password : tham số cấu hình này thiết lập password
cho việc truy nhập vào mode enable . Không có password mặc
định . Khi truy cập vào mode này lần đầu tiên (trước khi
enable command được tạo ra) , pix đưa ra dấu nhắc cần nhập
password . Bởi vì password chưa được cấu hình nên chỉ đơn
giản là nhấn Enter . Password là case-sensitive và có thể dài
đến 16 chữ cái . Ta có thể sử dụng bất kì kí tự nào ngoài
khoảng trắng , dấu hỏi , và dấu hai chấm . Password ở dạng
mã hóa .
- Passwd : password này được thiết lập cho inbound traffic
telnet đến pix . Password mặc định là cisco .
- Hostname : câu lệnh hostname cho phép ta thay đổi tên của
Pix , mặc định pix có tên là pixfirewall .
- Ping : lệnh ping quyết định PIX firewall có kết nối đến một
đích cụ thể nào đó hay không . Khi ping command được sử
dụng , pix sẽ gửi ra ngoài echo-request. Đích sẽ đáp lại bằng
một echo-reply. nếu echo-reply được nhận thì host có tồn tại .
Nếu không được nhận , ngõ ra sẽ xuất hiện “no response
received” . Ping command truyền đi 3 echo-request để tìm địa
chỉ . Nếu ta muốn internal host có thể ping được external
host , ta phải tạo một ICMP conduit hoặc là access-list để
cho phép echo-reply .
Note: Sau khi pix được cấu hình và hoạt động , user sẽ không
thể từ outside interface ping được inside interface và ngược lại .
Nếu từ inside interface ping thấy được inside network , và outside
interface ping thấy outside network thì pix họat động đúng và
bìng thường .
- Telnet : lệnh telnet cho phép ta chỉ ra host nào có thể truy cập
cổng console PIX firewall thông qua telnet . Với các version
5.0 trở về trứơc , chỉ có các internal host mới có thể truy cập
vào PIX firewall thông qua telnet , nhưng các version sau
này , user có thể telnet vào PIX firewall qua tất cả các
interface . Tuy nhiên , PIX firewall khuyến cáo rằng , tất cả
telnet traffic đến outside interface phải được bảo vệ bởi
IPSEC . Do đó , để khởi động một telnet session đến PIX ,
user cần cấu hình pix để thiết lập IPSEC tunnel họăc là với
một pix khác , hoặc là router , hay là VPN Client . Tunnel đó
phải được mã hóa cho các traffic đặc biệt trong đó có telnet
đến một host nào đó được định nghĩa trong câu lệnh telnet .
Có đến 16 host hoặc mạng được phép telnet đến Pix , nhưng
trong một lúc chỉ có 5 mà thôi .
telnet ip_address [netmask] [if_name]
clear telnet [ip_address] [netmask] [if_name]
no telnet ip_address [netmask] [if_name]
telnet timeout minutes
show telnet
show telnet timeout
- write terminal : cho xem cấu hình đang chạy trên pix , câu
lệnh này có ý nghĩa như câu lệnh show running-config . Cấu
hình này được lưu trong RAM
- write net : dùng để lưu running configuration vào TFTP
server .
- write erase : xóa tập tin cấu hình trong Flash memory
- write memory : lưu tập tin running configuration vào Flash .
- write floppy : lưu cấu hình hiện tại vào đĩa mềm .
- write standby : ghi lại cấu hình được lưu trong RAM của
active failover PIX , đến RAM của standby PIX firewall . Khi
active PIX firewall boot , nó tự động ghi cấu hình này đến
standby PIX firewall .
c. Sáu câu lệnh cơ bản cho cấu hình PIX firewall :
• Nameif command :
nameif hardware_id if_name security_level
câu lệnh nameif dùng để đăng kí 1 tên cho mỗi interface của
Pix và chỉ ra mức security của nó (ngoại trừ outside và inside
interface , chúng có tên mặc định )
Với cấu hình mặc định , e0 có tên là outside với mức security
là 0 , e1 có tên là inside với mức security là 100 .
• Interface command :
interface hardware_id hardware_speed [shutdown]
- hardware_id : chỉ ra interface và vị trí vật lí của nó
trên pix .
- hardware_speed : chỉ ra tốc độ kết nối . Sử dụng auto
để pix tự động điều chỉnh tốc độ với thiết bị mà nó kết
nối .
- shutdown : administratively shut down interface
Note: tránh sử dụng từ khóa auto trên bất kì interface Ethernet
nào . Duplex mismatch có thể xảy ra và làm giảm hoạt động của
Pix .
• ip address command :
Mỗi interface trên pix phải được cấu hình với 1 địa chỉ .
ip address if_name ip_address [netmask]
• nat command :
Network address translation (NAT) giúp cho user dấu được
địa chỉ internal khi đi ra mạng ngoài .
nat (if_name) nat_id local_ip [netmask]
- if_name : tên của internal interface sẽ sử dụng địa chỉ
global . Dữ liệu sẽ đi ra khỏi pix thông qua interface
được chỉ ra trong global command .
- nat_id : chỉ ra global pool , id này phải giống với id
trong global commad
- local_ip : địa chỉ IP được đăng kí đến thiết bị của
inside netword .0.0.0.0 (có thể viết tắt là 0) được sử
dụng để cho phép tất cả các kết nối outbound được nat
ra ngoài với điạ chỉ trong global command .
- netmask : mặt nạ mạng cho local ip address
Khi bắt đầu cấu hình pix , tất cả các host có thể truy cập các kết
nối outbound với nat 1 0.0.0.0 0.0.0.0 command . Câu lệnh này
có ý nghĩa cho phép tất cả các inside host được phép nat ra ngoài
tương ứng với địa chỉ trong global command . 0 có thể được sử
dụng để thay thế 0.0.0.0
• global command :
Khi dữ liệu được gửi đi từ một trusted network đến untrusted
network, địa chỉ source ip thường được chuyển đổi . Pix thực hiện
điều này bằng 2 câu lệnh , câu lệnh thứ nhất là nat – định nghĩa
địa chỉ trusted source sẽ được chuyển đổi , câu lệnh thứ hai là
global command - định nghĩa tầm địa chỉ mà source address sẽ
chuyển đổi thành .
global (if_name) nat_id interface | global_ip [- global_ip]
netmask [global_mask]
Ví dụ về NAT :
Khi gói dữ liệu outbound được gửi từ một thiết bị thuộc mạng
inside đến pix , địa chỉ source được extract ra và so sánh với bảng
chuyển đổi internal . Nếu địa chỉ của thiết bị không có trong
bảng , nó sẽ được chuyển đổi thành . Một entry mới được tạo ra
cho thiết bị đó , sau đó nó được đăng kí một địa chỉ global ip từ
pool địa chỉ global . Đây được gọi là translation slot . Sau khi
translation xảy ra , bảng được update và gói ip được chuyển đổi
đó được gửi ra ngoài . Sau khoảng thời gian timeout (mặc định là
3 giờ) , sẽ không có gói tin được translate nào dành cho địa chỉ
global đó , entry của nó ở trong bảng translation sẽ bị loại bỏ và
địa chỉ global được sử dụng bởi bất kì host nào trong mạng
inside .
Quá trình được miêu tả như hình vẽ sau :
NOTE : PIX firewall đăng kí địa chỉ từ global pool bắt đầu từ
thấp cho đến cao . Sau khi thay đổi , thêm vào , hay loại bỏ một
global statement , sử dụng clear xlate để xóa tất cả các translation
slot .
• Route command : định nghĩa một static route cho một
interface .
route if_name ip_address netmask gateway_ip [metric]
3. PIX firewall translation
PIX firewall có thể được sử dụng để translate tất cả địa chỉ bên
trong , khi dữ liệu đi từ inside ra outside hay đi đến một mạng có
mức security thấp hơn . Nếu user ở mạng outside cố gắng thực
hiện kết nối đến inside , user đó sẽ không thành công . Một
session không thể được tạo ra từ Internet với địa chỉ đích là địa
chỉ private trừ khi nó được cấu hình cho phép thực hiện điều đó .
Có hai cách để một mạng ít tin cậy hơn đi vào một mạng có độ tin
cậy cao hơn là :
- Response to Valid Request : Khi user ở inside thành lập một
kết nối đến thiết bị ở outside , mặc định response cho request
đó được phép qua pix . Tất cả kết nối từ inside đến outside sẽ
được update trong bảng translation . Khi một thiết bị outside
đáp ứng cho request đó , PIX firewall sẽ kiểm tra bảng
translation để xem thử có translation slot nào tồn tại cho
request đó hay không ? Nếu nó tồn tại, PIX firewall cho phép
response tiếp tục . Sau khi session được tạo ra , idle timer sẽ
bắt đầu khởi động , mặc định là 3 giờ .
- Cấu hình Conduit : Được sử dụng cho việc liên lạc từ outside
đến inside . Static translation hoặc là global và nat được cấu
hình trước , sau đó cấu hình conduit để định nghĩa địa chỉ ,
hay là một nhóm địa chỉ , source port hay là destination port
được phép đi qua pix .
a. Static address translation :
Static address translation được sử dụng nếu một host được
translate đến cùng một địa chỉ khi mỗi outbound session được tạo
ra qua pix . Tức là nó được dùng để tạo ra một ánh xạ cố định
(static translation slot) giữa một địa chỉ local và một địa chỉ global
. Khi kết nối đến internet , địa chỉ global phải được phải là địa chỉ
thực ( địa chỉ được đăng kí )
Static address translation được sử dụng bằng câu lệnh
sau :
Static [(internal_if_name , external_if_name)] global_ip
local_ip [netmask network_mask] [max_conns [em_limit]]
[norandomseq]
Đối với outbound connection , sử dụng static để chỉ ra một địa chỉ
global luôn được sử dụng cho việc translation giữa local host và
global host đó . Đối với inbound connection , mặc định là các host
ở untrusted network sẽ không được vào trusted network , do đó
muốn cho các mạng outside vào inside , ta sẽ phải sử dụng kết
hợp cả static command và conduit command để định nghĩa các địa
chỉ trong mạng outside .
Một chú ý quan trọng là :
o Conduit command cho phép kết nối từ interface có mức bảo
mật thấp hơn đến interface có mức bảo mật cao hơn .
o Static command được sử dụng để tạo ra ánh xạ cố định giữa
local host và global ip address .
Conduit command :
conduit permit | deny protocol global_ip global_mask [operator
port [port]] foreign_ip foreign_mask [operator port [port]]
Một ví dụ khi sử dụng conduit command là kiểm tra kết nối thông
qua pix với các message ICMP . Để cho phép một gói tin echo-
request từ outside qua pix , conduit phải được cấu hình . Ngoài
ra , user outside cũng cần phải có một địa chỉ đích để sử dụng ,
thông tin này có thể được map vào pix sử dụng static command .
b. Dynamic address translation : đây chính là sử dụng nat và
global command mà ta đã nhắc đến phía trước .
Ngoài ra thay vì nat các địa chỉ inside ra outside trong một pool
địa chỉ , ta cũng có thể nat bằng một địa chỉ global bằng cách sử
dụng PAT (port address translation) . PAT là sự kết hợp một địa
chỉ và một source port number để tạo ra một session duy nhất .
Pix sẽ translate mỗi địa chỉ local đến cùng một điạ chỉ global
nhưng đăng kí giá trị port khác nhau và lớn hơn 1024. Câu lệnh
cấu hình PAT giống như Nat , nhưng trong global command , thay
vì sử dụng một pool địa chỉ ,ta chỉ sử dụng 1 địa chỉ .
c. Cấu hình NAT 0
Đây là chức năng phổ biến khi kết nối đến internet để cho phép
truy cập từ outside đến HTTP server hoặc là SMTP server . Các
server này phải có địa chỉ thực để còn liên lạc với các thiết bị
khác trong mạng internet . Do đó có thể cấu hình pix để địa chỉ
private của thiết bị đó trong inside network được phép đi ra ngoài
mạng mà không có quá trình translation .
Sử dụng nat 0 command phụ thuộc vào chính sách bảo mật mà
nơi ta áp đặt nó vào . Nếu chính sách đó cho phép các internal
client sử dụng địa chỉ private của chúng để đi ra ngoài internet ,
nat 0 sẽ đáp ứng dịch vụ đó . Sử dụng nat 0 một minh sẽ không
cho phép truy cập từ outside đến inside . Nếu chính sách cho phép
truy cập từ outside đến inside , ta phải cấu hình thêm conduit
command .
4. Truy nhập vào PIX firewall
Pix có thể được truy nhập vào thông qua port console hoặc là truy
cập từ xa qua các phương pháp sau :
- telnet
- Secure Shell (SSH)
- Browser sử dụng PIX device Manger (PDM)
a. Truy cập vào PIX bằng Telnet
Có thể quản lí PIX firewall thông qua Telnet từ các host thuộc
internal interface . Nếu IPSEC được cấu hình thì ta có thể quản lí
PIX từ các interface có security level thấp hơn
Để truy cập vào PIX thông qua kết nối Telnet , ta cấu hình như
sau :
bước 1 : cho phép host hay mạng được phép telnet :
telnet local_ip [mask] [if_name]
bước 2 : đặt password cho Telnet :
passwd telnetpasswd
bước 3 : Nếu cần thiết thì thiết lập cho phép Telnet session được
idle trong khoảng bao lâu trước khi Pix làm rớt kết nối . Mặc định
là 5 phút .
telnet timeout time
b. Cấu hình truy cập PIX qua Secure Shell (SSH)
SSH là một chương trình ứng dụng chạy trên lớp transport , có
khả năng xác thực và mã hóa mạnh do đó nó có độ bảo mật cao
hơn Telnet . 5 SSH client có thể được phép truy cập PIX console
đồng thời . PIX firewall hỗ trợ SSH v1 .
Cấu hình PIX cho việc truy cập thông qua SSH có 2 bước :
- Cấu hình trên PIX để chấp nhận kết nối SSH
- Cấu hình SSH client để kết nối đến PIX
5. LAB
Bài 1 : Cấu hình translation
Scenario :
Địa chỉ của các interface như sau :
Device Interface Address
PIX E0
E1
E2
209.162.1.1/24
10.10.10.1/24
172.16.1.1/24
Router
2530
E0 209.162.1.2/24
Router
dmz
E0 172.16.1.2/24
PC 10.10.10.10/24
Cấu hình toàn bộ :