firewalld

firewall-cmd --add-service=http #临时将http服务加到火墙中,即加即生效

firewall-cmd --permanent --add-service=http

firewall-cmd --reload           #永久将http加到火墙中,刷新后才生效

访问http就可以访问了

将http配置文件改为8080端口,再次访问ip:8080访问不到,因为8080端口没有开放

firewall-cmd --permanent --add-port=8080/tcp

firewall-cmd --reload           #永久将8080/tcp的端口加到火墙,刷新后生效

vim /usr/lib/firewalld/services/http.xml  #默认开放http服务的哪一个端口号由这个文件控制,将其中的80改为8080就在开放http服务时默认开放8080端口

Firewall图解:

三个表,五条链

表:filter  mangle  nat

firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.32 -p tcp --dport 22 -j REJECT

#表示除了172.25.254.32这台主机可以使用ssh服务,其他的主机都被拒绝

--direct  使用Direct Rules

ipv4     添加ipv4规则

Filter     针对filter表

INPUT 1 作为INPUT链中的第一条规则 

! -s 172.25.254.32    除了32这个ip

-p tcp --dport 22      tcp协议 端口22 -j 

-j REJECT           方式为reject拒绝

目的地址转换DNAT

firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.43

#所有使用ssh连接我的人都会被重新定向去ssh 172.25.254.43这台主机

源地址转换SNAT

主机1:双网卡172.25.254.132 & 192.168.32.77

firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.25.254.132 masquerade'

#将所有给主机1的数据包伪装成172.25.254.132这个ip的包

主机2:192.168.32.132

添加网关192.168.32.77

Ping主机3可以通,是因为主机1把主机2的ip包伪装成了172.25.254.132,所以可以和172.25.254.32通

主机3:172.25.254.32

Iptables:

是另一种火墙策略

systemctl stop firewalld.service

systemctl mask firewalld.service

yum install iptables-services -y

iptables -F                      #清空已有策略

service iptables save             #保存当前配置

systemctl restart iptables.service  #重启服务

iptables -nL                     #查看iptable策略,发现已经是空的了

iptable
    -t    ##指定表名称
    -n    ##不作解析
    -L    ##列出指定表中的策略
    -A    ##增加策略
    -p    ##网络协议
    --dport ##端口
    -s    ##数据来源
    -j    ##动作
    ACCEPT    ##允许
    REJECT  ##拒绝
    DROP    ##丢弃
    -N    ##增加链
    -E    ##修改链名称
    -X    ##删除链
    -D    ##删除指定策略
    -I    ##插入
    -R    ##修改策略
    -P    ##修改默认策略
iptables  -t filter -nL        #查看filter表中的策略
iptable  -F            #刷掉filter表中的所有策略,当没有用-t指定表名称时默认时filter
service iptables save        #保存当前策略
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 -A INPUT -m state --state RELATED,ESTABLISHED  -j ACCEPT
#表示只要是连接过的就同意
iptables -A INPUT -i lo -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -j REJECT
由于匹配火墙策略是从上到下逐条匹配的,如第一次ssh过来会读取第二条才能被允许,第二次这个主机再次ssh的时候由于之前连接过,是RELATED或ESTABLISHED状态的,所以读到第一条策略就会建立ssh连接了,就不会继续读取后面的策略了,这极大的增加了数据通过火墙的速度
sysctl -a | grep forward
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
sysctl -p
iptables -t nat -A PREROUTING  -i eth1 -j DNAT --to-dest 172.25.0.11
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.100

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值