linux安全防护还是有必要做的, 可以杜绝大部分入侵. 下面我们来说说安全防护步骤(下面以centos7发行版为例).
自动更新软件补丁版本
我们linux的很多软件都有bug, 这些bug发现后要打补丁, 否则会容易被黑客利用. 虽然可以手动yum --security upgrade
, 但能自动何必手动?
安装并启动yum-cron
yum -y install yum-cron
systemctl start yum-cron
# 这是允许开机启动
systemctl enable yum-cron
配置yum-cron
配置文件地址在/etc/yum/yum-cron.conf
update_cmd
选项, 该选项默认default
, 直接升级软件版本, 而不是给软件打补丁. 我们必须设置为security
, 这样只是打漏洞补丁, 而不会直接升级新版本.update_cmd = security
download_updates
和apply_updates
选项, 这两个选项必须是yes
, 意思是当发现新补丁时, 自动下载并更新.download_updates = yes download_updates = yes
重新启动后就能自动更新
systemctl restart yum-cron
指定登陆用户
我们知道root用户, 其他人也知道, 黑客当然更知道. 所以指定另一个账户登陆就非常有必要.
新建用户并给与sudo权限
# 新增用户
useradd zhangsan
# 修改登陆密码
passwd zhangsan
# 输入两次密码
# 设置sudo权限, a代表append, G代表哪个组, 意思是添加sudo用户组给zhangsan
usermod -aG wheel zhangsan
# 以后每次使用root权限时在命令前要加sudo, 并且输入root的密码
使用公私匙进行登陆
上面配置了新的登陆用户, 但是登陆时还是要密码登陆, 这是非常不安全的, 因为明文密码容易被拦截. 所以我们要使用公私匙登陆.
ssh常见问题汇总这篇文章写了,我就不罗嗦了.
配置sshd文件
修改内容
- 我们前面只是创建了zhangsan用户用于登陆, 并没有禁止root用户登陆, 所以我们要禁止root用户登陆.
- 我们前面虽然让zhangsan使用了公密匙登陆, 但是并没有禁止他密码登陆, 所以我们要禁止密码登陆.
- ssh的登陆端口是22, 地球人都知道, 所以我们要修改该端口.
- 我用的登陆地址类型是ip4, 所以我禁止ip6的地址登陆.
具体配置
配置文件地址是/etc/ssh/sshd_config
# 修改登陆端口为717
Port 717
# 只能使用ip4地址类型登陆
AddressFamily inet
# 禁止root用户登陆
PermitRootLogin no
# 禁止密码登陆
PasswordAuthentication no
重要提示:
- 大家先别设置
PermitRootLogin no
, 以方设置出错不能登陆服务器, 等确定了zhangsan
能登陆再设置该项. - 注意腾讯云和阿里云自带的防火墙, 如果发现修改端口后不能登陆, 一定是没关闭腾讯云或埃莉芸自带防火墙.
重启sshd
systemctl restart sshd
启动防火墙
经过上面4个步骤至少别人通过ssh登陆是防护住了, 但是电脑上是有很多端口的, 这些端口就是一个个小窗户, 我们必须关闭, 才能防止别人从小窗户入侵. 这就要使用到防火墙了.
服务器都安装了这个东西, 我们只要开启就行.
systemctl start firewalld
防火墙常用命令
命令
描述
firewall-cmd --state
查看防火墙状态
firewall-cmd --list-all
查看防火墙放行端口
firewall-cmd --add-port=80/tcp --permanent
添加需要放行的端口
firewall-cmd --remove-port=80/tcp --permanent
移除需要放行的端口
systemctl start firewalld
启动
systemctl stop firewalld
停止
systemctl restart firewalld
重启
配置端口时, 如果过多, 就直接去/etc/firewalld/zones/public.xml
文件修改. 配置完成后永远记得重启.
禁止被ping
经过上面5个步骤其实已经OK了, 但是为了防止别人ping我们主机, 我们可以设置一下, 让别人ping不通我们主机.
主要还是依靠防火墙, 因为ping是使用icmp
协议, 我们让防火墙丢弃所有icmp包就Ok了.
# 丢弃所有icmp包
firewall-cmd --add-rich-rule='rule protocol value=icmp drop' --permanent
# 重启
systemctl restart firewalld
最后设置腾讯云的防火墙
除了主机上有防火墙, 腾讯云或阿里云本身就自带外网防火墙, 所以这个我们要设置下, 保持和linux防火墙的设置一致. 这个就不罗嗦了.
总结
经过以上步骤基本上是固若金汤, 我们来回顾下:
- 自动更新软件补丁版本
- 指定登陆用户
- 使用公私匙进行登陆
- 修改sshd配置文件
- 设置linux防火墙
- 防止被ping
- 设置腾讯云防火墙
参考资料
How to Setup Automatic Security Updates on CentOS 7 5 Steps to Secure Linux (protect from hackers)