【centos6安装教程】CentOS6系统服务器安全设置(入门级别)

时间:2019-09-06  来源:服务器安全  阅读:

网络上被攻陷的大多数主机,是黑客用扫描工具大范围进行扫描而被瞄准上的。所以,为了避免被扫描到,除了必要的端口,例如 Web、FTP、SSH 等,其他的都应关闭。值得一提的是,我强烈建议关闭 icmp 端口,并设置规则,丢弃 icmp 包。这样别人 Ping 不到你的服务器,威胁就自然减小大半了。丢弃 icmp 包可在 iptables 中, 加入下面这样一条:

-A INPUT -p icmp -j DROP

2、Linux SSH 安全策略二:更改 SSH 端口

默认的 SSH 端口是 22。强烈建议改成 10000 以上。这样别人扫描到端口的机率也大大下降。修改方法:

# 编辑 /etc/ssh/ssh_configvi /etc/ssh/ssh_config# 在 Host * 下 ,加入新的 Port 值。以 18439 为例(下同):Port 22Port 18439# 编辑 /etc/ssh/sshd_configvi /etc/ssh/sshd_config#加入新的 Port 值Port 22Port 18439# 保存后,重启 SSH 服务:service sshd restart

这里我设置了两个端口,主要是为了防止修改出错导致 SSH 再也登不上。更改你的 SSH 客户端(例如:Putty)的连接端口,测试连接,如果新端口能连接成功,则再编辑上面两个文件,删除 Port 22 的配置。如果连接失败,而用 Port 22 连接后再重新配置。

端口设置成功后,注意同时应该从 iptables 中, 删除22端口,添加新配置的 18439,并重启 iptables。

如果 SSH 登录密码是弱密码,应该设置一个复杂的密码。Google Blog 上有一篇强调密码安全的文章:Does your password pass the test?

3、Linux SSH 安全策略三:限制 IP 登录

如果你能以固定 IP 方式连接你的服务器,那么,你可以设置只允许某个特定的 IP 登录服务器。例如我是通过自己的 VPN 登录到服务器。设置如下:

# 编辑 /etc/hosts.allowvi /etc/hosts.allow# 例如只允许 123.45.67.89 登录sshd:123.45.67.89

4、Linux SSH 安全策略四: 使用证书登录 SSH

相对于使用密码登录来说,使用证书更为安全。自来水冲咖啡有写过一篇详细的教程,征得其同意,转载如下:

为CentOS配置SSH证书登录验证

帮公司网管远程检测一下邮件服务器,一台CentOS 5.1,使用OpenSSH远程管理。检查安全日志时,发现这几天几乎每天都有一堆IP过来猜密码。看来得修改一下登录验证方式,改为证书验证为好。

为防万一,临时启了个VNC,免得没配置完,一高兴顺手重启了sshd就麻烦了。(后来发现是多余的,只要事先开个putty别关闭就行了)

以下是简单的操作步骤:

1) 先添加一个维护账号:msa

2) 然后su – msa

3) ssh-keygen -t rsa指定密钥路径和输入口令之后,即在/home/msa/.ssh/中生成公钥和私钥:id_rsa id_rsa.pub

4) cat id_rsa.pub >> authorized_keys至于为什么要生成这个文件,因为sshd_config里面写的就是这个。然后chmod 400 authorized_keys,稍微保护一下。

5) 用psftp把把id_rsa拉回本地,然后把服务器上的id_rsa和id_rsa.pub干掉

6) 配置/etc/ssh/sshd_configProtocol 2ServerKeyBits 1024PermitRootLogin no  #禁止root登录而已,与本文无关,加上安全些#以下三行没什么要改的,把默认的#注释去掉就行了RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile    .ssh/authorized_keysPasswordAuthentication noPermitEmptyPasswords no

7) 重启sshd/sbin/service sshd restart

8) 转换证书格式,迁就一下putty运行puttygen,转换id_rsa为putty的ppk证书文件

9) 配置putty登录在connection–SSH–Auth中,点击Browse,选择刚刚转换好的证书。然后在connection-Data填写一下auto login username,例如我的是msa在session中填写服务器的IP地址,高兴的话可以save一下

10) 解决一点小麻烦做到这一步的时候,很可能会空欢喜一场,此时就兴冲冲的登录,没准登不进去:No supported authentication methods available这时可以修改一下sshd_config,把PasswordAuthentication no临时改为:PasswordAuthentication yes 并重启sshd这样可以登录成功,退出登录后,再重新把PasswordAuthentication的值改为no,重启sshd。以后登录就会正常的询问你密钥文件的密码了,答对了就能高高兴兴的登进去。至于psftp命令,加上个-i参数,指定证书文件路径就行了。

