linux系统安全设置

关键词: 飞速 业务 检测 入侵

linux系统安全设置(通用6篇)

篇1:linux系统安全设置

linux系统安全设置总结

众所周知,网络安全是一个非常重要的课题,而服务器是网络安全中最关键的环节。Linux被认为是一个比较安全的Internet服务器,作为一种开放源代码操作系统,一旦Linux系统中发现有安全漏洞,Internet上来自世界各地的志愿者会踊跃修补它。然而,系统管理员往往不能及时地得到信息并进行更正,这就给黑客以可乘之机。相对于这些系统本身的安全漏洞,更多的安全问题是由不当的配置造成的,可以通过适当的配置来防止。服务器上运行的服务越多,不当的配置出现的机会也就越多,出现安全问题的可能性就越大。对此,下面将介绍一些增强Linux/Unix服务器系统安全性的知识。

一、系统安全记录文件

操作系统内部的记录文件是检测是否有网络入侵的重要线索。如果您的系统是直接连到Internet,您发现有很多人对您的系统做Telnet/FTP登录尝试,可以运行“#more /var/log/secure | grep refused”来检查系统所受到的攻击,以便采取相应的对策,如使用SSH来替换Telnet/rlogin等。

二、启动和登录安全性

静夜书学习论坛http:// 1.BIOS安全

设置BIOS密码且修改引导次序禁止从软盘启动系统。

2.用户口令

用户口令是Linux安全的一个基本起点,很多人使用的用户口令过于简单,这等于给侵入者敞开了大门,虽然从理论上说,只要有足够的时间和资源可以利用,就没有不能破解的用户口令,但选取得当的口令是难于破解的。较好的用户口令是那些只有他自己容易记得并理解的一串字符,并且绝对不要在任何地方写出来。

3.默认账号

应该禁止所有默认的被操作系统本身启动的并且不必要的账号,当您第一次安装系统时就应该这么做,Linux提供了很多默认账号,而账号越多,系统就越容易受到攻击。

可以用下面的命令删除账号。

# userdel用户名

或者用以下的命令删除组用户账号。

# groupdel username

4.口令文件

chattr命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限。

# chattr +i /etc/passwd

# chattr +i /etc/shadow

静夜书学习论坛http://

# chattr +i /etc/group

# chattr +i /etc/gshadow

5.禁止Ctrl+Alt+Delete重新启动机器命令

修改/etc/inittab文件,将“ca::ctrlaltdel:/sbin/shutdown-t3-r now”一行注释掉。然后重新设置/etc/rc.d/init.d/目录下所有文件的许可权限,运行如下命令:

# chmod-R 700 /etc/rc.d/init.d/*

这样便仅有root可以读、写或执行上述所有脚本文件。

6.限制su命令

如果您不想任何人能够su作为root,可以编辑/etc/pam.d/su文件,增加如下两行:

auth sufficient /lib/security/pam_rootok.so debug

auth required /lib/security/pam_wheel.so group=isd

这时,仅isd组的用户可以su作为root。此后,如果您希望用户admin能够su作为root,可以运行如下命令:

# usermod-G10 admin

7.删减登录信息

默认情况下,登录提示信息包括Linux发行版、内核版本名和服务器主机名等。对于一台安全性要求较高的机器来说这样泄漏了过多的信息。可以编辑/etc/rc.d/rc.local将输出系统信息的如下行注释掉。

# This will overwrite /etc/issue at every boot.So,make

静夜书学习论坛http:// any changes you

# want to make to /etc/issue here or you will lose them when you reboot.# echo “" > /etc/issue

# echo ”$R“ >> /etc/issue

# echo ”Kernel $(uname-r)on $a $(uname-m)“ >> /etc/issue

# cp-f /etc/issue /etc/issue.net

# echo >> /etc/issue

然后,进行如下操作:

# rm-f /etc/issue

# rm-f /etc/issue.net

# touch /etc/issue

# touch /etc/issue.net

三、限制网络访问

1.NFS访问

如果你使用NFS网络文件系统服务,应该确保您的/etc/exports具有最严格的访问权限设置,也就是意味着不要使用任何通配符、不允许root写权限并且只能安装为只读文件系统。编辑文件/etc/exports并加入如下两行。

/dir/to/export host1.mydomain.com(ro,root_squash)

静夜书学习论坛http://

/dir/to/export host2.mydomain.com(ro,root_squash)

/dir/to/export 是您想输出的目录,host.mydomain.com是登录这个目录的机器名,ro意味着mount成只读系统,root_squash禁止root写入该目录。为了使改动生效,运行如下命令。

# /usr/sbin/exportfs-a

2.Inetd设置

首先要确认/etc/inetd.conf的所有者是root,且文件权限设置为600。设置完成后,可以使用”stat“命令进行检查。

# chmod 600 /etc/inetd.conf

然后,编辑/etc/inetd.conf禁止以下服务。

ftp telnet shell login exec talk ntalk imap pop-2 pop-3 finger auth

如果您安装了ssh/scp,也可以禁止掉Telnet/FTP。为了使改变生效,运行如下命令:

#killall-HUP inetd

默认情况下,多数Linux系统允许所有的请求,而用TCP_WRAPPERS增强系统安全性是举手之劳,您可以修改/etc/hosts.deny和/etc/hosts.allow来增加访问限制。例如,将/etc/hosts.deny设为”ALL: ALL“可以默认拒绝所有访问。然后在/etc/hosts.allow文件中添加允许的访问。例如,”sshd: 192.168.1.10/255.255.255.0 gate.openarch.com“表示允许

