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
笺注:默认就有允许所有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
笺注:防火墙规则是从上至下的,假如遇到匹配的规则,就不会往下检查了。
防火墙的配置文件:(原始状态)
[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
笺注:如果不指定表名,使用的就是filter表
插入防火墙规则:(打开UDP 67、68端口)
iptables -t filter -I INPUT -p udp -m multiport --dport 67,68 -j ACCEPT
笺注: 加上参数 -m multiport 就可以一次性打开多个端口
在filter表的INPUT链中插入一条规则,排序为2 :(打开TCP 3306端口)
iptables -I INPUT 2 -p tcp --dport 3306 -j ACCEPT
在filter表的INPUT链中删除排序为3的规则:
iptables -t filter -D INPUT 3
在filter表的INPUT链中插入一条规则,允许网段172.16.0.0/16访问本机的TCP 80端口:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT -s 172.16.0.0/16
笺注:
-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
笺注:
-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
笺注:本机网卡eth0的IP地址为200.63.45.49
本机禁ping:
iptables -I INPUT -p icmp -j DROP
在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
###
只允许单个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
笺注:这个时候要忽略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
包邮【七猩猩_大大大礼包_五福临门】坚果休闲零食7袋大礼盒 1459g,专属大大,大大大礼包五福临门,七款坚果共7包美味组合
FaSoLa夏季厚底情侣儿童洗澡防滑漏水浴室拖鞋居家凉拖鞋轻便柔软
薇语馨8072女装春季新款文艺修身拼色立领绣花连衣裙中长裙
薇语馨1313深V性感女装紧身包臀透纱夜店裙无袖打底网纱连衣裙
|