[root@hadoop1~]# systemctl stop firewalld
[root@hadoop1~]# systemctl disable firewalld
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
[root@hadoop1~]# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled)
Active: inactive (dead)
操作系统环境:
CentOS
Linux release 7.0.1406(Core) 64位
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 #设置防火墙开机启动
systemctl stop iptables.service #停止firewall
systemctl disable iptables.service #禁止firewall开机启动
查看防火墙状态
service iptables status
关闭防火墙
service iptables stop
启动防火墙
service iptables start
禁止防火墙自启
chkconfig iptables off
1、列出
iptables
规则
iptables -L -n
列出
iptables
规则并显示规则编号
iptables -L -n --line-numbers
2、列出
iptables nat
表规则(默认是
filter
表)
iptables -L -n -t nat
3、清除默认规则(注意默认是
filter
表,如果对
nat
表操作要加
-t nat
)
#清除所有规则
iptables -F
#重启
iptables
发现规则依然存在,因为没有保存
service iptables restart
#保存配置
service iptables save
4、禁止
ssh
登陆(若果服务器在机房,一定要小心)
iptables -A INPUT -p tcp --dport 22 -j DROP
#删除规则
iptables -D INPUT -p tcp --dport 22 -j DROP
iptables -t nat -D PREROUTING 6
加入一条
INPUT
规则开放
80
端口
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
linux防火墙开放端口,针对固定ip开放端口
编辑/etc/sysconfig/iptables,添加
-A INPUT -m state --state NEW -m tcp -p tcp
-s 127.0.0.1
--dport 6379 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp
-s 126.212.173.185
--dport 6379 -j ACCEPT
以上加红地方就是只对本机和126.212.173.185开放6379端口,其他ip用telnet是无法连接的,
如果访问ip没有限制,就不需要添加
-s ip地址
了,例如
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
对了,一定要在最后添加
-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT
否则,防火墙是不会起作用的。
重新启动防火墙
service iptables start
新的防火墙规则就配好了
附:完整的防火墙配置
# 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 21 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT#mysql-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT#web server-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT#redis-A INPUT -m state --state NEW -m tcp -p tcp -s 127.0.0.1 --dport 6379 -j ACCEPT-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT