总结:Linux系统安全与优化配置

时间:2013-09-04 11:17来源:网络资源 作者:sunplusedu 点击:
    1. Openssh 安全配置
    这节主要讲与SSH有关的安全配置
    1.1. 禁止root用户登录
    只允许普通用户登陆,然后通过su命令切换到root用过。后面还会将怎样限制su命令
    PermitRootLogin no
    1.2. 限制SSH验证重试次数
    超过3次socket连接会断开,效果不明显,有一点点用。
    MaxAuthTries 3
    1.3. 禁止证书登陆
    证书登陆非常安全,但是很有可能正常用户在你不知道情况下,给你安装了一个证书,他随时都可能进入你的系统
    任何一个有权限的用户都能很方便的植入一个证书到 .ssh/authorized_keys 文件中
    PubkeyAuthentication no
    AuthorizedKeysFile /dev/null
    1.4. 使用证书替代密码认证
    是不是自相矛盾? 这个跟上面讲的正好相反,这里只允许使用key文件登陆。
    PasswordAuthentication no
    这种方式比起密码要安全的多,唯一要注意的地方就是证书被拷贝 ,建议你给证书加上 passphrase.
    证书的 passphrase 是可以通过openssl工具将其剥离的,SSH证书我没有试过,但是原理都差不多。
    1.5. 图形窗口客户端记忆密码的问题
    当你使用XShell, Xftp, WinSCP, SecureCRT, SecureFX ……等等软件登录时,该软件都提供记住密码的功能,使你下次再登陆的时候无须输入密码就可以进入系统。这样做的确非常方便,但是你是否想过你的电脑一旦丢失或者被其他人进入,那有多么危险。我之前每天背着笔记本电脑上班,上面安装着XShell并且密码全部记忆在里面。这使我意识到一点电脑丢失,有多么可怕。
    禁止SSH客户端记住密码,你不要要求别人那么做。你也无法控制,最终我找到了一种解决方案。
    ChallengeResponseAuthentication yes
    每次登陆都回提示你输入密码。密码保存也无效。
    1.6. 关闭 GSSAPI
    GSSAPIAuthentication no
    #GSSAPIAuthentication yes
    #GSSAPICleanupCredentials yes
    #GSSAPICleanupCredentials yes
    #GSSAPIStrictAcceptorCheck yes
    #GSSAPIKeyExchange no
    1.7. 禁止SSH端口映射
    禁止使用SSH映射Socks5翻墙等等
    AllowTcpForwarding no
    1.8. IP地址限制
    只允许通过192.168.2.1,192.168.2.2 访问本机
    # vim /etc/hosts.allow
    sshd:192.168.2.1,192.168.2.2
    禁止所有人访问本机
    # vim /etc/hosts.deny
    sshd:ALL
    上面使白名单策略,你也可以采用黑名单策略。
    2. Shell 安全
    2.1. .history 文件
    SA的操作记录问题
    通过~/.bash_history文件记录系统管理员的操作记录,定制。bash_history格式
    HISTSIZE=1000
    HISTFILESIZE=2000
    HISTTIMEFORMAT="%Y-%m-%d-%H:%M:%S "
    export HISTTIMEFORMAT
    看看实际效果
    $ history | head
    1  2012-02-27-09:10:45 do-release-upgrade
    2  2012-02-27-09:10:45 vim /etc/network/interfaces
    3  2012-02-27-09:10:45 vi /etc/network/interfaces
    4  2012-02-27-09:10:45 ping www.163.com
    2.2. sudo 安全问题
    /etc/sudoers
    Cmnd_Alias WEBMASTER = /srv/nginx/sbin/nginx, /srv/php/sbin/php-fpm, !/srv/mysql/bin/*
    www localhost = NETWORKING, SERVICES, DELEGATING, PROCESSES, WEBMASTER
    Cmnd_Alias Database = /usr/bin/mysqldump, /srv/mysql/bin/mysql, /u01/oracle/10.x.x/bin/sqlplus
    mysql localhost = NETWORKING, SERVICES, DELEGATING, PROCESSES, WEBMASTER, Database
    使用www用户测试登录,无误后修改SSH配置文件,禁止root登录。
    vim /etc/ssh/sshd_config
    PermitRootLogin no
    然后在测试从www sudo 执行命令, 可能成功启动nginx 与 php-fpm
    2.3. 临时文件安全
    临时文件不应该有执行权限
    /tmp
    /dev/sda3 /tmp ext4 nosuid,noexec,nodev,rw 0 0
    同时使用符号连接将/var/tmp 指向 /tmp
    /dev/shm
    none /dev/shm tmpfs defaults,nosuid,noexec,rw 0 0
    2.4. 执行权限
    以数据库为例,从安全角度考虑我们需要如下更改
    chown mysql:mysql /usr/bin/mysql*
    chmod 700 /usr/bin/mysql*
    mysql用户是DBA专用用户, 其他用户将不能执行mysql等命令。
   
分享到:

凌阳教育嵌入式培训——全国唯一“原厂嵌入式培训”机构,全国唯一“按班公布学员就业去向”的诚信机构

关注我们:

全国免费咨询电话:156-0117-5697或010-62981113(转2824) 服务监督电话:010-62981113-2800

京ICP备09010168号  京公网安备11010802010586号

北京嵌入式培训中心:海淀区上地信息产业基地中黎科技园1号楼3层A段

Copyright © 2017 SunplusEdu Inc. All Rights Reserved