Xem mẫu
- 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 Nguy cơ trục trặc phần cứng
đ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 Bạn sẽ cần tạo một file (không
tới 60 phút. Sự thay đổi này là cần thiết, bởi được thể hiện trong phần cài
thực tế 25 phút quá ngắn so với yêu cầu thực đặt mặc định), lấy tên là
tiễn. Tham số -v yêu cầu spamd ghi thông tin /var/db/spamd, (phải đăng
một cách chi tiết để khi gửi e-mail tới ai đó, nhập hệ thống với vai trò
người nhận sẽ được tự động đưa vào “danh người dùng root). Cung cấp
sách trắng”. lệnh /var/db/spamd tất
nhiên sẽ tạo người sở hữu
Nếu bạn chưa thấy dòng pf_rules, hãy thêm root:wheel. Tuy nhiên, file này
nó vào. cần được sở hữu bởi chủ của
chương trình spamd, là
Trang spamd man sẽ nói cho bạn biết phần còn _spamd. Đội phát triển
lại. OpenBSD chắc hẳn cũng đã
biết về vấn đề này và sẽ sửa
Bước tiếp theo là quan tâm đến /etc/pf.conf. chữa nó trong phiên bản sắp
Nếu đã hiểu cổng chuyển tiếp (port forwarding), tới, kể cả vấn đề về quyền
NAT và tường lửa trạng thái là gì, bạn nên quan hạn. Song, thay vì chờ đợi tới
tâm đến file sau. Các dòng có dấu “#” ở đầu là tận phiên bản sau, bạn có thể
phần chú thích. sửa chúng dễ dàng bằng cách
chạy lệnh chown
/etc/pf.conf: _spamd:_spamd
/var/db/spamd.
# Đầ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.g
z:
# 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.g
z:
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/data/ips-
bycountry/rirstats/RU-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:
www.openbsd.org/spamd/spews_list_level1.txt.gz
•
/etc/spamhaus.droplist.20071227.txt
•
www.openbsd.org/spamd/chinacidr.txt.gz
•
www.openbsd.org/spamd/koreacidr.txt.gz
•
www.completewhois.com/statistics/data/ips-bycountry/rirstats/RU-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ỏ.
nguon tai.lieu . vn