Tải bản đầy đủ (.pdf) (10 trang)

Tài liệu Cài đặt và cấu hình Spamd ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (316.25 KB, 10 trang )

Cài đặt và cấu hình Spamd
Ngu
ồn : quantrimang.com 
Bạn đã từng biết đến Spamd, một dịch vụ giúp loại trừ thư rác trôi nổi vào
hòm thư điện tử? Hôm nay chúng tôi sẽ giới thiệu một số tính năng nâng
cao và hướng dẫn cách cài đặt, cấu hình của dịch vụ này. Hy vọng, lượng
thư rác của bạn sẽ giảm đáng kể sau khi sử dụng nó.

Trình tự công việc như sau:

1. Ch
ọn kết nối vật lý và giản đồ địa chỉ IP.

2. Cầu hình và chạy spamd.

3. Liên hệ với OpenBSD để gửi lưu lượng TCP 25 tới spamd cho việc đánh giá
(đây là bước cần thiết). Nhưng đồng thời cũng phải thông báo để OpenBSD gửi
lại thư điện tử của người gửi “vô hại” tới server e-mail thực. Các quy định PF
(một trong các phiên bản iptable của OpenBSD) đòi hỏi đi
ều đó.

4. Cuối cùng là kiểm tra.

Sử dụng một sơ đồ vật lý như trong hình minh hoạ bên dưới. “spamslayer” là gói
OpenBSD chạy spamd tarpit/greylister, hoặc một tường lửa lọc gói mạnh. Có thể
sử dụng máy Sun Ultra 5, 270MHZ với DRAM 256MB và ổ cứng dung lượng
20GB; thư mục /var sẽ là nơi chứa file nhật lý (log), với kích thước khoảng 4GB.
Gói này có ba giao diện:

1. hme0: giao diện bên ngoài.


2. fxp0: giao diện “đáng tin cậy” bên trong, và

3. fxp1: giao diện DMZ.
Hình minh họa
“mailhost” là server mail thực, một máy Sun Ultra 5 khác, chạy Ubuntu
GNU/Linux 6.06 Dapper Drake. Nó sử dụng Postfix và Dovecor trong cấu hình
maildir và dùng địa chỉ IP riêng (192.168.10.11).

Sau khi cài đặt và thiết lập các địa chỉ IP trên OpenBSD, bạn cần chỉnh sửa ba
file:

/etc/rc.conf: file cấu hình độ rộng hệ thống. Bạn có thể thay đổi thành
/etc/rc.conf.local nếu muốn; các thiết lập trong file mới sẽ ghi đè lên giá trị mặc
định trong /etc/rc.conf.

/etc/pf.conf: các quy định PF; bắt buộc cho tất cả các hoạt động.

/etc/spamd.conf: sử dụng thiết lập mặc định trong file này cũng khá ổn, nhưng
bạn có thể thay đổi hoặc tạo các ngắt cho chúng.

Chú ý về giao diện trên BSD: Không giống như GNU/Linux, thường có eth0,
eth1, eth2, …., các giao diện BSD được đặt tên theo trình điều khiển thiết bị. Sở
dĩ giao diện được giới thiệu ở trên là fxp0, fxp1 do chúng ta có hai thẻ Intel
EtherExpress Pro/100B sử dụng trình điều khiển fxp (tương ứng với eepro100
trong Linux). Còn hme0 là thay cho “Sun Happy Meal Ethernet”, một card mạng
(NIC) 10/100 tích hợp sẵn trong tất cả các gói Sun Ultra.

/etc/rc.conf kiểm soát một số thiết lập về thời gian khởi động. Thay đổi các dòng
đã có với những thiết lập này, chúng sẽ có dạng như sau:


Changes to /etc/rc.conf:
pf=YES
spamd_flags="-v -S 90 -n Postfix -h
mailhost.cmosnetworks.com -G 60:4:864"
spamd_grey=YES
pf_rules=/etc/pf.conf
Mặc định thời gian cách ly trong “danh sách
đen” ban đầu là 25 phút. Nếu thay đổi tham số
-G thành spamd_flags, giá trị mặc định sẽ lên
tới 60 phút. Sự thay đổi này là cần thiết, bởi
thực tế 25 phút quá ngắn so với yêu cầu thực
ti
ễn. Tham số -v yêu cầu spamd ghi thông tin
một cách chi tiết để khi gửi e-mail tới ai đó,
người nhận sẽ được tự động đưa vào “danh
sách trắng”.

Nếu bạn chưa thấy dòng pf_rules, hãy thêm
nó vào.

Trang spamd man sẽ nói cho bạn biết phần còn
lại.

