iptables 正常用法

发布时间 2023-10-17 08:54:53作者: 不积硅步,无以至千里
#!/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