如何修改linux iptables
发布网友
发布时间:2022-04-20 14:55
我来回答
共1个回答
热心网友
时间:2022-04-12 14:57
1.首先介绍一下指令和相关配置文件
启动指令:service
iptables
start
重启指令:service
iptables
restart
关闭指令:service
iptables
stop
然后是相关配置:/etc/sysconfig/iptables
如何操作该配置呢?
vim
/etc/sysconfig/iptables
然后进去修改即可,修改完了怎么办?这里很多人会想到/etc/rc.d/init.d/iptables
save指令,但是一旦你这么干了你刚才的修改内容就白做了。。。
具体方法是:
只修改/etc/sysconfig/iptables
使其生效的办法是修改好后先service
iptables
restart,然后才调用/etc/rc.d/init.d/iptables
save,
因为/etc/rc.d/init.d/iptables
save会在iptables服务启动时重新加载,要是在重启之前直接先调用了/etc/rc.d/init.d/iptables
save那么你
的/etc/sysconfig/iptables
配置就回滚到上次启动服务的配置了,这点必须注意!!!
2.下面介绍一些指令用法(主要还是man iptables看下相关资料才行)
-A:指定链名
-p:指定协议类型
-d:指定目标地址
--dport:指定目标端口(destination
port
目的端口)
--sport:指定源端口(source
port
源端口)
-j:指定动作类型
3.如果我不像修改文件直接打命令可以吗,当然没问题,步骤如下:
例如我给SSH加放行的语句:
添加input记录:
iptables
-A
INPUT
-p
tcp
--dport
22
-j
ACCEPT
添加output记录:
iptables
-A
OUTPUT
-p
tcp
--sport
22
-j
ACCEPT
最后注意需要再执行一下
/etc/init.d/iptables
save,这样这两条语句就保存到刚才那个/etc/sysconfig/iptables
文件中了。
4.接下来说明一下步骤,如果机器不在我身边,我只能SSH进去做iptables规则,那么我必须注意每一步,千万别搞错了,否则就SSH链接不上都有可能!
首先要做的是给咱的SSH进行ACCEPT配置,以免直接无法连接的情况发生:
1.如果SSH端口是22(这里不建议用默认端口最好改掉SSH端口)
iptables
-A
INPUT
-p
tcp
--dport
22
-j
ACCEPT
iptables
-A
OUTPUT
-p
tcp
--sport
22
-j
ACCEPT
注意要/etc/rc.d/init.d/iptables
save,以下每一步都最好执行一遍此语句,以下不再累述。
2.vim
/etc/sysconfig/iptables确定是否已经加入配置,可以的话执行service
iptables
restart重启后生效
3.下面是很危险的操作,如果你第一步没做就会直接可能导致你连不上SSH,此步骤前切记执行第一步!!!
iptables
-P
INPUT
DROP
iptables
-P
OUTPUT
DROP
iptables
-P
FORWARD
DROP
这个步骤是把所有不符合自己配置的规则ACCEPT的连接全部DROP掉,执行完以后如果咱SSH还没掉,那么谢天谢地,安全了,重启下iptables后继续下面的配置!
4.下面咱就不细说了,具体就是看自己服务器要开放哪些端口或者是要访问哪些端口来做具体的配置,下面是我自己的机器的配置:
/etc/sysconfig/iptables文件配置如下:
#
Generated
by
iptables-save
v1.4.7
on
Fri
Mar
2
19:59:43
2012
*filter
:INPUT
DROP
[0:0]
:FORWARD
DROP
[0:0]
:OUTPUT
DROP
[8:496]
-A
INPUT
-m
state
--state
RELATED,ESTABLISHED
-j
ACCEPT
#ping使用的端口
-A
INPUT
-p
icmp
-j
ACCEPT
-A
INPUT
-i
lo
-j
ACCEPT
-A
INPUT
-s
127.0.0.1/32
-d
127.0.0.1/32
-j
ACCEPT
-A
INPUT
-s
192.168.2.200/32
-d
192.168.2.200/32
-j
ACCEPT
#允许服务器自己的SSH(对外部请求来说服务器是目标所以使用--dport)
-A
INPUT
-p
tcp
-m
tcp
--dport
22
-j
ACCEPT
#80端口不用说了吧,服务器网站访问端口
-A
INPUT
-p
tcp
-m
tcp
--dport
80
-j
ACCEPT
-A
INPUT
-p
tcp
-m
tcp
--dport
3306
-j
ACCEPT
-A
INPUT
-p
tcp
-m
tcp
--dport
11211
-j
ACCEPT
-A
INPUT
-p
tcp
-m
tcp
--dport
11212
-j
ACCEPT
-A
FORWARD
-j
REJECT
--reject-with
icmp-host-prohibited
#53端口是DNS相关,TCP和UDP都要配置
-A
INPUT
-p
tcp
-m
tcp
--dport
53
-j
ACCEPT
-A
INPUT
-p
udp
-m
udp
--dport
53
-j
ACCEPT
#ping使用的端口
-A
OUTPUT
-p
icmp
-j
ACCEPT
-A
OUTPUT
-s
127.0.0.1/32
-d
127.0.0.1/32
-j
ACCEPT
-A
OUTPUT
-s
192.168.2.200/32
-d
192.168.2.200/32
-j
ACCEPT
#允许服务器SSH到其他机器(使用外部端口就使用--dport)
-A
OUTPUT
-p
tcp
-m
tcp
--dport
22
-j
ACCEPT
#允许服务器自己的SSH(自已为源输出就使用--sport)
-A
OUTPUT
-p
tcp
-m
tcp
--sport
22
-j
ACCEPT
#访问外部网站80端口(使用外部端口就使用--dport)
-A
OUTPUT
-p
tcp
-m
tcp
--dport
80
-j
ACCEPT
#如果服务器需要访问外部网站,那么OUTPUT也需要配置53端口(使用外部端口就使用--dport)
-A
OUTPUT
-p
tcp
-m
tcp
--dport
53
-j
ACCEPT
-A
OUTPUT
-p
udp
-m
udp
--dport
53
-j
ACCEPT
#如果有访问外部邮箱,那么打开邮箱相关端口(使用外部端口就使用--dport)
-A
OUTPUT
-p
tcp
-m
tcp
--dport
465
-j
ACCEPT
-A
OUTPUT
-p
tcp
-m
tcp
--dport
25
-j
ACCEPT
-A
OUTPUT
-p
tcp
-m
tcp
--dport
110
-j
ACCEPT
#服务器网站访问端口(自已为源输出就使用--sport)
-A
OUTPUT
-p
tcp
-m
tcp
--sport
80
-j
ACCEPT
-A
OUTPUT
-p
tcp
-m
tcp
--sport
3306
-j
ACCEPT
-A
OUTPUT
-p
tcp
-m
tcp
--sport
11211
-j
ACCEPT
-A
OUTPUT
-p
tcp
-m
tcp
--sport
11212
-j
ACCEPT
COMMIT
#
Completed
on
Fri
Mar
2
19:59:43
2012
5.可能有时候需要删除规则,最简单就是修改一下/etc/sysconfig/iptables然后service iptables restart,最后/etc/rc.d/init.d/iptables save即可。
当然也可以使用指令完成:
在网上找了一下,删除规则的方法:
语法是:
iptables
-D
chain
rulenum
[options]
其中:
chain
是链的意思,就是INPUT
FORWARD
之类的
rulenum
是规则的编号。从1
开始。可以使用
--line-numbers
列出规则的编号
所以,例如上面要删除一个INPUT链的规则的话可以这样:iptables
-D
INPUT
3
意思是删除第3条规则。
还有第二种方法。第二种办法是
-A
命令的映射,不过用-D替换-A。当你的链中规则很复杂,而你不想计算它们的编号的时候这就十分有用了。也就是说,你如何用iptables
-A....
语句定义了一个规则,则删除此规则时就用
-D
来代替-
A
其余的都不变即可。
======================
说一下上面的
--line-numbers
选项,如下面的命令:
iptables
-L
INPUT
--line-numbers
列出INPUT
链所有的规则
num
target
prot
opt
source
destination
1
REJECT
tcp
--
anywhere
anywhere
tcp
dpt:microsoft-ds
reject-with
icmp-port-unreachable
2
REJECT
tcp
--
anywhere
anywhere
tcp
dpt:135
reject-with
icmp-port-unreachable
3
REJECT
tcp
--
anywhere
anywhere
tcp
dpt:netbios-ssn
reject-with
icmp-port-unreachable
...
...
删除指定行规则:
[root@localhost
rc.d]#
iptables
-D
INPUT
4
6.最后补充一下,如果想针对某IP进行单独开放端口可以如下配置:
如果我需要对内网某机器单独开放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
7.彻底禁止某IP访问:
#屏蔽单个IP的命令是
iptables
-I
INPUT
-s
123.45.6.7
-j
DROP
#封整个段即从123.0.0.1到123.255.255.254的命令
iptables
-I
INPUT
-s
123.0.0.0/8
-j
DROP
#封IP段即从123.45.0.1到123.45.255.254的命令
iptables
-I
INPUT
-s
124.45.0.0/16
-j
DROP
#封IP段即从123.45.6.1到123.45.6.254的命令是
iptables
-I
INPUT
-s
123.45.6.0/24
-j
DROP
指令I是insert指令
但是该指令会insert在正确位置并不像A指令看你自己的排序位置,因此用屏蔽因为必须在一开始就要加载屏蔽IP,所以必须使用I命令加载,然后注意执行/etc/rc.d/init.d/iptables
save进行保存后重启服务即可
修改linux端口号修改linux端口
1、查看哪些端口被打开netstat-anp。2、关闭端口号:iptables-AINPUT-ptcp--drop端口号-jDROP,iptables-AOUTPUT-ptcp--dport 端口号-jDROP。3、打开端口号:iptables-AINPUT-ptcp--dport端口号-jACCEPT。4、以下是linux打开端口命令的使用方法。nc-lp22(打开22端口,即telnet),netstat-an|grep22...
linux设置iptables防火墙的详细步骤
iptables-AINPUT-ptcp--tcp-flagsALLNONE-jDROP#NONE包(所有标识bit都没有设置)主要是扫描类的数据包 iptables-AINPUT-ptcp!--syn-mstate--stateNEW-jDROP#防止sync-flood攻击 iptables-AINPUT-ptcp--tcp-flagsALLALL-jDROP#ALL包(所有的标注bit都被设置了)也是...
在linux 下如何设置iptables 防火墙
我们可以通过iptables命令来设置netfilter的过滤机制。iptables里有3张表:> Filter(过滤器),进入Linux本机的数据包有关,是默认的表。> NAT(地址转换),与Linux本机无关,主要与Linux主机后的局域网内计算机相关。> Mangle(破坏者),这个表格主要是与特殊的数据包的路由标志有关(通常不用涉及到这个表的修改,对这个表...
实践技巧学习Linux中的IP重定向linux的ip重定向
`/sbin/iptables-save`这将会将 IPtables配置保存到 /etc/sysconfig/iptables文件中。综上所述,学习Linux中的IP重定向可以帮助优化网络的性能。首先要了解iptables命令,接下来可以使用iptables命令来创建和管理与重定向相关的筛选规则。最后,使用/sbin/iptables-save命令将规则写入磁盘。通过学习和熟练掌握使...
Linux下针对路由功能配置iptables的方法详解
2、给iptables源码打补丁,并重新编译iptables3、安装17proto备份iptables脚本和配置文件代码如下:cp /etc/rc.d/init.d/iptables /root/iptables.sysvcp /etc/sysconfig/iptables-config /root/iptables-config2.6内核下载地址https://www.kernel.org/pub/linux/kernel/v2.6/netfilter下载地址http://download.clear...
linux怎么关闭iptables linux如何关闭防火墙
/etc/init.d/iptables status 会得到一系列信息,说明防火墙开着。/etc/rc.d/init.d/iptables stop 关闭防火墙 最后:在根用户下输入setup,进入一个图形界面,选择Firewall configuration,进入下一界面,选择 Security Level为Disabled,保存。重启即可。iptables 是linux下一款强大的防火墙,在不考虑效率...
linux如何关闭防火墙?
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。在开启了防火墙时,做如下设置,开启相关端口,修改/etc/sysconfig/iptables文件,添加以下内容:-ARH-Firewall-1-INPUT-mstate——stateNEW-mtcp-ptcp——dport80-jACCEPT-ARH-Firewall-1-INPUT-mstate——stateNEW-mtcp-ptcp—...
在哪里设置Linux系统的配置linux设置在哪里
Linux系统中的防火墙配置文件是iptables。该文件的位置为/etc/sysconfig/iptables。3. SSH配置 SSH是Linux系统中非常常用的远程管理工具,其配置文件默认在/etc/ssh/sshd_config中。通过修改该文件,我们可以对SSH的一些基本配置进行调整,如端口、最大连接数等。4. 账号权限配置 Linux系统中所有用户的权限...
Linux系统的 iptables 防火墙配置好了,重启有还原了,怎么回事啊!_百度...
你修改的这些都是直接改到内核的,而不是改到配置文件,系统重启后,修改到内核的配置都会消失。解决系统重启规则消失问题,专门有根据配置文件进行的配置恢复,配置恢复功能基本是每个网络设备的必备功能。你这个问题可以通过下面连个命令解决:1、保存当前的iptables规则 iptables-save > /etc/iptables-...
IPTABLES操作方法
在进行IPTABLES操作时,首先我们来了解如何启动和关闭这个防火墙服务。为了使iptables在系统启动时自动运行,你可以使用以下命令:启用iptables开机启动:chkconfig iptables on 若需要在下次重启后关闭iptables,使用:chkconfig iptables off 如果你想即时启动iptables,可以使用:service iptables start 而关闭iptables...