• 禁止root SSH登陆
  • 配置SSH Key
  • 配置iptables

当我们安装完Linux系统作为服务器后,总有一系列的安全配置需要进行。特别是当你的服务器Ip是对外网开放的话。全世界有很多不怀好意的人,不断试图穷举你的root密码,尝试登陆。那么为Linux服务器增加一些安全措施,是很有必要的。

本文读者需要有一定的linux基础,有一定的网络与英语基础。知道如何使用nano/vim编辑器。不过总体而言,本文是为初级用户编写。

系统更新

在配置前更新一下系统

apt update
apt upgrade -y

配置sudo

新增一个用户,用于替代root进行登陆

apt install sudo -y
useradd -m -s /bin/bash youruser
passwd youruser

为新增的用户增加sudo权限

visudo

youruser  ALL=(ALL:ALL) NOPASSWD:ALL

配置ssh配置,禁止root登陆,禁止空密码登陆,然后重启ssh服务

nano /etc/ssh/sshd_config

PermitRootLogin no
PermitEmptyPasswords no #默认为no service sshd restart

配置好后,你可以通过新增的用户ssh登陆服务器,可以通过sudo命令执行需要高权限的命令。如果希望完全切换到root账户,可以使用

sudo -i

配置ssh key

配置ssh key后,可以通过公钥私钥的验证方法验证模式,验证用户身份。这样的验证方式更加安全,便捷。配置成功后,ssh登陆服务器无需再繁琐地输入密码。

注意:下述部分配置会禁止ssh密码登陆,请在重启服务前将key放到正确的位置。如果你不清楚自己在做什么,建议在你能够使用非ssh手段登陆服务器的情况下进行尝试。

下述配置用于禁止密码登陆,开启公钥验证登陆。

nano /etc/ssh/sshd_config

PasswordAuthentication no
PubkeyAuthentication yes

windows客户机安装git for windows后运行git bash产生密钥,产生的key存放于~.ssh目录。

ssh-keygen #生成密钥
cat ~/.ssh/id_rsa.pub #查看公钥

将客户端的公钥,写入服务器的对应用户的~/.ssh/authorized_keys文件,如果有多个客户机,可以换行添加多个公钥。

最后重启ssh服务,使配置生效

systemctl restart sshd

iptables与ip6tables配置

更多关于iptables配置信息,可参考:

https://wiki.debian.org/iptables

https://wiki.debian.org/DebianFirewall

nano /etc/iptables.rules
*filter

# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT # Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Allows all outbound traffic
# You could modify this to only allow certain traffic
-A OUTPUT -j ACCEPT # Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
#-A INPUT -p tcp -s yourip --dport yourport -j ACCEPT
#-A INPUT -p tcp -s yourip -m state --state NEW --dport yourport -j ACCEPT
#-A INPUT -p tcp --dport yourport -j ACCEPT
#-A INPUT -p udp --dport yourport -j ACCEPT # Allows SSH connections
# The --dport number is the same as in /etc/ssh/sshd_config
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT # Now you should read up on iptables rules and consider whether ssh access
# for everyone is really desired. Most likely you will only allow access from certain IPs. # Allow ping
# note that blocking other types of icmp packets is considered a bad idea by some
# remove -m icmp --icmp-type 8 from this line to allow all kinds of icmp:
# https://security.stackexchange.com/questions/22711
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT # log iptables denied calls (access via 'dmesg' command)
#-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 # Reject all other inbound - default deny unless explicitly allowed policy:
-A INPUT -j REJECT
-A FORWARD -j REJECT COMMIT
nano /etc/ip6tables.rules
*filter

-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT -A INPUT -i lo -j ACCEPT
-m state --state ESTABLISHED,RELATED -A INPUT -j ACCEPT
-A INPUT -p icmpv6 -j ACCEPT COMMIT

使配置生效可使用命令

iptables-restore < /etc/iptables.rules
ip6tables-restore < /etc/ip6tables.rules

开机启动时,导入iptables规则

nano /etc/network/if-pre-up.d/iptables

#!/bin/bash
/sbin/iptables-restore < /etc/iptables.rules
/sbin/ip6tables-restore < /etc/ip6tables.rules chmod +x /etc/network/if-pre-up.d/iptables

保存当前的iptables rules可使用命令

iptables-save > /etc/iptables.rules

查看防火墙规则

iptables -L -n -v
ip6tables -L -n -v

至此,安全配置已完成,你可以在上述配置中添加自己的防火墙规则,例如哪些Ip能够访问服务器,哪些端口能够开放。然后使用iptables-restore命令刷新这些防火墙规则。

