Cách cài đặt ASSP v.2 trên CentOS 7 64 bit

theanh

Administrator
Nhân viên
Hướng dẫn này chỉ ra các bước cài đặt ASSP trên bản cài đặt CentOS 7 tối thiểu. Hướng dẫn này không đề cập đến việc cài đặt CentOS cũng như thiết lập máy chủ thư. Ảnh CentOS-7.0-1406-x86_64-Minimal.iso phù hợp với thiết lập này. Nếu bạn có hình ảnh DVD, hãy chọn Cài đặt tối thiểu và tiến hành cài đặt.

Sau khi khởi động lại​

Tắt NetworkManager và FirewallD và bật dịch vụ mạng
Mã:
systemctl disable NetworkManager
systemctl stop NetworkManager
Mã:
systemctl disable firewalld
systemctl stop firewalld
Mã:
systemctl enable network
systemctl start network
Chỉnh sửa cấu hình card mạng (chúng tôi giả sử có một card mạng được cài đặt trên hệ thống)
Mã:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
Thay thế IPADDR0=a.b.c.d
Bằng IPADDR=a.b.c.d

Thay thế PREFIX0=xx
Bằng PREFIX=xx

Thay thế GATEWAY0=aa.bb.cc.dd
Bằng GATEWAY=aa.bb.cc.dd


Cập nhật hệ điều hành​

Mã:
yum -y update
reboot
yum install wget perl
Tải thêm phần mềm cho Centos từ các kho lưu trữ epel, repoforge, remi:
Mã:
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Cài đặt kho lưu trữ​

Mã:
yum localinstall rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm epel-release-7-5.noarch.rpm remi-release-7.rpm

Cài đặt tường lửa shorewall (trình quản lý iptables):
Mã:
yum install shorewall
Chúng ta hãy chỉnh sửa tường lửa của mình. Các tùy chọn và tệp ví dụ này là tối thiểu để tường lửa hoạt động. Cần phải cấu hình thêm. Để biết thêm thông tin về shorewall và cách cấu hình, hãy truy cập http://shorewall.net

Đầu tiên, tệp giao diện:
Mã:
vi /etc/shorewall/interfaces
Mã:
net eth0
Tệp chính sách:
Mã:
vi /etc/shorewall/policy
Mã:
$FW net ACCEPT
net all DROP
all all REJECT
Tệp quy tắc:
Mã:
vi /etc/shorewall/rules
Trong ?SECTION NEW, hãy thêm các quy tắc bên dưới:
Mã:
# Cho phép truy cập từ internet vào các dịch vụ giao diện web ssh, smtp và assp
# Vì lý do bảo mật, bạn có thể muốn giới hạn quyền truy cập ssh vào một hoặc một lớp 
# IP đáng tin cậy
ACCEPT net $FW tcp 22,25,55555
Mã:
# Bật ping (1 yêu cầu mỗi giây với một loạt một yêu cầu)
CHẤP NHẬN net $FW icmp 8 - - 1/sec:1
Tệp shorewall.conf:

# vi /etc/shorewall/shorewall.conf

Thay thế STARTUP_ENABLED=No bằng STARTUP_ENABLED=Yes

Và cuối cùng là tệp regions:
Mã:
vi /etc/shorewall/zones
Mã:
fw firewall
net ipv4
Bật tường lửa
Mã:
systemctl enable shorewall
systemctl start shorewall
Kiểm tra xem tường lửa có đang chạy hay không bằng lệnh shorewall status:
Mã:
shorewall status | grep running
Mã:
Shorewall đang chạy
Cài đặt phần mềm cần thiết cho ASSP2 & Các mô-đun:
Mã:
yum install gcc openssl-devel perl-Net-SMTPS perl-IO-Compress-Zlib perl-Text-Glob perl-Number-Compare perl-Convert-TNEF perl-Digest-SHA1 perl-Email-MIME perl-Email-Send perl-Email-Valid perl-File-ReadBackwards perl-MIME-Types perl-Mail-DKIM perl-Mail-SPF perl-Net-CIDR-Lite perl-Net-DNS perl-Net-IP-Match-Regexp perl-Net-SMTP-SSL perl-Time-HiRes perl-Crypt-CBC perl-IO-Socket-SSL perl-Sys-MemInfo perl-Time-HiRes perl-Tie-DBI perl-LWP-Authen-Negotiate clamd perl-Net-IP perl-Text-Unidecode perl-Schedule-Cron-Events perl-BerkeleyDB perl-LDAP perl-CPAN perl-local-lib perl-CPAN-Meta-Requirements unzip deltarpm net-tools policycoreutils-python
Cập nhật CPAN tùy chọn
Mã:
perl -MCPAN -e shell
Chấp nhận các tùy chọn mặc định và tiến hành nâng cấp:
Mã:
cpan> cài đặt CPAN
cpan> tải lại cpan

