运维进阶——iptables详解

iptables

先将双网卡的desktop的firewalld关闭,并锁定

[root@dektop ~]# systemctl stop firewalld
[root@dektop ~]# systemctl mask firewalld
ln -s '/dev/null' '/etc/systemd/system/firewalld.service'
[root@dektop ~]# 

iptables基本操作命令一览

iptable
        -t      ##指定表名称 
        -n      ##不作解析
        -L      ##列出指定表中的策略
        -A      ##增加策略
        -p      ##网络协议
        --dport ##端口
        -s      ##数据来源
        -j      ##动作
        ACCEPT  ##允许
        REJECT  ##拒绝
        DROP    ##丢弃
        -N      ##增加链
        -E      ##修改链名称
        -X      ##删除链
        -D      ##删除指定策略
        -I      ##插入
        -R      ##修改策略
        -P      ##修改默认策略
iptables  -t filter -nL         #查看filter表中的策略   -t 后面不跟表名的话,默认为filter表

iptable  -F                     #刷掉filter表中的所有策略,当没有用-t指定表名称>时默认时filter
service iptables save           #保存当前策略   保存在了/etc/sysconfig/iptables里
iptables -A INPUT -i lo -j ACCEPT       #允许lo
iptables -A INPUT -p tcp --dport 22 -j ACCEPT   ##允许访问22端口
iptables -A INPUT -s 172.25.254.250 -j ACCEPT   ##允许250主机访问本机所有端口
iptables -A INPUT -j REJECT                     ##拒绝所有主机的数据来源
iptables -N redhat      ##增加链redhat
iptables -E redhat westos       ##改变链名称
iptables -X westos      ##删除westos链
iptable -D INPUT 2      ##删除INPUT链中的第二条策略
iptables -I INPUT  -p tcp --dport 80  -j REJECT ##插入策略到INPUT中的第一条
iptables -R INPUT 1 -p tcp --dport 80 -j ACCEPT ##修改第一条策略
iptable -P INPUT DROP           ##把INPUT表中的默认策略改为drop

命令演示

iptables -t filter -nL    查看filter表,-t不指定的话,默认为filter表

运维进阶——iptables详解_第1张图片

iptables -A INPUT -i lo -j ACCEPT       #-A 表示添加  -j 表示动作,允许lo
Iptables -t filter -L     -n是不做解析,不带-n是做解析

运维进阶——iptables详解_第2张图片

iptables -A INPUT -p tcp --dport 22 -j ACCEPT   ##允许访问22端口   -p表示网络协议

运维进阶——iptables详解_第3张图片

iptables -A INPUT -s 172.25.254.13 -j ACCEPT   ##允许250主机访问本机所有端口

运维进阶——iptables详解_第4张图片

iptables -A INPUT -j REJECT                     ##拒绝所有主机的数据来源

把这条加在允许13主机的所有端口这条策略之后,那么会如何让执行呢,
它会从第一条开始,只要读到匹配项就停止了
运维进阶——iptables详解_第5张图片
运维进阶——iptables详解_第6张图片

还可以连接,说明它读了第一条策略匹配后停止,第二条侧路并美生效

iptables -i INPUT -j REJECT    拒绝所有主机的数据来源,插入到第一条

运维进阶——iptables详解_第7张图片

iptable -D INPUT 3     ##删除INPUT链中的第3条策略

运维进阶——iptables详解_第8张图片

在主机上再测试
运维进阶——iptables详解_第9张图片

iptables -N redhat      ##增加链redhat

运维进阶——iptables详解_第10张图片
同样如果不-t指定的话默认是filter表
运维进阶——iptables详解_第11张图片

iptables -E redhat westos       ##改变链名称

运维进阶——iptables详解_第12张图片

iptables -X westos      ##删除westos链

运维进阶——iptables详解_第13张图片

iptables -R INPUT 2 -j REJECT ##修改第2条策略

运维进阶——iptables详解_第14张图片

iptable -P INPUT DROP           ##把INPUT表中的默认策略改为drop

运维进阶——iptables详解_第15张图片

iptable  -F                     #刷掉filter表中的所有策略,当没有用-t指定表名称>时默认时filter

运维进阶——iptables详解_第16张图片

端口转发

[root@dektop ~]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 1.1.1.213:22
[root@dektop ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 to:1.1.1.213:22

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

运维进阶——iptables详解_第17张图片

操作和firewalld的作用是一样的,只是通过不同的方式

测试
在真机

[kiosk@foundation13 ~]$ ssh [email protected]
[email protected]'s password: 
Last login: Sat Jun  1 01:38:06 2019 from 1.1.1.113

查看ip,是1网段的server虚拟机

地址伪装

[root@dektop ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.113
[root@dektop ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 to:1.1.1.213:22

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  0.0.0.0/0            0.0.0.0/0            to:172.25.254.113

测试
在server虚拟机
ping 172.25.254.13

你可能感兴趣的:(运维进阶——iptables详解)