iptables 正常用法
#!/bin/bash ip1=${group_host1} ip2=${group_host2} ip3=${group_host3} ip4=${group_host4} ip5=${group_host5} iptables -F #清空所有的防火墙规则 iptables -X #删除用户自定义的空链 iptables -Z #清空计数 iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT iptables -P INPUT DROP #配置默认的不让进 iptables -P FORWARD DROP #默认的不允许转发 iptables -P OUTPUT ACCEPT #默认的可以出去 iptables -A INPUT -p all -s $ip1 -j ACCEPT #允许机房内网机器可以访问 iptables -A INPUT -p all -s $ip2 -j ACCEPT #允许机房内网机器可以访问 iptables -A INPUT -p all -s $ip3 -j ACCEPT #允许机房内网机器可以访问 iptables -A INPUT -p all -s $ip4 -j ACCEPT #允许机房内网机器可以访问 iptables -A INPUT -p all -s $ip5 -j ACCEPT #允许机房内网机器可以访问 ####[console 组件所在的机器配置,多配置下面几行] iptables -A INPUT -p tcp --dport 80 -j ACCEPT #开启80端口,因为web对外都是这个端口 iptables -A INPUT -p tcp --dport 443 -j ACCEPT #开启443端口,https端口 iptables -A INPUT -p tcp --dport 5511 -j ACCEPT #开启5511端口,命令通道端口 iptables -A INPUT -p tcp --dport 8820 -j ACCEPT #开启8820端口,数据上报通道端口 iptables -A INPUT -p tcp --dport 8099 -j ACCEPT #开启8099端口, iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #允许被ping iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak iptables-save > /etc/sysconfig/iptables 各参数的含义为: -L 表示查看当前表的所有规则,默认查看的是 filter 表,如果要查看 nat 表,可以加上 -t nat 参数。 -n 表示不对 IP 地址进行反查,加上这个参数显示速度将会加快。 -v 表 删除某一条ip的端口 iptables -A INPUT -p tcp --dport 88 -s 192.168.223.134 -j DROP iptables -A INPUT -s 192.168.1.5 -j DROP //所有入站流量全部丢弃,包括SSH请求 iptables -A INPUT -j DROP //所有入站流量全部丢弃,包括SSH请求 iptables -A OUTPUT -j DROP *//所有出站流量全部丢弃. -A在指定链的末尾添加(append)一条新的规则 -j代表指定你要操作的动作 iptables -I INPUT -j DROP iptables -I OUTPUT -j DROP -I代表插入到开头 上述两条命令一旦执行,所有流量无法进来,所有流量无法出去,为断网状态 在修改规则时需要使用-R参数。 例如:把添加在第 6 行规则的 DROP 修改为 ACCEPT iptables -R INPUT 6 -s 192.168.1.9 -j ACCEPT 显示行数 iptables -nL --line-number 4) 删除规则 删除规则有两种方法,但都必须使用 -D 参数。 例如:删除添加的第 6 行的规则 [root@liangxu ~]# iptables -D INPUT 6 -s 194.168.1.5 -j ACCEPT or [root@liangxu ~]# iptables -D INPUT 6 默认的 iptables 防火墙规则会立刻生效,但如果不保存, 当计算机重启后所有的规则都会丢失,所以对防火墙规则进行及时保存的操作是非常必要的。 CentOS 7 系统中防火墙规则默认保存在 /etc/sysconfig/iptables 文件中, 使用 iptables-save 将规则保存至该文件中可以实现保存防火墙规则的作用 即: 保存在默认文件夹中(保存防火墙规则): [root@liangxu ~]# iptables-save > /etc/sysconfig/iptables 保存在其他位置(备份防火墙规则): [root@liangxu ~]# iptables-save > 文件名称 列出nat表的规则内容,命令如下: [root@liangxu ~]# iptables-save -t nat iptables-restore命令批量导入 iptables-restore 命令可以批量导入Linux防火墙规则,同时也需要结合重定向输入来指定备份文件的位置。 [root@liangxu ~]# iptables-restore < 文件名称 注意,导入的文件必须是使用 iptables-save工具导出来的才可以。 也就是说格式只支持iptab-save的格式 traceroute 做ip和端口测试(需要在root下执行) 探测192.168.1.1的TCP22端口是否能通 traceroute -n -T 192.168.1.2 -p 9100 用法:traceroute [参数] [参数] ... 主机IP -4 使用IPv4地址 -6 使用IPv6地址 -I 使用ICMP来追踪路由 -T 指定TCP格式,默认为UDP -n 不解析成域名 -p 指定目的地址的端口号 -U 指定UDP格式 -s 指定源地址 -w 等待时间,等待超时的时间 -q 每个跃点的探测数,也就是发包个数,默认为3