Bật ClamAV khi khởi động

systemctl bật clamd
Mã:
clamd.service không phải là dịch vụ gốc, chuyển hướng đến /sbin/chkconfig.
Thực thi /sbin/chkconfig clamd trên
Các tệp đơn vị không có phần [Cài đặt]. Chúng không có nghĩa là được kích hoạt
bằng systemctl.
Những lý do có thể có cho loại đơn vị này là:
1) Một đơn vị có thể được kích hoạt tĩnh bằng cách được liên kết tượng trưng từ thư mục
 .wants/ hoặc .requires/ của đơn vị khác.
2) Mục đích của một đơn vị có thể là hoạt động như một trình trợ giúp cho một số đơn vị khác có
 sự phụ thuộc yêu cầu vào nó.
3) Một đơn vị có thể được khởi động khi cần thông qua kích hoạt (socket, path, timer,
 D-Bus, udev, lệnh gọi systemctl theo tập lệnh, ...).
Chỉnh sửa /etc/clamd.conf:
Mã:
vi /etc/clamd.conf
Thay thế các giá trị của bạn bằng các giá trị bên dưới:
Mã:
LogFileMaxSize 2m
LogRotate yes
LocalSocketGroup clamav
LocalSocket /var/clamav/clamd.sock
# TCPSocket 3310
# TCPAddr 127.0.0.1
PidFile /var/clamav/clamd.pid
TemporaryDirectory /var/tmp
IdleTimeout 60
Chỉnh sửa /etc/freshclam.conf:
Mã:
vi /etc/freshclam.conf
Thêm hoặc bỏ chú thích LogRotate yes

Khởi động ClamAV:
Mã:
systemctl start clamd
Cài đặt các mô-đun CPAN cho ASSP:
Mã:
cpan -i Unicode::GCString Sys::CpuAffinity Thread::State Thread::Queue Schedule::Cron File::Scan::ClamAV Sys::Syslog IO::Socket::INET6 Lingua::Stem::Snowball Lingua::Identify Archive::Extract Archive::Zip Archive::Tar Mail::SRS Net::SenderBase Tie::DBI Crypt::OpenSSL::AES Regexp::Optimizer Schedule::Cron::Events Mail::SPF::Query File::Scan::ClamAV
Trả lời bất kỳ câu hỏi nào bằng cách nhấn phím Enter (nó sẽ là tùy chọn mặc định trong dấu ngoặc [ ])

Có thể Mail::SPF::Query và File::Scan::ClamAV sẽ không cài đặt nếu không có lệnh. Trong trường hợp đó:
Mã:
perl -MCPAN -e shell
Mã:
cpan> force install Mail::SPF::Query
cpan> force install File::Scan::ClamAV
Tôi khuyên bạn nên cài đặt từng mô-đun perl để phát hiện các lỗi tiềm ẩn và/hoặc các phụ thuộc bị thiếu:
Mã:
perl -MCPAN -e shell
Mã:
cpan> install
Tải xuống ASSP v.2 từ http://sourceforge.net/projects/assp/ vào máy chủ của bạn và giải nén:
Mã:
unzip ASSP__Install.zip
mv -f assp/ /var/db/assp/
cd /var/db/assp
Khởi động assp lần đầu tiên:
Mã:
perl assp.pl
Bất kỳ lỗi nào về mô-đun perl sẽ được báo cáo tới /var/db/assp/moduleLoadErrors.txt. Bất kỳ lỗi nào khác sẽ được in trên bảng điều khiển (assp sẽ ở chế độ nền trước).

Bắt đầu cấu hình ASSP bằng cách đăng nhập vào giao diện web:

http://<IP_or_FQDN>:55555

người dùng: root
mật khẩu: nospam4me

Theo mặc định, assp liên kết với cổng 25/tcp trên mọi địa chỉ ipv4 (0.0.0.0:25). Điều này sẽ tạo ra xung đột với máy chủ email cục bộ (postfix, exim, sendmail, opensmtpd). Thông tin này sẽ được in vào tệp nhật ký assp (/var/db/assp/logs/maillog.txt) và trên bảng điều khiển, nếu assp chạy ở chế độ nền trước:
Mã:
[init] Lỗi: không thể tạo ổ cắm máy chủ trên cổng '25' -- có thể một dịch vụ khác đang chạy hoặc tôi không phải là root (uid=0)? -- hoặc một địa chỉ IP sai được xác định? -- Địa chỉ đã được sử dụng
Trong trường hợp này, chúng ta sẽ thiết lập postfix và sẽ phải thay đổi cổng mặc định của nó (25/tcp) thành 125/tcp chẳng hạn và chỉ liên kết với localhost:
Mã:
vi /etc/postfix/master.cf
Thay thế
Mã:
smtp inet n - n - - smtpd
Bằng
Mã:
localhost:125 inet n - n - - smtpd

Hãy khởi động lại postfix:
Mã:
systemctl restart postfix
Mã:
Công việc cho postfix.service không thành công. Xem 'systemctl status postfix.service' và 'journalctl -xn' để biết chi tiết.
Mã:
systemctl status postfix.service
Mã:
postfix.service - Postfix Mail Transport Agent
 Đã tải: đã tải (/usr/lib/systemd/system/postfix.service; đã bật)
 Đang hoạt động: không thành công (Kết quả: exit-code) kể từ CN 2014-12-21 15:34:11 ICT; 6 giây trước
 Tiến trình: 30186 ExecStop=/usr/sbin/postfix stop (code=exited, status=0/SUCCESS)
 Tiến trình: 30200 ExecStart=/usr/sbin/postfix start (code=exited, status=1/FAILURE)
 Tiến trình: 30198 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
 Tiến trình: 30195 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
 PID chính: 29346 (code=killed, signal=TERM)
Mã:
systemd[1]: Đang khởi động Postfix Mail Transport Agent...
postfix/master[30272]: fatal: bind 127.0.0.1 cổng 125: Quyền bị từ chối
postfix/master[30271]: nghiêm trọng: lỗi khởi tạo daemon
systemd[1]: postfix.service: quy trình điều khiển đã thoát, code=exited status=1
systemd[1]: Không khởi động được Postfix Mail Transport Agent.
systemd[1]: Đơn vị postfix.service đã vào trạng thái lỗi.
Lỗi trên là do selinux không cho phép postfix liên kết với một cổng khác ngoài 25, 465 và 587

Để khiến postfix liên kết với cổng 125, hãy tắt selinux (không khuyến khích) hoặc thêm một cổng khác vào chính sách selinux để postfix liên kết:
Mã:
semanage port -a 125 -t smtp_port_t -p tcp
Và kiểm tra xem cổng 125 có nằm trong danh sách các cổng được phép không:
Mã:
semanage port -l | grep smtp_port_t
Mã:
smtp_port_t tcp 125, 25, 465, 587
Bây giờ chúng ta có thể khởi động lại postfix mà không gặp lỗi:
Mã:
systemctl restart postfix
Một cách khác để thực hiện là bật smtp trên localhost và trong cấu hình web assp, bật cổng 25 trên địa chỉ IP công khai/riêng của máy chủ tương ứng. Theo cách này, không cần cấu hình selinux.

Trong /etc/postfix/master.cf:
Mã:
vi /etc/postfix/master.cf
Thay thế
Mã:
smtp inet n - n - - smtpd
Bằng
Mã:
localhost:smtp inet n - n - - smtpd
Trong assp web config, Network Setup->SMTP Listen Port thay đổi từ 25 thành <Public/Private_IP>:25 và Network Setup->SMTP Destination từ 125 thành 127.0.0.1:25

Áp dụng các thay đổi bằng nút Apply trên giao diện web.


Để assp khởi động khi khởi động, trong assp web config, hãy vào Server Setup và trong Run ASSP as a Daemon, hãy chọn Yes – externally được kiểm soát

Sau đó, chúng tôi tạo tập lệnh assp systemd:

vi /etc/systemd/system/assp.service
Mã:
[Unit] 
Description=AntiSpam SMTP Proxy
After=network.target
[Service] 
Type=oneshot 
RemainAfterExit=true 
ExecStart=/usr/bin/perl /var/db/assp/assp.pl /var/db/assp/
ExecStop=/usr/bin/killall /usr/bin/perl
[Install] 
WantedBy=multi-user.target
Tải lại systemd:
Mã:
systemctl daemon-reload
Kích hoạt tập lệnh ASSP khi khởi động:
Mã:
systemctl enable assp.service
Khởi động lại máy chủ và kiểm tra xem các dịch vụ có hoạt động không và đang chạy. Sau đó, bạn có thể tiến hành tinh chỉnh ASSP và postfix (hoặc daemon email bạn chọn).


Liên kết​

 
Back
Bên trên