• Linux服务器限制ssh登录,查看登录日志


    网络上的服务器很容易受到攻击,最惨的就是被人登录并拿到root权限。有几个简单的防御措施:

    1. 修改ssh服务的默认端口###

    ssh服务的默认端口是22,一般的恶意用户也往往扫描或尝试连接22端口。所以第一步就是修改这个默认端口
    打开/etc/ssh/sshd_config,找到
    Port 22
    然后将22修改为其它没有被占用的端口,如1022。最好在1-1024之间,防止与用户进程端口冲突。
    然后重启sshd即可
    sudo /etc/init.d/ssh restart

    2. 限制IP###

    首先修改/etc/hosts.allow文件,将可访问服务器ssh服务的客户IP加入其中,格式如下
    sshd:192.168.1.0/255.255.255.0
    sshd: 202.114.23.45
    sshd: 211.67.67.89
    然后修改/etc/hosts.deny文件,加入禁用其它客户连接ssh服务
    sshd: ALL

    3.升级服务器###

    矛与盾的故事永远没有结局,经常升级服务器是必备的
    apt-get update
    apt-get dist-upgrade

    4.检查登录日志###

    不怕一万,就怕万一,没有攻不破的城堡,有些小偷可能是小白,或者来也匆匆,去也匆匆,在服务器上做完坏事没有擦除痕迹,所以经常检查登录日志,也是一种安全手段
    more /var/log/secure // 新版的Ubuntu都没有这个文件了
    who /var/log/wtmp

    干了些什么?
    root账户下输入su - username
    切换到username下输入
    history
    能看到这个用户历史命令,默认最近的1000条

    5、在终端中查看日志###

    dmesg的命令显示Linux内核的消息缓冲器,其被存储在存储器中。运行这个命令,你会得到很多的输出。
    要过滤此输出并搜索你感兴趣的消息,你可以将使用管道grep:

    dmesg | grep something
    你还可以将dmesg命令的输出管道用less,这样可以按照你自己的速度滚动浏览消息。要退出less,请按Q。

    dmesg | less

    如果一个grep搜索产生大量的结果,你可以将其输出管道用less:
    dmesg | grep something | less
    除了在任何文本编辑器中打开位于/var/log中的日志文件之外,还可以使用cat命令将日志(或任何其他文件)的内容打印到终端:

    cat /var/log/syslog
    像上面的dmesg命令一样,这将产生大量的输出。你可以使用grep和less命令来处理输出:

    grep something /var/log/syslog
    less /var/log/syslog
    其他有用的命令包括头和尾命令。头打印文件中的前n行,而尾部打印文件中的最后n行,如果要查看最近的日志消息,则tail命令特别有用。

    head -n 10 /var/log/syslog
    tail -n 10 /var/log/syslog

    某些应用程序可能不会写入系统日志,并且可能会产生自己的日志文件,你可以使用相同的方式进行操作,通常也可以在/var/log目录中找到它们。例如,Apache Web服务器创建一个包含其日志的/var/log/apache2目录。

    6、常用日志目录代表的意思###

    => /var/log/messages:常规日志消息
    => /var/log/boot:系统启动日志
    => /var/log/debug:调试日志消息
    => /var/log/auth.log:用户登录和身份验证日志
    => /var/log/daemon.log:运行squid,ntpd等其他日志消息到这个文件
    => /var/log/dmesg:Linux内核环缓存日志
    => /var/log/dpkg.log:所有二进制包日志都包括程序包安装和其他信息
    => /var/log/faillog:用户登录日志文件失败
    => /var/log/kern.log:内核日志文件
    => /var/log/lpr.log:打印机日志文件
    => /var/log/mail.:所有邮件服务器消息日志文件
    => /var/log/mysql.
    :MySQL服务器日志文件
    => /var/log/user.log:所有用户级日志
    => /var/log/xorg.0.log:X.org日志文件
    => /var/log/apache2/:Apache Web服务器日志文件目录
    => /var/log/lighttpd/
    :Lighttpd Web服务器日志文件目录
    => /var/log/fsck/*:fsck命令日志
    => /var/log/apport.log:应用程序崩溃报告/日志文件
    => /var/log/syslog:系统日志
    => /var/log/ufw:ufw防火墙日志
    => /var/log/gufw:gufw防火墙日志

    使用tail,more,less和grep命令。

    tail -f /var/log/apport.log
    more /var/log/xorg.0.log
    cat /var/log/mysql.err
    less /var/log/messages
    grep -i fail /var/log/boot

  • 相关阅读:
    mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案
    WebAPI 用户认证防篡改实现HMAC(二)签名验证 AbsBaseAuthenticationAttribute--转
    Calling a Web API From a .NET Client (C#)
    http状态码有那些?分别代表是什么意思
    html 之表单,div标签等。。。。。。。
    mysql之视图,触发器,事务等。。。
    pymysql模块
    MySQL之IDE工具介绍及数据备份
    mysql老是停止运行该怎么解决
    前端基础之html
  • 原文地址:https://www.cnblogs.com/tham/p/10431538.html
Copyright © 2020-2023  润新知