一、查看端口是否已开放
查看端口是否可访问:telnet ip 端口号
开放的端口位于/etc/sysconfig/iptables中
查看时通过 cat /etc/sysconfig/iptables 命令查看
如果想开放端口(如:tcp 2222)
(1)通过vim /etc/sysconfig/iptables 进入编辑增添一条:-A INPUT -p tcp -m tcp --dport 8889 -j ACCEPT
(2)执行 /etc/init.d/iptables restart 命令将iptables服务重启
(3)保存 /etc/rc.d/init.d/iptables save
如若不想修改iptables表,可以直接输入下面命令:
#iptables -I INPUT -p tcp --dport 2222 -j ACCEPT
若/etc/sysconfig/iptables不存在;
原因:在新安装的linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。
解决:
在控制台使用iptables命令随便写一条防火墙规则,如:iptables -P OUTPUT ACCEPT
使用service iptables save进行保存,默认就保存到了/etc/sysconfig目录下的iptables文件中
二、关闭所有的 INPUT FORWARD OUTPUT ,只对某些端口开放。
命令:
#iptables -P INPUT DROP
#iptables -P FORWARD DROP
#iptables -P OUTPUT DROP
查看是否已经设置好:
#iptables -L -n
这样设置,只是临时的, 重启服务器还是会恢复原来没有设置的状态,需要进行保存:
#service iptables save
演示只打开22端口:
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
#service iptables save 进行保存
说明:
-A:参数就看成是添加一条 INPUT 的规则
-p:指定是什么协议 我们常用的tcp 协议,当然也有udp,例如53端口的DNS
--dport:就是目标端口,当数据从外部进入服务器为目标端口
--sport:数据从服务器出去,则为数据源端口
-j:就是指定是 ACCEPT接收或者DROP不接收
三、禁止某个IP访问
1台Linux服务器,2台windows client操作系统进行访问
Linux服务器ip:192.168.1.100
Windows1:192.168.1.2
Windows2192.168.1.3
两台windows client都能访问Linux服务器,现在要禁止Windows1访问Linux服务器,Windows2可以正常访问;
通过命令:iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP
说明:-A 就是添加新的规则,由于我们访问网站使用tcp,我们就用 -p tcp , 如果是 udp 就写udp, -s就是来源的意思,ip来源于192.168.1.2,-j 怎么做,我们拒绝它,这里应该是 DROP;
四、iptables规则删除
命令:iptables -L -n --line-number 可以显示规则和相对应的编号
命令:iptables -D INPUT 2
五、iptables对ftp的设置
ftp连接端口有2个 21 和 20 端口,我现在添加对应的规则
#iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
#iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT
六、DNS端口53设置
#iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
#iptables -A INPUT -p udp --sport 53 -j ACCEPT
同时还要设置
#iptables -A INPUT -p udp --dport 53 -j ACCEPT
#iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
对内网某机器单独开放mysql端口,应该如下配置:
#iptables -A INPUT -s 192.168.2.6 -p tcp -m tcp --dport 3306 -j ACCEPT
#iptables -A OUTPUT -s 192.168.2.6 -p tcp -m tcp --sport 3306 -j ACCEPT