Linux 系统安全配置 Debian => 禁止root SSH登陆+配置SSH Key+配置iptables

Linux 系统安全配置 Debian => 禁止root SSH登陆+配置SSH Key+配置iptables

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

本文读者需要有一定的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

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生成,产生的key存放于C:\Users\..\.ssh目录。生成命令为:

ssh-keygen

将客户端的公钥,拷贝到服务器的对应用户的.ssh目录

scp ./id_rsa.pub  [email protected]:~/.ssh/authorized_keys

如果有多个客户机,可以使用cat命令添加多个公钥

cat id_rsa.pub > ~/.ssh/authorized_keys

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

service sshd restart

iptables与ip6tables配置

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

https://wiki.debian.org/iptables

https://wiki.debian.org/DebianFirewall#Using_ip6tables_for_IPv6_traffic

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 --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命令刷新这些防火墙规则。

原文地址:https://www.cnblogs.com/wswind/p/9867044.html

时间: 2024-10-21 11:53:09

Linux 系统安全配置 Debian => 禁止root SSH登陆+配置SSH Key+配置iptables的相关文章

(转)Linux SSH配置和禁止Root远程登陆设置

原文 一.修改vi /etc/ssh/sshd_config 文件 1.修改默认端口:默认Port为22,并且已经注释掉了:修改是把注释去掉,并修改成其它的端口. 2.禁止root用户远程登陆:修改PermitRootLogin,默认为yes且注释掉了:修改是把注释去掉,并改成no. 3.PermitEmptyPasswords   no不允许空密码用户login 二.ssh的公钥认证配置: 修改vi /etc/ssh/sshd_config 文件 RSAAuthentication yes  

linux中修改ssh端口和禁止root远程登陆设置

linux中修改ssh端口和禁止root远程登陆设置 查看下系统版本 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.7 (Final) 修改配置文件 linux修改端口22vim /etc/ssh/sshd_config找到#port 22将前面的#去掉,然后修改端口 port 1234重启服务就OK了service sshd restart或/etc/init.d/ssh restart为增强安全先增加一个普通权

Debian修改ssh端口和禁止root远程登陆设置

linux修改端口22vi /etc/ssh/sshd_config找到#port 22将前面的#去掉,然后修改端口 port 1234重启服务就OK了service sshd restart或/etc/init.d/ssh restart为增强安全先增加一个普通权限的用户,并设置密码useradd testpasswd test然后禁止ROOT远程SSH登录:vi /etc/ssh/sshd_config把其中的PermitRootLogin yes改为PermitRootLogin no重启

Linux修改SSH端口和禁止Root远程登陆

Linux修改ssh端口22vi /etc/ssh/ssh_configvi /etc/ssh/sshd_config 然后修改为port 8888以root身份service sshd restart (redhat as3)使用putty,端口8888 Linux下SSH默认的端口是22,为了安全考虑,现修改SSH的端口为1433,修改方法如下 : /usr/sbin/sshd -p 1433为增强安全先增加一个普通权限的用户:#useradd uploader#passwd uploade

linux修改ssh端口和禁止root远程登陆设置

linux修改ssh端口22vi /etc/ssh/sshd_config找到#port 22将前面的#去掉,然后修改成其他端口比如:port 1890为增强安全和管理方便增加一个普通权限的用户,并设置密码useradd 您自己的帐户passwd 您自己的密码帐户和密码不建议使用单词/常见词/有规则性的字符然后禁止ROOT远程SSH登录:vi /etc/ssh/sshd_config把其中的PermitRootLogin yes修改为PermitRootLogin no最后重启sshd服务ser

Linux修改SSH端口,并禁止Root远程登陆

1.更改ssh远程登录端口: #vi /etc/ssh/ssh_config将port改为你想要的端口,例如8888.默认是#port 22,把#号删掉改为 port 8888即可. 还要更改以下文件,更改方法同上:#vi /etc/ssh/sshd_config 2.增加一个普通权限的用户: #useradd 新用户#passwd 新用户 3.禁止ROOT远程SSH登录: #vi /etc/ssh/sshd_config将PermitRootLogin yes一行改为:PermitRootLo

Linux系统的相关知识、常用命令及centos 7网卡配置

(本文仅为平时学习记录,若有错误请大佬指出,如果本文能帮到你那我也是很开心啦) 一.Linux系统的相关知识 1.Linux中根目录下所有文件夹的含义和用途(括号内为举例存放的文件) /  根目录 cd /  切换到根目录 / bin  存放可执行文件 /dev  存放设备文件  (网卡 CPU) /media  存放可移除设备文件   (U盘 CD/DVD  VMTools) /opt  存放第三方软件的默认位置 /tmp  存放临时文件  (日志文件) /root  root用户的家目录,主

Linux系统动态IP地址的获取和静态IP地址的配置

今天刚安装好虚拟机和Linux系统后做了以下实验在这实验中遇到的知识点和实验过程如下 #-  1.Broadcast 协议选项 [BCAST]BROADCAST 指定用于发送广播消息的 IP 地址.使用本地 IP 地址和子网掩码创建缺省广播地址.子网掩码指示哪部分 IP 地址识别网络哪部分识别主机 #-  2.dhclient获得IP地址用ifconfig -a命令查看 .etho表示1个网卡eth1表示2个网卡 .lo表示回环地址 #-  3.用vi打开配置文件命令如下 之后出现以下配置文件

Linux系统架构(LB—HA集群)-HA集群配置

HA集群配置 准备两台设备,分别为主从 主: [[email protected] ~]# ifconfig eth0       inet addr:192.168.137.21 从: [[email protected] ~]# ifconfig eth0      inet addr:192.168.137.23 先开始配置 主上: [[email protected] ~]# hostname master [[email protected] ~]# iptables -F [[ema