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.
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)
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
Tải thêm phần mềm cho Centos từ các kho lưu trữ epel, repoforge, remi:
Cài đặt tường lửa shorewall (trình quản lý iptables):
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:
Tệp chính sách:
Tệp quy tắc:
Trong ?SECTION NEW, hãy thêm các quy tắc bên dưới:
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:
Bật tường lửa
Kiểm tra xem tường lửa có đang chạy hay không bằng lệnh shorewall status:
Cài đặt phần mềm cần thiết cho ASSP2 & Các mô-đun:
Cập nhật CPAN tùy chọn
Chấp nhận các tùy chọn mặc định và tiến hành nâng cấp:
Bật ClamAV khi khởi động
systemctl bật clamd
Chỉnh sửa /etc/clamd.conf:
Thay thế các giá trị của bạn bằng các giá trị bên dưới:
Chỉnh sửa /etc/freshclam.conf:
Thêm hoặc bỏ chú thích LogRotate yes
Khởi động ClamAV:
Cài đặt các mô-đun CPAN cho ASSP:
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 đó:
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:
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:
Khởi động assp lần đầu tiên:
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:
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:
Thay thế
Bằng
Hãy khởi động lại postfix:
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:
Và kiểm tra xem cổng 125 có nằm trong danh sách các cổng được phép không:
Bây giờ chúng ta có thể khởi động lại postfix mà không gặp lỗi:
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:
Thay thế
Bằng
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
Tải lại systemd:
Kích hoạt tập lệnh ASSP khi khởi động:
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).
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
Mã:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
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
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
Đầu tiên, tệp giao diện:
Mã:
vi /etc/shorewall/interfaces
Mã:
net eth0
Mã:
vi /etc/shorewall/policy
Mã:
$FW net ACCEPT
net all DROP
all all REJECT
Mã:
vi /etc/shorewall/rules
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
# 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
Mã:
systemctl enable shorewall
systemctl start shorewall
Mã:
shorewall status | grep running
Mã:
Shorewall đang chạy
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
Mã:
perl -MCPAN -e shell
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, ...).
Mã:
vi /etc/clamd.conf
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
Mã:
vi /etc/freshclam.conf
Khởi động ClamAV:
Mã:
systemctl start clamd
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
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
Mã:
perl -MCPAN -e shell
Mã:
cpan> install
Mã:
unzip ASSP__Install.zip
mv -f assp/ /var/db/assp/
cd /var/db/assp
Mã:
perl assp.pl
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
Mã:
vi /etc/postfix/master.cf
Mã:
smtp inet n - n - - smtpd
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.
Để 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
Mã:
semanage port -l | grep smtp_port_t
Mã:
smtp_port_t tcp 125, 25, 465, 587
Mã:
systemctl restart postfix
Trong /etc/postfix/master.cf:
Mã:
vi /etc/postfix/master.cf
Mã:
smtp inet n - n - - smtpd
Mã:
localhost:smtp inet n - n - - smtpd
Á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
Mã:
systemctl daemon-reload
Mã:
systemctl enable assp.service