iptables
优先级:raw>mangle>nat>filter
iptables扩展
使用 -m调用扩展,也可以用 !取反
iprange 指定范围
- -src-range :源地址范围
- -dst-range:目标地址范围
iptables -I INPUT -p tcp -m iprange - -src-range 192.168.75.130-192.168.75.134 -j DROP
string 指定字符串
- -algo :指定匹配算法,可选算法有bm和kmp
- - string:指定要匹配的字符串。
iptables -I INPUT -m string - - algo bm - -string “mike” -j REJECT
time 指定时间
time模块使用OTC时间,而我们使用CST中国标准时间,东八区比UTC时间快8小时,因此要-8
- -timestart :起始时间 格式 时:分:秒
- - timestop:终止时间
- -weekdays:用于指定星期几,也可以用数字表示
- -monthdays;- -datestart;- -datestop
iptables -A INPUT -p tcp - -dport 80 -m time - -weekdays 3,5 - -timestart 08:00:00 - -timestop 09:00:00 -j REJECT #周三和周五的0点到1点不允许访问80端口
connlimit 限制连接数量
不指定IP,则默认为每个客户端IP做出限制
- -connlimit-above:限制连接上限
- -connlimit-mask:按照网段限制连接上限
iptables -I INPUT -p tcp - -dport 22 -m connlimit - -connlimit-above 2 -j REJECT
#限制ssh登陆数为2个,超过则就拒绝
limit 限制速率
- -limit :限制单位时间内流入的数据包的数量
iptables -I INPUT -p icmp -m limit - -limit 10/min -j ACCEPT
#限制每分钟流入10个包
iptables之forward转发
把本机的80端口转发到另一台服务器的8080端口
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.75.134:8080
iptables -t nat -A POSTROUTING -p tcp -d 192.168.75.134 --dport 8080 -j SNAT --to 192.168.75.130
selinux的设置
配置文件:/etc/selinux/config
查看selinux的状态:getenforce 返回为enforcing,为开启;disabled为关闭
firewalld
查看防火墙状态:firewall-cmd - -state
重新加载配置:firewall-cmd - -reload
查看预设的服务:firewall-cmd - -get-services
查看:firewall-cmd - -list-all
添加服务:firewall-cmd - -zone=public - -add-service=http - -permanent
移除:- -add改为 - -remove
允许或拒绝端口:firewall-cmd - -zone=public - -add-port=80/tcp - -permanent
禁用一个网段:firewall-cmd - -add-source=192.168.75.1/24 - -zone=drop
实例:
##在同一个服务器上将80端口转发到8080端口
firewall-cmd - -zone=”public” - -add-forward-port=port:80:proto=tcp:toport=8080
##将当前服务器的80端口转发到另一台主机192.168.75.134的8080端口
(1)firewall-cmd - -zone=public - -add-masquerade
(2)firewall-cmd - -zone=”public” - -add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.75.134
丰富规则:
##拒绝来自192.168.75.134到22端口的IPV4的TVP数据
firewall-cmd - -zone=public- -add-rich-rule ‘rule family=”ipv4” source address=”192.168.75.134” port port=22 protocol=tcp reject’