Linux系统安全性基础配置——以Ubuntu为例

参考:https://mp.weixin.qq.com/s/6saxLyPhZx3v51vpCO6Eug

以下操作旨在通过一些基本操作提升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

你可能感兴趣的:(Linux系统安全性基础配置——以Ubuntu为例)