Debian/Linux系统安全配置教程的更多相关文章

  1. Kali Linux常用服务配置教程安装及配置DHCP服务

    Kali Linux常用服务配置教程安装及配置DHCP服务 在Kali Linux中,默认没有安装DHCP服务.下面将介绍安装并配置DHCP服务的方法. 1.安装DHCP服务 在Kali Linux中 ...

  2. Linux 系统 网络配置

    Linux 系统 网络配置 配置Linux系统网络的方法有几种,这里介绍本人常用的两种. 第一种:使用命令ifconfig配置,具体用法:Ipconfig  ethx   x.x.x.x    net ...

  3. 虚拟机Linux系统下配置网络

    虚拟机上安装Redhat9.0后是没有网络的,而本来的Windows系统是可以上网的,此时想在Redhat上网就需要在Linux系统上配置网络,以下是笔者自己配置的一点心得. 1.电脑本机系统打开网络 ...

  4. Kali Linux常用服务配置教程获取IP地址

    Kali Linux常用服务配置教程获取IP地址 下面以Kali Linux为例,演示获取IP地址的方法 (1)设置网络接口为自动获取IP地址.在Kali Linux的收藏夹中单击图标,将显示所有的程 ...

  5. Kali Linux常用服务配置教程启动DHCP服务

    Kali Linux常用服务配置教程启动DHCP服务 通过前面的介绍,DHCP服务就配置好了.接下来,用户就可以使用该服务器来获取IP地址了.下面将对前面配置的服务进行测试. 1.启动DHCP服务 如 ...

  6. Kali Linux常用服务配置教程DHCP服务原理

    Kali Linux常用服务配置教程DHCP服务原理 动态主机配置协议(Dynamic Host Configuration Protocol,简称DHCP)是一个局域网的网络协议,基于UDP协议工作 ...

  7. Windows系统Git配置教程(Git配置git config)

    Windows系统Git配置教程(Git配置git config)   在很多Git配置教程中,多是安装完毕后就告诉大家要配置用户名和邮箱,但是这个配置是保存在哪里呢,配置后面的参数有什么不同呢,下面 ...

  8. 在linux系统中配置NVMe over FC

    在linux系统中配置NVMe over FC与配置NVMe over TCP类似,前5步操作请参考<在linux系统中配置NVMe over TCP>,网页连接如下: https://w ...

  9. CentOS7 【linux系统】配置 JDK 教程

    1. 下载 [linux版本] JDK 1.8 的包. 2. 导入linux系统里面. 如何导入,下载一个winSCP 软件 破解安装,然后再linux 系统里面 查询IP,连接即可. 在linux解 ...

随机推荐

  1. spring面试资料

    *  Spring的优点有什么?   1.  Spring是分层的架构,你可以选择使用你需要的层而不用管不需要的部分   2.  Spring是POJO编程,POJO编程使得可持续构建和可测试能力提高 ...

  2. python 文件操作的函数

    1. 文件操作的函数 open(文件名(路径), mode="?", encoding="字符集") 2. 模式: r, w, a, r+, w+, a+, r ...

  3. 【转】用Jmeter制造测试数据

    在平时的测试过程中,肯定会有碰到需要一批大量的数据的情况,如果这些数据本身没有太多的要求,或者说需求比较简单,可以通过简单的参数化实现的,推荐用Jmeter来造数据. 限制: Jmeter只能支持ja ...

  4. Vmware虚拟机linux上网问题

    1.虚拟机linux上网问题 1.1 VMware中虚拟机网络的三种设置 第一种:桥接(bridged) 第二种:NAT 第三种:Host only . 这种模式下仅主机可以上网,虚拟机不能上网. 1 ...

  5. java.lang.NoClassDefFoundError: org/jaxen/JaxenException解决方法

    在使用dom4j的xpath时出现java.lang.NoClassDefFoundError: org/jaxen/JaxenException的异常,原因是dom4j引用了jaxen jar包,而 ...

  6. MVC Html.DropDownList 和DropDownListFor 的常用方法

    一.非强类型: Controller: ViewData["AreId"] = from a in rp.GetArea() select new SelectListItem { ...

  7. 关于No ManagedConnections available within configured blocking timeout异常的解决

    最近由于系统和业务重构需要,需要把线上1亿数据迁移到新库,由于业务变更,新表老表结构有变化,没法直接用dba dump的方式,需要自己写转换程序迁移.今天在调试的时候,碰到一个蛋疼的问题,就是一开始查 ...

  8. 记录两个python的小问题

    使用python也前前后后也一个月的样子,记录两个一直没注意的问题. 1. 元组的使用(拼接字符串) 直接看下面的代码: >>> kel = 'some','strings' > ...

  9. C++与C#有关对库(动态库dll,静态库.lib)文件的调用

    1 动态库的相互调用 1.1 C#调用C++ dll步骤(只能导出方法): 1. c++建立空项目->源文件文件夹中添加cpp文件和函数 2. c++属性设置中,配置类型设置为动态库dll,公共 ...

  10. Embarcadero RAD Studio 2016 Product Approach and Roadmap

    delphi  2016 路线图 http://community.embarcadero.com/article/news/16211-embarcadero-rad-studio-2016-pro ...