Trang chủ EDA | Doman - Hosting | Siêu thị trực tuyến

Cài đặt và cấu hình Spamd.

Hướng dẫn cài đặt Ubuntu và các phần mềm trên Ubuntu

Các điều hành viên: wwwlehuysang, thientuyettinh, hadobac

Cài đặt và cấu hình Spamd.

Gửi bàigửi bởi wwwdoxuanha » Thứ 7 05 Tháng 4, 2008 6:57 pm

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 ảnh
“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
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.

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"
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.

pass in log quick on $externalif inet proto tcp from any to 192.168.10.11 port smtp keep state
pass in log quick on $dmzif inet proto tcp from 192.168.10.11 to any port smtp keep state
pass in quick on $externalif inet proto tcp from any to $externalif port 22

# Từ chối mọi thứ còn lại!

block in on $externalif inet all

End /etc/pf.conf

Bạn có thể loại bỏ tên giao diện và sử dụng file này trong gói OpenBSD ba giao diện riêng của mình. Chú ý rằng, không có địa chỉ IP nào được đưa ra ở đây, ngoại trừ địa chỉ mailhost (192.168.10.11), hiện đang dùng NAT. Nguyên nhân là bởi PF cho phép bạn mô tả tên giao diện thay vì địa chỉ IP.

Phần “Stop the spammers!” rất đáng được quan tâm. Trật tự lệnh ở đây là rất quan trọng; nếu trật tự sai, mọi thứ sẽ hoạt động lệnh lạc và không có tác dụng.

Đầu tiên là định nghĩa thẻ , tức một bảng địa chỉ IP với các netblock. Bảng này đưa ra cách thức nhóm gọp địa chỉ IP lại với nhau trong PF. Chúng thuộc kiểu danh sách “thủ công”, không được duy trì tự động bởi OpenBSD và được tạo theo nội dung của một file gọi là /etc/whitelist.txt. Trong phần thử nghiệm, danh sách chỉ nên giữ ở mức thấp nhất, với 4 địa chỉ IP. Ba địa chỉ nằm trên mạng riêng và địa chỉ thứ tư là của một người bạn ở Trung Quốc. Nếu bạn cần thêm vào một cái gì đó, hệ thống sẽ xem xét trong lần khởi động tiếp theo. Để OpenBSD nhận ra một đối tượng thêm vào mà không cần khởi động lại máy, chạy lệnh pfctl -t whitelist -T replace -f /etc/whitelist.txt với vai trò root.

Bạn có thể tránh việc thay thế toàn bộ bảng danh sách trắng, chỉ cần thêm vào một địa chỉ mình muốn bằng cách sử dụng lệnh:

pfctl -t whitelist -T add 1.2.3.4

hoặc cho toàn bộ mạng 255.255.255.0 :

pfctl -t whitelist -T add 1.2.3.0/24

Tiếp theo là thẻ . Nếu ai đó sắp xếp chương trình, bỏ qua tất cả chức năng bảo vệ của spamd, bạn có thể đặt một địa chỉ IP vào đây. Nó sẽ được ngăn chặn nếu nằm trong danh sách SPEWS. Bạn nên giữ số lượng danh sách này ở mức thấp nhất có thể. Sau đó thêm vào thư mục /etc/blacklist.txt, sử dụng cú pháp tương tự như với danh sách trắng để nó được nhận:

# pfctl -t blacklist -T replace -f /etc/blacklist.txt

File danh sách đen sau khi thêm vào sẽ có dạng:

# Cách ly hoặc loại bỏ mail server của một người thường xuyên phát tán thư rác tới hòm thư.
216.27.93.120
#Cách ly hoặc loại bỏ địa chỉ /8 ở Trung Quốc bị thiếu trong danh sách.
121.0.0.0/8
# Cách ly hoặc loại bỏ Iquiero.com vì địa chỉ này thường xuyên phát tán thư rác tới hòm thư; chúng dùng /24.
201.230.255.0/25

Danh sách trắng cũng có định dạng tương tự.