Bước tiếp theo là quan tâm đến /etc/pf.conf.
Nếu đã hiểu cổng chuyển tiếp (port forwarding),
NAT và tường lửa trạng thái là gì, bạn nên quan
tâm đến file sau. Các dòng có dấu “#”
ở đầu là
phần chú thích.


/etc/pf.conf:

# Đầu tiên, thiết lập các marco
externalif = "hme0"
Nguy cơ trục trặc phần cứng

Bạn sẽ cần tạo một file (không
được thể hiện trong phần cài
đặt mặc định), lấy tên là
/var/db/spamd, (phải đăng
nhập hệ thống với vai trò
người dùng root). Cung cấp
lệnh /var/db/spamd tất
nhiên sẽ tạo người sở hữu
root:wheel. Tuy nhiên, file này
cần được sở hữu bởi chủ của
chương trình spamd, là
_spamd. Đội phát triển
OpenBSD chắc hẳn cũng đã
biết về vấn đề này và sẽ sửa
chữa nó trong phiên bản sắp
tới, kể cả vấn đề về quyền
hạn. Song, thay vì chờ đợi tới
tận phiên bản sau, bạn có thể
sửa chúng dễ dàng bằng cách
chạy lệnh chown
_spamd:_spamd
/var/db/spamd.
internalif = "fxp0"
dmzif = "fxp1"


internalnet = "172.16.0.0/24"
dmznet = "192.168.10.0/24"

# Đây là những địa chỉ chúng ta không sẽ không bao giờ thấy
trên Internet
# Sử dụng bảng này để loại bỏ địa chỉ IP theo nguyên tắc
sau.
table persist {10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16,
224.0.0.0/5}

# Đưa ra danh sách những kẻ phát tán thư rác và người vô
hại.
# Thực hiện với các bảng PF
table persist
table persist
table persist file "/etc/whitelist.txt"
table persist file "/etc/blacklist.txt"

# Bình thường hoá các gói; đây thực sự là ý tưởng hay.
scrub on $externalif all fragment reassemble random-id
reassemble tcp

# Bật chức năng NAT một-nhiều
nat on $externalif inet proto {tcp, udp, icmp} from
$internalnet to any -> $externalif
nat on $externalif inet proto {tcp, udp, icmp} from $dmznet
to any -> $externalif

#Ngăn chặn spammer (những kẻ phát tán thư rác)!

# Định hướng lại lưu lượng SMTP tới hoặc là spamd cục bộ,
hoặc là mail server thực,
# tuỳ thuộc vào bảng PF chứa địa chỉ IP của người gửi.
# "Định hướng lại" tức là thông báo về PF OpenBSD cho Port
Address Translation (PAT - bộ
# dịch địa chỉ cổng).

rdr pass on $externalif proto tcp from to $externalif port
smtp -> 192.168.10.11 port smtp
rdr pass on $externalif proto tcp from to $externalif port
smtp -> 127.0.0.1 port 8025
rdr pass on $externalif proto tcp from to $externalif port
smtp -> 127.0.0.1 port 8025
rdr pass on $externalif proto tcp from to $externalif port
smtp -> 192.168.10.11 port smtp
rdr pass on $externalif proto tcp from ! to $externalif
port smtp -> 127.0.0.1 port 8025

# Cần phải thực hiện một số PAT cho Mail Server thực để
IMAP và Secure IMAP có thể hoạt
# động.

rdr pass on $externalif proto tcp from any to $externalif
port 143 -> 192.168.10.11 port 143
rdr pass on $externalif proto tcp from any to $externalif
port 993 -> 192.168.10.11 port 993

#Lọc ra những kẻ giả mạo theo định nghĩa được tạo trước đó
trong bảng "".


block in quick on $externalif inet from to any

# Bật chức năng lọc gói trạng thái.
#Quay trở lại bất kỳ lưu lượng nào có các phiên bắt đầu từ
bên trong

pass out quick on $externalif inet proto tcp from
$internalnet to any modulate state
pass out quick on $externalif inet proto udp from
$internalnet to any keep state
pass out quick on $externalif inet proto icmp from
$internalnet to any keep state

# Cũng cần phải cho phép lưu lượng riêng của tường lửa quay
trở lại!

pass out quick on $externalif inet proto tcp from
$externalif to any modulate state
pass out quick on $externalif inet proto udp from
$externalif to any keep state
pass out quick on $externalif inet proto icmp from
$externalif to any keep state

# Cho phép lưu lượng SMTP và SSH, ghi thông tin chi tiết về
lưu lượng SMTP cho spamlogd.

×