linux下iptable的用法 - Go语言中文社区

linux下iptable的用法


########################
1.iptables的用法
########################
iptables比firewall功能更详细,但是难上手

关闭火墙

安装iptables
在这里插入图片描述
启动服务
在这里插入图片描述
服务信息保存在/etc/sysconfig/iptables
在这里插入图片描述

iptables加以下

-nL不做解析列出
[root@localhost ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state    RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-   prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-    prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

-F 清除所有策略

[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -nL
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.iptable限制访问
###################################
以httpd为例
通过控制端口不同ip的访问权限来控制访问
查看httpd服务的端口

有三个后缀

拒绝
REJECT
允许
ACCEPT
忽略
DROP

[root@localhost ~]# netstat -antlupe | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      
0          24061          1264/httpd          

在这里插入图片描述
iptables -A INPUT -p tcp --dport 80 -j REJECT
拒绝所有访问

[root@localhost ~]# iptables  -A  INPUT  -p tcp  --dport  80  -j REJECT
[root@localhost ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0   tcp dpt:80 reject-with     
icmp-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

iptables -A INPUT -s 172.25.254.32 -p tcp --dport 80 -j ACCEPT

[root@localhost ~]# iptables  -A  INPUT  -s 172.25.254.132 -p tcp --dport 80 -j     ACCEPT
[root@localhost ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0   tcp dpt:80 reject-with     icmp-port-unreachable
ACCEPT     tcp  --  172.25.254.32       0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

在这里插入图片描述
但此时还是无法连接,原因是读取时是从第一条开始读取,当第一条满足时不再读取第二条规则

有两种删除方法
按内容删除,注意如果多个相同内容,按内容删除的顺序是从后往前删除
iptables -D INPUT -s 172.25.254.32 -p tcp --dport 80 -j ACCEPT
按序号删除第二条规则
iptables -D INPUT 2
插入到第一条规则
iptables -I INPUT 1 -s 172.25.254.32 -p tcp --dport 80 -j ACCEPT

[root@localhost ~]# iptables  -D INPUT 2
[root@localhost ~]# iptables  -I  INPUT  1 -s 172.25.254.32 -p tcp --dport 80 -j   ACCEPT
[root@localhost ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  172.25.254.32        0.0.0.0/0            tcp dpt:80
REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 reject-with     icmp-portunreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

在这里插入图片描述
浏览器测试能连接
在这里插入图片描述
用172.25.254.232的浏览器连接
在这里插入图片描述

删除掉允许,改为拒绝不提示
iptables -D INPUT 1

iptables -I INPUT 1 -s 172.25.254.32 -p tcp --dport 80 -j DROP

[root@localhost ~]# iptables -D INPUT 1
[root@localhost ~]# iptables  -I  INPUT  1 -s 172.25.254.32 -p tcp --dport 80  -j   DROP 
[root@localhost ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  172.25.254.32        0.0.0.0/0            tcp dpt:80
REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 reject-with  icmp-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

在这里插入图片描述
此时刷新浏览器连接时会一直在读取,原因是拒绝不提示时没有反馈
在这里插入图片描述

####################
3.简单管理链
#####################
iptables -F ##清空策略
在这里插入图片描述

iptables -t nat -F PREROUTING:把表格换为nat并且刷新prerouting链接
在这里插入图片描述
添加名为westos的链
iptables -N westos
在这里插入图片描述

iptables -E allowed disallowed:修改链名称
在这里插入图片描述
iptables -D westos 1 删除自定义链下的策略
iptables -X redhat :删除自定义链
在这里插入图片描述
iptables -R INPUT 3 -j ACCEPT:把3号的规则替换为-j ACCEPT

iptables -P INPUT DROP: 设置filter表INPUT链的默认规则,当数据包没有被规则列表的任何规则匹配到时,按这个规则处理

iptables -t nat -F:清空nat策略,-F只晴空链中的规则不影响-P设置的默认规则

iptables -t nat -nL:查看nat策略

iptables -t nat -L PREROUTING:查看nat表中prerouting链的规则

#########################
7.iptables做地址转换
#########################
路由器为172.25.254.132
1.1.1.132
目的网关为1.1.1.232
目的是32连接132时自动连接到232,可用于不同网段的连接

清除所有表格
在这里插入图片描述
添加转换规则
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 22 -j DNAT --to-dest 1.1.1.232
在这里插入图片描述
ssh 172.25.254.132
查看连接后的ip

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qwefyjwww/article/details/85111438
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-20 16:40:09
  • 阅读 ( 853 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