2核1G3M服务器88一季度

腾讯云,阿里云百度云等 折扣价→点我←

Discuz!论坛站长使用Linux服务器安全那些事 discuz 教程

游客1 游客组

1. 关闭不必要的端口服务((最小化服务)
# chkconfig --list
service bluetooth stop
service postfix stop
service vsftp stop
chkconfig vsftp --level 2345 off
chkconfig bluetooth --level 2345 off
chkconfig postfix --level 2345 off
自启动,只保留必要的,其余的全部关闭
for server in `chkconfig --list|grep 3:on |awk '{print $1}'|grep -Ev 'sshd|rsyslog|network|crond|sysstat'`;
do
chkconfig $server off
done
2. 禁止IPV6
# vi /etc/sysconfig/network
NETWORKING_IPV6=no
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no
IPV6_AUTOCONF=no
chkconfig ip6tables --level 2345 off
3. sshd_config安全配置
# vi /etc/ssh/sshd_config
PermitRootLogin no #禁止root直接远程登录
PermitEmptyPasswords no #禁止密码为空的用户登入
UseDNS no #对远程主机进行反向解析,会减慢ssh连接速度
GSSAPIAuthentication no 提高ssh连接速度
PS:
root可以使用su root切换,但是禁止远程登陆。
sed -i "s/#PermitRootLogin yes/PermitRootLogin no/" /etc/ssh/sshd_config
4. ssh修改默认端口
# cp /etc/ssh/ssh_config /etc/ssh/ssh_config_bak
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
修改ssh端口为:25569
# vi /etc/ssh/sshd_config
#Port 22
修改
Port 25569
# vi /etc/ssh/ssh_config
#Port 22
修改
Port 25569
重启:
# /etc/init.d/sshd restart
# service sshd restart
5. 修改用户登录的空闲时间,超时将被踢出
# vi /etc/ssh/sshd_config
ClientAliveInterval 600
ClientAliveCountMax 0
设置的空闲超时时间间隔是600秒,即10分钟,空闲用户将被自动踢出出去。
6. 当普通用户登录,密码输入错误三次,把帐号锁定,120秒重新登录
# cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
auth required pam_tally2.so deny=3 onerr=fail no_magic_root unlock_time=120
7. 注释或者禁止不使用的用户
使用usermod -L 或 passwd -l user 来锁定。
# cp /etc/passwd cp /etc/passwd_bak
# cp /etc/group cp /etc/group_bak
# vi /etc/passwd 编辑用户,在前面加上#注释掉此行
# vi /etc/group 编辑用户,在前面加上#注释掉此行
8. 只允许哪些用户进行ssh和sudo切换
# useradd zhangsan
# passwd zhangsan
# vi /etc/ssh/sshd_config
AllowUsers zhangsan
# visudo -f /etc/sudoers
zhangsan ALL=(ALL) /usr/sbin/ls,/usr/sbin/pwd #zhangsan只能使用ls和pwd命令
举例:
Cmnd_Alias WEBMASTER = /data/nginx/sbin/nginx, /data/php/sbin/php-fpm, !/data/mysql/bin/*
web localhost = NETWORKING, SERVICES, DELEGATING, PROCESSES, WEBMASTER
Cmnd_Alias Database = /usr/bin/mysqldump, /usr/sbin/mysql
mysql localhost = NETWORKING, SERVICES, DELEGATING, PROCESSES, WEBMASTER, Database
# /etc/init.d/sshd reload
9. 设置用户登录超时
用户在线5分钟无操作则超时断开连接
# vi /etc/profile
export TMOUT=300
readonly TMOUT
10. 限制登录失败次数并锁定
# vi /etc/pam.d/login
auth required pam_tally2.so deny=6 unlock_time=300 even_deny_root root_unlock_time=300
11. 下面登录IP白名单管理,你也可以采用黑名单策略
# vi /etc/hosts.deny
sshd:all
# vi /etc/hosts.allow
sshd:192.168.0.1
sshd:192.168.0.2
12. 减少history命令记录
# vi /etc/profile
HISTTIMEFORMAT='%F %T ' 设置时间
HISTCONTROL=ignoredups/erasedups 设置剔除连续重复的条目/清除整个命令历史中的重复条目
HISTFILESIZE=1000 设置在 .bash_history 中保存命令的记录总数.
HISTSIZE=1000 设置 history 命令输出的记录数.
改为
HISTSIZE=0
也可以只读,禁止修改history:
readonly HISTFILE=/var/logs/historys/historys.log
readonly HISTFILESIZE=1000
readonly HISTSIZE=1000
readonly HISTTIMEFORMAT='%F %T '
readonly HISTCONTROL=ignoredups
readonly PROMPT_COMMAND="history -a"
chattr +a /var/logs/historys/historys.log
PS:
或每次退出时加载脚本执行history -c
修改.bash_profile,只对当前用户的history有效,如果修改/etc/profile则对所有用户用效!
13. chattr命令 锁定关键系统文件,防止被提权篡改
给下面的文件加上不可更改属性,从而防止非授权用户获得权限
# chattr +i /etc/passwd
# chattr +i /etc/shadow
# chattr +i /etc/group
# chattr +i /etc/ssh/sshd_config
lsattr /etc/passwd /etc/shadow /etc/services /etc/ssh/sshd_config
注意:执行以上 chattr 权限修改之后,就无法添加删除用户了。
取消:
# chattr -i /etc/passwd
# chattr -i /etc/shadow
# chattr -i /etc/group
# chattr -i /etc/ssh/sshd_config
查看:
# lsattr /etc/passwd
14. 禁止ping
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
15. 进程和文件描述符的设置,防止进程过多导致文件描述符超过上限
# vi /etc/security/limits.conf中添加如下几行:
* hard nofile 65535
* soft nofile 65535
* soft core unlimited
* hard nproc 3000240
* soft nproc 1500240
core 如果为0,表示禁止创建core文件,nproc为创建的进程数限制,nofile表示打开的最大的文件描述符限制
16. 定期做日志安全检查
linux的默认日志文件:
/var/log/message – 记录系统日志或当前活动日志。
/var/log/auth.log – 身份认证日志。
/var/log/cron – Crond 日志 (cron 任务).
/var/log/maillog – 邮件服务器日志。
/var/log/secure – 认证日志。
/var/log/wtmp 历史登录、注销、启动、停机日志和,lastb命令可以查看登录失败的用户
/var/run/utmp 当前登录的用户信息日志,w、who命令的信息便来源与此
/var/log/yum.log Yum 日志。
17. 关闭SELinux永久生效
# vi /etc/selinux/config
将SELINUX=enforcing修改为SELINUX=disabled
# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
# grep 'SELINUX=disabled' /etc/selinux/config
SELINUX=disabled
需要重启服务器才能永久生效。
18. 切换系统运行级别
# runlevel 查看当前系统运行级别
# init number 切换运行级别
# grep -iE '^id' /etc/inittab
一般init 3,init 6 表示重启Linux服务器
19. 防火墙iptables的设置
对于高并发高流量的业务不适合开启iptables防火墙,一般这种业务需要在前端配置硬件防火墙,防火墙规则,请自行google。
查看防火墙规则
iptables -L -n
关闭防火墙
# /etc/init.d/iptables stop
查看防火墙状态
# /etc/init.d/iptables status


站长窝论坛版权声明 1、本帖标题:Discuz!论坛站长使用Linux服务器安全那些事
2、论坛网址:站长窝论坛
3、站长窝论坛的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
4、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
5、站长窝论坛一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本帖由游客1在站长窝论坛《程序综合区》版块原创发布, 转载请注明出处!
评论
最新回复 (1)
  • 游客 游客组
    引用 2
    PermitRootLogin no #禁止root直接远程登录
    这个禁止ROOT直接远程登录的话,还能用SSH远程登录管理主机吗?
    2017/02/23 14:34:31 只看Ta 回复
返回
发新帖