静夜书学习论坛http:// IP地址192.168.1.10和主机名gate.openarch.com允许通过SSH连接。

配置完成后,可以用tcpdchk检查:

# tcpdchk

tcpchk是TCP_Wrapper配置检查工具,它检查您的tcp wrapper配置并报告所有发现的潜在/存在的问题。

3.登录终端设置

/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式是一个被允许的名字列表,您可以编辑/etc/securetty且注释掉如下的行。

#tty1

# tty2

# tty3

# tty4

# tty5

# tty6

这时,root仅可在tty1终端登录。

4.避免显示系统和版本信息。

如果您希望远程登录用户看不到系统和版本信息,可以通过一下操作改变/etc/inetd.conf文件:

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd-h

静夜书学习论坛http://

加-h表示telnet不显示系统信息,而仅仅显示”login:"

四、防止攻击

1.阻止ping 如果没人能ping通您的系统,安全性自然增加了。为此,可以在/etc/rc.d/rc.local文件中增加如下一行:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

2.防止IP欺骗

编辑host.conf文件并增加如下几行来防止IP欺骗攻击。

order bind,hosts

multi off

nospoof on

3.防止DoS攻击

对系统所有的用户设置资源限制可以防止DoS类型攻击。如最大进程数和内存使用数量等。例如,可以在/etc/security/limits.conf中添加如下几行:

* hard core 0

* hard rss 5000

* hard nproc 20

然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。

静夜书学习论坛http://

session required /lib/security/pam_limits.so

上面的命令禁止调试文件,限制进程数为50并且限制内存使用为5MB。

经过以上的设置,你的Linux服务器已经可以对绝大多数已知的安全问题和网络攻击具有免疫能力,但一名优秀的系统管理员仍然要时刻注意网络安全动态,随时对已经暴露出的和潜在安全漏洞进行修补

静夜书学习论坛http://

篇2:linux系统安全设置

一、服务器安全:

1. 关闭无用的端口

任何网络连接都是通过开放的应用端口来实现的。如果我们尽可能少地开放端口,就使网络攻击变成无源之水,从而大大减少了攻击者成功的机会。

首先检查你的inetd.conf文件。inetd在某些端口上守侯,准备为你提供必要的服务。如果某人开发出一个特殊的inetd守护程序,这里就存在一个安全隐患。你应当在inetd.conf文件中注释掉那些永不会用到的服务(如:echo、gopher、rsh、rlogin、rexec、ntalk、finger等)。注释除非绝对需要,你一定要注释掉rsh、rlogin和rexec,而telnet建议你使用更为安全的ssh来代替,然后杀掉lnetd进程。这样inetd不再监控你机器上的守护程序,从而杜绝有人利用它来窃取你的应用端口。你最好是下载一个端口扫描程序扫描你的系统,如果发现有你不知道的开放端口,马上找到正使用它的进程,从而判断是否关闭它们。

2. 删除不用的软件包

在进行系统规划时,总的原则是将不需要的服务一律去掉。默认的Linux就是一个强大的系统,运行了很多的服务。但有许多服务是不需要的,很容易引起安全风险。这个文件就是/etc/inetd.conf,它制定了/usr/sbin/inetd将要监听的服务,你可能只需要其中的两个:telnet和ftp,其它的类如shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth 等,除非你真的想用它,否则统统关闭。

3. 不设置缺省路由

在主机中,应该严格禁止设置缺省路由,即default route。建议为每一个子网或网段设置一个路由,否则其它机器就可能通过一定方式访问该主机

4. 口令管理

口令的长度一般不要少于8个字符,口令的组成应以无规则的大小写字母、数字和符号相结合,严格避免用英语单词或词组等设置口令,而且各用户的口令应该养成定期更换的习惯。另外,口令的保护还涉及到对/etc/passwd和/etc/shadow文件的保护,必须做到只有系统管理员才能访问这2个文件。安装一个口令过滤工具加npasswd,能帮你检查你的口令是否耐得住攻击。如果你以前没有安装此类的工具,建议你现在马上安装。如果你是系统管理员,你的系统中又没有安装口令过滤工具,请你马上检查所有用户的口令是否能被穷尽搜索到,即对你的/ect/passwd文件实施穷尽搜索攻击。

5. 分区管理

一个潜在的攻击,它首先就会尝试缓冲区溢出。在过去的几年中,以缓冲区溢出为类型的安全漏洞是最为常见的一种形式了。更为严重的是,缓冲区溢出漏洞占了远程网络攻击的绝大多数,这种攻击可以轻易使得一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权!

为了防止此类攻击,我们从安装系统时就应该注意。如果用root分区记录数据,如log文件,就可能因为拒绝服务产生大量日志或垃圾邮件,从而导致系统崩溃。所以建议为/var开辟单独的分区,用来存放日志和邮件,以避免root分区被溢出。最好为特殊的应用程序单独开一个分区,特别是可以产生大量日志的程序,还建议为/home单独分一个区,这样他们就不能填满/分区了,从而就避免了部分针对Linux分区溢出的恶意攻击。

6. 防范网络嗅探:

嗅探器技术被广泛应用于网络维护和管理方面,它工作的时候就像一部被动声纳,默默的接收看来自网络的各种信息,通过对这些数据的分析,网络管理员可以深入了解网络当前的运行状况,以便找出网络中的漏洞。在网络安全日益被注意的今天.我们不但要正确使用嗅探器.还要合理防范嗅探器的危害.嗅探器能够造成很大的安全危害,主要是因为它们不容易被发现。对于一个安全性能要求很严格的企业,同时使用安全的拓扑结构、会话加密、使用静态的ARP地址是有必要的。

