Linux服务器安全技巧有哪些
一台服务器由大量功能各异的部件组成,这一点使得很难根据每个人的需求去提供定制的解决方案。这篇文章尽可能涵盖一些有所裨益的小技巧来帮助管理员保证服务器和用户安全。下面是yjbys小编为大家分享的Linux服务器安全技巧,希望对大家有所帮助!
更改SSH默认端口
在搭建好一台全新的服务器后要做的第一件事情就是更改SSH的默认端口。这个小小的改动能够使你的服务器避免受到成千上万的暴力攻击(LCTT 译注:不更改默认端口相当于黑客们知道你家的门牌号,这样他们只需要一把一把的试钥匙就可能打开你家的锁)。
要更改默认的SSH端口,先打开sshd_config文件:
sudo vim /etc/ssh/sshd_config
找到下面这行:
#Port 22
“#”号表示这行是注释。首先删除#号,然后把端口号改成目的端口。端口号不能超过65535,确保要指定的端口号没有被系统或其它服务占用。建议在[维基百科]上查看常用端口号列表。在本文中,使用这个端口号:
Port 16543
然后保存并关闭文件。
接下来的一步是:
使用SSH密钥认证
在通过SSH访问服务器时,使用SSH密钥进行认证是尤其重要的。这样做为服务器增加了额外的保护,确保只有那些拥有密钥的人才能访问服务器。
在本地机器上运行下面命令以生成SSH密钥:
ssh-keygen -t rsa
你会看到下面的输出,询问要将密钥写到哪一个文件里,并且设置一个密码:
Generating public/private rsa key pair.
Enter file in which to save the key (/root/_rsa): my_key
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in my_key.
Your public key has been saved in my_.
The key fingerprint is:
SHA256:MqD/pzzTRsCjZb6mpfjyrr5v1pJLBcgprR5tjNoI20A
完成之后,就得到两个文件:
my_key
my_
接下来把my_拷贝到~/_key中
cp my_ ~/_keys
然后使用下面命令将密钥上传到服务器:
scp -P16543 authorized_keys user@yourserver-ip:/home/user/
至此,你就可以从这台本地机器上无密码地访问服务器了。
关闭SSH的密码认证
既然已经有了SSH密钥,那么关闭SSH的密码认证就会更安全了。再次打开并编辑sshd_config,按如下设置:
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
关闭Root登录
下面关键的一步是关闭root用户的直接访问,而使用sudo或su来执行管理员任务。首先需要添加一个有root权限的新用户,所以编辑这个路径下的sudoers文件:
/etc/sudoers/
推荐使用如visudo这样的命令编辑该文件,因为它会在关闭文件之前检查任何可能出现的语法错误。当你在编辑文件时出错了,这就很有用了。
接下来赋予某个用户root权限。在本文中,使用用户sysadmin。确保在编辑后这个文件时使用的用户是系统已有的用户。找到下面这行:
root ALL=(ALL) ALL
拷贝这行,然后粘贴在下一行,然后把root更改为“sysadmin”,如下所示:
root ALL=(ALL) ALL
sysadmin ALL=(ALL) ALL
现在解释一下这行的每一个选项的含义:
(1) root (2)ALL=(3)(ALL) (4)ALL
(1) 指定用户
(2) 指定用户使用sudo的终端
(3) 指定用户可以担任的用户角色
(4) 这个用户可以使用的命令
(LCTT 译注:所以上面的配置是意思是:root 用户可以在任何终端担任任何用户,执行任何命令。)
使用这个配置可以给用户访问一些系统工具的权限。
这时,可以放心保存文件了。
为了关闭通过SSH直接访问root,需要再次打开sshd_config,找到下面这行:
#PermitRootLogin yes
更改为:
PermitRootLogin no
然后保存文件,重启sshd守护进程使改动生效。执行下面命令即可:
sudo /etc/init.d/sshd restart
设置防火墙
防火墙有助于过滤出入端口和阻止使用暴力法的登录尝试。我倾向于使用SCF(Config Server Firewall)这个强力防火墙。它使用了iptables,易于管理,而且对于不擅于输入命令的用户提供了web界面。
要安装CSF,先登录到服务器,切换到这个目录下:
cd /usr/local/src/
然后以root权限执行下面命令:
wget
tar -xzf
cd csf
sh
只需等待安装程序完成,然后编辑CSF的配置文件:
/etc/csf/
默认情况下CSF是以测试模式运行。通过将“TESTING”的.值设置成0,切换到product模式。
TESTING = "0"
下面要设置的就是服务器上允许通过的端口。在中定位到下面的部分,根据需要修改端口:
# 允许入站的 TCP 端口
TCP_IN = "20,21,25,53,80,110,143,443,465,587,993,995,16543"
# 允许出站的 TCP 端口
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995,16543"
# 允许入站的 UDP 端口
UDP_IN = "20,21,53"
-
关于Linux C程序存储空间的逻辑布局
LinuxC程序存储空间的逻辑布局是怎么样的?为了方便大家,下面YJBYS小编为大家整理了关于LinuxC程序存储空间的逻辑布局的文章,希望对你有所帮助。一、APUE上指出了LinuxC程序存储空间的逻辑布局,对于X86上的`Linux正文段从0x08048000单元开始栈底则在0xC0000000之...
-
Linux认证考试模拟试题及答案
1.在创建Linux分区时,一定要创建(D)两个分区A.FAT/NTFSB.FAT/SWAPC.NTFS/SWAP根分区2.在RedHatLinux9中,系统默认的(A)用户对整个系统拥有完全的控制权。A.rootB.guestC.administratorrvistor.3.当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(B...
-
嵌入式Linux入门六大步骤
也许你会注意到,现在做嵌入式的人中,做linux研究的人远比做WinCE的人多,很多产家提供的资料也是以linux为主。我一直很难理解,其实WinCE的界面比linux的界面好看多了,使用起来也很方便,更为重要的是,WinCE的开发和Windows下的开发基本一样,学起来简单得多,但是学linux或...
-
LINUX常见问题20个
一、如何建立多用户提醒大家一句,别一直使用root用户,因为root用户在系统中有着至高无上的权力,一不小心就可能破坏系统。比如我们想删除/temp目录下的文件却将命令不小心输成rm/temp(在‘/’后多了一个空格),那么就极可能删去根目录下的所有文件。再者,L...