以下操作旨在通过一些基本操作提升Linux系统的安全性,都是在XShell中连接远程Ubuntu(16.04版本)服务器、用root用户执行的,文中所写的命令代码一开始的$
只是一个标志,用来表示后面的文本是命令行命令,$
符号本身并不代表实际要输入的命令内容。
修改root密码
先登录root用户,输入命令:
$ passwd
然后输入新的密码、重复输入新的密码,即可完成修改root密码。
创建用户并指定密码
- 创建用户:
$ adduser zhangsan
- 其中
zhangsan
为用户名,新创建的用户是默认没有密码的,还需要继续设置密码:
$ passwd zhangsan
然后输入密码、重复输入密码,即可完成为用户zhangsan
设置密码。
禁止root用户登录ssh,指定普通用户才可以登录
- 打开ssh配置文件:
$ vim /etc/ssh/sshd_config
- 找到
# PermitRootLogin yes
这一行,去掉行首的#
号,并把yes
改为no
,然后保存文件。 - 重启ssh服务:
$ service ssh restart
- 此时不要关闭当前XShell页(防止出现什么幺蛾子),打开新的XShell页用新创建的
zhangsan
用户看能否通过ssh连上服务器。
修改ssh登录端口(默认为22)
- 打开ssh配置文件:
$ vim /etc/ssh/sshd_config
- 找到
# Port 22
所在的一行,去掉行首的#
号,然后在这一行的下方加入新的一行内容:Port 2222
这里的2222
就是为ssh新指定的端口号(可以取1024~65535之间的任一个端口) - 保存文件,重启ssh服务:
$ service ssh restart
- 看能否通过
2222
端口ssh连上服务器,如果可以,则继续修改ssh配置文件:
$ vim /etc/ssh/sshd_config
- 删掉
Port 22
所在的一行,保存文件,重启ssh服务:
$ service ssh restart
- 此时ssh只能通过
2222
端口连接,而通过默认的22端口则不再能连接上。
firewalld防火墙
firewalld是CentOS系统上基于iptables的一个防火墙软件,也可以在ubuntu上安装使用。
安装firewalld
- 安装:
$ apt-get install firewalld
- 查看firewalld的帮助:
$ firewall-cmd --help
- 查看防火墙的状态:
$ firewall-cmd --state
将新指定的ssh端口加入防火墙白名单
只有在防火墙白名单中的端口才允许外界访问,而这个白名单默认是空的,从而大大保证了安全性。
- 增加新指定的ssh端口到防火墙白名单:
$ firewall-cmd --zone=public --add-port=2222/tcp --permanent
其中2222
为新指定的ssh端口,tcp
表示协议类型,--permanent
表示持久化保存。 - 重启防火墙使其生效:
$ firewall-cmd --reload
- 查看防火墙白名单中的端口:
$ firewall-cmd --list-ports
可以发现2222
端口已经被添加到了防火墙的白名单中。
添加其他需要的端口到防火墙白名单
比如添加TCP协议的9999端口:
$ firewall-cmd --zone=public --add-port=9999/tcp --permanent
$ firewall-cmd --reload
$ firewall-cmd --list-ports
测试能否远程连接到某个端口
$ telnet 1.1.1.123 2333
:测试能否连上IP地址为1.1.1.123
的主机的2333端口。
关闭firewalld
$ systemctl stop firewalld.service
卸载firewalld
- 查找当前firewalld的安装名:
$ dpkg --list | grep firewalld
- 卸载firewalld:
$ apt-get --purge remove firewalld
注:--purge
表示完全卸载,不保留任何配置文件。
ufw防火墙
ufw(Uncomplicated Firewall)也是一种基于iptables的防火墙,Ubuntu 16.04自带ufw防火墙,是其默认防火墙,不需要安装。
安装ufw
$ apt-get install ufw
查看帮助
$ ufw -h
帮助内容如下:
root@vultr:~# ufw --help
Usage: ufw COMMAND
Commands:
enable enables the firewall
disable disables the firewall
default ARG set default policy
logging LEVEL set logging to LEVEL
allow ARGS add allow rule
deny ARGS add deny rule
reject ARGS add reject rule
limit ARGS add limit rule
delete RULE|NUM delete RULE
insert NUM RULE insert RULE at NUM
route RULE add route RULE
route delete RULE|NUM delete route RULE
route insert NUM RULE insert route RULE at NUM
reload reload firewall
reset reset firewall
status show firewall status
status numbered show firewall status as numbered list of RULES
status verbose show verbose firewall status
show ARG show firewall report
version display version information
Application profile commands:
app list list application profiles
app info PROFILE show information on PROFILE
app update PROFILE update PROFILE
app default ARG set default application policy
可以看到,ufw命令比firewalld是更为简洁的。
查看ufw状态
$ ufw status
开启ufw
$ ufw enable
关闭ufw
$ ufw disable
添加一个允许规则
$ ufw allow 2333/tcp
:允许来自2333端口的tcp请求。
添加一个拒绝规则
$ ufw deny 2333/tcp
:拒绝来自2333端口的tcp请求。
删除一个规则
$ ufw delete allow 2333/tcp
:删除"允许来自2333端口的tcp请求"这条规则。
重启ufw
$ ufw reload
网友评论