将不安全的网络流量信息进行隔离
思科,华为防火墙服务器
iptables(centos6)和firewalld(centos7)实现
开启防火墙服务------指定表--------指定链-------指定规则
真正起到防火墙的功能
INPUT链 流量在进入时进行访问控制
OUTPUT链 流量在出去的时候进行访问控制
FORWARD链 流量是否可以经过防火墙
[root@firewalld yum.repos.d] # yum install -y iptables
列出链上规则配置信息
以数字形式输出地址和端口
[root@firewalld ~] # iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 192.168.122.0/24 ctstate RELATED,ESTABLISHED
ACCEPT all -- 192.168.122.0/24 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:68
You have new mail in /var/spool/mail/root
[root@firewalld ~] #
删除所有的链上的规则,默认是filter表
清除计数器上面的信息
删除用户自定义链
实现访问映射/流量转发
实现内网访问外网
外网访问映射到指定内网主机
使用-t来定义后面的表信息,默认filter
追加一个链在后面
协议:通过数字或者协议名称
指定处理规则动作
指定匹配规则的源信息
指定匹配规则的目标信息
在链上修改默认策略
指定从哪个网卡进入
指定从哪个网卡出去
扩展匹配的信息
指定行插入规则信息
[root@firewalld ~] # iptables -t filter -A INPUT -p tcp --dport 22 -j DROP
[root@firewalld ~] # iptables -t filter -A OUTPUT -p tcp --sport 22 -j DROP
[root@firewalld ~] # iptables -A INPUT -s 10.0.0.1 -p tcp -d 10.0.0.81 --dport 22 -j ACCEPT
[root@firewalld ~] # iptables -A INPUT -s 10.0.0.0/24 -p tcp --dport 22 -j DROP
[root@firewalld ~] # iptables -A OUTPUT -d 10.0.0.1 -p tcp -s 10.0.0.81 --sport 22 -j ACCEPT
[root@firewalld ~] # iptables -A OUTPUT -d 10.0.0.0/24 -p tcp --sport 22 -j DROP
[root@firewalld ~] # iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
[root@firewalld ~] # iptables -A INPUT -i eth1 -p tcp --dport 22 -j DROP
[root@firewalld ~] # iptables -A OUTPUT -i eth0 -p tcp --dport 22 -j ACCEPT
[root@firewalld ~] # iptables -A INPUT -i eth1 -p tcp --sport 22 -j DROP
[root@firewalld ~] # iptables -A INPUT ! -s 10.0.0.1 -p tcp --dport 22 -j DROP
[root@firewalld ~] # iptables -A INPUT -s 10.0.0.1 -p tcp --dport 22 -j ACCEPT 允许10.0.0.1访问22端口
[root@firewalld ~] # ipatbles -P INPUT DROP 修改默认规则为阻止
[root@firewalld ~] # iptables -A INPUT -s 10.0.0.1 -p tcp --dport 22:80 -j DROP
[root@firewalld ~] # iptables -A INPUT -s 10.0.0.1 -m multiport -p tcp --dport 22,23,25,80 -j DROP
[root@firewalld ~] # iptables -A INPUT -s 10.0.0.7 -p icmp --icmp-type 8 -j DROP
[root@firewalld ~] # iptables -A OUTPUT -d 10.0.0.7 -p icmp --icmp-type 0 -j DROP
[root@firewalld ~] # iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP
[root@firewalld ~] # iptables -A INPUT -p icmp --icmp-type 0 -j DROP
[root@firewalld ~] # iptables -A INPUT -p icmp -m icmp --icmp-type any -j DROP
[root@firewalld ~] # iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 6/min --limit-burst 5 -j ACCEPT
[root@firewalld ~] # iptables -P INPUT DROP
[root@firewalld ~] # iptables -P INPUT DROP 默认INPU
[root@firewalld ~] # iptables -P OUTPUT DROP 默认OUTPUT为阻止
[root@firewalld ~] # iptables -P FORWARD ACCEPT 默认FORWARD为允许
[root@firewalld ~] # iptables -A INPUT -s 10.0.0.0/24 -p tcp --dport 22 -j ACCEPT
[root@firewalld ~] # iptables -P INPUT DROP
[root@firewalld ~] # iptables -P OUTPUT DROP
[root@firewalld ~] # iptables -P FORWARD ACCEPT
环回接口是一个逻辑接口
可以实现服务器自己ping自己
可以设置成一个机器的管理口
[root@firewalld ~] # iptables -A INPUT -i lo -p all -j ACCEPT
You have new mail in /var/spool/mail/root
[root@firewalld ~] # iptables -A OUTPUT -o lo -p all -j ACCEPT
service iptables save
[root@firewalld ~] # iptables-save > /etc/sysconfig/iptables
[root@firewalld ~] # cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.21 on Thu Dec 5 16:08:22 2019
*filter
:INPUT ACCEPT [826:97750]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [440:68087]
-A INPUT -i lo -j ACCEPT 和这个iptables -A INPUT -i lo -p all -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Thu Dec 5 16:08:22 2019
[root@firewalld ~] #
[root@web01 ~] # cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=172.16.1.7
PREFIX=24
DEFROUTE=yes
GATEWAY=172.16.1.5
DNS1=223.5.5.5
DNS2=223.6.6.6
[root@lb01 ~] # iptables -A INPUT -s 172.16.1.7 -j ACCEPT
[root@lb01 ~] #
[root@lb01 ~] # cat /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
net.ipv4.ip_forward=1 开启路由转发的功能
[root@lb01 ~] #
[root@lb01 ~] # sysctl -p /etc/sysctl.conf
net.ipv4.ip_forward = 1 重新加载路由转发配置文件
[root@lb01 ~] #
[root@lb01 ~] # iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT -o eth0 --to-source 10.0.0.5
[root@lb01 ~] # iptables -A FORWARD -i eth1 -s 172.16.1.0/24 -j ACCEPT
[root@lb01 ~] # iptables -A FORWARD -o eth0 -s 172.16.1.0/24 -j ACCEPT
[root@lb01 ~] # iptables -A FORWARD -i eth0 -s 172.16.1.0/24 -j ACCEPT
[root@lb01 ~] # iptables -A FORWARD -o eth1 -s 172.16.1.0/24 -j ACCEPT
[root@lb01 ~] #
[root@firewalld ~] # iptables -t nat -A PREROUTING(链) -d 10.0.0.81(访问的目标地址) -p tcp --dport 9000(目标端口) -i eth0(在什么地方做映射) -j DNAT(目的地址做NAT转换) --to-destination 172.16.1.7:22(转换成的目的地址是多少)
[root@firewalld ~] # iptables -t nat -A PREROUTING -d 10.0.0.81 -p tcp --dport 9000 -i eth0 -j DNAT --to-destination 172.16.1.7:22
[root@firewalld ~] # iptables -N oldboy
[root@firewalld ~] # iptables -A oldboy -p tcp --dport 8080 -j ACCEPT
[root@firewalld ~] # iptables -A INPUT -s 172.16.1.0/24 -j oldboy
[root@firewalld ~] #iptables -R oldboy 1 -p tcp --dport 8080:8090 -j ACCEPT
原文:https://www.cnblogs.com/liangyuxing/p/12009669.html