linux 是开源的操作系统,这样带来的好处是可以免费获取和使用。也可以定制自己的linux系统。由于开源也导致了系统安全的问题,
linux也会收到一些系统底层的攻击。
一般的攻击手段:
1.密码暴力破解。用来破解用户密码。(主要针对系统口令,一般可以修改密码难度加入防范多次错误连接机制)
2.拒绝服务攻击。Dos (DDos)原理是:利用合理的服务请求来占用过多的服务器资源。向目标服务器发起大量请求,由于服务器短时间内无法接受太多请求,造成系统资源耗尽,服务挂起,严重造成服务器瘫痪。
3.应用程序漏洞攻击。常见的SQL注入漏洞攻击,网页权限漏洞。已知系统程序的漏洞。
防范攻击策略
1.网络传输安全。
网络传输由网络安全设备构成。一般由硬件防火墙,网络入侵监测(IDC Intrusion Detection System),路由器,交换机。通过给这些设备合理的配置,防范危险。
2.操作系统安全
经常进行的系统安全设置:系统内核定期升级,系统自带软件更新,配置防火墙IPtables防范策略。
SYN攻击属于DDoS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施
Linux syn攻击是一种黑客攻击,如何处理和减少这种攻击是系统管理员比较重要的工作.
SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。
Linux内核提供了若干SYN相关的配置,用命令: sysctl -a | grep syn 看到:
net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5 net.ipv4.tcp_syn_retries = 5
tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie 功能,该功能可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN 的重试次数。加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分 SYN攻击,降低重试次数也有一定效果。
调整上述设置的方法是:
增加SYN队列长度到2048:
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
打开SYN COOKIE功能:
sysctl -w net.ipv4.tcp_syncookies=1
降低重试次数:
sysctl -w net.ipv4.tcp_synack_retries=3 sysctl -w net.ipv4.tcp_syn_retries=3
为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。
防止同步包洪水(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 1/s -j ACCEPT
Ping洪水攻击(Ping of Death)
# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
这些是处理linux sync攻击的思路。
3.应用软件安全
服务器上运行的软件程序本身进行安全策略配置和优化。常见www服务的apache安全设置。ftp服务访问授权控制等。
Linux操作系统安全策略
1.软件的升级
系统软件一般用yum update (yum工具自动升级。要有网络)
2.端口和服务。
端口。其实一个有效的连接的建立,就是客户端的端口和服务器的端口建立连接的过程。端口在系统中有自己的一套划分规律。
linux 可以通过查看 more /etc/services
linux 下,共有655536个可用端口,这些端口以 1024为分割点,分别是;
‘只有root用户才能启动的端口’和‘客户端的端口’
1. 只有root才能开启的端口
0-1023 端口,主要用于系统一些常见的通信服务中。常见的:ftp 21; telnet 23;mail 25; wwww 80;
2. 客户端的端口
1024及以上的端口主要给客户端软件使用,这些端口由软件随机分配。比如 msyql 3306;tomcat 8080 8009;
oneproxy 4041(管理); php-fpm 9000;当然这些是默认的都可以在配置文件修改的。
一般查看这些的命令组合: netstat -anltup
3.服务和端口是一个一一对应的关系。相互依赖,相互衬托的。服务开启,端口也就启动了。
真正影响安全的是服务,而非端口。
4.关闭不必要的服务。一般系统需要的服务有syslog(记录日志功能),sshd(远程连接服务器系统)network(激活网络接口的脚本,
使用网络必须的)xinetd(支持多种网络服务的核心守护进程。包括telnet .vsftpd) iptables(内置的防火墙软件)
atd(特定时间的指定事物服务)crond(自动安排进程提供运行服务)
这些是必须开启支撑linux工作。此外,还有些和业务相关的可以开启外,其它的建议关闭。
密码登录安全:
密码设置安全:一般8位以上的。数字,字母和特殊字符。定期更换密码等。可以加入防止密码探测机制(一个帐号几次失败后。拒绝访问)
此外,还可以设置密钥认证登录(限于secureCRT等远程登录程序)可以不通过密码登录。
在 secureCRT上 工具=创建密钥
上传密钥到linux,导入密钥
# ssh-keygen -i -f Identity.pub >>/root/.ssh/authorized_keys
然后修改登录方式为公钥登录找到生成密钥的路径选中。
进入linux:修改 ssh2的配置文件:
Port 22 #这个是ssh连接的默认端口可以改变
Protocol 2 #使用ssh2
PubkeyAuthentication yes #启动 pubkey 认证
AuthorizedKeysFile .ssh/authorized_keys #publickey 文件路径
PasswordAuthentication no #不使用密码认证
# service sshd restart #重启服务使新配置的ssh生效。
其它设置:
1.禁止外部ping 测试:
# echo "1"> /proc/sys/net/ipv4/icmp_echo_ignore_all
将忽略ping响应策略开启。
2.删除系统默认的不必要的服务和账户
/etc/passwd /etc/group
这2个目录存放账户和组的信息:
可以删除的有 adm lp sync shutdown halt new uucp operator ames gopher 等。
此外 默认shell为 /sbin/nologin 的为不可登录账户
3.限制 shell记录历史条数
编辑 /etc/profile 修改 HISTSIZE 参数。
这里还有个小技巧 : 在命令行下输入 HISTCONTROL=ignorespace 然后在输入命令的时候前面多个空格则history不记录。
4.关闭 selinux
临时关闭 : setenforce 0
永久关闭: vi /etc/selinux/conf (centos 6 下)
SELINUX=disabled 重启启动系统。
linux也会收到一些系统底层的攻击。
一般的攻击手段:
1.密码暴力破解。用来破解用户密码。(主要针对系统口令,一般可以修改密码难度加入防范多次错误连接机制)
2.拒绝服务攻击。Dos (DDos)原理是:利用合理的服务请求来占用过多的服务器资源。向目标服务器发起大量请求,由于服务器短时间内无法接受太多请求,造成系统资源耗尽,服务挂起,严重造成服务器瘫痪。
3.应用程序漏洞攻击。常见的SQL注入漏洞攻击,网页权限漏洞。已知系统程序的漏洞。
防范攻击策略
1.网络传输安全。
网络传输由网络安全设备构成。一般由硬件防火墙,网络入侵监测(IDC Intrusion Detection System),路由器,交换机。通过给这些设备合理的配置,防范危险。
2.操作系统安全
经常进行的系统安全设置:系统内核定期升级,系统自带软件更新,配置防火墙IPtables防范策略。
SYN攻击属于DDoS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施
Linux syn攻击是一种黑客攻击,如何处理和减少这种攻击是系统管理员比较重要的工作.
SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。
Linux内核提供了若干SYN相关的配置,用命令: sysctl -a | grep syn 看到:
net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5 net.ipv4.tcp_syn_retries = 5
tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie 功能,该功能可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN 的重试次数。加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分 SYN攻击,降低重试次数也有一定效果。
调整上述设置的方法是:
增加SYN队列长度到2048:
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
打开SYN COOKIE功能:
sysctl -w net.ipv4.tcp_syncookies=1
降低重试次数:
sysctl -w net.ipv4.tcp_synack_retries=3 sysctl -w net.ipv4.tcp_syn_retries=3
为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。
防止同步包洪水(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 1/s -j ACCEPT
Ping洪水攻击(Ping of Death)
# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
这些是处理linux sync攻击的思路。
3.应用软件安全
服务器上运行的软件程序本身进行安全策略配置和优化。常见www服务的apache安全设置。ftp服务访问授权控制等。
Linux操作系统安全策略
1.软件的升级
系统软件一般用yum update (yum工具自动升级。要有网络)
2.端口和服务。
端口。其实一个有效的连接的建立,就是客户端的端口和服务器的端口建立连接的过程。端口在系统中有自己的一套划分规律。
linux 可以通过查看 more /etc/services
linux 下,共有655536个可用端口,这些端口以 1024为分割点,分别是;
‘只有root用户才能启动的端口’和‘客户端的端口’
1. 只有root才能开启的端口
0-1023 端口,主要用于系统一些常见的通信服务中。常见的:ftp 21; telnet 23;mail 25; wwww 80;
2. 客户端的端口
1024及以上的端口主要给客户端软件使用,这些端口由软件随机分配。比如 msyql 3306;tomcat 8080 8009;
oneproxy 4041(管理); php-fpm 9000;当然这些是默认的都可以在配置文件修改的。
一般查看这些的命令组合: netstat -anltup
3.服务和端口是一个一一对应的关系。相互依赖,相互衬托的。服务开启,端口也就启动了。
真正影响安全的是服务,而非端口。
4.关闭不必要的服务。一般系统需要的服务有syslog(记录日志功能),sshd(远程连接服务器系统)network(激活网络接口的脚本,
使用网络必须的)xinetd(支持多种网络服务的核心守护进程。包括telnet .vsftpd) iptables(内置的防火墙软件)
atd(特定时间的指定事物服务)crond(自动安排进程提供运行服务)
这些是必须开启支撑linux工作。此外,还有些和业务相关的可以开启外,其它的建议关闭。
密码登录安全:
密码设置安全:一般8位以上的。数字,字母和特殊字符。定期更换密码等。可以加入防止密码探测机制(一个帐号几次失败后。拒绝访问)
此外,还可以设置密钥认证登录(限于secureCRT等远程登录程序)可以不通过密码登录。
在 secureCRT上 工具=创建密钥
上传密钥到linux,导入密钥
# ssh-keygen -i -f Identity.pub >>/root/.ssh/authorized_keys
然后修改登录方式为公钥登录找到生成密钥的路径选中。
进入linux:修改 ssh2的配置文件:
Port 22 #这个是ssh连接的默认端口可以改变
Protocol 2 #使用ssh2
PubkeyAuthentication yes #启动 pubkey 认证
AuthorizedKeysFile .ssh/authorized_keys #publickey 文件路径
PasswordAuthentication no #不使用密码认证
# service sshd restart #重启服务使新配置的ssh生效。
其它设置:
1.禁止外部ping 测试:
# echo "1"> /proc/sys/net/ipv4/icmp_echo_ignore_all
将忽略ping响应策略开启。
2.删除系统默认的不必要的服务和账户
/etc/passwd /etc/group
这2个目录存放账户和组的信息:
可以删除的有 adm lp sync shutdown halt new uucp operator ames gopher 等。
此外 默认shell为 /sbin/nologin 的为不可登录账户
3.限制 shell记录历史条数
编辑 /etc/profile 修改 HISTSIZE 参数。
这里还有个小技巧 : 在命令行下输入 HISTCONTROL=ignorespace 然后在输入命令的时候前面多个空格则history不记录。
4.关闭 selinux
临时关闭 : setenforce 0
永久关闭: vi /etc/selinux/conf (centos 6 下)
SELINUX=disabled 重启启动系统。
本文转自 swallow_zys 51CTO博客,原文链接:http://blog.51cto.com/12042068/1897484,如需转载请自行联系原作者