CentOS7防火墙firewalld和iptable的设置和使用
再部署了服務器環境之后,服務器正常啟動,日志也正常打印,但是服務不能訪問,對問題逐一進行排查,最后發現是服務器防火墻設置的問題。于是將防火墻的一些設置方法總結記錄如下:
1、firewalld的基本使用
啟動: systemctl start firewalld
查看狀態: systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
2.systemctl是CentOS7的服務管理工具中主要的工具,它融合之前service和chkconfig的功能于一體。
啟動一個服務:systemctl start firewalld.service
關閉一個服務:systemctl stop firewalld.service
重啟一個服務:systemctl restart firewalld.service
顯示一個服務的狀態:systemctl status firewalld.service
設置firewall開機啟動:systemctl enable firewalld.service
禁止firewall開機啟動:systemctl disable firewalld.service
查看服務是否開機啟動:systemctl is-enabled firewalld.service
查看已啟動的服務列表:systemctl list-unit-files|grep enabled
查看啟動失敗的服務列表:systemctl –failed
3.配置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
4.那怎么開啟一個端口呢
添加
firewall-cmd –zone=public –add-port=80/tcp –permanent (–permanent永久生效,沒有此參數重啟后失效)
重新載入
firewall-cmd –reload
查看
firewall-cmd –zone= public –query-port=80/tcp
刪除
firewall-cmd –zone= public –remove-port=80/tcp –permanent
5.如何開放一個服務
暫時開放 ftp 服務
firewall-cmd –add-service=ftp
永久開放 ftp 服務
firewall-cmd –add-service=ftp –permanent
永久關閉
firewall-cmd –remove-service=ftp –permanent
success
讓設定生效
systemctl restart firewalld
檢視設定是否生效
iptables -L -n | grep 21
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 ctstate NEW
檢查防火牆狀態
firewall-cmd –state
running
systemctl stop firewalld
firewall-cmd –state
not running
firewall-cmd –list-all
public (default)
interfaces:
sources:
services: dhcpv6-client ftp ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
在 FirewallD 的服務名稱
firewall-cmd –get-service
amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https
查詢服務的啟用狀態
firewall-cmd –query-service ftp
yes
firewall-cmd –query-service ssh
yes
firewall-cmd –query-service samba
no
firewall-cmd –query-service http
no
自行加入要開放的 Port
firewall-cmd –add-port=3128/tcp
firewall-cmd –list-all
public (default)
interfaces:
sources:
services: dhcpv6-client ftp ssh
ports: 3128/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
6.CentOS 7.0默認使用的是firewall作為防火墻,這里改為iptables防火墻步驟。
1)、關閉firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
firewall-cmd –state #查看默認防火墻狀態(關閉后顯示notrunning,開啟后顯示running)
2)、iptables防火墻(這里iptables已經安裝,下面進行配置)
vi/etc/sysconfig/iptables #編輯防火墻配置文件
sampleconfiguration for iptables service
you can edit thismanually or use system-config-firewall
please do not askus to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT[0:0]
:OUTPUT ACCEPT[0:0]
-A INPUT -m state–state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -jACCEPT
-A INPUT -i lo -jACCEPT
-A INPUT -p tcp -mstate –state NEW -m tcp –dport 22 -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 80 -jACCEPT
-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 -jREJECT –reject-with icmp-host-prohibited
COMMIT
:wq! #保存退出
備注:這里使用80和8080端口為例。*部分一般添加到“-A INPUT -p tcp -m state –state NEW -m tcp–dport 22 -j ACCEPT”行的上面或者下面,切記不要添加到最后一行,否則防火墻重啟后不生效。
systemctlrestart iptables.service #最后重啟防火墻使配置生效
systemctlenable iptables.service #設置防火墻開機啟動
總結
以上是生活随笔為你收集整理的CentOS7防火墙firewalld和iptable的设置和使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用axis1.4生成webservic
- 下一篇: java解析xml转为Map