linux下的防火墙

centos6防火墙iptables

配置文件

centos6下配置文件为/etc/sysconfig/iptables

# Generated by iptables-save v1.4.7 on Mon Dec 25 11:46:40 2017
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2:208]
-A INPUT -p udp -m state --state NEW -m udp --dport 8989 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8989 -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 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Mon Dec 25 11:46:40 2017

添加端口号

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

net转发

cat m-net-forward.sh
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -D POSTROUTING 1
iptables -t nat -D POSTROUTING 1
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j SNAT --to $1
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

查看

iptables -L -t nat  --line-number

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

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

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

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination
1    SNAT       all  --  192.168.1.0/24       anywhere             to:100.102.180.11
2    MASQUERADE  all  --  anywhere             anywhere

删除

iptables -D INPUT 2
iptables -t nat -D POSTROUTING 1

修改

iptables -R INPUT 3 -j ACCEPT

iptables服务启动与关闭

sudo service iptables status
sudo service iptables start
sudo service iptables stop

重定向

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443

iptables端口转发

首先程序绑定1024以上的端口,然后root权限下做转发注意有些系统需要手动开启IP FORWARD功能。但是转发功能是否需要开启呢,有遇到过不需要这一步的情况。

vi /etc/sysctl.conf

修改

net.ipv4.ip_forward = 1

重新加载

sysctl -p /etc/sysctl.conf

centos7防火墙firewalld

firewalld的基本使用

启动systemctl start firewalld
查看状态systemctl status firewalld
停止systemctl disable firewalld
禁用systemctl stop firewalld

systemctl

systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

启动一个服务systemctl start firewalld.service 
关闭一个服务systemctl stop firewalld.service 
重启一个服务systemctl restart firewalld.service 
显示一个服务的状态systemctl status firewalld.service 
在开机时启用一个服务systemctl enable firewalld.service 
在开机时禁用一个服务systemctl disable firewalld.service 
查看服务是否开机启动systemctl is-enabled firewalld.service 
查看已启动的服务列表systemctl list-unit-filesgrep enabled
查看启动失败的服务列表systemctl –failed 

配置firewalld-cmd

查看版本firewall-cmd –version
查看帮助firewall-cmd –help
显示状态firewall-cmd –state
查看所有打开的端口firewall-cmd –zone=public –list-ports
更新防火墙规则firewall-cmd –reload
查看区域信息firewall-cmd –get-active-zones
查看指定接口所属区域firewall-cmd –get-zone-of-interface=eth0
拒绝所有包firewall-cmd –panic-on
取消拒绝状态firewall-cmd –panic-off
查看是否拒绝firewall-cmd –query-panic

端口管理

  • 添加

    firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)

  • 添加一个地址段

    firewall-cmd --zone=public --add-port=5060-5061/udp --permanent

  • 重新载入,热加载

    firewall-cmd --reload

  • 冷加载

    firewall-cmd --complete-reload

  • 查看

    firewall-cmd --zone= public --query-port=80/tcp

  • 看到新端口已经添加

    firewall-cmd --zone=public --list-all

  • 删除

    firewall-cmd --zone= public --remove-port=80/tcp --permanent

使用案例

共享pppoe

cat my-net-forward.sh

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -D POSTROUTING 1
iptables -t nat -D POSTROUTING 1
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j SNAT --to $1
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

查看结果

iptables -L -t nat  --line-number

img

80,443端口重定向

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443

firewalld 与 iptables的比较

  • firewalld可以动态修改单条规则,动态管理规则集,允许更新规则而不破坏现有会话和连接。而iptables,在修改了规则后必须得全部刷新才可以生效;
  • firewalld使用区域和服务而不是链式规则;
  • firewalld默认是拒绝的,需要设置以后才能放行。而iptables默认是允许的,需要拒绝的才去限制;
  • firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现。也就是说,firewalld和iptables一样,它们的作用都用于维护规则,而真正使用规则干活的是内核的netfilter。只不过firewalld和iptables的结果以及使用方法不一样!

netfilter工作流程相关图片

img
img
img
img

相关链接

firewalld 与 iptables
linux的防火墙firewalld和iptables区别和用法
通过iptables实现端口转发和内网共享上网

posted on 2018-12-19 22:17 BlackSwanYucatan 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/BlackSwanYucatan/p/10146527.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux上开启防火墙,可以按照以下步骤进行操作: 1. 使用命令`systemctl start firewalld`来启动防火墙服务。 2. 使用命令`firewall-cmd --zone=public --add-port=1935/tcp --permanent`来开放指定的端口。其中,`--zone`参数指定作用域,`--add-port`参数后面跟着端口号和通信协议,`--permanent`参数表示永久生效。 3. 使用命令`firewall-cmd --reload`来重新加载防火墙配置,使新的端口设置生效。 另外,你也可以使用命令`netstat -ntlp`来查看当前系统上所有已经打开的TCP端口。如果你只想查看特定端口(比如1935端口)的使用情况,可以使用命令`netstat -ntulp | grep 1935`。 这样,你就成功地在Linux上开通了防火墙。请注意,以上操作需要以root用户或具有sudo权限的用户身份执行。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [linux 开启防火墙](https://blog.csdn.net/qq_40711092/article/details/127098853)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [LINUX防火墙的研究与实现(详细配置)](https://download.csdn.net/download/yuanshiyin/2974899)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值