Linux 防火墙

iptables配置

1. iptables 控制类型

命令 效果
ACCEPT 允许通过
LOG 记录日志信息,然后传递给下一条规则
REJECT 拒绝通过
DROP 直接丢弃

2. 链表规则

规则 效果
PREROUTING 在路由选择前处理数据包
INPUT 处理入站包
OUTPUT 处理出站包
FORWARD 处理转发包
POSTROUTING 在路由选择后处理数据包

3. iptables表

表名 功能
filter 实现包过滤
nat 实现网络地址转换
mangle 实现包修改
raw 实现数据跟踪

优先级

raw > mangle > nat > filter

CentOS和RedHat 6.x

iptables -nL

iptables -I INPUT -p tcp -dport 80 -j ACCEPT

/etc/init.d/iptables save

/etc/init.d/iptables restart

CentOS和RedHat 7.x

查看已经开放的端口:
firewall-cmd --list-ports

开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent

关闭端口
firewall-cmd --zone=public --remove-port=82/tcp --permanent

允许指定IP访问指定端口

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.127.129" port protocol="tcp" port="3306" accept"

删除规则

firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.127.129" port protocol="tcp" port="3306" accept"

命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
重启防火墙

firewall-cmd --reload #重启firewall

systemctl stop firewalld #停止firewall

systemctl disable firewalld #禁止firewall开机启动

firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

查看服务是否开机启动:systemctl is-enabled firewalld.service;echo $?

查看已启动的服务列表:systemctl list-unit-files|grep enabled

permanent adj. 永久的

ufw

ubuntu ufw防火墙

打开:ufw enable
关闭:ufw disable

拒绝所有连入: ufw default deny incoming
允许所有连出: ufw default allow outgoing
允许ssh: ufw allow ssh / ufw allow https
允许22端口: ufw allow 22
指定端口范围: ufw allow 6000:6007/tcp
指定IP地址: ufw allow from 1.1.1.1
指定子网: ufw allow from 10.10.10.0/24
指定子网允许某端口: ufw allow from 15.15.15.0/24 to any port 22

拒绝连接: ufw deny from 10.10.10.1

查看规则: ufw status / ufw status numbered / ufw verbose

删除规则(2是规则号): ufw delete 2 / ufw delete http

more: https://www.howtoing.com/ufw-essentials-common-firewall-rules-and-commands/

原文地址:https://www.cnblogs.com/0x4D75/p/9336570.html