存档
-
Advanced Policy Firewall (APF)
Advanced Policy Firewall (APF) is an iptables(netfilter) based firewall system designed around the essential needs of today’s Internet deployed servers and the unique needs of custom deployed Linux installations. The configuration of APF is designed to be very informative and present the user with an easy to follow process, from top to bottom of the [...]
2007年9月29日 | 归档于 Linux安全 -
免费而强大的linux防火墙:APF
如果您不是精通linux的高手,如果您对iptables不熟悉,这里有一款免费而强大的linux防火墙:APF
为Linux加防火墙:APF的安装与设置service apf start 打开service apf stop 关闭为Linux加防火墙:APF的安装与设置(可以防止DDOS小量的攻击)http://www.rfxnetworks.com
什么是APF?
APF: Advanced Policy Firewall,是 Rf-x Networks 出品的Linux环境下的软件防火墙。APF采用Linux系统默认的 iptables 规则。APF可以算是Linux中最出名的软件防火墙之一。下载最新版的APF:
wget http://www.rfxnetworks.com/downloads/apf-current.tar.gz
解压:
tar -zxvf apf-current.tar.gz
进入APF目录:
cd apf-版本
安装!
./install.sh
安装完以后,开始配置APF:
vi /etc/apf/conf.apf
查找 USE_DS=”0″ ,将之更改为 USE_DS=”1″ ;查找 USE_AD=”0″ ,将之更改为 USE_AD=”1″ 。
然后开始配置最主要的部分:端口。
以下提供 cPanel, Ensim 和 Plesk以及DirectAdmin 的推荐配置。
cPanelIG_TCP_CPORTS=”20,21,22,25,26,53,80,110,143,443,465,993,995,2082,2083,2086,2087,2095,2096,2222″IG_UDP_CPORTS=”21,53,873″
EGF=”1″EG_TCP_CPORTS=”21,22,25,26,27,37,43,53,80,110,113,443,465,873,2089″EG_UDP_CPORTS=”20,21,37,53,873″
EnsimIG_TCP_CPORTS=”21,22,25,53,80,110,143,443,19638″IG_UDP_CPORTS=”53″
EGF=”1″EG_TCP_CPORTS=”21,22,25,53,80,110,443″EG_UDP_CPORTS=”20,21,53″
Plesk IG_TCP_CPORTS=”20,21,22,25,53,80,110,143,443,465,993,995,8443″IG_UDP_CPORTS=”37,53,873″
EGF=”1″EG_TCP_CPORTS=”20,21,22,25,53,37,43,80,113,443,465,873″EG_UDP_CPORTS=”53,873″
下面列出常规的端口,方便大家进行配置:
21/tcp ftp22/tcp ssh25/tcp smtp26/tcp 备用smtp端口80/tcp http110/tcp pop3143/tcp imap443/tcp https993/tcp imaps995/tcp pop3s3306/tcp mysql5432/tcp postgres53/udp dns
配置完成后保存退出,并启动APF防火墙:
/usr/local/sbin/apf -s
请注意,此时防火墙是运行在调试模式,每五分钟重洗配置。这样能避免因为错误的配置而使服务器瘫痪。
确保配置无误后,再次进入配置文件(nano /etc/apf/conf.apf),将 DEVM=”1″ 更改为 DEVM=”0″ 。这样APF就会运行在常规模式下。
重启APF(/usr/local/sbin/apf -s)。
注意事项:如果你的Linux内核将iptables直接编译而非模块模式的话,请将配置文件中的 MONOKERN=”0″ [...]2007年9月29日 | 归档于 Linux安全 -
linux中预防SYN_RECV
攻击的形式多种多样,我们这里只介绍最为常见的SYN_RECV,遇到攻击的不要着急,小量的SYN_RECV很容易防止的
1.对于大量的 SYN_RECV若怀疑是SYN Flood攻击,有以下建议:
这个攻击的解决方法如下:1,增加未完成连接队列(q0)的最大长度。echo 1280>/proc/sys/net/ipv4/tcp_max_syn_backlog2, 启动SYN_cookie。echo 1>/proc/sys/net/ipv4/tcp_syncookies这些是被动的方法,治标不治本。而且加大了服务器的负担,但是可以避免被拒绝攻击(只是减缓)治本的方法是在防火墙上做手脚。但是现在能在一定程度上防住syn flood攻击的防火墙都不便宜。并且把这个命令加入”/etc/rc.d/rc.local”文件中
如果对 /proc/sys/net/ipv4 下的配置文件进行解释,可以参阅 LinuxAid技术站的文章。查看本文全文也可以参阅。关于 syn cookies, 请参阅 < http://cr.yp.to/syncookies.html >
也许 使用mod_limitipconn.c来限制apache的并发数 也会有一定的帮助。
2. iptables的设置,引用自CU
防止同步包洪水(Sync Flood)# iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT也有人写作#iptables -A INPUT -p tcp –syn -m limit –limit 1/s -j ACCEPT–limit 1/s 限制syn并发数每秒1次,可以根据自己的需要修改防止各种端口扫描# iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit [...]2007年9月29日 | 归档于 Linux安全 -
linux中更改ssh终端服务端口
默认情况下,linux中的ssh服务的端口是22,如果您的密码设置的比较简单,那么黑客用暴力破解的方式是很容易取得服务器的最高权限,因为修改这样一个重要服务器的端口是很有必要的,要知道,任何一个服务的默认端口被修改成未知的,都会大大增强linux服务器的安全性。
具体修改方法:
首先修改配置文件vi /etc/ssh/sshd_config找到#Port 22一段,这里是标识默认使用22端口,修改为如下:Port 22Port 50000然后保存退出执行/etc/init.d/sshd restart这样SSH端口将同时工作与22和50000上。
现在编辑防火墙配置:vi /etc/sysconfig/iptables启用50000端口。执行/etc/init.d/iptables restart
现在请使用ssh工具连接50000端口,来测试是否成功。如果连接成功了,则再次编辑sshd_config的设置,将里边的Port22删除,即可。
之所以先设置成两个端口,测试成功后再关闭一个端口,是为了方式在修改conf的过程中,万一出现掉线、断网、误操作等未知情况时候,还能通过另外一个端口连接上去调试以免发生连接不上必须派人去机房,导致问题更加复杂麻烦。2007年9月29日 | 归档于 Linux安全 -
linux主机中禁止远程ping
ping命令的主要作用是通过发送数据包并接收应答信息来检测两台计算机之间的网络是否连通。当网络出现故障的时候,可以用这个命令来预测故障和确定故障地点。Ping命令成功只是说明当前主机与目的主机之间存在一条连通的路径。如果不成功,则考虑:网线是否连通、网卡设置是否正确、IP地址是否可用等。也就是说ping可以从一定的角度来判断linxu主机的状态,那当然是危险的,因为我们引出了禁止远程ping
既然没有人能ping通你的机器并收到响应,你可以大大增强你的站点的安全性。你可以加下面的一行命令到/etc/rc.d/rc.local,以使每次启动后自动运行,这样就可以阻止你的系统响应任何从外部/内部来的ping请求。
#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all2007年9月29日 | 归档于 Linux安全 -
全面提升Linux服务器的安全
linux 本身是就是十分安全的,但是“没有绝对的安全”,本站从网络搜集一篇十分值得一读的linux前辈的文章,以便于大家对提升Linux服务器的安全有所了解,也希望大家对linux服务器安全的理念有新的认识。
众所周知,就安全性而言,Linux相对于Windows具有更多的优势。但是,不管选择哪一种Linux发行版本,在安装完成以后都应该进行一些必要的配置,来增强它的安全性。下面就通过几个步骤来加固的Linux服务器。目前,许多中小用户因业务发展,不断更新或升级网络,从而造成自身用户环境差异较大,整个网络系统平台参差不齐,在服务器端大多使用Linux和Unix的,PC端使用Windows 和Mac。所以在企业应用中往往是Linux、Unix和Windows操作系统共存形成异构网络。
1.安装和配置一个防火墙
一个配置适当的防火墙不仅是系统有效应对外部攻击的第一道防线,也是最重要的一道防线。在新系统第一次连接上Internet之前,防火墙就应该被安装并且配置好。防火墙配置成拒绝接收所有数据包,然后再打开允许接收的数据包,将有利于系统的安全。Linux为我们提供了一个非常优秀的防火墙工具,它就是netfilter/iptables(http://www.netfilter.org/)。它完全是免费的,并且可以在一台低配置的老机器上很好地运行。防火墙的具体设置方法请参见iptables使用方法。
2.关闭无用的服务和端口
任何网络连接都是通过开放的应用端口来实现的。如果我们尽可能少地开放端口,就使网络攻击变成无源之水,从而大大减少了攻击者成功的机会。把Linux作为专用服务器是个明智的举措。例如,希望Linux成为的Web服务器,可以取消系统内所有非必要的服务,只开启必要服务。这样做可以尽量减少后门,降低隐患,而且可以合理分配系统资源,提高整机性能。以下是几个不常用的服务:
1. fingerd(finger服务器)报告指定用户的个人信息,包括用户名、真实姓名、shell、目录和联系方式,它将使系统暴露在不受欢迎的情报收集活动下,应避免启动此服务。
2. R服务(rshd、rlogin、rwhod、rexec)提供各种级别的命令,它们可以在远程主机上运行或与远程主机交互,在封闭的网络环境中登录而不再要求输入用户名和口令,相当方便。然而在公共服务器上就会暴露问题,导致安全威胁。
3.删除不用的软件包
在进行系统规划时,总的原则是将不需要的服务一律去掉。默认的Linux就是一个强大的系统,运行了很多的服务。但有许多服务是不需要的,很容易引起安全风险。这个文件就是/etc/xinetd.conf,它制定了/usr/sbin/xinetd将要监听的服务,你可能只需要其中的一个:ftp,其它的类如telnet、shell、login、exec、talk、ntalk、imap、finger、auth等,除非你真的想用它,否则统统关闭。
4.不设置缺省路由
在主机中,应该严格禁止设置缺省路由,即default route。建议为每一个子网或网段设置一个路由,否则其它机器就可能通过一定方式访问该主机。
5.口令管理
口令的长度一般不要少于8个字符,口令的组成应以无规则的大小写字母、数字和符号相结合,严格避免用英语单词或词组等设置口令,而且各用户的口令应该养成定期更换的习惯。另外,口令的保护还涉及到对/etc/passwd和/etc/shadow文件的保护,必须做到只有系统管理员才能访问这2个文件。安装一个口令过滤工具加npasswd,能帮你检查你的口令是否耐得住攻击。如果你以前没有安装此类的工具,建议你现在马上安装。如果你是系统管理员,你的系统中又没有安装口令过滤工具,请你马上检查所有用户的口令是否能被穷尽搜索到,即对你的/ect/passwd文件实施穷尽搜索攻击。用单词作密码是根本架不住暴力攻击的。黑客们经常用一些常用字来破解密码。曾经有一位美国黑客表示,只要用“password”这个字,就可以打开全美多数的计算机。其它常用的单词还有:account、ald、alpha、beta、computer、dead、demo、dollar、games、bod、hello、help、intro、kill、love、no、ok、okay、please、sex、secret、superuser、system、test、work、yes等。密码设置和原则:
1.足够长,指头只要多动一下为密码加一位,就可以让攻击者的辛苦增加十倍;
2. 不要用完整的单词,尽可能包括数字、标点符号和特殊字符等;
3.混用大小写字符;
4.经常修改。
6.分区管理
一个潜在的攻击,它首先就会尝试缓冲区溢出。在过去的几年中,以缓冲区溢出为类型的安全漏洞是最为常见的一种形式了。更为严重的是,缓冲区溢出漏洞占了远程网络攻击的绝大多数,这种攻击可以轻易使得一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权!
为了防止此类攻击,我们从安装系统时就应该注意。如果用root分区记录数据,如log文件,就可能因为拒绝服务产生大量日志或垃圾邮件,从而导致系统崩溃。所以建议为/var开辟单独的分区,用来存放日志和邮件,以避免root分区被溢出。最好为特殊的应用程序单独开一个分区,特别是可以产生大量日志的程序,还建议为/home单独分一个区,这样他们就不能填满/分区了,从而就避免了部分针对Linux分区溢出的恶意攻击。
很多Linux桌面用户往往是使用Windows、Linux双系统。最好使用双硬盘。方法如下:首先将主硬盘的数据线拆下,找一个10GB左右的硬盘挂在计算机上,将小硬盘设置为从盘,按照平常的操作安装Linux服务器版本,除了启动的引导程序放在MBR外,其它没有区别。 安装完成,调试出桌面后,关闭计算机。将小硬盘的数据线拆下,装上原硬盘,并设定为主盘(这是为了原硬盘和小硬盘同时挂接在一个数据线上),然后安装Windows软件。将两个硬盘都挂在数据线上,数据线是IDE 0接口,将原硬盘设定为主盘,小硬盘设定为从盘。如果要从原硬盘启动,就在CMOS里将启动的顺序设定为“C、D、CDROM”,或者是“IDE0(HDD-0)”。这样计算机启动的时候,进入Windows界面。如果要从小硬盘启动,就将启动顺序改为“D、C、CDROM”,或者是“IDE1(HDD-1)”,启动之后,将进入Linux界面。平时两个操作系统是互相不能够访问的。
7.防范网络嗅探:
嗅探器技术被广泛应用于网络维护和管理方面,它工作的时候就像一部被动声纳,默默的接收看来自网络的各种信息,通过对这些数据的分析,网络管理员可以深入了解网络当前的运行状况,以便找出网络中的漏洞。在网络安全日益被注意的今天.我们不但要正确使用嗅探器.还要合理防范嗅探器的危害.嗅探器能够造成很大的安全危害,主要是因为它们不容易被发现。对于一个安全性能要求很严格的企业,同时使用安全的拓扑结构、会话加密、使用静态的ARP地址是有必要的。
8.完整的日志管理
日志文件时刻为你记录着你的系统的运行情况。当黑客光临时,也不能逃脱日志的法眼。所以黑客往往在攻击时修改日志文件,来隐藏踪迹。因此我们要限制对/var/log文件的访问,禁止一般权限的用户去查看日志文件。
另外要使用日志服务器。将客户机的日志信息保存副本是好主意,创建一台服务器专门存放日志文件,可以通过检查日志来发现问题。修改/etc/sysconfig/syslog文件加入接受远程日志记录。
/etc/sysconfig/syslog
SYSLOGD_OPTIONS=”-m r 0″
还应该设定日志远程保存。修改/etc/syslog.conf文件加入日志服务器的设置,syslog将保存副本在日志服务器上。
/etc/syslog.conf
*.* @log_server_IP
可以使用彩色日志过滤器。彩色日志loco过滤器,目前版本是0.32。使用loco /var/log/messages | more可以显示出彩色的日志,明显标记出root的位置和日志中异常的命令。这样可以减少分析日志时人为遗漏。还要进行日志的定期检查。Red Hat Linux中提供了logwatch工具,定期自动检查日志并发送邮件到管理员信箱。需要修改/etc/log.d/conf/ logwatch.conf文件,在MailTo = root参数后增加管理员的邮件地址。Logwatch会定期检查日志,过滤有关使用root、sudo、telnet、ftp登录等信息,协助管理员分析日常安全。完整的日志管理要包括网络数据的正确性、有效性、合法性。对日志文件的分析还可以预防入侵。例如、某一个用户几小时内的20次的注册失败记录,很可能是入侵者正在尝试该用户的口令。
9.终止正进行的攻击
假如你在检查日志文件时,发现了一个用户从你未知的主机登录,而且你确定此用户在这台主机上没有账号,此时你可能正被攻击。首先你要马上锁住此账号(在口令文件或shadow文件中,此用户的口令前加一个Ib或其他的字符)。若攻击者已经连接到系统,你应马上断开主机与网络的物理连接。如有可能,你还要进一步查看此用户的历史记录,查看其他用户是否也被假冒,攻击音是否拥有根权限。杀掉此用户的所有进程并把此主机的ip地址掩码加到文件hosts.deny中。
10.使用安全工具软件:
Linux已经有一些工具可以保障服务器的安全。如bastille linux和Selinux。
bastille linux对于不熟悉 linux 安全设定的使用者来说,是一套相当方便的软件,bastille linux 目的是希望在已经存在的 linux 系统上,建构出一个安全性的环境。
增强安全性的Linux(SELinux)是美国安全部的一个研发项目,它的目的在于增强开发代码的Linux内核,以提供更强的保护措施,防止一些关于安全方面的应用程序走弯路,减轻恶意软件带来的灾难。普通的Linux系统的安全性是依赖内核的,这个依赖是通过setuid/setgid产生的。在传统的安全机制下,暴露了一些应用授权问题、配置问题或进程运行造成整个系统的安全问题。这些问题在现在的操作系统中都存在,这是由于他们的复杂性和与其它程序的互用性造成的。SELinux只单单依赖于系统的内核和安全配置政策。一旦你正确配置了系统,不正常的应用程序配置或错误将只返回错误给用户的程序和它的系统后台程序。其它用户程序的安全性和他们的后台程序仍然可以正常运行,并保持着它们的安全系统结构。用简单一点的话说就是:没有任何的程序配置错误可以造成整个系统的崩溃。安装SELinux SELinux的内核、工具、程序/工具包,还有文档都可以到增强安全性的Linux网站上上下载你必须有一个已经存在的Linux系统来编译你的新内核,这样才能访问没有更改的系统补丁包。
11.使用保留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伪装可以解决这一问题。
12、合理选择Linux发行版本:
对于服务器使用的Linux版本,既不使用最新的发行版本,也不选择太老的版本。应当使用比较成熟的版本:前一个产品的最后发行版本如RHEL 3.0等。毕竟对于服务器来说安全稳定是第一的。
13.部署Linux防范病毒软件
Linux操作系统一直被认为是Windows系统的劲敌,因为它不仅安全、稳定、成本低,而且很少发现有病毒传播。但是,随着越来越多的服务器、工作站和个人电脑使用Linux软件,电脑病毒制造者也开始攻击这一系统。对于Linux系统无论是服务器,还是工作站的安全性和权限控制都是比较强大的,这主要得力于其优秀的技术设计,不仅使它的作业系统难以宕机,而且也使其难以被滥用。Unix经过20多年的发展和完善,已经变得非常坚固,而Linux基本上继承了它的优点。在Linux里,如果不是超级用户,那么恶意感染系统文件的程序将很难得逞。速客一号(Slammer)、冲击波(Blast)、霸王虫(Sobig)、 [...]2007年9月29日 | 归档于 Linux安全