7. 完整的日志管理

日志文件时刻为你记录着你的系统的运行情况。当 光临时,也不能逃脱日志的法眼。所以 往往在攻击时修改日志文件,来隐藏踪迹。因此我们要限制对/var/log文件的访问,禁止一般权限的用户去查看日志文件。

另外,我们还可以安装一个icmp/tcp日志管理程序,如iplogger,来观察那些可疑的多次的连接尝试(加icmp flood3或一些类似的情况),

还要小心一些来自不明主机的登录。

完整的日志管理要包括网络数据的正确性、有效性、合法性。对日志文件的分析还可以预防入侵。例如、某一个用户几小时内的20次的注册失败记录,很可能是入侵者正在尝试该用户的口令。

8. 终止正进行的攻击

假如你在检查日志文件时,发现了一个用户从你未知的主机登录,而且你确定此用户在这台主机上没有账号,此时你可能正被攻击。首先你要马上锁住此账号(在口令文件或shadow文件中,此用户的口令前加一个Ib或其他的字符)。若攻击者已经连接到系统,你应马上断开主机与网络的物理连接。如有可能,你还要进一步查看此用户的历史记录,查看其他用户是否也被假冒,攻击音是否拥有根权限。杀掉此用户的所有进程并把此主机的ip地址掩码加到文件hosts.deny中。

9. 使用安全工具软件:

随着Linux病毒的出现,现在已经有一些Linux服务器防病毒软件,安装Linux防病毒软件已经是非常迫切了。Linux也已经有一些工具可以保障服务器的安全,如iplogger。

10. 使用保留IP地址:

----维护网络安全性最简单的方法是保证网络中的主机不同外界接触。最基本的方法是与公共网络隔离。然而,这种通过隔离达到的安全性策略在许多情况下是不能接受的。这时,使用保留IP地址是一种简单可行的方法,它可以让用户访问Internet同时保证一定的安全性。- RFC 1918规定了能够用于本地TCP/IP网络使用的IP地址范围,这些IP地址不会在Internet上路由,因此不必注册这些地址。通过在该范围分配IP地址,可以有效地将网络流量限制在本地网络内。这是一种拒绝外部计算机访问而允许内部计算机互联的快速有效的方法。

保留IP地址范围:

―― 10.0.0.0 - 10.255.255.255

---- 172.16.0.0 - 172.31.255.255

―― 192.168.0.0 - 192.168.255.255

来自保留IP地址的网络交通不会经过Internet路由器,因此被赋予保留IP地址的任何计算机不能从外部网络访问。但是,这种方法同时也不允许用户访问外部网络。IP伪装可以解决这一问题。

11、选择发行版本:

对于服务器使用的Linux版本,既不使用最新的发行版本,也不选择太老的版本。应当使用比较成熟的版本:前一个产品的最后发行版本如Mandrake 8.2 Linux等。毕竟对于服务器来说安全稳定是第一的。

12、补丁问题

你应该经常到你所安装的系统发行商的主页上去找最新的补丁。

二、网络设备的安全:

1. 交换机的安全

启用VLAN技术:交换机的某个端口上定义VLAN,所有连接到这个特定端口的终端都是虚拟网络的一部分,并且整个网络可以支持多个VLAN。VLAN通过建立网络防火墙使不必要的数据流量减至最少,隔离各个VLAN间的传输和可能出现的问题,使网络吞吐量大大增加,减少了网络延迟。在虚拟网络环境中,可以通过划分不同的虚拟网络来控制处于同一物理网段中的用户之间的通信。这样一来有效的实现了数据的保密工作,而且配置起来并不麻烦,网络管理员可以逻辑上重新配置网络,迅速、简单、有效地平衡负载流量,轻松自如地增加、删除和修改用户,而不必从物理上调整网络配置。

2.路由器的安全:

根据路由原理安全配置路由器路由器是整个网络的核心和心脏, 保护路由器安全还需要网管员在配置和管理路由器过程中采取相应的安全措施。

1. 堵住安全漏洞

限制系统物理访问确保路由器安全的最有效方法之一。限制系统物理访问的一种方法就是将控制台和终端会话配置成在较短闲置时间后自动退出系统。避免将调制解调器连接至路由器的辅助端口也很重要。一旦限制了路由器的物理访问,用户一定要确保路由器的安全补丁是最新的。

2. 避免身份危机

入侵者常常利用弱口令或默认口令进行攻击。加长口令、选用30到60天的口令有效期等措施有助于防止这类漏洞。另外,一旦重要的IT员工辞职,用户应该立即更换口令。用户应该启用路由器上的口令加密功能。

3. 禁用不必要服务

篇3:linux系统安全设置

Linux是应用广泛的多用户多任务操作系统, 为了保证系统可靠运行, linux系统内置了完善的文件权限管理体系, 该体系包括文件的基本权限、特殊权限和访问控制列表三个部分。文件的基本权限是指文件拥有者、文件所属组和其它用户对文件或目录的r (读) 、w (写) 、x (执行) 权限;文件的特殊权限是为保障系统可靠运行, 满足用户特殊需要而赋予文件或目录的Suid、Sgid、Sticky权限, 通常Suid、Sgid针对可执行文件或目录设置, Sticky只针对目录设置

2 文件的特殊权限在Linux系统中的表示方式

特殊权限Suid、Sgid、Sticky在linux系统中有其特定的表现形式, 针对具体的文件和目录, 系统采取以下规则表示特殊权限。

