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/