6.4.2 准许或禁止端口
多个端口:表示范围 1-1024范围
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp
dpts:!1:1024
DROP tcp -- !10.0.0.0/24 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
nc用法:
nc -l 指定监听端口
nc/telnet 连接
nc 服务端:
[root@m01 ~]# nc -l 99 >/tmp/new.txt
[root@m01 ~]# cat /tmp/new.txt
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6
172.16.1.5 lb01
172.16.1.6 lb02
172.16.1.7 web01
172.16.1.8 web02
172.16.1.31 nfs01
172.16.1.41 backup
172.16.1.51 db01 db01.etiantian.org
172.16.1.61 m01
nc客户端
[root@m01 ~]# cat /etc/hostname |nc 10.0.0.61 99
多个端口 不连续 80,433,52113,22
[root@m01 ~]# iptables -I INPUT -p tcp -m multiport ! --dport 80,443,22 -
j DROP
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 multiport
dports !80,443,22
DROP tcp -- !10.0.0.0/24 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
6.4.3 准许或禁止ping
[root@m01 ~]# ping 10.0.0.61
PING 10.0.0.61 (10.0.0.61) 56(84) bytes of data.
64 bytes from 10.0.0.61: icmp_seq=1 ttl=64 time=0.033 ms
64 bytes from 10.0.0.61: icmp_seq=2 ttl=64 time=0.062 ms
^C
--- 10.0.0.61 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.033/0.047/0.062/0.016 ms
[root@m01 ~]# ping 172.16.1.61
PING 172.16.1.61 (172.16.1.61) 56(84) bytes of data.
64 bytes from 172.16.1.61: icmp_seq=1 ttl=64 time=0.037 ms
^C
--- 172.16.1.61 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.037/0.037/0.037/0.000 ms
[root@m01 ~]# iptables -I INPUT -p icmp --icmp-type any -j DROP
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 255
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source
[root@m01 ~]# ping 172.16.1.61
PING 172.16.1.61 (172.16.1.61) 56(84) bytes of data.
--- 172.16.1.61 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms
[root@m01 ~]# ping 10.0.0.61
PING 10.0.0.61 (10.0.0.61) 56(84) bytes of data.
--- 10.0.0.61 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
[root@m01 ~]# ping 127.0.0.1
[root@m01 ~]# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
--- 127.0.0.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms
禁止后检测是否通畅:
可以使用
telnet
nc
nmap 进行检查
6.4.3 连接状态
NEW:已经或将启动新的连接
ESTABLISHED:已建立的连接
RELATED:正在启动的新连接
INVALID:非法或无法识别的
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
6.4.4 匹配网络限制策略(限制并发 访问的频率)
-m limit
-m limit --limit n/{second/minute/hour}:
解释:指定时间内的请求速率”n”为速率,后面为时间分别为:秒 分 时 --limit-burst [n]
解释:在同一时间内允许通过的请求”n”为数字,不指定默认为5
iptables -I INPUT -s 10.0.1.0/24 -p icmp --icmp-type 8 -m limit --limit 6/min
--limit-burst 5 -j ACCEPT
6.4.6 保存规则
7. 生产环境防火墙配置
1.逛公园: 防火墙默认的规则 默认规则都是准许 ACCEPT
2.电影院:默认规则是 拒绝DROP 凭票进入
7.1 配置允许SSH登陆端口进入
[root@m01 ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT>
7.2 允许本机回环lo接口数据流量流出与流入
1.iptables -A INPUT -i lo -j ACCEPT
2.iptables -A OUTPUT -o lo -j ACCEPT
-i input 与 INPUT链一起使用
-o output 与 OUTPUT 链一起使用
7.3 准许icmp协议通过
[root@m01 ~]# iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
7.4 准许用户使用的端口通过 80,443
1.iptables -A INPUT -p tcp --dport 80 -j ACCEPT
2.iptables -A INPUT -p tcp --dport 443 -j ACCEPT
7.5 允许用户与服务器建立连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
7.6 开启信任的IP网段**
1.iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT
2.iptables -A INPUT -s 172.16.1.0/24 -p all -j ACCEPT
7.7 修改默认规则
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
8. NAT表
8.1 PREROUTING
8.2 POSTROUTING
9.防火墙小结
防火墙4表5链
filter表 INPUT链 实现防火墙功能
nat 表 PREROUTING实现 端口转发
nat 表 POSTROUTING链实现 共享上网
2.负载均衡 VS 反向代理区别
2.1 功能(原理)
负载均衡 lvs 请求做转发
反向代理 Nginx Haproxy 代替(代理)用户去请求,得到响应再返回给用户
2.2 4层vs7层
4层 LVS nginx(1.9) haproxy
7层 nginx haproxy
3.ARP协议
3.1 arp基础知识
DNS 域名---->ip地址 域名解析服务/系统 Domain Name Service/System
ARP ip--------->MAC地址 地址解析协议 Address Resolution Protocol
3.2 arp解析过程
- 发出广播消息 查询ip对应的mac地址
- 对应的机器会用单播的方式把自己的mac告诉对方
- 用户自己留1个arp缓存