Linux-查看防火墙状态和命令

1、centos7

1.1、开启防火墙

systemctl start firewalld.service

1.2、关闭防火墙

# 一般情况
systemctl stop firewalld.service

# 上述方法不行采用此方法
先用:systemctl unmask firewalld.service 
然后:systemctl start firewalld.service

1.3、开启防火墙开机启动

systemctl enable firewalld.service

1.4、关闭防火墙开机启动

systemctl disable firewalld.service

1.5、查看防火墙状态

# 方法1
systemctl status firewalld

# 方法2
firewall-cmd --state

1.6、开启端口

#注:可以是一个端口范围,如1000-2000/tcp
firewall-cmd --zone=public --add-port=80/tcp --permanent

1.7、移除端口

# 方法1
firewall-cmd --zone=public --remove-port=80/tcp --permanent
# 方法2
firewall-cmd --permanent --remove-port=123/tcp

1.8、重启防火墙

firewall-cmd --reload

1.9、查看某个端口是否开启

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

1.10、查询开放列表

firewall-cmd --list-port

1.11、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-files|grep enabled
# 查看启动失败的服务列表:
systemctl --failed

1.12、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

2、centos6

2.1、防火墙配置文件

# 编辑配置文件   
vim /etc/sysconfig/iptables 
## 文件内容,可在文件中添加相应的配置,开放一些端口,以及端口转发等
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000:20000 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

2.2、service方式

# 开机启动:
chkconfig iptables on
# 开机关闭:
chkconfig iptables off
# 查看防火墙状态:
service iptables status
# 启动防火墙服务:
service iptables start
# 关闭防火墙服务:
service iptables stop
# 重启防火墙服务:
service iptables restart
# 在使用iptables命令添加/删除时,需要用到此命令。若直接编辑/etc/sysconfig/iptables文件,则不需要
保存配置:service iptables save  

2.2、iptables方式

# 防火墙的配置信息均在此路径下
cd /etc/init.d/
# 查看防火墙的状态:
/etc/init.d/iptables status
# 开启防火墙:
/etc/init.d/iptables start
# 临时关闭防火墙:
/etc/init.d/iptables stop
# 重启防火墙:
/etc/init.d/iptables restart

2.3、添加端口

# 修改配置文件
##修改配置文件开放80端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 
##修改配置文件开放8000:20000端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000:20000 -j ACCEPT

# 命令操作
##使用命令添加3307端口 (添加使用 -A 插入使用 -I 删除使用 -D)
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3307 -j ACCEPT
iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 3307 -j ACCEPT
##使用命令添加8000:20000端口 (添加使用 -A 插入使用 -I 删除使用 -D)
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8000:20000 -j ACCEPT

2.4、设置端口转发

# 同端口转发
iptables -t nat -A PREROUTING -p tcp --dport [端口号]
-j DNAT --to-destination [目标IP]
iptables -t nat -A PREROUTING -p udp --dport [端口号]
-j DNAT --to-destination [目标IP]
iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [端口号]
-j SNAT --to-source [本地服务器IP]
iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [端口号]
-j SNAT --to-source [本地服务器IP]
 
# 非同端口转发:使用本地服务器的 8001 端口来转发目标 IP为目标服务器 的 9001 端口(其中/32可以不加)
iptables -t nat -A PREROUTING -p tcp --dport 8001 -j DNAT --to-destination [目标服务器IP]:9001
iptables -t nat -A PREROUTING -p udp --dport 8001 -j DNAT --to-destination [目标服务器IP]:9001
iptables -t nat -A POSTROUTING -d [目标服务器IP]/32 -p tcp -m tcp --dport 9001 -j SNAT --to-source [本地服务器IP]
iptables -t nat -A POSTROUTING -d [目标服务器IP]/32 -p udp -m udp --dport 9001 -j SNAT --to-source [本地服务器IP]
 
# 多端口转发:将本地服务器的 8000~9000 转发至目标 IP 为 目标服务器 的 8000~9000 端口
iptables -t nat -A PREROUTING -p tcp --dport 8000:9000 -j DNAT --to-destination [目标服务器IP]
iptables -t nat -A PREROUTING -p udp --dport 8000:9000 -j DNAT --to-destination [目标服务器IP]
iptables -t nat -A POSTROUTING -d [目标服务器IP] -p tcp --dport 8000:9000 -j SNAT --to-source [本地服务器IP]
iptables -t nat -A POSTROUTING -d [目标服务器IP] -p udp --dport 8000:9000 -j SNAT --to-source [本地服务器IP]
 
# 本机端口转发
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

3、Ubuntu

3.1、安装UFW防火墙

sudo apt-get install ufw
# 安装完成之后初始化UFW防火墙
安装防火墙:sudo apt-get install ufw
开启防火墙:sudo ufw enable
           sudo ufw default deny

3.2、开启防火墙

sudo ufw enable
sudo ufw default deny

3.3、防火墙常用命令

# 允许所有的外部IP访问本机的25/tcp (smtp)端口:
sudo ufw allow smtp
# 允许所有的外部IP访问本机的22/tcp (ssh)端口:
sudo ufw allow 22/tcp
# 允许外部访问53端口(tcp/udp):
sudo ufw allow 53
# 允许此IP访问所有的本机端口:
sudo ufw allow from 192.168.1.100
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53 
# 禁止外部访问smtp服务:
sudo ufw deny smtp
# 删除上面建立的某条规则:
sudo ufw delete allow smtp
# 查看防火墙状态:
sudo ufw status 
# 开启/关闭防火墙 (默认设置是’disable’):
ufw enable|disable
# 转换日志状态:
ufw logging on|off
# 设置默认策略 (比如 “mostly open” vs “mostly closed”):
ufw default allow|deny

你可能感兴趣的:(linux,服务器,运维)