返回列表 发帖

CentOS6_iptables

CentOS5/6的防火墙叫netfilter,CentOS7/8的防火墙叫firewalld


4表5链

规则表:
filter表:用来对数据包进行过滤,根据具体的规则要求决定如何处理一个数据包;其对应的内核模块为iptable_filter,表里包含三个链:INPUT、OUTPUT、FORWARD

nat表:主要用来修改数据包的IP地址、端口号等信息;其对应的内核模块为iptable_nat,表内包含三个链:PREROUTING、POSTROUTING、OUTPUT


mangle表:用来修改数据包的TOS、TTL值,或者为数据包设置Mark标志,以实现流量整形、策略路由等高级应用。其对应的内核模块为iptable_mangle,表内包含五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD

raw表:是自1.2.9以后版本的iptables新增的表,主要用来决定是否对数据包进行状态跟踪;其对应的内核模块为iptable_raw,表内包含两个链:OUTPUT、PREROUTING


规则链:
INPUT链:当收到访问防火墙本机地址的数据包(入站)时,应用此链中的规则

OUTPUT链:当防火墙本机向外发送数据包(出站)时,应用此链中的规则

FORWARD链:当接收到需要通过防火墙中转发送给其他地址的数据包(转发)时,应用此链中的规则

PREROUTING:在对数据包作路由选择之前,应用此链中的规则

POSTROUTING:在对数据包作路由选择之后,应用此链中的规则


其中,INPUT、OUTPUT链主要用在“主机型防火墙”中,即主要针对服务器本机进行保护的防火墙;而FORWARD、PREROUTING、POSTROUTING链多用在“网络型防火墙”中,例如使用Linux防火墙作为网关防火墙,在公司内网与Internet之间进行安全控制。









iptables防火墙规则

查看防火墙的filter表:( -t 是指定表名 )
iptables -t filter -nL --line
图片1.png
2020-8-21 19:13


