设置Logwatch,SSMTP和Iptables或者Arch Linux(Raspberry Pi)

时间:2020-03-21 11:49:59  来源:igfitidea点击:

这篇文章是在Raspberry Pi上调整默认Arch Linux安装的后续操作。

日志监视和系统日志

由于logwatch尚未移植到systemd(在我撰写本文时),唯一的选择似乎是让systemd将日志转发到syslog-ng。
让我们从安装syslog-ng开始:

# pacman -S syslog-ng

我们必须启用该服务并重新启动系统:

# systemctl enable syslog-ng
# reboot

安装和配置SSMTP

我们将使用SSMTP从Pi发送电子邮件通知。
安装:

# pacman -S ssmtp

打开配置文件:

# vim /etc/ssmtp/ssmtp.conf

适当更改以下设置(确保详细信息正确):

Hyman@theitroad
mailhub=mail.example.com:465
AuthUser=[USERNAME]
AuthPass=[]
UseTLS=YES
#UseSTARTTLS=YES
AuthMethod=LOGIN
RewriteDomain=arch
Hostname=arch
FromLineOverride=yes #enables to use mail -r option

SSMTP配置文件包含我们的电子邮件登录详细信息,因此,最好的做法是限制普通用户访问:

# chmod 0600 /etc/ssmtp/ssmtp.conf

我们现在应该可以发送测试电子邮件:

# echo test | mail -v -s "testing ssmtp setup" Hyman@theitroad

安装和配置Logwatch

安装logwatch:

# pacman -S logwatch

配置文件“ /usr/share/logwatch/default.conf/logwatch.conf”包含所有默认设置以及它们的功能注释。
建议>保留默认配置不变,而是在文件'/etc/logwatch/conf/logwatch.conf'中重新定义要更改的设置变量。
默认设置通常可以,但是我们想更改一些变量:

# cat > /etc/logwatch/conf/logwatch.conf << EOL
Detail = 5 
Output = mail
MailTo = Hyman@theitroad
MailFrom = Hyman@theitroad
Service = "-kernel"
EOL

一切都在这里完成,logwatch准备随时关注我们的日志。

iptables

如果Pi驻留在受信任的NAT之后,则不需要防火墙,但是,将一些基本iptables规则配置到位始终是一个好习惯。
打开文件:

# vim /etc/iptables/iptables.rules

添加以下规则:

*filter
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport 12 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -j REJECT
-A FORWARD -j REJECT
-A OUTPUT -j ACCEPT 
COMMIT

我们之前已将SSH服务器配置为侦听TCP端口12.
其他TCP端口80和443将在以后用于Mediawiki。

亲自注意:“我们在这里使用REJECT而不是DROP,因为RFC 1122 3.3.8要求主机尽可能返回ICMP错误,而不是丢弃数据包。
实际上,最好拒绝应该知道服务器存在的主机的数据包,甚至不应该知道服务器存在的主机或者那些看起来“不知所措”的主机的DROP数据包。

导入iptables规则:

# iptables-restore < /etc/iptables/iptables.rules

并且不要忘记启用并启动该服务:

# systemctl enable iptables.service
# systemctl start iptables.service

重新加载iptables以获取我们所做的任何更改:

# systemctl reload iptables