如果你是远程操作服务器修改上述配置,切记每一步都应慎重,不可出错。如果配置错误,导致 SSH 连接不上,那就杯具了。


1.关闭不需要的服务

众知周知,服务越少,系统占用的资源也会越少,所以应关闭不需要的服务。这样做的好处是减少内存和CPU时间的占用。命令如下所示:# ntsysv下面列出需要启动的服务,未列出的服务一律关闭。

crond
Linux下的时间计划任务服务。
irqbalance
启用irqbalance服务,既可以提升性能,又可以降低能耗。irqbalance用于优化中断分配,它会自动收集系统数据以分析使用模式,并依据系 统负载状况将工作置于Performance mode或Power-save mode状态。处于Performance mode时,irqbalance会将中断尽可能均匀地分发给各个CPU core,以充分利用CPU的多核,提升性能。处于Power-save mode时,irqbalance会将中断集中分配给第一个CPU,以保证其他空闲CPU的睡眠时间,降低能耗。现在的主流服务器都是双四核,所以这项我 建议保留。
network
sshd
syslog
这是Linux的日志系统,必须要启动,否则机器出现问题时会找不到原因。
再说一下两个比较特殊的服务,它们是iptables和SELinux。因为网站和系统之前均有硬件防火墙,如果没有特殊需求的话,均可选择关闭。要关闭它们可以在命令setup下操作,也可以使用命令行操作。

关闭iptables的代码如下:service iptables stop && #chkconfig iptables off关闭SELinux的方法如下:vim /etc/selinux/config然后将文件中的selinux=””改为disabled,并重启。如果不想重启系统,使用命令 setenforce 0,此命令可以暂时关闭SELinux,重启后失效。

说明 setenforce 1将SELinux设置成为enforcing模式;setenforce 0将SELinux设置成为permissive模式。

另外,在lilo或grub的启动参数中增加:selinux=0,这样也可以关闭SELinux。

2.关闭不需要的tty

先编辑/etc/inittab,找到如下一段命令:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

这段命令会使init为你打开了6个控制台,分别可以用[ALT+F1]到[ALT+F6]进行访问。此6个控制台默认都驻留在内存中,用ps -aux这个命令就可以看到,这是6个进程,如下所示:
[root@localhost ~]# ps -aux| grep tty
Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.7/FAQ
root   3219 0.0 0.0  3792  488 tty1   Ss+ Mar16  0:00 /sbin/mingetty tty1
root   3220 0.0 0.0  3792  484 tty2   Ss+ Mar16  0:00 /sbin/mingetty tty2
root   3221 0.0 0.0  3792  488 tty3   Ss+ Mar16  0:00 /sbin/mingetty tty3
root   3222 0.0 0.0  3792  488 tty4   Ss+ Mar16  0:00 /sbin/mingetty tty4
root   3224 0.0 0.0  3792  488 tty5   Ss+ Mar16  0:00 /sbin/mingetty tty5
root   3226 0.0 0.0  3792  488 tty6   Ss+ Mar16  0:00 /sbin/mingetty tty6
root   3325 0.0 0.1 90548 6264 tty7   Ss+ Mar16  0:01 /usr/bin/Xorg :0 -br -audit 0 -auth /var/gdm/:0.Xauth -nolisten tcp vt7
root   6767 0.0 0.0 68284 1564 tty8   Ss+ Mar17  0:00 /bin/bash
root   31179 0.0 0.0 63372  756 pts/2  S+  17:03  0:00 grep tty

事实上没有必要使用这么多。应如何关闭不需要的进程呢?通常我们保留前两个控制台就可以了,把后面4个用#注释掉,并且无需重启,只需要执行init q这个命令即可,如下所示:
init q

3.对TCP/IP网络参数进行调整

调整TCP/IP网络参数,可以增强抗SYN Flood的能力,命令如下所示:
# echo ‘net.ipv4.tcp_syncookies = 1′ >> /etc/sysctl.conf
# sysctl -p

4.修改shell命令的history记录个数

修改history记录的命令如下所示:
# vi /etc/profile

找到histsize=1000,将其改为histsize=100(这条可根据实际情况而定)。

不重启系统就可让其生效,如下所示:
source /etc/profile

5.定时校正服务器的时间

我们可以定时校正服务器的时间,命令如下所示:
# yum install ntp
# crontab -e

加入如下一行:
*/5 * * * * ntpdate ntp.api.bz

#ntp.api.bz是一组NTP服务器集群,目前有6台服务器。这项服务是api.bz继http://sms.api.bz移动飞信免费短信发送接口之后的第二项免费API服务。

6.停止打印服务

