-
虽然说 Linux 系统比 Windows 安全性要高一些,不过一些简单的安全配置也是必要的。互联网上有很多工具采用字典方式扫描套取你的管理员密码,我们可以创造一些麻烦出来,增加被破译的可能性。
之前陈德馨已经分享了 Linux VPS 的优化方法,今天,我就来分享一些Linux VPS系统安全设置方面的经验。
一、用户权限安全设置
root权限太高,误操作就相当危险,所以日常操作使用普通账号,只有特定时候才使用su切换到root身份。
1、新建普通用户,比如chendexin
useradd chendexin
2、修改密码,比如root123
passwd root123
3、将帐号加入wheel组
usermod -G wheel chendexin
4、设置只允许这个组的帐号,使用su命令切换到root
vim /etc/pam.d/su
找到 #auth required pam_wheel.so use_uid
去掉行首的注释符 # 然后使用 :wq 保存退出
接着vim /etc/login.defs
在最末添加 SU_WHEEL_ONLY yes,再用:wq保存退出即可。
Ps:执行 echo "SU_WHEEL_ONLY yes">>/etc/login.defs 亦可。
现在,再建立新的普通帐号,是无法使用su命令切换到root组了,感兴趣的可以测试下效果。
5、删除掉不需要的用户和用户组
禁止所有默认的被操作系统本身启动的并且不必要的账号,账号越多,系统就越容易受到攻击。
userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel uucp
userdel operator
userdel games
userdel gopher
userdel ftp
groupdel lp
groupdel news
groupdel uucp
groupdel games
groupdel dip
groupdel pppusers
6、锁定口令文件
执行 chattr 命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限。
chattr +i /etc/passwd chattr +i /etc/shadow chattr +i /etc/group chattr +i /etc/gshadow
二、SSH安全设置(修改SSH端口)
默认的SSH使用22端口,众所周知,所以我们有必要自定义只有自己才知道的端口号,而且增加那些恶意扫描端口的难度,建议把SSH端口改到10000以上,比如使用23212,如下修改:
Ps:修改前,请执行iptables -nL 确认防火墙未设置非22/80访问限制规则,否则可能导致修改后无法使用自定义端口连接就悲剧了!
vim /etc/ssh/sshd_config 编辑SSH配置文件
01、找到 #Port 22,去掉#号,并在下面添加 Port 23212(先保留22端口,等23212成功连接再去掉22,保险做法)
02、继续找到 #UseDNS yes,改成UseDNS no,可以提高ssh的连接速度;
03、找到 #PermitRootLogin Yes 改成 PermitRootLogin no 禁止root远程使用ssh登录
04、找到 #PermitEmptyPasswords no,去掉#号, 禁止空密码登录
最后,使用 :wq 保存退出,再执行 service sshd restart 重启 ssh服务即可生效。
此时,可以新开一个终端,测试能否通过23212端口连线,如果可以就把之前保留的port 22删除即可。
三、防火墙简单安全设定
VPS是直接使用公网IP的,防火墙还是得简单设置下。
前期如下规划:
仅作为web服务器使用,所以只需要开放SSH和HTTP端口即可,即只要开放上面定义的23212和80端口,由于不使用ftp,本例未提到21号端口,实际使用请注意辨别。
1、准备工作
由于操作防火墙具有一定的误操作风险,很可能导致自己也被阻挡在外的悲剧,所以操作防火墙之前事先一定要先建立一个关闭防火墙的计划任务,比如:
执行 crontab -e 加入:
*/5 * * * * root /etc/init.d/iptables stop
表示每5分钟停止一次防火墙,以防误操作把自己挡在外面,就算出现误操作,5分钟之内将会停止,也不会造成悲剧,这是一个技巧!
2、防火墙设置脚本
以下代码我亲测无误,请放心使用,策略说明:
01、仅开通HTTP(80)和SSH(自动抓取)端口,其他一律拒绝访问!可根据实际需要在第10行添加其他端口,比如FTP的21端口、smtp25端口等。
02、单向禁ping设置,即外部IP无法ping通你的公网IP。
策略代码:
#!/bin/bash ssh_port=`netstat -nutlp | grep sshd | grep 0.0.0.0 | awk '{print $4}' | cut -d ":" -f2` iptables -F iptables -F -t nat iptables -X iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp -m multiport --dport 80,$ssh_port -j ACCEPT iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT /etc/init.d/iptables save exit 0
确认无误后,记得把第1步中的任务计划取消。
如我的VPS防火墙规则如下:
四、其他安全设置
1、禁ping
执行如下命令即可:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
然后用你的电脑 ping 服务器IP就可以看到效果了!
当然如果你用了上面的防火墙脚本,就已经自带禁ping功能了。两种方法的区别如下:
以上方法,ping能够返回消息(前提是防火墙未做阻挡规则,否则直接超时):
采用防火墙的方法,则直接超时:
Ps:个人推荐使用上文的防火墙脚本设置,更彻底。
2、开启TCP SYN Cookie保护
执行 echo 1 > /proc/sys/net/ipv4/tcp_syncookies 即可。
做到这里,你的VPS已经具备不错的安全性了,当互联网没有绝对的安全可言,我们必须时刻注意网络安全动态,随时对已经暴露出的和潜在安全漏洞进行修补。
Ps:除了安全设置外,还可以针对VPS做一些优化设置,请参考陈德馨之前的文章:Linux VPS的优化方法收集与整理
Linux VPS系统安全设置整理
1688人参与 |分类: 站长百科|时间: 2015年02月03日
相关文章
- 2020-01-10作为站长应该懂得的7大搜索引擎站长平台
- 2019-10-22个人博客网站用什么程序比较好?
- 2019-10-12头条搜索站长平台如何添加网站和sitemap文件?附图文教程
- 2019-09-26PHP环境下是选择Apache和Nginx?
- 2019-09-11网站运维人员必做的7项网站维护工作
- 2019-08-26现在还要必要坚持做PC网站或个人博客吗?
- 2019-08-03宝塔面板+云锁nginx自编译web防护的图文教程
- 2019-07-08解决国内主机服务器 WordPress 后台异常卡顿的问题
- 2019-07-02网站启用SSL自动301跳转到HTTPS教程
- 2019-06-06宝塔/BT面板内存占用MySQL频繁崩溃自动重启方法
评论专区请在后台修改