忘记密码?

一键登录

草根吧源码论坛

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

查看: 112|回复: 1

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

[复制链接]

2376

主题

4088

热度

1072

贡献

民审

Rank: 8Rank: 8

发表于 2017-2-12 11:13:24 | 显示全部楼层 |阅读模式 | 百度  360  谷歌 
分享到:
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


帖子地址: 

本文来源于草根吧源码论坛 www.caogen8.co,欢迎大家下载。
如果您没有贡献需要充值,可以直接在线充值,点击充值
如果你需要加入本站赞助VIP会员,可以直接在线开通,点击开通
如果找不到您要的资源,请搜索一下,点击搜索
回复

举报

7

主题

20

热度

95

贡献

终身赞助ViP

Rank: 7Rank: 7Rank: 7

发表于 2017-2-23 14:34:31 | 显示全部楼层
DZ建站资源有求必应
PermitRootLogin no #禁止root直接远程登录
这个禁止ROOT直接远程登录的话,还能用SSH远程登录管理主机吗?

发表回复

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆 用百度帐号登录 一键登录:

本版积分规则

收藏帖子 返回列表 搜索
快速回复 返回顶部 返回列表