Tiếp theo là thẻ . Đây là các spammer mà SPEWS và một số chương trình khác biết đến. Khi xây dựng quy tắc, tất cả sẽ kết thúc ở bảng PF “spamd” đã được tạo trong file /etc/pf.conf ở trên. Điều này sẽ dẫn đến kết quả spamd ngăn chặn chúng ngay lập tức trên kết nối.

Thẻ nằm liền sau đó. Về cơ bản nó có nghĩa là: “Bất kỳ ai cũng có thể bị đưa vào danh sách đen. Nhưng nếu vượt qua được 60 phút cách ly ban đầu, người gửi sẽ được coi là hợp pháp. Vì thế, chỉ cần nghe trên mail server thực”. Các đối tượng này thường được lưu trữ trong bảng "spamd-white".

Phần ! nắm bắt tổng thể. Nó có nghĩa là: “tất cả những người còn lại; bạn không biết có phải họ là spammer hay không, và khi không đưa vào danh sách trắng, nó sẽ nằm trong danh sách đen. Quay trở lại sau 60 phút, bạn có thể gửi mail tới một MTA thực ở đây”.

Cuối cùng, chúng ta xử lý với /etc/spamd.conf. Nếu file này không chính xác, spamd sẽ phản ánh theo nhiều cách khác nhau. Có thể là không khởi động, hay bỏ qua một số hoặc tất cả cấu hình của bạn. Một cảnh báo quan trọng: bạn không thể dùng phím tab trong file này. Thay vào đó phải dùng phím Space, khoảng trắng mới được thiết lập. Nếu không, bạn sẽ gặp lỗi liên tục.

Toàn bộ file /etc/spamd.conf ví dụ sẽ có dạng:

all:\
:spews1:spews2:spamhausdroplist:china:korea:russia:mycustom-black:

# Lấy từ http://www.spews.org/spews_list_level1.txt
spews1:\
:black:\
:msg="SPAM. Your address %A is in the spews level 1 database\n\
See http://www.spews.org/ask.cgi?x=%A for more details":\
:method=http:\
:file=www.openbsd.org/spamd/spews_list_level1.txt.gz:

# Lấy từ http://www.spews.org/spews_list_level2.txt
spews2:\
:black:\
:msg="SPAM. Your address %A is in the spews level 2 database\n\
See http://www.spews.org/ask.cgi?x=%A for more details":\
:method=http:\
:file=www.openbsd.org/spamd/spews_list_level2.txt.gz:

spamhausdroplist:\
:black:\
:msg="SPAM. Your address %A is in the Spamhaus drop list\n\
See http://www.spamhaus.org for more details":\
:method=file:\
:file=/etc/spamhaus.droplist.20071227.txt:

# Lấy từ http://www.okean.com/chinacidr.txt
china:\
:black:\
:msg="SPAM. Your address %A appears to be from China\n\
See http://www.okean.com/asianspamblocks.html for more details":\
:method=http:\
:file=www.openbsd.org/spamd/chinacidr.txt.gz:

# Lấy từ http://www.okean.com/koreacidr.txt
korea:\
:black:\
:msg="SPAM. Your address %A appears to be from Korea\n\
See http://www.okean.com/asianspamblocks.html for more details":\
:method=http:\
:file=www.openbsd.org/spamd/koreacidr.txt.gz:

# Lấy từ http://www.completewhois.com/statistics ... U-cidr.txt
russia:\
:black:\
:msg="SPAM. Your address %A appears to be a source of spam email\n\
Please contact your ISP regarding this issue":\
:method=http:\
:file=www.completewhois.com/statistics/data/ips-bycountry/rirstats/RU-cidr.txt:

# Danh sách đen ví dụ.
mycustom-black:\
:black:\
:msg="SPAM. Your address %A is in my spammers list. Please stop.":\
:method=file:\
:file=/etc/blacklist.txt:

End /etc/spamd.conf

Mọi địa chỉ ở đây đều được đưa vào bảng PF, và do đó được cách ly tự động, ngay lập tức khi một phiên hoạt động bắt đầu kết nối.

Bây giờ, spamd đã sẵn sàng. Để mở nó, chạy lệnh /usr/libexec/spamd-setup. Bất kỳ khi nào thực hiện thay đổi trên /etc/spamd.conf, bạn phải đóng tiện ích và mở lại thì các thay đổi mới có tác dụng. Chương trình spamd-setup thực hiện hai điều:

1. Nói cho PF biết phải làm gì: duyệt tất cả địa chỉ IP hoặc netblock có trong các file đề cập đến ở /etc/spamd.conf, được định nghĩa trong bảng ở /etc/pf.conf. Nhớ rằng, chúng ta có một quy định PF khẳng định, nếu một địa chỉ nằm trong bảng thì cần định hướng lại nó tới spamd trên TCP 8025 ở localhost.

2. Tự nói với spamd rằng, trong file /etc/spamd.conf, mọi địa chỉ IP hoặc netblock ở danh sách bên dưới sẽ bị coi như nằm trong danh sách đen nếu PF gửi lại lưu lượng SMTP của địa chỉ tới tarpit của spamd:

*
http://www.openbsd.org/spamd/spews_list_level1.txt.gz
*
/etc/spamhaus.droplist.20071227.txt
*
http://www.openbsd.org/spamd/chinacidr.txt.gz
*
http://www.openbsd.org/spamd/koreacidr.txt.gz
*
http://www.completewhois.com/statistics ... U-cidr.txt
*
/etc/blacklist.txt

Bây giờ, các bản update thường xuyên của danh sách SPEWS Level 1 và Level 2 được cung cấp đều đặn. Bạn nên chạy chương trình spamd-setup mỗi ngày một lần để tải các file mới nhất và đưa chúng vào bảng .

Cần chú ý là, ở đây chúng tôi thêm vào ba phần cho file spamd.conf để ngăn cách và loại bỏ nhiều spammer hơn so với mặc định. Đó là spamhausdroplist (danh sách spammer Australia), Rusia (Nga) và mycustom-black (danh sách tự định) trong file /etc/spamd.conf. Bạn có thể đưa vào danh sách tên hay nickname các spammer nguy hiểm nhất theo giới thiệu trong completewhois.com, nơi có tất cả các netblock trên thế giới, chia theo tên quốc gia.

Chương trình hoạt động ra sao?

Sau khi thực hiện các bước trên, chương trình hoạt động khá ổn như mong đợi. Lượng thư rác đã giảm 2% trong tổng số các thư nhận được trước khi bắt đầu chạy tiện ích. Tôi đã từng thấy tổng số chỉ có 10 thư rác trong hơn 10 ngày, giảm đáng kể so với 150 thư mỗi ngày như trước đây. Server mail thực (mailhost), dù không chạy chương trình hỗ trợ nào như SpamAssassin, vẫn không bị quấy rầy bởi thư rác. Từ giờ, bạn có thể thoải mái nhận thư hợp lệ.

Bẫy danh sách đen của Spamd khá tuyệt diệu và là nguyên nhân chính của lượng thư rác giảm đáng kể này. Thông tin nhật ký spamd cho lấy có một lượng lớn cư dân mạng muốn phát tán thư rác tới địa chỉ e-mail giả mạo đơn lẻ thử nghiệm. Và tất cả đều bị ngăn chặn, loại bỏ.
Đăng ký khóa học Ubuntu miễn phí.
Đăng ký nhận đĩa Ubuntu miễn phí.

Những lưu ý khi đăng ký nhận đĩa Ubuntu cùng tài liệu miễn phí.
Danh sách chuyển đĩa cho thành viên ngày 14/05/2008(đăng ký từ 05/05/2008-14/05/2008)
Mọi chi tiết xin liên hệ CTy cổ phần khai thác phát triển và ứng dụng công nghệ mới TRƯỜNGSINH-EDA.,JSC.
Địa chỉ: Số 03 Tây Sơn, khu liên kế Phú Sơn, Phường Phú Sơn, TP.Thanh Hoá.
Điện thoại: (037)3.220681 - Email: edatha@eda.vn
Hình đại diện của thành viên
wwwdoxuanha
 
Bài viết: 332
Ngày tham gia: Thứ 5 06 Tháng 3, 2008 1:51 pm
Đến từ: EDA.,JSC

Quay về Hướng dẫn cài đặt

Ai đang trực tuyến?

Đang xem chuyên mục này: Không có thành viên nào đang trực tuyến8 khách

cron