沃梦达 / 编程技术 / 服务器 / 正文

Centos7防火墙firewall与iptables设置

iptables配置yum install iptables -yiptables(选项)(参数) -P:定义规则链中的默认策略; -t表:指定要操纵的表; -A:向规则链中添加条目; -D:从规则链中删除条目; -I:向规则链中...

iptables配置

yum install iptables -y

iptables(选项)(参数)
  -P:定义规则链中的默认策略;
  -t<表>:指定要操纵的表;
  -A:向规则链中添加条目;
  -D:从规则链中删除条目;
  -I:向规则链中插入条目;
  -R:替换规则链中的条目;
  -L:显示规则链中已有的条目;
  -F:清除规则链中已有的条目;
  -Z:清空规则链中的数据包计算器和字节计数器;
  -N:创建新的用户自定义规则链;
  -h:显示帮助信息;
  -p:指定要匹配的数据包协议类型;
  -s:指定要匹配的数据包源ip地址;
  -j<目标>:指定要跳转的目标;
  -i<网络接口>:指定数据包进入本机的网络接口;
  -o<网络接口>:指定数据包要离开本机所使用的网络接口

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d目标IP/目标子网> --dport 目标端口 -j 动作

只允许192.168.121.0/24网段的主机访问22端口,即ssh
  iptables -A INPUT -i ens33 -p tcp -s 192.168.121.0/24 --dport 22 -j ACCEPT
  iptbales -A INPUT -i ens33 -p tcp --dport 22 -j reject

 

只允许192.168.121.0/24网段的主机ping
  iptabls -A INPUT -i ens33 -p icmp -s 192.168.121.0/24 -j ACCEPT
  iptbales -A INPUT -i ens33 -p icmp -j reject

 

命令行添加开放端口:
  iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
  iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

保存输入开放端口:
  /etc/rc.d/init.d/iptables save

vim /etc/sysconfig/iptables
  -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT
  –A 参数就看成是添加一条规则
  –p 指定是什么协议,我们常用的tcp 协议,当然也有udp,例如53端口的DNS
  –dport 就是目标端口,当数据从外部进入服务器为目标端口
  –sport 数据从服务器出去,则为数据源端口使用
  –j 就是指定是 ACCEPT -接收 或者 DROP 不接收
  -m tcp 使用tcp扩展模块
  -m state -state
    INVALID:
    ESTABLISHED:
    NEW:
    RELATED:

开机启动/关闭iptbables

  chkconfig iptbales on

  chkconfig iptables off 

  service iptbales start/stop/status/restart

 

firewalld配置

使用firewall-cmd命令操作

[root@Nextcloud ~]# firewall-cmd --get-zones #显示可用区域
trusted home internal work public external dmz block drop

[root@Nextcloud ~]# firewall-cmd --get-default-zone #显示默认使用区域
public

[root@Nextcloud ~]# firewall-cmd --get-active-zones #显示正在使用区域和网卡
public
interfaces: ens33

[root@Nextcloud ~]# firewall-cmd --set-default-zone=trusted #设置默认区域
Warning: ZONE_ALREADY_SET: trusted
success
[root@Nextcloud ~]# firewall-cmd --reload 
success

[root@Nextcloud ~]# firewall-cmd --panic--on#开启防火墙紧急模式
success
[root@Nextcloud ~]# firewall-cmd --panic-off#关闭防火墙紧急模式
success

[root@Nextcloud ~]# firewall-cmd --zone=public --query-service=ssh #查询是否允许ssh服务请求
yes
[root@Nextcloud ~]# firewall-cmd --zone=public --query-service=http
no
[root@Nextcloud ~]# firewall-cmd --zone=public --query-service=https
no

[root@Nextcloud ~]# firewall-cmd --zone=public --add-service=http #设置允许http服务请求
success
[root@Nextcloud ~]# firewall-cmd --zone=public --add-service=https
success
[root@Nextcloud ~]# firewall-cmd --zone=public --add-service=https --permanent#设置永久允许http服务请求
success
[root@Nextcloud ~]# firewall-cmd --zone=public --add-service=http --permanent
success
[root@Nextcloud ~]# firewall-cmd --zone=public --remove-service=https --permanent#设置永久拒绝http服务请求
success
[root@Nextcloud ~]# firewall-cmd --zone=public --remove-service=http --permanent
[root@Nextcloud ~]# firewall-cmd --reload
success


[root@Nextcloud ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent #设置永久允许访问3306端口
success
[root@Nextcloud ~]# firewall-cmd --zone=public --remove-port=3306/tcp --permanent 设置永久拒绝访问3306端口
success
[root@Nextcloud ~]# firewall-cmd --zone=public --list-ports
3306/tcp

 

流量转发命令:
firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口>:proto=<协议>:toport=<目标端口>:toaddr=<ip地址>

firewall-cmd --permanent --zone=public --add-forward-port=port=1020:proto=tcp:toport=22:toaddr=192.168.121.121

 

富规则:
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address=192.168.121.0/24 service name="ssh" reject"

[root@Nextcloud ~]# firewall-cmd --get-services #显示预先定义的服务
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nfs3 nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server

 

除了iptbale和firewalld防火墙策略设置,还可有服务的访问控制列表

/etc/hosts.allow
/etc/hosts.deny

 

本文标题为:Centos7防火墙firewall与iptables设置

基础教程推荐