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
1015

被折叠的 条评论
为什么被折叠?



