Linux查看并对外开放端口

一、查看端口是否已开放

查看端口是否可访问: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

推荐阅读更多精彩内容