引言
在服务器中,相对其他系统, Centos7
我使用的比较多一些。但是对防火墙命令这一块用的不多(仗着运营商提供的面板偷懒),前两天使用的时候一直在搜网上资料,感觉整理的不是很齐全,现在自己整理一份。
命令
使用 firewalld
命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| systemctl status firewalld
systemctl start firewalld / service firewalld start
systemctl stop firewalld / service firewalld stop
systemctl disable firewalld
firewall-cmd --state
firewall-cmd --zone=public --list-ports
firewall-cmd --list-all
firewall-cmd --zone=public --add-port=80/tcp --permanent --zone 作用域 --add-port=80/tcp 添加端口,格式为:端口/通讯协议 --permanent 永久生效,没有此参数重启后失效 --timeout=seconds 持续一段时间,到期后自动移除,经常用于调试,且不能与 --permanent 同时使用
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --zone=public --query-port=80/tcp
firewall-cmd --reload
|
firewalld
进阶命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| firewall-cmd --add-service=ftp
firewall-cmd --zone=public --add-interface=eth0 --permanent
firewall-cmd --zone=public --add-masquerade
firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=9527
firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.123
firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=9527:toaddr=192.168.1.100
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.123' reject"
firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:ip firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=192.168.1.123
firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:net firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=192.168.1.0/24
firewall-cmd --permanent --zone=public --new-ipset-from-file=/path/blacklist.xml firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset=blacklist drop'
|
使用 iptables
命令
切换到 iptables
首先应该关掉默认的 firewalld
,然后安装 iptables
服务。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| systemctl stop firewald.service systemctl disable firewald.service
yum install -y iptables-services iptables-devel`
systemctl enable iptables.service systemctl start iptables.service
cat /etc/sysconfig/iptables`
在 /etc/sysctl.conf 中添加 net.ipv4.ip_forward=1 vim /etc/sysctl.conf 输入 i 进入编辑,添加 net.ipv4.ip_forward=1 sudo sysctl -p 同步内核参数 继续查看内核参数 less /proc/sys/net/ipv4/ip_forward 如果为 1 则配置生效
|
其他相关运行命令
如要开放 80,22,8080
端口,输入以下命令即可
1 2 3
| /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
|
保存
1
| /etc/rc.d/init.d/iptables save
|
查看打开的端口
1
| /etc/init.d/iptables status
|
关闭防火墙
- 永久性生效,重启后不会复原
- 开启:
chkconfig iptables on
- 关闭:
chkconfig iptables off
- 即时生效,重启后复原
- 开启:
service iptables start
- 关闭:
service iptables stop
参考