广告
返回顶部
首页 > 资讯 > 操作系统 >如何保证Linux服务器的安全
  • 1947
分享到

如何保证Linux服务器的安全

Linux服务器 2022-06-03 14:06:46 1947人浏览 安东尼
摘要

  很少见有人马上为一台新安装的服务器做安全措施,然而我们生活所在的这个社会使得这件事情是必要的。不过为什么仍旧这么多人把它拖在最后?我已经做了相同的事情,它常常可以归结为想要马上进入有趣的东西。希望这篇文章将向

  很少见有人马上为一台新安装的服务器安全措施,然而我们生活所在的这个社会使得这件事情是必要的。不过为什么仍旧这么多人把它拖在最后?我已经做了相同的事情,它常常可以归结为想要马上进入有趣的东西。希望这篇文章将向大家展示,确保服务器安全没有你想得那样难。在攻击开始后,俯瞰你的“堡垒”会相当享受的。

  这篇文章为ubuntu 12.04.2 LTS而写,你也可以在任何其他linux分发版上做相同的事情。

  我从哪儿开始?

  如果服务器已经有了一个公有IP,你会希望立即定 root 访问。事实上,你得锁定整个ssh访问,并确保只有你可以访问。增加一个新用户,把它加入admin组(在/etc/sudoers预配置以拥有sudo访问权限)。

$ sudo addgroup admin
Adding group 'admin' (GID 1001)
Done.

$ sudo adduser spenserj
Adding user `spenserj' ...
Adding new group `spenserj' (1002) ...
Adding new user `spenserj' (1001) with group `spenserj' ...
Creating home directory `/home/spenserj' ...
Copying files from `/etc/skel' ...
Enter new UNIX passWord:
Retype new UNIX password:
passwd: password updated successfully
Changing the user infORMation for spenserj
Enter the new value, or press ENTER for the default
    Full Name []: Spenser Jones
    Room Number []:
    Work Phone []:
    Home Phone []:
    Other []:
Is the information correct? [Y/n] y

$ sudo usermod -a -G admin spenserj

  你也将希望在你电脑上创建一个私有key,并且在服务器上禁用讨厌的密码验证。

$ mkdir ~/.ssh
$ echo "ssh-rsa [your public key]" > ~/.ssh/authorized_keys

  /etc/ssh/sshd_config

PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication no
AllowUsers spenserj

  重新加载SSH,使用修改生效,之后尝试在一个新会话中登陆来确保所有事情正常工作。如果你不能登陆,你将仍然拥有你的原始会话来做修改。

$ sudo service ssh restart
ssh stop/waiting
ssh start/running, process 1599

  更新服务器

  既然你是访问服务器的唯一用户,你就不用担心黑客鬼鬼祟祟进入,再次正常呼吸。当有一些针对你服务器的更新时,正是修补的机会,所以动手吧,就现在。

$ sudo apt-get update
...
Hit Http://ca.arcHive.ubuntu.com precise-updates/universe Translation-en_CA
Hit http://ca.archive.ubuntu.com precise-updates/universe Translation-en
Hit http://ca.archive.ubuntu.com precise-backports/main Translation-en
Hit http://ca.archive.ubuntu.com precise-backports/multiverse Translation-en
Hit http://ca.archive.ubuntu.com precise-backports/restricted Translation-en
Hit http://ca.archive.ubuntu.com precise-backports/universe Translation-en
Fetched 3,285 kB in 5s (573 kB/s)
Reading package lists... Done

$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
  linux-headers-generic-lts-quantal linux-image-generic-lts-quantal
The following packages will be upgraded:
  accountsservice apport apt apt-transport-https apt-utils aptitude bash ...
73 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Need to get 61.0 MB of archives.
After this operation, 151 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
...
Setting up libisc83 (1:9.8.1.dfsg.P1-4ubuntu0.6) ...
Setting up libdns81 (1:9.8.1.dfsg.P1-4ubuntu0.6) ...
Setting up libisccc80 (1:9.8.1.dfsg.P1-4ubuntu0.6) ...
Setting up libisccfg82 (1:9.8.1.dfsg.P1-4ubuntu0.6) ...
Setting up libbind9-80 (1:9.8.1.dfsg.P1-4ubuntu0.6) ...
Setting up liblwres80 (1:9.8.1.dfsg.P1-4ubuntu0.6) ...
Setting up bind9-host (1:9.8.1.dfsg.P1-4ubuntu0.6) ...
Setting up dnsutils (1:9.8.1.dfsg.P1-4ubuntu0.6) ...
Setting up iptables (1.4.12-1ubuntu5) ...
...

  安装防火墙

  安装现在正最流行的防火墙软件?好,行动吧。那就配置一个防火墙。之后你总是可以增加另一个异常,几分钟额外的工作并不会折腾死你。Iptables在Ubuntu里预装了,所以去设置一些规则吧。

$ sudo mkdir /etc/iptables

  /etc/iptables/rules

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]

# Accept any related or established connections
-I INPUT  1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-I OUTPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT

# Allow all traffic on the loopback interface
-A INPUT  -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

# Allow outbound DHCP request - Some hosts (Linode) automatically assign the primary IP
#-A OUTPUT -p udp --dport 67:68 --sport 67:68 -j ACCEPT

# Outbound DNS lookups
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT

# Outbound PING requests
-A OUTPUT -p icmp -j ACCEPT

# Outbound Network Time Protocol (NTP) request
-A OUTPUT -p udp --dport 123 --sport 123 -j ACCEPT

# SSH
-A INPUT  -i eth0 -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT

# Outbound HTTP
-A OUTPUT -o eth0 -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT

COMMIT

  通过 iptables-apply 命令为规则集生效。如果你丢失连接,修补你的规则,在继续之前再试一下

$ sudo iptables-apply /etc/iptables/rules
Applying new ruleset... done.
Can you establish NEW connections to the Machine? (y/N) y
... then my job is done. See you next time.

  创建文件 /etc/network/if-pre-up.d/iptables,然后写入下面内容。当你启动服务器的时候,将自动载入你的iptables规则。

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

#!/bin/sh
iptables-restore < /etc/iptables/rules

  现在给它执行权限,执行文件,以确保它正常载入

$ sudo chmod +x /etc/network/if-pre-up.d/iptables
$ sudo /etc/network/if-pre-up.d/iptables

  用 Fail2ban 处理潜在黑客

  当谈到安全的时,Fail2ban 是我最喜欢的工具之一,它将监控你的日志文件,并且可以临时禁止那些正在滥用你资源,或者正在强制肆虐你的SSH连接,或者正在dos攻击你WEB服务器的用户。

  Install Fail2ban

$ sudo apt-get install fail2ban
[sudo] password for sjones:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  gamin libgamin0 python-central Python-gamin python-support whois
Suggested packages:
  mailx
The following NEW packages will be installed:
  fail2ban gamin libgamin0 python-central python-gamin python-support whois
0 upgraded, 7 newly installed, 0 to remove and 2 not upgraded.
Need to get 254 kB of archives.
After this operation, 1,381 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
...

  虽然 Fail2ban 安装一个默认配置(/etc/fail2ban/jail.conf),但我们希望在 /etc/fail2ban/jail.local 写配置,所以把它拷贝到那儿。

sudo cp /etc/fail2ban/jail.{conf,local}

  配置

  把 ignoreip 行修改为你的ip,并且可以设置禁止恶意用户的时间量(默认是10分钟)。你也将希望设置一个destemail,这里我通常输入我自已的email地址,再在后面加上 ,fail2ban@blocklist.de 。BlockList.de 是一个跟踪并且自动报告黑客IP的系统。

  /etc/fail2ban/jail.local

[DEFAULT]

# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1/8
bantime  = 600
maxretry = 3

# "backend" specifies the backend used to get files modification. Available
# options are "gamin", "polling" and "auto".
# yoh: For some reason Debian shipped python-gamin didn't work as expected
#      This issue left ToDo, so polling is default backend for now
backend = auto

#
# Destination email address used solely for the interpolations in
# jail.{conf,local} configuration files.
destemail = root@localhost,fail2ban@blocklist.de

  这有一些其他的你想检查的配置,尽管缺省配置已经相当不错了,所以,快速浏览这些,直到你读到Actions章节。

  Actions

  Actions 允许你对恶意行为作出反应,然而当我们想要它禁止和发邮件的时候,默认是禁用了 iptables。值得感谢的是,有一个预配置文件 action_wml,它恰恰是做这个的。

  /etc/fail2ban/jail.local

# Choose default action.  To change, just override value of 'action' with the
# interpolation to the chosen action shortcut (e.g.  action_mw, action_mwl, etc) in jail.local
# globally (section [DEFAULT]) or per specific section
action = %(action_mwl)s

  Jails 监控

  为了让Fail2ban工作,需要了解要监控哪些东西。这些已在Jails部分的配置文件,并且这有一些预载入而未启用的例子。既然到目前为止,你仅仅在服务器上启用了SSH访问,那我们就只启用SSH和SSH-DDos 监控,然而你还是会想给安装在这台服务器上的公共访问服务增加新的监控。

  /etc/fail2ban/jail.local

[ssh]
enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6
[ssh-ddos]
enabled  = true
port     = ssh
filter   = sshd-ddos
logpath  = /var/log/auth.log
maxretry = 6

  应用改变

  既然我们已经配置了Fail2ban,你将希望重新载入它,并且确保向iptables增加了合适的规则。