Suid权限是借用拥有者 (u) 权限组合中的可执行权限位, 用s或S表示 (文件有可执行权 (x) , 该位为s, 文件无执行权 (x) , 该位为S) ;Sgid权限是借用文件所属组 (g) 权限组合中的可执行权限位, 表示方式与Suid相同;Sticky是借用其它用户 (O) 权限组合中的可执行权限位, 用t或T表示 (文件有可执行权 (x) , 该位为t, 文件无执行权 (x) , 该位为T) 。与基本权限相似, 除了用字符方式表示外, 还可以使用八进制数表示, Suid、sgid、sticky分别对应八进制数4、2、1。这样, 文件基本权限和特殊权限构成四位八进制数, 第一位八进制数代表特殊权限对应的数字和, 后三位八制数代表基本权限对应的数字和。

3 文件的特殊权限作用和设置方法

linux引入特殊权限是为了提高文件系统的安全性, 方便用户间文件共享, 通常, 在可执行文件或目录设置特殊权限, 满足系统用户的特殊需求。

3.1 Suid权限

当文件拥有者 (u) 的可执行权限位 (x) 被s取代时, 就构成Suid权限。设置了Suid权限的可执行文件, 在被执行时, 将不以执行者身份执行, 而是以文件拥有者的身份执行。

3.2 Sgid权限

当文件所属组 (g) 的可执行权限位 (x) 被s所取代时, 就构成Sgid权限, 通常Sgid被设置在可执行文件和目录上。

可执行文件设置Sgid, 在执行该文件时, 不以执行者身份执行, 而是以文件所属组的身份执行。

目录设置Sgid, 在该目录下创建的文件或子目录所属的组, 将自动被赋予目录所属的组。

3.3 Sticky权限

当其它用户 (o) 的执行权限位 (x) 被t取代时, 就构成特殊权限Sticky。当目录设置了该权限, 在该目录下的文件或子目录, 只有文件或子目录的所有者和root可以执行删除操作, 其它用户即使对该文件或子目录有写和执行权限, 也不能执行删除操作。

综上所述, 在目录设置Sgid权限, 可解决同组用户间文件共享的问题, 但不能解决同组成员可任意删除目录中组内其它成员文件问题, 为此, 我们通过在目录上同时设置Sgid和Sticky权限, 即可实现同组用户共享文件, 又可保证只有文件所有者和root才可以删除文件, 操作如下。

将共享文件放入/home/user2/share目录中, 文件的所属组为user, 为该目录设置Sticky、Sgid权限。切换到user2用户, 建立文件, 再切换到user1用户, 使用rm命令删除user2用户建立的文件。

结果显示:user1用户不能删除user2用户建立的文件, 因为在share目录设置了sticky权限, 只有这个文件的所有者和root才可能删除目录中的文件, 实现了同组用户可共享指定目录中的文件, 而每一个用户又不能删除同组的其它用户的文件, 实现了同一项目中不同项目成员之间的信息共享和信息安全的目标。

4 结束语

Linux系统中文件的特殊权限, 是文件系统安全体系中的重要组成部分, 在系统安全管理方面起到了重要作用, 通过特殊权限设置和使用, 可进一步优化系统的权限管理机制, 保障系统安全可靠运行。

参考文献

[1]刘海涛.Linux中文件权限管理的探讨.微型计算机信息, 2006, 22卷, 第三期.

篇4:浅谈Linux系统安全问题

关键词 Linux 系统安全 用户管理 安全工具

中图分类号:TP316.8 文献标识码:A

安全是当今IT相关头条新闻的重要话题。经常出现的系统漏洞和安全补丁以及病毒和蠕虫是每个使用计算机的人都耳熟能详的名词。因为几乎每台计算机系统都连接到另外的计算机或者连接到Internet,因此确保这些计算机的安全,对于减少入侵、数据窃取或丢失、误用甚至对第三方的责任而言都是至关重要的。①

Linux作为一个现代的、开放源代码的操作系统,它允许用户自由的复制和修改其源代码,用户可以根据自己的环境定制Linux、向操作系统添加新部件等,正是由于软件的每个用户和开发者都可以访问其源代码,因而有许多人在控制和审视源代码中可能的安全漏洞。软件缺陷很快会被发现。一方面,这会导致这些缺陷更早被利用;另一方面,很快就会有可用的安全补丁。

当系统连接到网络并向其他计算机提供服务时,系统就会有可能成为被攻击的对象。在这种情况下,系统漏洞可能会让入侵者控制计算机。因此,从开始计划直到拆除系统的整个系统生命周期中安全都是一个最基本的问题。

那么,如何保护Linux安全呢?

1 系统的用户管理

与其他UNIX操作系统一样,在进入Linux系统时需要验证账号和密码。Linux一般将密码加密之后,存放在/etc/passwd文件中,Linux系统上的所有用户都可以读到该文件,这种方法不太安全,因为一般的用户可以利用现成的密码破译工具,用穷举法猜测出密码。②比较安全的方法是设定影子文件/etc/shadow,通过影子文件允许特殊权限的用户阅读该文件。在Linux系统中,如果要采用影子文件,必须将所有的公用程序重新编译,才能支持影子文件。这种方法比较麻烦,比较简单的方法是采用插入式验证模块(PAM)。很多Linux系统都带有PAM,它是一种身份验证机制,可以用来动态地改变身份验证的方法和要求,而不要求重新编译其他公用程序。这是因为PAM采用封闭包的方式,将所有与身份验证有关的逻辑全部隐藏在模块内,因此它是影子文件的最佳帮手。

