zoukankan      html  css  js  c++  java
  • linux安全加固

    系统信息

        - 查看内核信息        uname -a
    - 查看所有软件包   rpm -qa
    - 查看主机名     hostname
    - 查看网络配置   ifconfig -a
    - 查看路由表         netstat -rn
    - 查看开放端口   netstat -an
    - 查看当前进程    ps -aux

     

    用户帐号和环境禁用无用账号

    - 如果不需要登录系统,shell应该/sbin/nologin

     

    检查特殊账号

    - 验证是否有账号存在空口令的情况:
    awk -F:  '($2 =="") {print $1 }' /etc/shadow
    - 检查除了root以外是否还有其它账号的UID为0:
    - 任何UID为0的账号在系统上都具有超级用户权限.
    awk -F:  '($3 ==0) {print $1 }' /etc/passwd

     

    限制用户远程登录

        - 在#%PAM-1.0的下面,即第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的!
    - vim /etc/pam.d/sshd
    #%PAM-1.0
    auth       required     ddpam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=10

     

    设置自动注销时间

        - 修改帐户TMOUT值,设置自动注销时间,使用命令“vi /etc/profile”修改配置文件,添加“TMOUT=”行开头的注释,设置为“TMOUT=600”,即超时时间为10分钟。
    #vi /etc/profile
    #增加
    TMOUT=600

     

    设置Bash保留历史命令的条数

    - 修改HISTSIZE=5,即只保留最新执行的5条命令
    #vi /etc/profile
    HISTSIZE=5

    调整和关闭非必须的服务

    - 关闭postfix服务。如无必要,禁止该服务。
    systemctl disable postfix

    调整SSH服务

    - 调整配置文件:/etc/ssh/sshd_config
    - 修改SSH端口
    Port 6622
    - 不允许root直接登陆,在ssh的配置文件中进行修改,查找“#PermitRootLogin yes”,将前面的“#”去掉,短尾“Yes”改为“No”,并保存文件。
    systemctl restart sshd.service
    - 添加别的用户
    useradd jkl
    passwd jkl
    111111
    - 下次登陆,先用 jkl的普通用户登陆服务器,注意自己修改的ssh远程连接的端口。
    - 若要获得ROOT权限,在SSH中执行以下命令
    su root1 回车
    输入root密码(一定要回车之后输入密码,linux会有历史记录的保存,要不就是清除历史记录:history -c)执行以上命令并输入root密码后即可获得root权限。

    - 日志级别LogLevel设置为INFO或者DEBUG
    LogLevel INFO
    - 对应调整防火墙和SElinux策略
    yum -y install policycoreutils-python
    semanage port -a -t ssh_port_t -p tcp 6622
    - 调整防火墙策略,限制SSH服务访问IP
    firewall-cmd --state (检查firewalld是否运行)
    firewall-cmd --permanent --list-port(查看端口列表)
    firewall-cmd --permanent --zone=public --add-port=6622/tcp(添加端口)
    firewall-cmd --permanent --remove-port=48489/tcp(删除端口)
    firewall-cmd --permanent --zone=public --remove-service=ssh
    firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.0.10.0/22" service name="ssh" accept"
    ## IP根据实际配置
    firewall-cmd --reload




    # Centos7设置ssh安全策略 ----->> 指定IP登陆。

    vim /etc/ssh/sshd_config
    - 修改默认的ssh端口
    Port 2222 (自定义端口,这里暂定为2222)
    - 禁止root账户通过SSH直接登录
    PermitRootLogin no
    - 添加普通用户并给一个密码
    useradd jkl
    passwd jkl
    111111
    - 新设置的端口,需要打开端口号。
    firewall-cmd –add-port=2222/tcp –permanent
    firewall-cmd –reload
    - 限制SSH登录的IP
    # 设置禁止所有IP连接服务器的SSH
    vim /etc/hosts.deny
    sshd:all:deny
    # 设置允许指定IP连接服务器的SSH(这边建议设置一个备用允许连接的IP)
    vim /etc/hosts.allow
    sshd:192.168.1.106:allow
    - 重启ssh服务,并通过登陆进行验证
    systemctl restart sshd.service
    systemctl status sshd.service

     

    WinSCP下su切换到root的技巧(禁止root远程ssh登录时)

    # 限制了root用户的远程登录,但是重要的数据文件都是700。更可悲的是,WinSCP完全失去了用武之地。因为root账户无法登陆,而像是FTP,SFTP,SCP这些协议都不支持在登录以后切换用户。 SCP协议在登录的时候可以指定shell,一般默认的也就是推荐的是/bin/bash,但是我们可以修改它来玩花样,比如改成sudo su - 但是新问题又来了,sudo需要输入密码,但是WinSCP在登录的时候并没有交互过程。但是天无绝人只要在root权限之路,只要在root权限下visudo,添加如下一行即可取消sudu时的密码:
    yourusername ALL=NOPASSWD: ALL
    # 为了可以在非putty的环境下sudo,我们还需要注释掉下面一行:
    Defaults requiretty
    # 然后保存,即可在登录到WinSCP的时候享受root的快感啦!

     

    系统和网络参数调整

    - vi /etc/security/limits.conf
    * soft core 0
    * hard core 0

    系统文件加锁

    - 防止未经许可的删除或添加,注意:执行权限修改后,就无法添加和删除用户。
    chattr +ia /etc/passwd
    chattr +ia /etc/shadow
    chattr +ia /etc/group
    chattr +ia /etc/gshadow
    chattr +ia /etc/services

    日记调整

    修改rsyslogd日志,rotate>25,日记记录超180天。
    - vim /etc/logrotate.conf
    # rotate 30
    坚持这种真诚,那么总归能遇到良人。
  • 相关阅读:
    pycharm 对mysql的可视化操作
    pycharm连接linux创建django工程
    linux上安装pycharm
    pycharm激活码
    Windows下安装pip
    migrate设置
    python相对目录的基本用法(一)
    pycharm设置连接github
    在shell终端操作oracle数据库的常用命令
    在windows中把一个文件夹打成war包
  • 原文地址:https://www.cnblogs.com/jiaxiaozia/p/12157341.html
Copyright © 2011-2022 走看看