$ sudo service fail2ban restart
 * Restarting authentication failure monitor fail2ban
   ...done.

$ sudo iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
fail2ban-ssh-ddos  tcp  --  anywhere             anywhere             multiport dports ssh
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh
...
Chain fail2ban-ssh (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

Chain fail2ban-ssh-ddos (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

  在任何时间,你都可以使用sudo iptables -L 来列出你的规则,随后列出所有当前禁止的 IP。此时,Fail2ban正在处理两个恶意的用户。

  Banned IPs

DROP       all  --  204.50.33.22         anywhere
DROP       all  --  195.128.126.114      anywhere

  保持最新更新

  你可能现在拥有一个已经锁定并且准备投入使用的服务器,然而这并不是你安全之旅的终点。保持最新更新(并且总是首先在非产品环境下测试),总是关闭你不需要的端口,定期检查你的日志,并且由内而外了解你的服务器。

  HackerNews 上的讨论

  我的这篇文章,在 HackerNews 上有一些很好的评论,如果你对不同观点和更好的安全性感兴趣的话,我建议你去看看。这篇文章目的是作为服务器安全的新手指南,在这篇文章结束的时候,并不意味着你的服务器是无懈可击的。用本文来快速锁定一个新服务器,在它之上为你特有的情况建立其他措施。你可能希望查询 IPV6 安全,改变你的SSH端口(通过隐藏达到安全目的),安全内核(SELinux和GRSecurity),跟踪系统改变,并且如果你的服务器曾经不安全或已经在线相当长时间了的话,全面检查一番。一台服务器有好几百个入口点,并且每一个你安装的应用都带来了额外的潜在漏洞,但是通过合适的工具,你可以免去困扰,直接去睡大觉了。

  原文链接: Spenser Jones   翻译: 伯乐在线 - 伯乐在线读者

--结束END--

本文标题: 如何保证Linux服务器的安全

本文链接: https://www.lsjlt.com/news/11328.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何保证Linux服务器的安全
      很少见有人马上为一台新安装的服务器做安全措施,然而我们生活所在的这个社会使得这件事情是必要的。不过为什么仍旧这么多人把它拖在最后?我已经做了相同的事情,它常常可以归结为想要马上进入有趣的东西。希望这篇文章将向...
    99+
    2022-06-03
    Linux 服务器
  • 如何保证Linux服务器的网络安全
    保证Linux服务器网络安全的方法:1、对指定网站设置禁止访问,如使用域名或IP地址的方式来禁止网站访问;2、使用相关命令禁止linux服务器上网;3、通过禁止服务使用的端口号来禁止linux服务器上的某些访问。具体内容如下:对指定网站禁止...
    99+
    2022-10-07
  • 怎么保证Linux服务器的网络安全
    Linux服务器网络安全的方法:1、需要对Linux服务器上不安全的网站域名进行限制访问;2、禁止linux服务器上网,避免黑客利用互联网进行攻击,从而提高服务器安全性;3、禁止linux服务器上的某些不必要的端口号,从而降低被黑客扫描利用...
    99+
    2022-10-03
  • 云服务器如何保证数据安全
    云服务器保证数据安全的方法:使用SSH安全保护,在SHH配置文件中设置访问IP或域名白名单、禁止root登录、复杂SSH密码、禁止通过文件直接登录等。将SSH常用的22号端口关闭,更改为10000以上的随机端口,防止端口扫描。将数据定期备份...
    99+
    2022-10-12
  • 云服务器如何保证数据安全性
    云服务器保证数据安全性的方法:1、搭建完善的数据隔离防护系统,提高云服务器数据安全性;2、定时对云服务器数据进行备份;3、对存储在云服务器上的数据进行加密;4、避免所有数据在云端处理,做一个云服务器副本进行分类;5、做好身份认证,对访问云服...
    99+
    2022-10-22
  • 服务器租用如何保证数据安全
    服务器租用保证数据安全的方法:1、需要做好服务器数据库维护措施,避免数据丢失;2、需要定期更新服务器软件程序,避免黑客利用漏洞窃取数据;3、需要做好服务器数据备份操作,防止数据丢失无法恢复;4、需要给服务器建立一个完善的灾难恢复机制,从而保...
    99+
    2022-10-09
  • 租用服务器后如何保证安全性
    租用服务器后保证安全性的方法:1、安装服务器时要挑选绿色的防护软件,选择最高的防火墙,有服务器端口开放;2、对程的端口进行更改;3、及时修补出现的漏洞,杜绝病毒的侵入;4、设置复杂的密码,以防黑客入侵服务器;5、拥有多个服务器,即使服务器受...
    99+
    2022-10-24
  • 如何确保Linux服务器的网络安全
    确保Linux服务器网络安全的方法:1、需要对Linux服务器上不安全的网站域名进行限制访问;2、禁止linux服务器上网,避免黑客利用互联网进行攻击,从而提高服务器安全性;3、禁止linux服务器上的某些不必要的端口号,从而降低被黑客扫描...
    99+
    2022-10-18
  • 如何保证阿里云服务器的安全启动
    简介:在使用阿里云服务器时,确保服务器的安全启动至关重要。本文将介绍一些关键措施,以确保您的服务器在启动时保持安全。 详细说明:更新操作系统和软件:及时更新操作系统和相关软件是确保服务器安全的关键。这有助于修复已知漏洞和错误,并提供最新的安...
    99+
    2023-12-31
    阿里 服务器
  • 保证美国服务器服务器安全的操作
    保证美国服务器服务器安全的操作:1. 完成安装后要安装杀毒软件,进行操作系统补丁及杀毒软件病毒库和特征库的升级,设置基本安全的权限。2. 使用最新版本的应用软件,避免其他地方的漏洞而被入侵。3. 数据库安装后打上最新的数据库补丁,设置基本权...
    99+
    2022-10-05
  • 怎么保证租用服务器的安全
    本篇内容主要讲解“怎么保证租用服务器的安全”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么保证租用服务器的安全”吧! 许多企业在租用服务器时都会对安全问题十分担心。的确,服务器的安全...
    99+
    2023-06-07
  • 裸金属服务器如何保证数据安全
    裸金属服务器保证数据安全的方法:1、裸金属服务器具备物理机级的性能和隔离性,用户独占计算资源;2、带有本地磁盘的裸金属服务器,能够支持本地磁盘组RAID,保证数据安全;3、无本地磁盘的裸金属服务器,能够支持从云硬盘启动,利用云服务器备份进行...
    99+
    2022-10-05
  • 云服务器如何保证数据安全性能
    数据备份:云服务器会自动将数据备份到多个位置,以防止数据丢失或损坏。备份可以是定期自动备份或实时备份,以保证数据的安全性和可用性。 数据恢复:如果出现数据丢失或损坏的情况,云服务器会自动尝试恢复数据。如果无法恢复,云服务器会提供快速恢复机...
    99+
    2023-10-27
    性能 服务器 数据
  • 租用香港云服务器如何保证业务的安全
    租用香港云服务器保证业务安全的方法:1、在租用香港云服务器时,选择优质的香港云服务商;2、对租用的香港云服务器定期进行安全扫描以及数据备份;3、设置好香港云服务器的端口以及密码,提高数据安全性。具体内容如下:选择优质的香港云服务商在租用香港...
    99+
    2022-10-04
  • Spring Cloud 如何保证微服务内安全
    一、简介 在微服务的架构下,我们需要把系统的业务划分成多个单一的微服务。每个微服务都会提供接口供其他微服务调用,在Dubbo中可以通过rmi、nio等实现,Spring Cloud中...
    99+
    2022-11-12
  • 如何配置Linux保证其系统的安全
    这篇文章给大家分享的是有关如何配置Linux保证其系统的安全的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、用防火墙关闭不须要的任何端口,别人PING不到服务器,威胁自然减少了一大半 防止别人ping的方法: ...
    99+
    2023-06-13
  • 怎么保证云服务器的硬件安全
    保证云服务器的硬件安全可以采取以下措施:1. 选择可信赖的云服务提供商:选择具有良好声誉和严格安全控制措施的云服务提供商,确保其有保...
    99+
    2023-09-22
    云服务器
  • 香港服务器租用如何保证数据安全
    香港服务器租用保证数据安全的方法:1、需要做好对香港服务器的数据库进行维护,防止数据泄露;2、需要定期更新香港服务器的软件程序,防止黑客利用漏洞进行攻击;3、需要对香港服务器的数据进行备份,防止数据丢失无法恢复;4、给香港服务器搭建一个完善...
    99+
    2022-10-02
  • 美国vps云服务器如何保证数据安全
    美国vps云服务器保证数据安全的方法:1、美国vps云服务器架构在硬件计算机集群上,采用raid5和负载均衡,稳定性可靠;2、美国vps云服务器采用BGP优质线路,且带宽资充足,能保证数据的传输安全;3、美国vps云服务器采用优质的虚拟化架...
    99+
    2022-10-10
  • 云服务器怎么保证数据安全
    云服务器是一种虚拟化的资源管理平台,它通过互联网连接到用户的计算设备上,以便可以为用户提供稳定、高效和安全的计算服务。因此,在处理云服务器上的数据时,必须确保数据的安全。以下是一些方法来确保云服务器的数据安全: 加密数据:云服务器通常采...
    99+
    2023-10-26
    服务器 数据
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作