【Liunx-20210918】内存、journal(日志)、禁止远程ip相关

前言

  • 对于Liunx运维一知半解,遇到一些实际问题仍需要搜索解决,并做好笔记。
  • 操作系统Centos

遇到的问题

  1. 有一台服务器(这里称为server01)的内存占用过高
  2. 查看日志文件,发现被未知IP强行使用ssh访问

内存使用过高

1、查看内存的使用率

可以参考:

(1)free命令
(2)top命令

2、发现journald占用内存过高

(1)journald相关知识

journald.conf, journald.conf.d — 日志服务配置文件

常用命令

追踪日志
要主动追踪当前正在编写的日志,大家可以使用-f标记。方式同样为tail -f:
# journalctl -f

显示近期日志
要显示特定数量的记录,大家可以使用-n选项,具体方式为tail -n。
# journalctl -n 20

要获得早9:00到指令发出前这段时间内的报告
# journalctl --since 09:00

(2)rsyslogd、systemd-journald内存占用高解决方案

参考资料:


修改rsyslogd服务配置文件

# vim /usr/lib/systemd/system/rsyslog.service

在Service配置中添加MemoryAccounting=yes,MemoryMax=80M,MemoryHigh=8M三项来限制服务内存使用率

[Unit]
Description=System Logging Service
;Requires=syslog.socket
Wants=network.target network-online.target
After=network.target network-online.target
Documentation=man:rsyslogd(8)
Documentation=http://www.rsyslog.com/doc/

[Service]
Type=notify
EnvironmentFile=-/etc/sysconfig/rsyslog
ExecStart=/usr/sbin/rsyslogd -n $SYSLOGD_OPTIONS
Restart=on-failure
UMask=0066
StandardOutput=null
Restart=on-failure
MemoryAccounting=yes
MemoryMax=80M
MemoryHigh=8M

[Install]
WantedBy=multi-user.target
;Alias=syslog.service

通常情况下rsyslogd大小只有5M,所以将内存上限设置为8M,然后将绝对内存限制为80M。
重启服务

# systemctl daemon-reload
# systemctl restart rsyslog

修改Journal的配置/etc/systemd/journald.conf
重启服务
# systemctl restart systemd-journald

Storage选项
通过查看man手册,#man 5 journald.conf 你会发现,Storage=的值可以是volatile, persistent, auto, none,但是,默认的是auto,
volatile代表日志只存在内存中,即/run/log/journal/
persistent代表日志只存在磁盘中,即/var/log/journal/
auto代表日志存在磁盘中,或者内存中,取决于你是否创建/var/log/journal/目录,部分系统是需要手动>mkdir -p /var/log/journal/,# systemctl restart systemd-journald来解放内存。
none,表示,日志不保留,全部drop,当你决定不使用systemd-journald的时候,你可以使用


Liunx禁止未知IP访问

参考资料:

1、/etc/hosts.allow文件 和 /etc/hosts.deny文件

(1)修改/etc/hosts.allow文件
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#
sshd:210.13.218.*:allow
sshd:222.77.15.*:allow

all:218.24.129.110 #表示接受110这个ip的所有请求!

in.telnetd:140.116.44.0/255.255.255.0
in.telnetd:140.116.79.0/255.255.255.0
in.telnetd:140.116.141.99
in.telnetd:LOCAL
smbd:192.168.0.0/255.255.255.0 #允许192.168.0.网段的IP访问smbd服务

#sendmail:192.168.1.0/255.255.255.0
#pop3d:192.168.1.0/255.255.255.0
#swat:192.168.1.0/255.255.255.0
pptpd:all EXCEPT 192.168.0.0/255.255.255.0
httpd:all
vsftpd:all

以上写法表示允许210和222两个ip段连接sshd服务(这必然需要hosts.deny这个文件配合使用),当然:allow完全可以省略的。

ALL要害字匹配所有情况,EXCEPT匹配除了某些项之外的情况,PARANOID匹配你想控制的IP地址和它的域名不匹配时(域名伪装)的情况。
(2)配置/etc/hosts.deny
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
sshd:all:deny

in.telnet:ALL

ALL:ALL EXCEPT 192.168.0.1/255.255.255.0,192.168.1.21,
202.10.5.0/255.255.255.0

注意看:sshd:all:deny表示拒绝了所有sshd远程连接。:deny可以省略。
(3)启动服务
注意修改完后:
# service xinetd restart
才能让刚才的更改生效。
2、iptalbes来限制IP访问网站

todo


总结与注意事项

总结

  • 目前只是比较简单的尝试,没有使用复杂的配置,如果要更加好的优化,那还有待研究

注意事项

1、修改/etc/hosts.deny报错:warning: /etc/hosts.allow, line 20: missing newline or line too long
  • 原因:修改文件后,最后不是以换行符结尾的。
  • 解决办法:在文件最后一行换行,并保存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行走中思考

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值