笺注:默认就有允许所有IP地址访问本机TCP 22端口的规则( ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22




查看防火墙的filter表:( 如果不指定表名,使用的就是filter表 )
iptables -nL --line
图片2.png
2020-8-21 19:13


笺注:防火墙规则是从上至下的,假如遇到匹配的规则,就不会往下检查了。





防火墙的配置文件:(原始状态)
[root@localhost ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited #拒绝一切filter表的INPUT流量;可删除
-A FORWARD -j REJECT --reject-with icmp-host-prohibited #拒绝一切filter表的FORWARD流量;可删除
COMMIT






插入防火墙规则:(在INPUT链中插入一条规则,打开TCP 80端口,允许所有IP地址访问本机的TCP 80端口)
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
图片3.png
2020-8-21 19:14


笺注:如果不指定表名,使用的就是filter表






插入防火墙规则:(打开UDP 67、68端口)
iptables -t filter -I INPUT -p udp -m multiport --dport 67,68 -j ACCEPT
图片4.png
2020-8-21 19:14


笺注: 加上参数 -m multiport 就可以一次性打开多个端口






在filter表的INPUT链中插入一条规则,排序为2 :(打开TCP 3306端口)
iptables -I INPUT 2 -p tcp --dport 3306 -j ACCEPT
图片5.png
2020-8-21 19:14






在filter表的INPUT链中删除排序为3的规则:
iptables -t filter -D INPUT 3
图片6.png
2020-8-21 19:15







在filter表的INPUT链中插入一条规则,允许网段172.16.0.0/16访问本机的TCP 80端口:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT -s 172.16.0.0/16
图片7.png
2020-8-21 19:15


笺注:
-s 指的是源IP网段;
-d 指的是目标IP网段;






在filter表的INPUT链中插入一条规则,允许连续的IP地址段172.16.8.8-172.16.8.16访问本机的TCP 8080端口:
iptables -I INPUT -p tcp -m multiport --dport 8080 -j ACCEPT -m iprange --src-range 172.16.8.8-172.16.8.16
图片8.png
2020-8-21 19:16


笺注:
-m iprange --src-range 指的是源IP范围;
-m iprange --dst-range 指的是目标IP范围;
如果是单个IP地址,就从该IP地址开始,也从该IP地址结束。






VPN的转发规则:(使用nat表)
iptables -t nat -I POSTROUTING -s 192.168.10.0/24 -o eth0 -j SNAT --to-source 200.63.45.49

iptables -t nat -nL --line
图片9.png
2020-8-21 19:16


笺注:本机网卡eth0的IP地址为200.63.45.49






本机禁ping:
iptables -I INPUT -p icmp -j DROP
图片10.png
2020-8-21 19:16






在filter表中的链INPUT中插入一条规则,允许连续的IP地址段172.16.8.18-172.16.8.28访问本机的TCP 61001至62000范围的端口:
iptables -I INPUT -p tcp -m multiport --dport 61001:62000 -j ACCEPT -m iprange --src-range 172.16.8.18-172.16.8.28
图片11.png
2020-8-21 19:17









###

只允许单个IP地址(192.168.168.163)访问本机的TCP 22端口

先把允许所有IP地址访问本机TCP 22端口的规则删除:

[root@localhost ~]# iptables -t filter -nL --line
10   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22

删除filter表的INPUT链中排序为10的规则:
iptables -t filter -D INPUT 10


在filter表的INPUT链中插入一条规则:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT -s 192.168.168.163/32

图片12.png
2020-8-21 19:17


笺注:这个时候要忽略IP地址原来的掩码






保存防火墙规则:(插入的规则会马上生效,但不保存的话,重启防火墙或主机就会失效)
[root@localhost ~]# iptables-save > /etc/sysconfig/iptables


查看防火墙的配置文件:(也可以在配置文件里直接修改)
[root@localhost ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Thu Jul  5 06:09:21 2018
*nat
:PREROUTING ACCEPT [21:3181]
:POSTROUTING ACCEPT [2:656]
:OUTPUT ACCEPT [2:656]
-A POSTROUTING -s 192.168.10.0/24 -o eth0 -j SNAT --to-source 200.63.45.49
COMMIT
# Completed on Thu Jul  5 06:09:21 2018
# Generated by iptables-save v1.4.7 on Thu Jul  5 06:09:21 2018
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [91:10616]
-A INPUT -s 192.168.168.163/32 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 61001:62000 -m iprange --src-range 172.16.8.18-172.16.8.28 -j ACCEPT
-A INPUT -p icmp -j DROP
-A INPUT -p tcp -m multiport --dports 8080 -m iprange --src-range 172.16.8.8-172.16.8.16 -j ACCEPT
-A INPUT -s 172.16.0.0/16 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p udp -m multiport --dports 67,68 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Thu Jul  5 06:09:21 2018


笺注:可以看到nat表、filter表的链的默认规则都是 ACCEPT

在防火墙里,假如没有匹配的规则,就使用默认规则。


自定义防火墙默认规则:
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables-save > /etc/sysconfig/iptables


再查看防火墙的配置文件:
[root@localhost ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Thu Jul  5 06:20:58 2018
*nat
:PREROUTING ACCEPT [29:3951]
:POSTROUTING ACCEPT [4:1058]
:OUTPUT ACCEPT [4:1058]
-A POSTROUTING -s 192.168.10.0/24 -o eth0 -j SNAT --to-source 200.63.45.49
COMMIT
# Completed on Thu Jul  5 06:20:58 2018
# Generated by iptables-save v1.4.7 on Thu Jul  5 06:20:58 2018
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [2:264]
-A INPUT -s 192.168.168.163/32 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 61001:62000 -m iprange --src-range 172.16.8.18-172.16.8.28 -j ACCEPT
-A INPUT -p icmp -j DROP
-A INPUT -p tcp -m multiport --dports 8080 -m iprange --src-range 172.16.8.8-172.16.8.16 -j ACCEPT
-A INPUT -s 172.16.0.0/16 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p udp -m multiport --dports 67,68 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Thu Jul  5 06:20:58 2018






查看防火墙的filter表:( 这里也可以看到表的链的默认规则 )
[root@localhost ~]# iptables -t filter -nL --line
Chain INPUT (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.168.163      0.0.0.0/0           tcp dpt:22
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           multiport dports 61001:62000 source IP range 172.16.8.18-172.16.8.28
3    DROP       icmp --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           multiport dports 8080 source IP range 172.16.8.8-172.16.8.16
5    ACCEPT     tcp  --  172.16.0.0/16        0.0.0.0/0           tcp dpt:80
6    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           multiport dports 67,68
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306
8    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
9    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
10   ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
11   REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

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

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         





假如修改了防火墙的配置文件,则要重启防火墙:
[root@localhost ~]# service iptables restart
iptables:将链设置为政策 ACCEPT:filter nat [确定]
iptables:清除防火墙规则:[确定]
iptables:正在卸载模块:[确定]
iptables:应用防火墙规则:[确定]



正常情况下,iptables会随系统的启动而自动启动的:
[root@localhost ~]# chkconfig --list iptables
iptables        0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭






相关文章:
SecureCRT远程管理Linux(一)
vsftpd匿名用户

Zabbix使用Ping的模板监控主机网络延迟情况

CentOS6_TCP Wrappers
在阿里云修改服务器CentOS6.9的SSH端口号

Samba匿名共享
CentOS6.9配置VPN
CentOS6_Nginx反向代理+Nginx版网站安全狗+Tomcat+JDK+SSL

Oracle Linux6.9的安装
CentOS8防火墙(netfilter)





#################################
#################################
亲,学习研究也要劳逸结合哦,来我微店逛逛,买点东西好好犒劳犒劳自己和家人吧^_^^_^

肉食注意|豪气鸭掌;包邮【七猩猩】 豪气鸭掌8只盒装共176g/元气鸭翅5只袋装共210g
yazhua.png
2019-10-4 10:06


包邮【七猩猩_大大大礼包_五福临门】坚果休闲零食7袋大礼盒 1459g,专属大大,大大大礼包五福临门,七款坚果共7包美味组合
libao.png
2019-10-4 10:06


FaSoLa夏季厚底情侣儿童洗澡防滑漏水浴室拖鞋居家凉拖鞋轻便柔软
tuoxie.png
2019-10-4 10:06


薇语馨8072女装春季新款文艺修身拼色立领绣花连衣裙中长裙
baiyi.png
2019-10-4 10:06


薇语馨1313深V性感女装紧身包臀透纱夜店裙无袖打底网纱连衣裙
heiyi.png
2019-10-4 10:06

返回列表