如果不准备提供打印服务,可停止默认设置为自动启动的打印服务,命令如下所示:
[root@sample ~]#/etc/rc.d/init.d/cups stop ← 停止打印服务Stopping cups:    [OK]  ← 停止服务成功,出现“OK”
[root@sample ~]#chkconfig cups off ← 禁止打印服务自动启动
[root@sample ~]#chkconfig -list cups ← 确认打印服务自启动设置状态
cups0:off 1:off 2:off 3:off 4:off 5:off 6:off ← 0~6都为off的状态就OK(当前打印服务自启动被禁止)

7.停止ipv6

在Centos6.3默认的状态下,ipv6是被启用的。因为我们不使用ipv6,所以,可以停止ipv6,以最大限度地保证安全和快速。首先确认一下ipv6是不是处于被启动的状态。[root@sample ~]#ifconfig -a ← 列出全部网络接口信息
eth0 Link encap:Ethernet HWaddr 00:0C:29:B6:16:A3
inet addr:192.168.0.13 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb6:16a3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:84 errors:0 dropped:0 overruns:0 frame.:0
TX packets:93 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10288 (10.0 KiB) TX bytes:9337 (9.1 KiB)
Interrupt:185 Base address:0×1400

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame.:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:952 (952.0 b) TX bytes:952 (952.0 b)
sit0 Link encap:IPv6-in-IPv4 ← 确认ipv6是被启动的状态
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame.:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

然后修改相应配置文件,停止ipv6,如下所示:
[root@sample ~]#vi /etc/modprobe.conf ← 修改相应配置文件,添加如下内容
alias net-pf-10 off
alias ipv6 off
echo “IPV6INIT=no” >> /etc/sysconfig/network-scripts/ifcfg-eth0
[root@sample ~]#shutdown -r now ← 重新启动系统,使设置生效

最后确认ipv6的功能已经被关闭,如下所示:

[root@sample ~]#ifconfig -a ← 列出全部网络接口信息
eth0 Link encap:Ethernet HWaddr 00:0C:29:B6:16:A3
inet addr:192.168.0.13 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb6:16a3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:84 errors:0 dropped:0 overruns:0 frame.:0
TX packets:93 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10288 (10.0 KiB) TX bytes:9337 (9.1 KiB)
Interrupt:185 Base address:0×1400lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame.:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:952 (952.0 b) TX bytes:952 (952.0 b)

确认ipv6的相关信息没有被列出,说明ipv6功能已经关闭。

8.调整Linux的最大文件打开数

要调整一下Linux的最大文件打开数,否则squid在高负载时执行性能将会很低。另外,在Linux下面部署应用时,有时候会遇上 Socket/File:Can’t open so many files这样的问题,这个值也会影响服务器的最大并发数。其实Linux是有文件句柄限制的,但默认不是很高,一般是1024,生产服务器很容易就会达 到这个值,所以需要改动此值。刚开始我采用vim/etc/security/limit.conf命令,在最后一行添加如下代码:
* soft nofile 60000
* hard nofile 65535

但重启后一切都还原了。

正解做法应该为在Centos6.3的/etc/rc.local文件里添加如下命令行:
ulimit -SHn 65535

当然了,我们也可以在Nginx的一些监控脚本里实时添加此命令行,达到重启也能生效的目的。

另外,ulimit -n命令并不能真正看到文件的最大文件打开数,大家可用如下脚本查看:
#!/bin/bash
for pid in ‘ps aux |grep nginx |grep -v grep|awk ‘{print$2}”
do
cat /proc/${pid}/limits |grep ‘Max open files’
done

9.启动网卡

