扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
目前局域网内有大量的网络攻击和欺骗。造成网络无法访问的原因主要是:
为图们等地区用户提供了全套网页设计制作服务,及图们网站建设行业解决方案。主营业务为网站设计制作、网站制作、图们网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
(1) 局域网内有大量网络协议欺骗,这样会导致你的主机被虚假的信息欺骗找不到真正的设备或请求回应不到真正主机。例如:大家比较熟悉的ARP欺骗。
(2) 网络中有大量的协议和流量攻击,出现网络通道导致网卡或者交换机无法进行数据传输或交换。这样你的电脑主机就无法访问到服务器了。例如:网络的DDOS攻击、SYN洪水攻击等网络协议攻击。
传统解决方案:(1)、进行ARP绑定,这样可以一定程度减轻一下问题情况。
注:现在利用ARP协议进行网络攻击或欺骗已经有七种形式的攻击了,尤其是二代arp会清除你的绑定。所以ARP绑定是治标(效果还不一定)不治本。
(2)、还有一种粗暴的办法那就是重做系统,让这种利用协议攻击的程序清除掉。
注:费时费力,问题当时肯定可以解决。你还会通过各种途径接触和以后再有肯定还会有同样问题出现。
我接触到能彻底解决网络服务器访问不到问题的方案是:使用巡路免疫网络安全解决方案在网路中的每台电脑网卡上安装“终端免疫驱动” 终端MAC取自物理网卡而非系统,有效防范了MAC克隆和假冒;终端驱动实现的是双向的控制,不仅仅抵御外部对本机的威胁,更重要的是抑制从本机发起的攻击。这样网络协议欺骗和超量攻击直接在网卡上直接拦截了,你就能正常的访问了。
说到这里我对巡路免疫网络安全解决方案简单一下,其实现在很多公司的网络中都存在大量网络协议攻击导致了大家一些应用(网络打印机不能连接,内部服务器访问时快时慢,语音电话不清甚至电脑跟老牛似的)不能正常使用。对于这些大家包括我原来也是认为就是系统病毒或者外网攻击问题造成的,通过与专业人士沟通以后才清楚,简单说:现在很多网络问题80%是由于内部网络问题(网络协议攻击)造成的,传统的解决办法(上防火墙、上入侵检测系统、防毒)主要是外网、系统木马病毒和文件病毒进行被动防范,对于网络协议攻击没有有效的解决办法。巡路免疫网络解决方案不是一个单独的产品,而是一套由软硬件、内网安全协议,安全策略构成的完整组件。它由接入模块、运营中心、终端免疫驱动、内网安全协议、安全策略组成,从内网的角度解决攻击问题,应对目前网络攻击复杂性、多样性、更多从内网发起的趋势,更有效地解决网络威胁。通过这个方案可以让我们的网络变成身体强壮,让咱们的网络可以自我防御和管理
服务器安全一般都是采用软件辅助+手工服务的安全设置,有钱人都是买好几W的硬件来做服务器安全。但是对于我一个小小的站长,哪能承受的了。一年的服务器托管才5000多,建议你找专业做服务器安全的公司或者团队,来给你做服务器安全维护。
安全这问题,很重要,我上次就是为了省钱,在网上搜索了一些服务器安全设置的文章,对着文章,我一个一个的设置起来,费了好几天的时间才设置完,没想到,服务器竟然瘫痪了,网站都打不开了,也最终明白了,免费的东西,也是最贵的,损失真的很大,数据库都给我回档了,我哪个后悔啊。娘个咪的。最后还是让机房把系统重装了,然后找的sine安全公司给做的网站服务器安全维护。跟他们还签了合同,真的是一份价格一份服务,专业的服务 安全非常稳定。也只有网站安全了,才能带来安全稳定的客户源。道理也是经历了才明白。说了这么多经历,希望能帮到更多和我一样的网站站长。
下面是关于安全方面的解决办法!
建站一段时间后总能听得到什么什么网站被挂马,什么网站被黑。好像入侵挂马似乎是件很简单的事情。其实,入侵不简单,简单的是你的网站的必要安全措施并未做好。
有条件建议找专业做网站安全的sine安全来做安全维护。
一:挂马预防措施:
1、建议用户通过ftp来上传、维护网页,尽量不安装asp的上传程序。
2、定期对网站进行安全的检测,具体可以利用网上一些工具,如sinesafe网站挂马检测工具!
3、asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。
4、到正规网站下载asp程序,下载后要对其数据库名称和存放路径进行修改,数据库文件名称也要有一定复杂性。
5、要尽量保持程序是最新版本。
6、不要在网页上加注后台管理程序登陆页面的链接。
7、为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过ftp上传即可。
8、要时常备份数据库等重要文件。
9、日常要多维护,并注意空间中是否有来历不明的asp文件。记住:一分汗水,换一分安全!
10、一旦发现被入侵,除非自己能识别出所有木马文件,否则要删除所有文件。
11、对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。这其中包括各种新闻发布、商城及论坛。
二:挂马恢复措施:
1.修改帐号密码
不管是商业或不是,初始密码多半都是admin。因此你接到网站程序第一件事情就是“修改帐号密码”。
帐号密码就不要在使用以前你习惯的,换点特别的。尽量将字母数字及符号一起。此外密码最好超过15位。尚若你使用SQL的话应该使用特别点的帐号密码,不要在使用什么什么admin之类,否则很容易被入侵。
2.创建一个robots.txt
Robots能够有效的防范利用搜索引擎窃取信息的骇客。
3.修改后台文件
第一步:修改后台里的验证文件的名称。
第二步:修改conn.asp,防止非法下载,也可对数据库加密后在修改conn.asp。
第三步:修改ACESS数据库名称,越复杂越好,可以的话将数据所在目录的换一下。
4.限制登陆后台IP
此方法是最有效的,每位虚拟主机用户应该都有个功能。你的IP不固定的话就麻烦点每次改一下咯,安全第一嘛。
5.自定义404页面及自定义传送ASP错误信息
404能够让骇客批量查找你的后台一些重要文件及检查网页是否存在注入漏洞。
ASP错误嘛,可能会向不明来意者传送对方想要的信息。
6.慎重选择网站程序
注意一下网站程序是否本身存在漏洞,好坏你我心里该有把秤。
7.谨慎上传漏洞
据悉,上传漏洞往往是最简单也是最严重的,能够让黑客或骇客们轻松控制你的网站。
可以禁止上传或着限制上传的文件类型。不懂的话可以找专业做网站安全的sinesafe公司。
8. cookie 保护
登陆时尽量不要去访问其他站点,以防止 cookie 泄密。切记退出时要点退出在关闭所有浏览器。
9.目录权限
请管理员设置好一些重要的目录权限,防止非正常的访问。如不要给上传目录执行脚本权限及不要给非上传目录给于写入权。
10.自我测试
如今在网上黑客工具一箩筐,不防找一些来测试下你的网站是否OK。
11.例行维护
a.定期备份数据。最好每日备份一次,下载了备份文件后应该及时删除主机上的备份文件。
b.定期更改数据库的名字及管理员帐密。
c.借WEB或FTP管理,查看所有目录体积,最后修改时间以及文件数,检查是文件是否有异常,以及查看是否有异常的账号。
网站被挂马一般都是网站程序存在漏洞或者服务器安全性能不达标被不法黑客入侵攻击而挂马的。
网站被挂马是普遍存在现象然而也是每一个网站运营者的心腹之患。
您是否因为网站和服务器天天被入侵挂马等问题也曾有过想放弃的想法呢,您否也因为不太了解网站技术的问题而耽误了网站的运营,您是否也因为精心运营的网站反反复复被一些无聊的黑客入侵挂马感到徬彷且很无耐。有条件建议找专业做网站安全的sine安全来做安全维护。
网络与信息安全体系以及网络安全管理方案
大致包括: 1) 企业网络安全漏洞分析评估2) 网络更新的拓扑图、网络安全产品采购与报价3) 管理制度制定、员工安全教育与安全知识培训计划4) 安全建设方案5) 网管设备选择与网络管理软件应用6) 网络维护与数据灾难备份计划7) 企业防火墙应用管理与策略8) 企业网络病毒防护9) 防内部攻击方案10) 企业VPN设计
网络安全要从两方面来入手
第一、管理层面。包括各种网络安全规章制度的建立、实施以及监督
第二、技术层面。包括各种安全设备实施,安全技术措施应用等
按照你的描述 首先我提醒你一点
安全是要花钱的 如果不想花钱就你现有的这些设备
我认为应该从以下几点入手
一、制定并实施网络安全管理制度 包括服务器以及个人主机安全管理、包括个级别权限管理等等
二、制定并实施网络安全日常工作程序,包括监测上网行为、包括入侵监测
三、从技术层面上,你那里估计是一根专线接入后用交换机或者无线路由器DHCP分配IP地址供大家上网,这样的话你做不到上网行为管理,你需要一台防火墙进行包过滤以及日志记录 或者作一台代理服务器进行上网行为管理并进行日志记录。
四、局域网内计算机系统管理 包括操作系统防病毒 更新补丁等工作 堡垒往往是从内部攻破 内部计算机中毒主动向外发送数据,造成泄密 这已经是很常见的事情 所以做好主机防护很重要。
当然 如果您有钱 黑洞系统 入侵监测 漏洞扫描 多级防火墙 审计系统都可以招呼
最后提醒一点 那就是 没有绝对的安全 安全都是相对的
你需要什么级别的安全 就配套做什么级别的安全措施
管理永远大于技术 技术只是辅助手段
网络安全措施
一:密码安全
无论你是申请邮箱还是玩网络游戏,都少不了要注册,这样你便会要填密码。
二:QQ安全
1.不要让陌生人或你不信任的人加入你的QQ(但这点很不实用,至少我这样认为)。
2.使用代理服务器(代理服务器英文全称ProxySever,其功能就是代理网络用户去取得网络信息,更确切地说,就是网络信息的中转站)。设置方法是点击QQ的菜单==系统参数==网络设置==代理设置==点击使用SOCKS5代理服务器,填上代理服务器地址和端口号,确定就好了,然后退出QQ,再登陆,这就搞定了。QQ密码的破解工具也很多,你只要把密码设的复杂点,一般不容易被破解。
三:代理服务器安全
使用代理服务器后可以很有效的防止恶意攻击者对你的破坏。
四:木马防范
木马,也称为后门,直截了当的说,木马有二个程序组成:一个是服务器程序,一个是控制器程序。当你的计算机运行了服务器后,恶意攻击者可以使用控制器程序进入如你的计算机,通过指挥服务器程序达到控制你的计算机的目的。
1:邮件传播:木马很可能会被放在邮箱的附件里发给你。
2:QQ传播:因为QQ有文件传输功能,所以现在也有很多木马通过QQ传播。
3:下载传播:在一些个人网站下载软件时有可能会下载到绑有木马服务器的东东。
一、关闭不必要的服务
Linux的服务分为两种,一种是由inetd超级服务器来启动的,如:ftp、telnet等;对于这些服务来说,系统并不总是运行telnetd、 ftpd等服务进程,而是由inetd进程监听这些服务的服务端口,一旦有服务请求到达就启动对应的服务进程(如:telnetd等)来提供服务。另外一种是独立的服务器,系统一直运行有对应的服务进程。
关闭这两种服务的方法是不同的,对于inetd启动的进程:
inetd超级服务器的配置文件为/etc/inetd.conf,该文件指示了inetd应该监听哪些服务请求,并在请求时启动对应的服务。因此只要通过编辑/etc/inetd.conf文件就可以实现关闭不需要的服务,例如希望关闭pop3服务,则在编辑/etc/inetd.conf文件以前文件中有如下的内容:
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
要关闭pop3服务则在该行前添加注释符即可:
#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
通过编辑该文件,实现关闭不需要的服务(例如我的系统我仅仅开放了telnet和ftp服务)以后,则需要重新启动inetd超级服务器。首先找到inetd的进程号:
[root@aid /etc]# ps ax|grep inetd
358 ? S 0:00 inetd
然后重新启动inetd服务器:
[root@aid /etc]# kill -HUP 358
最后因为inetd.conf应该不允许普通用户读写,因此设置其访问权限为600:
chmod 600 /etc/inetd.conf
而且该文件应该不被任何用户修改,包括root用户。因此为了防止用户错误的修改该文件,为该文件添加不可修改位:
chattr i /etc/inetd.conf
对于独立服务器,则需要通过/usr/sbin/ntsysv命令来修改:
只需要服务前面通过空格键来选择是否在系统启动时启动该服务就可以实现关闭某个服务器,如:希望系统关闭dhcpd服务,则通过上下键选中该服务器,然后通过空格键去掉该服务前[ ]内的星号即表示系统启动时不开放该服务。若希望了解某个服务的具体含义,可以选择该服务以后按F1键来查看该服务的含义。
设置完毕以后,只有希望打开的服务前的[ ]内才会有星号。然后通过Tab键选择OK,按空格键。重新启动机器。
重新启动机器以后,可以通过下面的命令来察看系统打开了哪些服务,来决定是否已经关闭了不需要的服务,例如我仅仅希望提供telnet服务则:
[ideal@aid ideal]$ netstat -ln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
raw 0 0 0.0.0.0:1 0.0.0.0:* 7
raw 0 0 0.0.0.0:6 0.0.0.0:* 7
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
从上面的命令输出可以看到系统仅仅开放了23号端口,也就是telnet服务。
二、控制使用开放的服务的用户
在上面提到的/etc/inetd.conf的配置文件中,我们看到pop3服务配置一行的最后两个字段为:
/usr/sbin/tcpd ipop3d
很显然,pop3的服务器程序为ipop3d,那么/usr/sbin/tcpd又是什么含义呢?这是一个称为Tcp wrapper的安全程序。该程序用来在启动某个服务以前查看两个配置文件来决定该用户是否允许使用该服务。在/etc目录下,有两个文件: hosts.deny hosts.allow。
通过配置这两个文件,你可以指定哪些客户机允许使用这些服务。配置这两个文件是通过一种简单的访问控制语言来实现的,访问控制语句的基本格式为: 程序名列表,主机名/IP地址列表。
程序名列表指定一个或者多个提供相应服务的程序的名字,名字之间用逗号或者空格分隔,可以在inetd.conf文件里查看提供相应服务的程序名:如上面的文件示例中,pop所在行的最后一项就是所需的程序名:ipop3d。
主机名/IP地址列表指定允许或者禁止使用该服务的一个或者多个主机的标识,主机名之间用逗号或空格分隔。程序名和主机地址都可以使用通配符,实现方便的指定多项服务和多个主机。 当服务请求到达服务器时,访问控制软件就按照下列顺序查询这两个文件,直到遇到一个匹配为止:
1. 当在/etc/hosts.allow里面有一项与请求服务的主机地址项匹配,那么就允许该主机获取该服务
2. 否则,如果在/etc/hosts.deny里面有一项与请求服务的主机地址项匹配,就禁止该主机使用该项服务
3. 若均没有匹配,则允许使用该服务。若相应的配置文件不存在,访问控制软件就认为是一个空文件,所以可以通过删除或者移走配置文件实现对所有主机关闭所有服务。
在文件中,空白行或者以#开头的行被忽略,你可以通过在行前加 # 实 现注释功能。Linux提供了下面灵活的方式指定进程或者主机列表:
1. 一个以"."起始的域名串,如 .amms.ac点吸烟 那么就和这一项匹配成功
2. 以.结尾的IP串如 202.37.152. 那么IP地址包括202.37.152.的主机都与这一项匹配
3. 格式为n.n.n.n/m.m.m.m表示网络/掩码,如果请求服务的主机的IP地址与掩码的位与的结果等于n.n.n.n 那么该主机与该项匹配。
4. ALL表示匹配所有可能性
5. EXPECT表示除去后面所定义的主机。如:list_1 EXCEPT list_2 表示list_1主机列表中除去List_2所列 出的主机
6. LOCAL表示匹配所有主机名中不包含.的主机
上面的几种方式只是Linux提供的方式中的几种,但是对于我们的一般应用来说是足够了。我们通过举几个例子来说明这个问题:
例一:我们只希望允许同一个局域网的机器使用服务器的ftp功能,而禁止上面的ftp服务请求,本地局域网由 202.39.154. 、202.39.153. 和202.39.152. 三个网段组成。在hosts.deny文件中,我们定义禁止所有机器请求所有服务: ALL:ALL 在hosts.allow文件中,我们定义只允许局域网访问ftp功能:
in.ftpd: 202.39.154 202.39.153. 202.39.152.
这样,当非局域网的机器请求ftp服务时,就会被拒绝。而局域网的机器可以使用ftp服务。
然后重新启动你的 inetd进程:
/etc/rc.d/init.d/inet restart
但是hosts.deny|allow文件只控制/etc/inetd.conf文件中包含的服务的访问这些服务有/usr/bin/tcpd管理,监听接入的网络请求,然后与在hosts.allow和hosts.deny的中的服务比较,然后做出允许或拒绝的决定。
最后因为hosts.allow|hosts.deny应该不允许普通用户读写,因此设置其访问权限为600:
chmod 600 /etc/hosts.*
并且该文件应该不被任何用户修改,包括root用户。因此为了防止用户错误的修改该文件,为该文件添加不可修改位:
chattr i /etc/hosts.*
三、"/etc/exports"文件设置
如果通过NFS把文件共享出来,那么一定要配置"/etc/exports"文件,使得访问限制尽可能的严。这就是说,不要用通配符,不允许对根目录有写权限,而且尽可能只给只读权限。编辑exports文件(vi /etc/exports)加入:
例如:
/dir/to/export host1.mydomain点抗 (ro,root_squash)
/dir/to/export host2.mydomain点抗 (ro,root_squash)
"/dir/to/export"是你想共享出来的目录,host.mydomain点抗 是允许访问这个目录的计算机。
代表只读,代表不允许对根目录进行写操作。使这些改变生效,你还要运行 "/usr/sbin/exportfs -a"命令。
注意:在服务器上装NFS服务是会有安全隐患的,就我个人而言,不建议你使用NFS。
四、禁止使用控制台程序
一个最简单而且最常用的保证系统安全的方法就是禁止使用所有的控制台程序,如:shutdown和halt。可以运行下面的命令来实现:
[root@aid /]# rm -f /etc/security/console.apps/servicename
这里servicename是你要禁止的控制台程序名。除非你使用xdm,否则不要把xserver文件删掉,如果这样除了root之外,没有人可以启动 X服务器了。(如果使用xdm启动X服务器,这时root是唯一需要启动X服务器的用户,这才有必要把xserver文件删掉)。例如:
[root@deep]# rm -f /etc/security/console.apps/halt
[root@deep]# rm -f /etc/security/console.apps/poweroff
[root@deep]# rm -f /etc/security/console.apps/reboot
[root@deep]# rm -f /etc/security/console.apps/shutdown
[root@deep]# rm -f /etc/security/console.apps/xserver (如果删除,只有root可以启动X).
这些命令就可以禁止所有的控制台程序:halt、poweroff、reboot和shutdown。记住,只有装了Xwindow,删除xerver文件才会有效果。
五、"/etc/aliases"文件
aliases文件可能会造成安全隐患。例如:很多的软件产商都把 "decode"这个别名放在aliases文件里。这样做的目的是为了方便通过email传送二进制文件。在发送邮件的时候,用户把二进制文件用 "uuencode"转成ASCII文件,然后把结果发给接收端的"decode"。由这个别名让邮件信息通过"/usr/bin/uuencode"程序把二进制文件重新转换成ASCII文件。如果允许"decode"出现在aliases文件中,可以想象将会有什么样的安全隐患。
把定义"decode"这个别名的行从aliases文件中删除。同样地,每一个会运行程序的别名都要好好查看一下,很有可能要把它们删除掉。要使改动生效,还必须运行:
[root@deep]# /usr/bin/newaliases
编辑aliases文件(vi /etc/aliases),删除或注释掉下面这些行:
# Basic system aliases -- these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
#games: root
#ingres: root
nobody: root
#system: root
#toor: root
#uucp: root
# Well-known aliases.
#manager: root
#dumper: root
#operator: root
# trap decode to catch security attacks
#decode: root
# Person who should get roots mail
#root: marc
最后记得运行"/usr/bin/newaliases"使改变生效。
六、使系统对ping没有反应
防止你的系统对ping请求做出反应,对于网络安全很有好处,因为没人能够ping你的服务器并得到任何反应。TCP/IP协议本身有很多的弱点,黑客可以利用一些技术,把传输正常数据包的通道用来偷偷地传送数据。使你的系统对ping请求没有反应可以把这个危险减到最小。用下面的命令:
echo 1 /proc/sys/net/ipv4/icmp_echo_ignore_all
运行完这个命令后,系统对ping就没有反应了。可以把这一行加到"/etc/rc.d/rc.local"文件中去,这样当系统重新启动的时候,该命令就会自动运行。对ping命令没有反应,至少可以把绝大多数的黑客排除到系统之外,因为黑客不可能知道你的服务器在哪里。重新恢复对ping的响应,可以用下面的命令:
echo 0 /proc/sys/net/ipv4/icmp_echo_ignore_all"
七、不要显示系统提示信息
如果你不想让远程登录的用户看到系统的提示信息,你可以改变"/etc/inetd.conf"文件中的telnet设置:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
在末尾加上"-h"参数可以让daemon不显示任何系统信息,只显示登录提示。当然,只有在服务器上装了telnet服务器才有这样做的必要。
八、"/etc/host.conf"文件
Linux用解析器(resolver)库把主机名翻译成IP地址。"/etc/host.conf"文件定义主机名是怎样解析的。"/etc/host.conf"文件中的项告诉解析器库用什么服务,以什么顺序解析主机名。
编辑"host.conf"文件(vi /etc/host.conf)加入下面这些行:
# Lookup names via DNS first then fall back to /etc/hosts.
order bind,hosts
# We have machines with multiple IP addresses.
multi on
# Check for IP address spoofing.
nospoof on
order选项指明的是选择服务的顺序。上面"order bind, hosts"说的是解析器库解析文件名的时候先查询域名服务器,然后再查看"/etc/hosts"文件。因为性能和安全上的原因,最好将解析器库的查找顺序设成先查域名服务器(bind)。当然也要先安装了DNS/BIND软件,否则这样配置根本没有任何作用。
multi选项决定在"/etc/hosts"文件中出现的主机能不能有多个IP地址(多个网络界面)。具有多个IP网络界面的主机被称为具有多个网络界面(multiomed),因为同时有多个IP地址也就意味着这台主机有多个网络界面。例如:网关服务器就有多个IP地址,必须把这个选项设成ON。
nospoof选项指明不允许IP伪装。IP伪装是把自己伪装成别的计算机去欺骗其它的计算机,获得它的信任。这种攻击方法把自己伪装成别的服务器,并且与其它客户机、服务器和大型数据存储系统建立网络连接或其它类型的网络活动。不管对任何类型的服务器,这个选项都要设成ON。
九、防止源路由
路由和路由协议会导致一些问题。IP源路径路由(IP source routing),也就是IP包包含到达底目的地址的详细路径信息,是非常危险的,因为根据RFC 1122规定目的主机必须按原路径返回这样的IP包。如果黑客能够伪造原路径路由的信息包,那么它就能截取返回的信息包,并且欺骗你的计算机,让它觉得正在和它交换信息的是可以信任的主机。我强烈建议你禁止IP原路径路由以避免这个安全漏洞。
用下面的命令在你的服务器上禁止IP原路径路由:
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 $f
done
把上面的命令加到"/etc/rc.d/rc.local"文件中去,你就不用在系统重新启动之后再把这些命令敲一遍。注意,上面的命令将禁止所有的网络界面(lo、ethN、pppN,等等)的源路径路由包。
十、使TCP SYN Cookie保护生效
"SYN Attack"是一种拒绝服务(DoS)的攻击方式,会消耗掉系统中的所有资源,迫使服务器重新启动。拒绝服务(这种攻击方式用巨大的信息流来消耗系统的资源,以至于服务器不能够响应正常的连接请求)是很容易被黑客利用的。在2.1系列的内核中,"syn cookie"只是一个可选项,并没有使其生效。想要使其生效必须用下面的命令:
[root@aid /]# echo 1 /proc/sys/net/ipv4/tcp_syncookies
把这个命令加入"/etc/rc.d/rc.local"文件中,等下次系统重新启动的时候就不必重新敲一遍了。如果打算安装IPCHAINS防火墙,你就没有必要用这个命令,因为它已经包含在防火墙的脚本文件里了。
十一、特殊的帐号
禁止中不必要的预置帐号(每次升级或安装完都要检查一下)。Linux系统中就提供这样一些你可能不需要的预置帐号。如果确实不需要这些帐号,就把它们删掉。系统中有越多的帐号,就越容易受到攻击。
我们假定你已经在系统中使用shadow口令。如果不是这样,最好在系统中加上shadow口令的支持,因为这样系统会更安全。如果你是按照上一章介绍的方法安装服务器,那么在"安全验证配置"这一步就已经选上"Enable Shaow Passwords"这个选项了。
在系统中删除一个用户可以用这个命令:
[root@deep]# userdel username
在系统中删除一个组可以用这个命令:
[root@deep]# groupdel username
第一步 用下面的命令删除一些不必要的用户:
[root@deep]# userdel adm
[root@deep]# userdel lp
[root@deep]# userdel sync
[root@deep]# userdel shutdown
[root@deep]# userdel halt
[root@deep]# userdel news
[root@deep]# userdel uucp
[root@deep]# userdel operator
[root@deep]# userdel games (如果不用X Window服务器,可以删除这个用户)
[root@deep]# userdel gopher
[root@deep]# userdel ftp (如果没安装匿名ftp服务器,可以删除这个用户)
第二步 输入下面的命令删除一些不必要的组:
[root@deep]# groupdel adm
[root@deep]# groupdel lp
[root@deep]# groupdel news
[root@deep]# groupdel uucp
[root@deep]# groupdel games (delete this group if you don use X Window Server).
[root@deep]# groupdel dip
[root@deep]# groupdel pppusers
[root@deep]# groupdel popusers (delete this group if you don use pop server for email).
[root@deep]# groupdel slipusers
第三步
"不允许改变"位可以用来保护文件使其不被意外地删除或重写,也可以防止有些人创建这个文件的符号连接。删除"/etc/passwd"、 "/etc/shadow"、"/etc/group"或"/etc/gshadow"都是黑客的攻击方法。给口令文件和组文件设置不可改变位,可以用下面的命令:
[root@deep]# chattr i /etc/passwd
[root@deep]# chattr i /etc/shadow
[root@deep]# chattr i /etc/group
[root@deep]# chattr i /etc/gshadow
注意:如果将来要在口令或组文件中增加或删除用户,就必须先清除这些文件的不可改变位,否则就不能做任何改变。如果没有清除这些文件的不可改变位,安装那些会自动在口令文件和组文件中加入新用户的rpm软件包的时候,在安装过程中就会出现出错的提示。
十二、防止任何人都可以用su命令成为root
如果不想任何人都可以用"su"命令成为root或只让某些用户有权使用"su"命令,那么在"/etc/pam.d/su"文件中加入下面两行。建议尽量限制用户通过"su"命令成为root。
第一步
编辑su文件(vi /etc/pam.d/su)在文件的头部加入下面两行:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
加入这两行之后,"/etc/pam.d/su"文件变为:
#%PAM-1.0
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
auth required /lib/security/pam_pwdb.so shadow nullok
account required /lib/security/pam_pwdb.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_pwdb.so shadow use_authtok nullok
session required /lib/security/pam_pwdb.so
session optional /lib/security/pam_xauth.so
这两行的意思是只有"wheel"组的成员才能用su命令成为root。注意,"wheel"组是系统中用于这个目的的特殊帐号。不能用别的组名。
第二步
在"/etc/pam.d/su"配置文件中定义有"wheel"组,现在介绍一下怎样让一些用户可以用"su"命令成为"root"。下面是一个例子,让admin用户成为"wheel"组的成员,这样就可以用"su"命令成为"root":
[root@deep]# usermod -G10 admin
"G"是表示用户所在的其它组。"10"是"wheel"组的ID值,"admin"是我们加到"wheel"组的用户。用同样的命令可以让其他的用户可以用su命令成为root。
十三、 把rpm程序转移到一个安全的地方,并改变默认的访问许可
一旦在上用rpm命令安装完所有需要的软件,最好把rpm程序转移到一个安全的地方,如:软盘或其它你认为安全的地方。因为如果有人入侵了你的服务器,他就不能用rpm命令安装那些有害的软件。当然,如果将来要用rpm安装新的软件,你就要把rpm程序拷回原来的目录。把rpm程序移到软盘上,用下面的命令:
[root@deep]# mount /dev/fd0 /mnt/floppy/
[root@deep]# mv /bin/rpm /mnt/floppy/
[root@deep]# umount /mnt/floppy
注意:千万不要把rpm程序从系统中卸载掉,否则以后就不能重新安装它,因为安装rpm程序或其它软件包本身就要用rpm命令。
还有一点要注意的是,把rpm命令的访问许可从默认的755改成700。这样非root用户就不能使用rpm命令了。特别是考虑到万一在安装完新软件之后忘了把rpm程序移到一个安全的地方,这样做就更有必要了。
改变"/bin/rpm"默认的访问权限,用下面这个命令:
[root@deep]# chmod 700 /bin/rpm
十四、登录shell
为了方便重复输入很长的命令,bash shell可以在"~/.bash_history"文件("~/"是家目录,每个用户都是不一样的)中存500个曾经输入过的命令。每一个有自己帐号的用户,在自己的家目录中,都会有".bash_history"文件。可能会有这种情况,用户在不该输入口令的地方输入了口令,而输入的口令会在 ".bash_history"文件中保存下来。而且".bash_history"文件越大这种可能性也越大。
在"/etc/profile"文件中HISTFILESIZE和HISTSIZE这两行决定了系统中所有用户的 ".bash_history"文件可以保存多少命令。我建议把"/etc/profile"文件中的HISTFILESIZE和HISTSIZE都设成一个比较小的值,如:20。
编辑profile文件(vi /etc/profile),把这些行改成:
HISTFILESIZE=20
HISTSIZE=20
这样每个用户家目录下的".bash_history"就最多只能存20个命令。如果黑客试图在用户的"~/.bash_history"文件中发现一些口令,他就没有什么机会了。
十五、改变"/etc/rc.d/init.d/"目录下的脚本文件的访问许可
改变启动和停止daemon的脚本文件的权限。
[root@deep]# chmod -R 700 /etc/rc.d/init.d/*
这样只有root可以读、写和执行这个目录下的脚本。我想一般用户没有什么必要知道脚本文件的内容。
注意:如果你安装或升级了一个程序,要用到"/etc/rc.d/init.d/"中system V脚本,不要忘记再检查一下改变和检查这个脚本文件的许可。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流