日常运维2
1、netfilter和firewalld在我们日常工作中不常用,用到的主要是iptables对IP和IP段的封禁。
iptables:主要是五个表和链的理解,
filter表
nat表
INPUT、OUTPUT、FORWARD、PREROOTING、PORTROOTING五个链的理解和应用。
2、在以后的工作中服务器阿里云的比较多,可以服务器防火墙和阿里云的安全控制台任选其一。
在以后生产环境的服务器中,尽量配置一些规则,我们做实验时为了试验方便把firewalld服务关掉了。
生产中的服务器的好多的安全问题都是因为我们把安全关掉了。
3、selinux关闭
setenforce 0 #临时关闭
永久关闭:更改配置文件,/etc/selinuc/config
selinux=disabled
selinux规则知识比较多和麻烦,一般公司都没有使用它。它经常出现一些让人疏忽的安全问题。
firewalld和iptables之间关系。
4、iptables语法。
iptables -nvL 查看filter表(默认)
iptables -nvL -t nat 查看nat表
iptables的四种状态
在iptables上一共有四种状态,分别被称为NEW、ESTABLISHED、INVALID、RELATED,这四种状态对于TCP、UDP、ICMP三种协议均有效。下面,我们来分别阐述四种状态的特性。NEW,NEW说明这个包是我们看到的第一个包。意思就是,这是conntrack模块看到的某个连接的第一个包,它即将被匹配了。比如,我们看到一个SYN 包,是我们所留意的连接的第一个包,就要匹配它。ESTABLISHED,ESTABLISHED已经注意到两个方向上的数据传输,而且会继续匹配这个连接的包。处于ESTABLISHED状态的连接是非常容易理解的。只要发送并接到应答,连接就是ESTABLISHED的了。一个连接要从NEW变为ESTABLISHED,只需要接到应答包即可,不管这个包是发往防火墙的,还是要由防火墙转发的。ICMP的错误和重定向等信息包也被看作是ESTABLISHED,只要它们是我们所发出的信息的应答。RELATED,RELATED是个比较麻烦的状态。当一个连接和某个已处于ESTABLISHED状态的连接有关系时,就被认为是RELATED的了。换句话说,一个连接要想是RELATED的,首先要有一个ESTABLISHED的连接。这个ESTABLISHED连接再产生一个主连接之外的连接,这个新的连接就是 RELATED的了,当然前提是conntrack模块要能理解RELATED。ftp是个很好的例子,FTP-data 连接就是和FTP-control有关联的,如果没有在iptables的策略中配置RELATED状态,FTP-data的连接是无法正确建立的,还有其他的例子,比如,通过IRC的DCC连接。有了这个状态,ICMP应答、FTP传输、DCC等才能穿过防火墙正常工作。注意,大部分还有一些UDP协议都依赖这个机制。这些协议是很复杂的,它们把连接信息放在数据包里,并且要求这些信息能被正确理解。INVALID,INVALID说明数据包不能被识别属于哪个连接或没有任何状态。有几个原因可以产生这种情况,比如,内存溢出,收到不知属于哪个连接的ICMP错误信息。一般地,我们DROP这个状态的任何东西,因为防火墙认为这是不安全的东西。
摘自:http://www.splaybow.com/post/iptables-4-state.html
iptables -F 清空规则,重启后会加载配置文件规则。
[root@liang-00 ~]# cat /etc/sysconfig/iptables # sample configuration for iptables service # you can edit this manually or use system-config-firewall # please do not ask us to add additional ports/services to this default configuration *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT [root@liang-00 ~]#
如果没有配置规则,则默认是ACCEPT。
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 这条规则表示,正在通信的端口可能衍生出其它端口,同样放行它们。
5、iptables限制SYN速度
防止论坛 发帖机器人 频繁发送垃圾帖子
原理,每5s内tcp三次握手大于20次的属于不正常访问。
iptables -A INPUT -s ! 192.168.0.0/255.255.255.0 -d 192.168.0.101 -p tcp -m tcp --dport 80 -m state --state NEW -m recent --set --name httpuser --rsource
iptables -A INPUT -m recent --update --seconds 5 --hitcount 20 --name httpuser --rsource -j DROP
其中192.168.0.0/255.255.255.0 为不受限制的网段, 192.168.0.101 为本机IP。
该iptables策略,可有效预防syn攻击,也可以有效防止机器人发垃圾帖。