除密码之外,用户账号也有安全等级,这是因为在Linux上每个账号可以被赋予不同的权限,因此在建立一个新用户ID时,系统管理员应该根据需要赋予该账号不同的权限,并且归并到不同的用户组中。

在Linux系统中,可以在/etc/hosts.allow文件中设定允许上机人员的名单,同时在/etc/hosts.deny文件中设置不允许上机人员的名单,Linux将自动把允许进入或不允许进入的结果记录到/rar/log/secure文件中,系统管理员可以据此查出可疑的进入记录。

每个账号ID应该有专人负责。在企业中,如果负责某个ID的职员离职,管理员应立即从系统中删除该账号。很多入侵事件都是利用了那些很久不用的账号。

在用户账号之中,尤其要注意具有root权限的账号,这种超级用户权力无限,可以修改或删除各种系统设置。因此,在给任何账号赋予root权限之前,都必须仔细考虑,最好不要轻易将超级用户授权出去。Linux系统中的/etc/security文件包含了一组能够以root账号登陆的终端机名称,该文件的初始值仅允许本地虚拟控制台(rtys)以root权限登陆,而不允许远程用户以root权限登陆,最好不要修改该文件。有些程序的安装和维护工作必须要求有超级用户的权限,在这种情况下,可以利用sudo这样的工具让这类用户有部分超级用户的权限。

2 安全工具

下面介绍一些可以用于Linux的安全工具,这些工具使用户的服务器运行起來更加安全,可以解决各方面的问题。

2.1 nmap和nessus网络安全扫描工具

nmap工具是一个端口扫描工具,它能扫描整个网络或一台主机上的开放端口。如果读者对安全担忧或者要寻找攻击者将会发现的漏洞,那么应花些时间来安装并使用nmap。nmap集成了大量的扫描技术。nmap工具还可以使用TCP/IP指纹来识别一个远程系统运行的是哪种操作系统。该工具处于系统管理员和攻击工具之间的灰色区域。如果读者负责一个网络,可以使用nmap检测本地网络是否有安全漏洞。

nessus是一个功能强大而又易于使用的远程安全扫描器,它不仅免费而且更新极快。安全扫描器的功能是对指定网络进行安全检查,找出该网络是否存在会导致对手攻击的安全漏洞。该系统被设计为C/S模式,服务器段负责进行安全检查,客户端用来配置管理服务器。nessus的安全检查是由大量插件完成的,其扩展性强,容易使用,功能强大,可以扫描出多种安全漏洞。

2.2 弱点测试工具

(1)chkacct。chkacct是一个检查用户账号安全的工具。它能检查文件的权限并恢复到初始权限。它还能寻找那些能被所有用户可读的文件并查看以点号开头的文件。它可以被用户使用或者被系统或安全管理员专用。

(2)Courtney。Courtney检测一个网络,查明SATAN探索的结果 ,并试图识别他们的来源。它从tcpdump获得输入并计算一台机器在一个特定时段内产生新的服务请求的次数。如果在该时段内,一台机器和大量服务器连接,Courtney就把该机器识别为一个潜在的SATAN主机

3 日志工具(logrotate,swatch,logcheck)

(1)logrotate。一般的Linux发行版中都自带这个工具,能够解决日志文件过大的问题。它可以自动使日志循环,删除保存最久的日志。可以把它放在crontab中,每天定期运行。这在很多Linux发行版中都是默认设置的。

(2)swatch。Swatch是一个实时的日志监控工具。读者可以设置感兴趣的时间,它可以在事件发生的时候告诉读者。Swatch有两种运行方式:一种可以在检查日志完毕退出,另一种可以连续监视日志中的新信息。

4 SSH和Tripwire

(1)SSH服务

传统的网络服务程序,如ftp、pop和telnet在本周上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易收到“中间人”方式的攻击。这些“中间人”冒充真正的服务器接收用户传给服务器的数据,然后冒充用户的数据传给真正的服务器。

通过使用SSH,用戶可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。

(2)Tripwire

如果有人侵入了你的系统,在系统中放置了木马和后门,你怎么才能知道呢?tripwire就是这样一个对系统做完整性检查的工具,它是目前最为著名的Linux下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,保留下来。当文件现在的数字签名与保留的数字签名不一致时,那么现在这个文件必定被改动过了。

5 反扫描工具Portsentry

通过防火墙可以限制自己系统中什么端口开放,什么端口不开放。对于外部的人们来说,这些信息都是保密的。黑客为了得到他人计算机中开放的端口,往往会进行各种方式的扫描,这样的扫描在互联网上也推出课件。一般的扫描活动都是进行入侵的前奏,对安全是极大的威胁。Portsentry就是这样一个反扫描工具,它可以实时发现并分析记录对本机的扫描,它通过syslog做记录,将扫描的主机加入/etc/hosts.deny,马上禁止所有通向扫描主机的网络流量,同时过滤掉所有来自扫描主机的网络流量。

从计算机安全角度来看,世界上没有百分之百安全的计算机系统,Linux系统也不例外,作为Linux系统管理员,需要保持一定的安全防范意识,对系统要定期做检查,发现问题要立即采取措施,根据实际的应用场景,灵活地综合采取以上方法和工具,才能取得较好的效果。

注释

① 何世晓,等.Linux管理师[M].机械工业出版社,2009.

篇5:linux系统安全设置

安装iptables防火墙

如果没有安装iptables需要先安装,CentOS执行:

yum install iptables

Debian/Ubuntu执行:

apt-get install iptables

星期九所在的VPS上iptables设置为:

*nat

:PREROUTING ACCEPT [7978:1018059]

:POSTROUTING ACCEPT [9376:593102]

:OUTPUT ACCEPT [9376:593102]

-A POSTROUTING -s 192.168.217.0/255.255.255.0 -o eth0 -j MASQUERADE

-A POSTROUTING -s 192.168.217.0/255.255.255.0 -o eth0 -j MASQUERADE

-A POSTROUTING -s 192.168.217.0/255.255.255.0 -o eth0 -j MASQUERADE

-A POSTROUTING -s 192.168.217.0/255.255.255.0 -o eth0 -j MASQUERADE

-A POSTROUTING -s 192.168.217.0/255.255.255.0 -o eth0 -j MASQUERADE

COMMIT

*filter

:INPUT DROP [449:152450]

:FORWARD DROP [52:3156]

:OUTPUT DROP [0:0]

-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 88 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT

-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

-A INPUT -s 60.195.252.107 -i eth0 -p udp -m udp --dport 161 -j ACCEPT

-A INPUT -s 60.195.252.110 -i eth0 -p udp -m udp --dport 161 -j ACCEPT

-A OUTPUT -j ACCEPT

COMMIT

其中仅开放了SSH的端口22,http的端口80,FTP的21、22,UDP的161,以及PPTP所使用的1723。LNMPA服务器可能需要注意开放88端口,因为军哥的一键安装包其后端Apache使用88端口。也可以将Nginx的端口改到88。另外此设置不接受ping的ICMP包。

iptables规则管理

列出当前iptables规则:

iptables -L -n --line-numbers

删除其中某一条规则(借助相应规则与行号),如:

iptables -D INPUT 6

iptables -D FORWARD 1

将分别删除INPUT里的第6条规则与FORWARD里的第一条规则。

iptables规则的保存与自启

设置好后,执行:

iptables-save >/etc/iptables.rules

将规则保存于/etc目录下的iptables.rules文件,然后在/etc/rc.local文件里添加随开机执行的命令:

vi /etc/rc.local

在“exit 0”的上面添入下面语句:

iptables-restore

清除iptables规则

执行:

iptables -F

iptables -X

iptables -Z

iptables从入门到精通

实验环境介绍:

本脚本环境为eth0外网,eth1内网;

#!/bin/sh

#外网网卡

EXT_IF=”eth0“

FW_IP=”61.137.85.21“

#内网网卡

INT_IF=”eth1“

LAN_IP=”192.168.0.1“

LAN_IP_RANGE=”192.168.0.0/255.255.255.0“

#加载模块,一般已内建

#Module loading.

#echo ”modprobe modules“

#modprode ip_tables

#modprode ip_nat_ftp

#modprode ip_conntrack

#modprobe ip_conntrack_ftp

#启用转发(forward)功能

echo ”enabling IP FORWARDING......“

echo ”1“ >/proc/sys/net/ipv4/ip_forward

#规则初始化,设置默认都为drop

echo ”enabling iptables rules“

#reset the default policies in the tables

#Iptables 命令参数

iptables -F

iptables -X

iptables -F -t mangle

iptables -X -t mangle

iptables -F -t nat

iptables -X -t nat

iptables -Z -t nat

#set policies

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT DROP

###-----------------------------------------------------------------###

#过虑蠕虫病毒

#444/445/69/135/139

###-----------------------------------------------------------------###

iptables -A FORWARD -p tcp --dport 4444 -j DROP

iptables -A FORWARD -p udp --dport 4444 -j DROP

iptables -A FORWARD -p tcp --dport 445 -j DROP

iptables -A FORWARD -p udp --dport 445 -j DROP

iptables -A FORWARD -p tcp --dport 69 -j DROP

iptables -A FORWARD -p udp --dport 69 -j DROP

iptables -A FORWARD -p tcp --dport 135 -j DROP

iptables -A FORWARD -p udp --dport 135 -j DROP

iptables -A FORWARD -p tcp --dport 139 -j DROP

iptables -A FORWARD -p udp --dport 139 -j DROP

#允许ping localhost,ping 192.168.0.1/2

#allow loopback access

iptables -A INPUT -p icmp -i lo -j ACCEPT

iptables -A OUTPUT -p icmp -o lo -j ACCEPT

#打开内对内连接

#iptables -A INPUT -i lo -j ACCEPT

#允许代理和内网客户机相互传输数据(包括ping)

#allow ping LAN

iptables -A INPUT -p ALL -i $INT_IF -s $LAN_IP_RANGE -j ACCEPT

iptables -A OUTPUT -p ALL -o $INT_IF -d $LAN_IP_RANGE -j ACCEPT

#允许外网的网卡与内网相互通讯.接受数据只接受响应封包,否则不予放行.发送数据没有限制.

iptables -A INPUT -p ALL -i $INT_IF -s $LAN_IP_RANGE -j ACCEPT

iptables -A INPUT -p ALL -i $INT_IF -s $LAN_IP_RANGE -j ACCEPT

#拒绝外部使用内网进行欺骗

#deny local cheat

iptables -A INPUT -i $EXT_IF -s 192.168.0.0/16 -j DROP

iptables -A INPUT -i $EXT_IF -s 10.0.0.0/8 -j DROP

iptables -A INPUT -i $EXT_IF -s 172.16.0.0/12 -j DROP

iptables -A INPUT -i $EXT_IF -s 127.0.0.0/8 -j DROP

#从LAN进入防火墙主机的dhcp封包,不于放行,只有防火墙担任DHCP时才放行

