欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

iptable规则

程序员文章站 2022-05-28 12:35:47
...
开放以下端口
22122
23000
8080
8088


iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 8088 -j ACCEPT
iptables -A INPUT -p tcp --dport 22122 -j ACCEPT
iptables -A INPUT -p tcp --dport 23000 -j ACCEPT

iptables -A OUTPUT -p tcp --dport 8080 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 8088 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22122 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 23000 -j ACCEPT



当你配置来必要的规则之后,到时候在最后增加拒绝所有的规则了:

iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT

这些规则必须在最后添加。
要删除一个规则,只需把”-A”替换成”-D”即可。


/etc/rc.d/init.d/iptables save


service iptables restart



iptables -L -n --line-numbers

比如要删除INPUT里序号为8的规则,执行:
iptables -D INPUT 8



保证限制所以端口的命令在最后面
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable


[size=large][color=red]配置Iptables规则[/color][/size]
在开始配置规则之前,有必要提出三点建议:
1、规则的顺序很重要。比如一开始你就添加了一个阻止任何的规则,那么你下面的允许规则都不会起作用了。
2、你要记住编写的规则是存储在内存中,不会自动存储磁盘,因此你重启之后,规则就不会了,所以你需要手动执行初始化脚本来保存规则。
3、如果你是在远程来管理服务器,比如SSH,那么配置规则之前首先得添加允许ssh的规则,要不Iptables会把你阻止在外。

# iptables -A INPUT -s 213.10.10.13 -d 192.168.1.1 -p TCP -dport 22 -j ACCEPT

说明:
-A:附加INPUT规则链;
-s: 来源IP,例子中就是你当前登录ssh所用的电脑IP;
-d:目的地址,例子中就是服务器IP
-p:通信协议
–dport:目的端口,例子中是ssh默认端口22;
-j:代表“Jump”,所以之前的规则都匹配,则接受数据包。
下面让我们来为一般的数据包设置基本的规则。Iptables的特性之一是能确定数据包的状态。下面是在一个新的连接的数据包状态:
NEW:第一服务器发送给第二服务器一个SYN数据包来新建一个连接。
RELATED: 第二服务器接收SYN数据包并发送给第一服务器一个SYN-ACK数据包来确定连接正常。
ESTABLISHED: 第一服务器接收到SYN-ACK数据包并发送给第二服务器ACK服务器来做最后的确认,至此连接建立完成,两台服务器开始传输数据。
为了让你的服务器能与其它服务器建立TCP连接,Iptables必须配置如下:

# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -m state --state RELATED,ESTABLISHED



[color=red][size=x-large]自定义规则[/size][/color]
阻止IP:

# iptables -A INPUT -s 213.10.10.13 -j DROP

这条规则表示阻止从IP213.10.10.13传进来的数据包。

# iptables -A INPUT -d 192.168.1.15 -j REJECT

这条规则表示阻止从局域网IP192.168.1.15来的数据包。
允许IP:

# iptables -A INPUT -s 213.10.10.13 -d 192.168.1.4 -p tcp --dport 21
这条规则表示接受来自IP 213.10.10.13到目标地址FTP服务器192.168.1.4的数据包。
当你配置来必要的规则之后,到时候在最后增加拒绝所有的规则了:

# iptables -A INPUT -j REJECT

# iptables -A FORWARD -j REJECT



iptables -L -n

Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8088
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22122
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:23000
[color=red]REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable [/color]

Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8088
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22122
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:23000
相关标签: iptables