常见c2c网站有哪些,网站建设集群化的必要,高端网站定制建站,wordpress音频播放不了一、iptables中基本的命令参数
-P 设置默认策略-F 清空规则链-L 查看规则链-A 在规则链的末尾加入新规则-I num 在规则链的头部加入新规则-D num 删除某一条规则-s 匹配来源地址IP/MASK#xff0c;加叹号“#xff01;”表示除这个IP外-d 匹配目标地址-i 网卡名称 匹配从这块…一、iptables中基本的命令参数
-P 设置默认策略-F 清空规则链-L 查看规则链-A 在规则链的末尾加入新规则-I num 在规则链的头部加入新规则-D num 删除某一条规则-s 匹配来源地址IP/MASK加叹号“”表示除这个IP外-d 匹配目标地址-i 网卡名称 匹配从这块网卡流入的数据-o 网卡名称 匹配从这块网卡流出的数据-p 匹配协议如TCP、UDP、ICMP–dport num 匹配目标端口号-sport num 匹配来源端口号
二、实操
2.1 拒绝进入防火墙的192.168.56.106 ICMP协议数据包
[rootlocalhost ~]# iptables -I INPUT -s 192.168.56.106 -p icmp -j REJECT
[rootlocalhost ~]# iptables -nvL INPUT
Chain INPUT (policy ACCEPT 980 packets, 121K bytes)pkts bytes target prot opt in out source destination 0 0 REJECT icmp -- * * 192.168.56.106 0.0.0.0/0 reject-with icmp-port-unreachable938 115K LIBVIRT_INP all -- * * 0.0.0.0/0 0.0.0.0/0 2.2 查看INPUT链的规则
[rootlocalhost ~]# iptables -nvL INPUT --line
Chain INPUT (policy ACCEPT 1168 packets, 133K bytes)
num pkts bytes target prot opt in out source destination
1 3 252 REJECT icmp -- * * 192.168.56.106 0.0.0.0/0 reject-with icmp-port-unreachable
2 1126 127K LIBVIRT_INP all -- * * 0.0.0.0/0 0.0.0.0/0 2.4 删除刚才新建的icmp REJECT
[rootlocalhost ~]# iptables -D INPUT 1
[rootlocalhost ~]# iptables -nvL INPUT --line
Chain INPUT (policy ACCEPT 1223 packets, 137K bytes)
num pkts bytes target prot opt in out source destination
1 1181 130K LIBVIRT_INP all -- * * 0.0.0.0/0 0.0.0.0/0 2.5 清空已有的防火墙规则链
[rootlocalhost ~]# iptables -F
[rootlocalhost ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination Chain FORWARD (policy ACCEPT)
target prot opt source destination Chain OUTPUT (policy ACCEPT)
target prot opt source destination 2.6 把INPUT规则链默认策略设置为拒绝
[rootlocalhost ~]# iptables -P INPUT DROP2.7 向INPUT链中添加允许ICMP流量进入的策略规则
[rootlocalhost ~]# iptables -I INPUT -p icmp -j ACCEPT
[rootlocalhost ~]# ping -c 4 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq1 ttl64 time0.156 ms
64 bytes from 192.168.10.10: icmp_seq2 ttl64 time0.117 ms
64 bytes from 192.168.10.10: icmp_seq3 ttl64 time0.099 ms
64 bytes from 192.168.10.10: icmp_seq4 ttl64 time0.090 ms
--- 192.168.10.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev 0.090/0.115/0.156/0.027 ms2.8 删除INPUT规则链中刚刚加入的那条策略允许ICMP流量并把默认策略设置为允许
[rootlinuxprobe ~]# iptables -D INPUT 1
[rootlinuxprobe ~]# iptables -P INPUT ACCEPT
[rootlinuxprobe ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination2.9 将INPUT规则链设置为只允许指定网段的主机访问本机的22端口拒绝来自其他所有主机的流量
[rootlocalhost ~]# iptables -I INPUT -p tcp -s 192.168.56.0/24 --dport 22 -j ACCEPT
[rootlocalhost ~]# iptables -A INPUT -p tcp --dport 22 -j DROP
[rootlocalhost ~]# iptables -nvL INPUT --line
Chain INPUT (policy ACCEPT 6306 packets, 6997K bytes)
num pkts bytes target prot opt in out source destination
1 216 14861 ACCEPT tcp -- * * 192.168.56.0/24 0.0.0.0/0 tcp dpt:22
2 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22注意DROP规则是用的Aappend即在ACCEPT之后添加一条规则。如果DROP添加在前面的话一开始就拦截报文后面的ACCEPT就不生效了
2.10向INPUT规则链中添加拒绝所有人访问本机12345端口的策略规则
[rootlocalhost ~]# iptables -nvL INPUT --line
Chain INPUT (policy ACCEPT 6324 packets, 6999K bytes)
num pkts bytes target prot opt in out source destination
[rootlocalhost ~]# iptables -I INPUT -p tcp --dport 12345 -j REJECT
[rootlocalhost ~]# iptables -I INPUT -p udp --dport 12345 -j REJECT
[rootlocalhost ~]# iptables -nvL INPUT --line
Chain INPUT (policy ACCEPT 6718 packets, 7023K bytes)
num pkts bytes target prot opt in out source destination
1 0 0 REJECT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:12345 reject-with icmp-port-unreachable
2 0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:12345 reject-with icmp-port-unreachable2.11 向INPUT规则链中添加拒绝192.168.56.103主机访问本机80端口(Web服务)的策略规则
[rootlocalhost ~]# iptables -I INPUT -s 192.168.56.103 -p tcp --dport 80 -j REJECT2.12 向INPUT规则链中添加拒绝所有主机访问本机1000~1024端口的策略规则
[rootlocalhost ~]# iptables -I INPUT -p tcp --dport 1000:1024 -j REJECT
[rootlocalhost ~]# iptables -nvL INPUT --line
Chain INPUT (policy ACCEPT 7335 packets, 7061K bytes)
num pkts bytes target prot opt in out source destination
1 0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpts:1000:1024 reject-with icmp-port-unreachable三、黑白名单机制
3.1 黑名单
假设我想要放行ssh远程连接相关的报文也想要放行web服务相关的报文那么我们在INPUT链中添加如下规则
[rootlocalhost ~]# iptables -I INPUT -p tcp --dport 22 -j ACCEPT
[rootlocalhost ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
[rootlocalhost ~]# iptables -P INPUT DROP
[rootlocalhost ~]# iptables -nvL INPUT --line
Chain INPUT (policy DROP 8511 packets, 9003K bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
2 255 14844 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22如果此时我不小心执行了”iptables -F”操作在当前ssh远程工具中执行”iptables -F”命令后由于INPUT链中已经不存在任何规则所以所有报文都被拒绝了包括当前的ssh远程连接 这就是默认策略设置为DROP的缺点在对应的链中没有设置任何规则时这样使用默认策略为DROP是非常不明智的因为管理员也会把自己拒之门外即使对应的链中存在放行规则当我们不小心使用”iptables -F”清空规则时放行规则被删除则所有数据包都无法进入这个时候就相当于给管理员挖了个坑所以我们如果想要使用”白名单”的机制最好将链的默认策略保持为”ACCEPT”然后将”拒绝所有请求”这条规则放在链的尾部将”放行规则”放在前面这样做既能实现”白名单”机制又能保证在规则被清空时管理员还有机会连接到主机。下面的白名单机制就比较合适。
3.2 白名单
[rootlocalhost ~]# iptables -P INPUT ACCEPT
[rootlocalhost ~]# iptables -I INPUT -p tcp --dport 22 -j ACCEPT
[rootlocalhost ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
[rootlocalhost ~]# iptables -A INPUT -j REJECT
[rootlocalhost ~]# iptables -nvL INPUT --line
Chain INPUT (policy ACCEPT 8889 packets, 9045K bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
2 182 11316 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
3 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable既将INPUT链的默认策略设置为了ACCEPT同时又使用了白名单机制因为如果报文符合放行条件则会被前面的放行规则匹配到如果报文不符合放行条件则会被最后一条拒绝规则匹配到此刻即使我们误操作执行了”iptables -F”操作也能保证管理员能够远程到主机上进行维护因为默认策略仍然是ACCEPT