#deny DHCP_packets from LAN

iptables -A INPUT -p udp -i $INT_IF --dport 67 --sport 68 -j DROP

###-----------------------------------------------------------------------------------###

#配置向外方向的TCP规则,其中 --state ESTABLISHED ,NEW参数指定要检查哪个状态。

#ESTABLISHED标志匹配属于已有的TCP连接的封包.

#NEW标志指定试图创建一条新的TCP连接的第一个封包,这条规则指明属于新建的和已建立的

#TCP连接的封包将会通过eth0端口向外发送.

###-----------------------------------------------------------------------------------###

iptables -A OUTPUT -o $EXT_IF -p tcp -m state --state ESTABLISHED,NEW -j ACCEPT

###----------------------------------------------------------------------------------###

#配置封包从一个端口转发到另一个端口

###----------------------------------------------------------------------------------###

iptables -A FORWARD -i $INT_IF -j ACCEPT

# same to above 和上面的规则功能相同

#iptables -A FORWARD -i $EXT_IF -m state --state ESTABLISHED,RELATED -j ACCEPT

###-------------------------------------------------------------------------------------###

#检查到达外部网络接口的封包状态.属于已有TCP连接的封包都允许通过

# 从WAN到LAN的封包仅放行回应封包

###-------------------------------------------------------------------------------------###

iptables -A INPUT -i $EXT_IF -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

# 限制过滤规则的比对频率为每分钟平均流量三个封包(超过上限的封包将暂停比对),

#并将瞬间流量设定为一次最多处理三个封包(超过上限的封包将丢弃不予处理),

#这类封包通常是 用来进行阻断式攻击

iptables -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level INFO --log-prefix ”IPT INPUT packets died:“

###-------------------------------------------------------------------------###

#不管来自哪里的ip碎片都进行控制,允许每秒通过100个碎片

###-------------------------------------------------------------------------###

iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT

###-------------------------------------------------------------------------###

#icmp包通过的控制,防止icmp 攻击

###-------------------------------------------------------------------------###

iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

###-------------------------------------------------------------------------###

# 防止DDOS

###-------------------------------------------------------------------------###

#iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

###-------------------------------------------------------------------------###

# UDP包一律放行

# allow UDP

###-------------------------------------------------------------------------###

iptables -A FORWARD -p udp -d $LAN_IP_RANGE -i $EXT_IF -j ACCEPT

###-------------------------------------------------------------------------###

#根据mac屏蔽主机上网

###-------------------------------------------------------------------------###

#iptables -t nat -I PREROUTING -m mac --mac-source 4C:00:10:D8:57:F3 -j DROP

###-----------------------------------------------------###

# 开放内部主机可以telnet至外部主 telnet port 23

###-----------------------------------------------------###

#没必要打开23端口

#iptables -A OUTPUT -o $EXT_IF -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 23 -j ACCEPT

#iptables -A INPUT -i $EXT_IF -p tcp ! --syn -s any/0 --sport 23 -d $FW_IP --dport 1024:65535 -j ACCEPT

###-----------------------------------------------------###

# 开放邮包转送通道 open SMTP port 25

###-----------------------------------------------------###

#以下是别人可以送信给你

iptables -A INPUT -i $EXT_IF -p tcp -s any/0 --sport 1024:65535 -d $FW_IP --dport 25 -j ACCEPT

iptables -A OUTPUT -o $EXT_IF -p tcp ! --syn -s $FW_IP --sport 25 -d any/0 --dport 1024:65535 -j ACCEPT

#以下是你可以送信给别人

iptables -A OUTPUT -o $EXT_IF -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 25 -j ACCEPT

iptables -A INPUT -i $EXT_IF -p tcp ! --syn -s any/0 --sport 25 -d $FW_IP --dport 1024:65525 -j ACCEPT

###-----------------------------------------------------###

# 开放对外离线下载信件的通道 POP3 port 110

###-----------------------------------------------------###

iptables -A OUTPUT -o $EXT_IF -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 110 -j ACCEPT

iptables -A INPUT -i $EXT_IF -p tcp ! --syn -s any/0 --sport 110 -d $FW_IP --dport 1024:65535 -j ACCEPT

###-----------------------------------------------------###

# 开放浏览网页的通道 http port 80

###-----------------------------------------------------###

iptables -A OUTPUT -o $EXT_IF -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 80 -j ACCEPT

iptables -A INPUT -i $EXT_IF -p tcp ! --syn -s any/0 --sport 80 -d $FW_IP --dport 1024:65535 -j ACCEPT

###-----------------------------------------------------###

# 开放查询外部网络的DNS主机 DNS port:53

###-----------------------------------------------------###

#第一次会用udp封包来查询

iptables -A OUTPUT -o $EXT_IF -p udp -s $FW_IP --sport 1024:65535 -d any/0 --dport 53 -j ACCEPT

iptables -A INPUT -i $EXT_IF -p udp -s any/0 --sport 53 -d $FW_IP --dport 1024:65535 -j ACCEPT

#若有错误,会改用tcp包来查询

iptables -A OUTPUT -o $EXT_IF -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 53 -j ACCEPT

iptables -A INPUT -i $EXT_IF -p tcp ! --syn -s any/0 --sport 53 -d $FW_IP --dport 1024:65535 -j ACCEPT

#开放这台主机上的DNS和外部的DNS主机互动查询:使用udp

iptables -A OUTPUT -o $EXT_IF -p udp -s $FW_IP --sport 53 -d any/0 --dport 53 -j ACCEPT

iptables -A INPUT -i $EXT_IF -p udp -s any/0 --sport 53 -d $FW_IP --dport 53 -j ACCEPT

#开放这台主机上的DNS和外部的DNS主机互动查询:使用udp

iptables -A OUTPUT -o EXT_IF -p tcp -s $FW_IP --sport 53 -d any/0 --dport 53 -j ACCEPT

iptables -A INPUT -i EXT_IF -p tcp ! --syn -s any/0 --sport 53 -d $FW_IP --dport 53 -j ACCEPT

###------------------------------------------------------------------------###

#开放内部主机可以SSH至外部的主机 SSH port:22

###------------------------------------------------------------------------###

iptables -A OUTPUT -o $EXT_IF -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 22 -j ACCEPT

iptables -A INPUT -i $EXT_IF -p tcp ! --syn -s any/0 --sport 22 -d $FW_IP --dport 1024:65535 -j ACCEPT

#以下是SSH protocol比较不同的地方

iptables -A OUTPUT -o $EXT_IF -p tcp -s $FW_IP --sport 1020:1023 -d any/0 --dport 22 -j ACCEPT

iptables -A INPUT -i $EXT_IF -p tcp ! --syn -s any/0 --sport 22 -d $FW_IP --dport 1020:1023 -j ACCEPT

###------------------------------------------------------------------------###

###开放内部网络,可以ftp至外部主机

###------------------------------------------------------------------------###

#以下是打开命令 channel 21

iptables -A OUTPUT -o $EXT_IF -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 21 -j ACCEPT

iptables -A INPUT -i $EXT_IF -p tcp ! --syn -s any/0 --sport 21 -d $FW_IP --dport 1024:65535 -j ACCEPT

#以下是打开资料 channel 20

iptables -A INPUT -i $EXT_IF -p tcp -s any/0 --sport 20 -d $FW_IP --dport 1024:65535 -j ACCEPT

iptables -A OUTPUT -o $EXT_IF -p tcp ! --syn -s $FW_IP --sport 1024:65535 -d any/0 --dport 20 -j ACCEPT

#以下是打开 passive mode FTP 资料通道

iptables -A OUTPUT -o $EXT_IF -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 1024:65535 -j ACCEPT

iptables -A INPUT -i $EXT_IF -p tcp ! --syn -s any/0 --sport 1024:65535 -d $FW_IP --dport 1024:65535 -j ACCEPT

#-------------------------------------NAT------------------------------------------------

#透明代理设定:将WWW服务转向squid

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

###-------------------------------------------------------------------------###

#启动内部对外部转址:源网络地址转换SNAT

###-------------------------------------------------------------------------###

iptables -t nat -A POSTROUTING -o $EXT_IF -s $LAN_IP_RANGE -j SNAT --to $FW_IP

###-------------------------------------------------------------------------###

#启动外部对内部转址(设置内网WWWW服务器映射)DNAT

###-------------------------------------------------------------------------###

iptables -t nat -A PREROUTING -i $EXT_IF -p tcp -d $FW_IP --dport 80 -j DNAT --to 192.168.0.16:80

双线原理是一样的:

如果内网1[或者外网]是192.168.1.0/24

内网2[或者外网]是192.168.2.0/24

只要改相应部分就行了

#启动内部对外部转址:源网络地址转换SNAT

###-------------------------------------------------------------------------###

iptables -t nat -A POSTROUTING -o $EXT_IF -s 192.168.1.0/24 -j SNAT --to $FW_IP

iptables -t nat -A POSTROUTING -o $EXT_IF -s 192.168.2.0/24 -j SNAT --to $FW_IP

附上基础规则:

*filter

:INPUT ACCEPT [106:85568]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [188:168166]

:RH-Firewall-1-INPUT - [0:0]

#允许本地回环接口(即运行本机访问本机)

-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

#允许已建立的或相关连的通行

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#允许所有本机向外的访问

-A OUTPUT -j ACCEPT

#允许PPTP拨号****

-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT

#仅特定主机访问Rsync数据同步服务

-A INPUT -s 8.8.8.8/32 -p tcp -m tcp --dport 873 -j ACCEPT

#仅特定主机访问WDCP管理系统

-A INPUT -s 6.6.6.6/32 -p tcp -m tcp --dport 8080 -j ACCEPT

#允许访问SSH

-A INPUT -p tcp -m tcp --dport 1622 -j ACCEPT

#允许访问FTP

-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT

#允许访问网站服务

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

#禁止所有未经允许的连接

-A INPUT -p tcp -j DROP

#注意:如果22端口未加入允许规则,SSH链接会直接断开,

#-A INPUT -j REJECT

#-A FORWARD -j REJECT

篇6:linux系统安全设置

说到“同步”,不得不提的利器就是rsync,今天就来说说我从这个工具中看到的同步的艺术。

1. 配置同步源

安装rsync:yum -y install rsync xinetd

开启rsync:vim /etc/xinetd.d/rsync 把disable = yes 改为disable = no

配置:vim /etc/rsyncd.conf

#同步源标识,可随意更改

[site]

#程序路径

path = /home/backup

#允许同步的主机

hosts allow = 192.168.1.14

hosts deny = *

list = true

uid = root

gid = root

read nly = false

2.配置同步服务器

同样安装rsync,并可以设置过滤列表,然后执行:

rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /var/www/html/ server_ip ::site

这里的server_ip即为服务器IP或域名,site是同步源标识

另外再设置定时脚本,

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:如何保护Linux 网络安全 下一篇:linux伙伴系统