大家配置Centos6.3的网卡时,容易忽略的一项就是Linux启动时未启动网卡,其后果很明显,那就是你的Linux机器永远也没有IP地址,下面是一台线上服务器的配置:[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

# Intel Corporation 82541GI Gigabit Ethernet Controller
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:14:22:1B:71:20
IPV6INIT=yes
IPV6_AUTOCONF=yes
ONBOOT=yes →此项一定要记得为yes,它会在系统引导就启动你的网卡设备
NETMASK=255.255.255.192
IPADDR=203.93.236.146
GATEWAY=203.93.236.129
TYPE=Ethernet
PEERDNS=yes →允许从DHCP处获得的DNS覆盖本地的DNS
USERCTL=no~ →不允许普通用户修改网卡

10.关闭Centos6.3的写磁盘I/O功能

一个Linux文件默认有3个时间。

atime:对此文件的访问时间。
ctime:此文件inode发生变化的时间。
mtime:此文件的修改时间。
如果有多个小文件(比如Web服务器的页面上有多个小图片),通常就没有必要记录文件的访问时间了,这样可以减少写磁盘的I/O。这要如何配置呢?

首先,修改文件系统的配置文件:vim /etc/fstab。然后,在包含大量小文件的分区中使用noatime和nodiratime这两个命 令。例如:/dev/sda5 /data/pics ext3 noatime,nodiratime 0 0这样文件被访问时就不会再产生写磁盘的I/O了。

一、系统安全记录文件

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

二、启动和登录安全性

1.BIOS安全

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

2.用户口令

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

修改改密码长度需要编译login.defs文件
vi /etc/login.defs
PASS_MIN_LEN 8

3.注释掉不需要的用户和用户组

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

vi /etc/passwd
#userdel adm
#userdel lp
#userdel sync
#userdel shutdown
#userdel halt
#userdel news
#userdel uucp
#userdel operator
#userdel games
#userdel gopher
#userdel ftp
vi /etc/group
#groupdel adm
#groupdel lp
#groupdel news
#groupdel uucp
#groupdel games
#groupdel dip
#groupdel pppusers

4.口令文件

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

# chattr +i /etc/passwd
# chattr +i /etc/shadow
# 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  #注isd组的id号不一定是10,所以请谨慎执行。centos 6里没有自带isd的组!

如果您想限制su切换为root用户的权力,而只允许指定用户组使用su,可以编辑/etc/pam.d/su,其中有如下注释说明

# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid


修改其中第二行为如下,保存


auth required pam_wheel.so group=mysugroup


创建mysugroup用户组,并把适当用户加到该组中,以后将只有该组用户可以使用su切换为root. 在实际服务器上,最好再限制root用户不能ssh远程登录。


7.删减登录信息

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

# This will overwrite /etc/issue at every boot. So, make 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


8、更改SSH端口,最好改为10000以上,别人扫描到端口的机率也会下降

不允许使用低版本的SSH协议
vi /etc/ssh/sshd_config
将#protocol 2,1改为
protocol 2
(注:centos 6下已默认取消了低版本协议)

将PORT改为1000以上端口
vi /etc/ssh/sshd_config
Port 10000

同时,创建一个普通登录用户,并取消直接root登录
useradd "username"
passwd "username"

vi /etc/ssh/sshd_config
PermitRootLogin no       #取消root直接远程登录
X11Forwarding no  #(服务器一般不会开X,所以X转发就不要开了吧) 取消X11转发

9、关闭那些不需要的服务 ,记住少开一个服务,就少一个危险。

以下仅列出需要启动的服务,未列出的服务一律关闭:

 

 代码如下 #setup
acpid
anacron
cpuspeed
crond
irqbalance #仅当服务器CPU为S.M.P架构或支持双核心、HT技术时,才需开启,否则关闭。
microcode_ctl
network
random #(centos 6 里没有该服务)
sendmail
sshd
syslog
yum-updatesd


10、启用iptables 防火墙,对增加系统安全有许多好处。设置好防火墙的规则。

 代码如下

vi /etc/sysconf/iptables
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
# allow local loopback connections
-A INPUT -i lo -j ACCEPT
# drop INVALID connections
-A INPUT -m state --state INVALID -j DROP
-A OUTPUT -m state --state INVALID -j DROP
-A FORWARD -m state --state INVALID -j DROP
# allow all established and related
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# add anymore rules here
COMMIT


三、限制网络访问

1.NFS访问

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

/dir/to/export host1.mydomain.com(ro,root_squash)
/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”表示允许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

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

5.修改相应配置文件停止ipv6。
#vi /etc/modprobe.conf
alias net-pf-10 off
alias ipv6 off
#shutdown -r now

四、防止攻击

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  #( 本行或许没用,man limits.conf 显示 maximum resident set size (KB) (Ignored in Linux 2.4.30 and higher)
* hard nproc 50

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

session required /lib/security/pam_limits.so

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

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

五、内核参数调整

本节的设置似乎与centos 6下不同,请酌情参考
(centos6可参看本文)

 代码如下


#vi /etc/sysctl.conf
sysctl -w net.ipv4.conf.default.accept_source_route=0
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
#sysctl -w net.ipv4.icmp_echo_ignore_all=1
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
sysctl -w net.ipv4.ip_conntrack_max=65535
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_syn_retries=1
sysctl -w net.ipv4.tcp_fin_timeout=5
sysctl -w net.ipv4.tcp_synack_retries=1
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.route.gc_timeout=100
sysctl -w net.ipv4.tcp_keepalive_time=500
sysctl -w net.ipv4.tcp_max_syn_backlog=10000

【centos6安装教程】CentOS6系统服务器安全设置(入门级别)

http://m.bbyears.com/caozuoxitong/66476.html

推荐访问:centos6关闭防火墙 安装centos6
相关阅读 猜你喜欢
本类排行 本类最新