在这篇 英文帖子里, 我们知道网络安全是多么的重要. 如果你管理你的服务器(VPS,云主机或专用服务器),那么你必须有根 root的访问.根帐号 root 就是像是 Windows 下的管理员帐户,但更强大(你基本上可以用 root 做任何事情).
把 Linux 操作系统下的 root 改名并不是一件非常好的事,因为很多程序 (比如 sendmail) 都会假定 root 帐号的存在,如果不存在,就有可能会出错.平时我们也应该有一个普通的帐户用于处理一些不涉及底层的事情.这样的好处是比较安全, 不会因为一些误操作而使服务器当机.
SSH
创建一个普通帐号很简单: 命令 sudo adduser nuser 就可以, 其中参数 nuser 就是我们创建的新普通用户. 创建的时候可以顺便指定密码,也可以之后用命令passwd nuser 来改密码.
有了普通帐号之后一定要再三确认可以远程登陆并且切换到 root 帐号 (使用 su 命令). 需要确认是因为禁掉 root 远程登陆之后就只能用普通帐号来登陆.
接下来只要改 /etc/ssh/sshd_config 文件,把其中的 PermitRootLogin yes 改成 PermitRootLogin no. 通过以下命令重新启动 SSH 服务器:
1 | sudo service ssh restart |
sudo service ssh restart
重新SSH登陆 root, 就会发现不管密码对不对都进不去了,这样至少安全一些,因为网上有很多肉机不停的暴力尝试 root 密码.
FTP (vsFTP)
FTP 不安全,但是如果一定要用的话,可以选择 SFTP 或者 SSL/TLS 会安全一些.在 Linux, 比较常用的是 vsFTP 服务.
vsFTP 的配置是在文件 /etc/vsftp.conf 中, 然后需要在文件尾部加入(或者更改原配置文件里的项)
1 2 3 4 5 6 | anonymous_enable=NO # no anonymous login plz local_enable=YES write_enable=YES userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd.users |
anonymous_enable=NO # no anonymous login plz local_enable=YES write_enable=YES userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd.users
然后我们需要创建这么一个列表 /etc/vsftpd.users 把可以登陆的用户加到这个文件中(每一行对应一个用户名). 按下面的命令重新启动 vsFTP 服务
1 | sudo service vsftpd restart |
sudo service vsftpd restart
接下来用 root 登陆 FTP,则会显示类似这样的信息:
Connecting to: XXXXXXXXX 220 (vsFTPd 3.0.2) USER root 530 Permission denied. 220 (vsFTPd 3.0.2) USER root 530 Permission denied. Certificate: Can't connect LastError: 0
MySQL
禁用远程MySQL root帐号登陆
一般来说,也需要禁掉 MySQL 数据库远程 ROOT 登陆,尽量创建一个普通权限的用户来操作一些数据库.当然如果你懒的话,就一个帐号操作所有的数据库也是可以的.但是最重要的一点是不允许远程登陆 mysql 进行 root 登陆.因为很多人会不停尝试数据库的 root 登陆,有一定的风险.
登陆 MySQL, 执行以下两条命令即可:
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1'); flush privileges;
禁用所有远程MySQL登陆
如果你想禁止所有远程用户登陆MySQL, 只允许本地服务器(localhost) 那么可以让MySQLd 进程不监听网络端口 可以在 /etc/mysql/my.cnf 配置文件里的 [mysqld] 章节加入 skip-networking
1 2 3 | [mysqld] port=3306 skip-networking |
[mysqld] port=3306 skip-networking
如果有 ;skip-networking 只需要取消注释即可, 当然保存好配置文件后还需要重启MySQL服务
1 | sudo service mysqld restart |
sudo service mysqld restart
英文同步: https://helloacm.com/secure-the-linux-server-by-disallow-the-remote-root-login-ssh-and-ftp/
配置服务器建议的配置
loading...
上一篇: 如何在 Linux 下 列出最耗资源的进程 (BASH 脚本)
下一篇: VPS 有点慢啊.正在找原因,别着急.
我表示把这些维护的任务都交给了主机商.