Iptables常用配置和常用协议端口

简介:

由于在服务器部署时,为了方便部署,把本机的iptables都关上了,然后还手欠的保存了设置,再想找回来是不可能了,那就重新设置一些适合我的防火墙策略吧!


如果你使用远程连接到你的服务器,那么ssh端口是不可少的,不要把自己关在外面!

ssh默认端口号是22,可以通过/etc/sshd/sshd.conf来修改

iptables -I INPUT -p tcp --dport 22 -j ACCEPT


然后是拒绝所有的进入链接,有很多人用的DROP,下面简单说一下两者的区别:

iptables -A INPUT -j REJECT

   REJECT和DROP的区别是什么?某天听到Sery的解释,感觉说的很容易理解:

  “就好象骗子给你打电话,drop就是直接拒收。reject的话,相当于你还给骗子回个电话。”

    其实对于到底是使用DROP还是REJECT,从很久以前开始就非常多的人提出这方面的疑问。REJECT其实就比DROP多返回一个ICMP错误信息包,两个策略各有优劣,简单总结如下:
   DROP比REJECT好在节省资源,而且延缓黑客攻击的进度(因为不会给黑客返回任何有关服务器的信息);坏在容易让企业的网络问题难以排查,而且在DDoS攻击的情况容易耗尽所有的带宽。
   REJECT比DROP的好处在于容易诊断和调试网络设备或防火墙造成的问题;坏处上面也说了,你给骗子回个电话,相当于暴露了自己的服务器信息。
   所以一般的建议是在上游防火墙中使用REJECT,在比较危险的面向外网的基础防火墙上,使用DROP要相对安全一些。(文章取自百度知道)


iptables -A是在当前已有记录下面追加一条规则,优先级比他上面的规则低
iptables -I 是在当前已有记录上面插入一条规则,优先级比他下面的规则高

所以,当添加好一天拒绝所有连接的规则后,下面配置的规则都应该在他的上面!

下面开始一些主要服务的端口开启:

开放icmp应答,ftp传输:

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

一.网站服务器

开放8080(tomcat)端口(httpd默认端口80):

iptables -I INPUT -p tcp --dport 8080 -j ACCEPT


二.文件服务器NFS

1.开放2049(NFS)端口和111(RPC):

iptables -I INPUT -p tcp --dport 2049 -j ACCEPT

iptables -I INPUT -p tcp --dport 111 -j ACCEPT

iptables -I INPUT -p ucp --dport 111 -j ACCEPT

2.文件服务启动服务需开放回环端口

iptables -I INPUT -i lo -j ACCEPT 

3.开放mountd和lockd端口

①vim /etc/sysconfig/nfs

RQUOTAD_PORT=875

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

MOUNTD_PORT=892

iptables -I INPUT -p tcp --dport 892 -j ACCEPT

iptables -I INPUT -p udp --dport 892 -j ACCEPT

iptables -I INPUT -p tcp --dport 32803 -j ACCEPT

iptables -I INPUT -p udp --dport 32803 -j ACCEPT

iptables -I INPUT -p tcp --dport 32769 -j ACCEPT

iptables -I INPUT -p udp --dport 32769 -j ACCEPT

iptables -I INPUT -p udp --dport 875 -j ACCEPT

iptables -I INPUT -p tcp --dport 875 -j ACCEPT


三.网络攻击防御

允许一个网段ping 

iptables -I INPUT -p icmp -s 192.168.6.0/24 -j ACCEPT


防Ddos攻击:

iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

--litmit 25/minute 指示每分钟限制最大连接数为25

--litmit-burst 100 指示当总连接数超过100时,启动 litmit/minute 限制

禁止Ping入

#允许内网(192.168.1.*)的ping入,允许ping出,禁止其它网段的ping入

iptables -A INPUT -p icmp --icmp-type 8 -s 192.168.1.0/24 -j ACCEPT

iptables -A INPUT -p icmp --icmp-type 8 -j DROP


四.端口转发

将本机80端口的请求转发到8080端口:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

将本机的81端口的请求全部转发到192.168.1.1:80

#首先要启用ipv4的转发功能:

echo 1 > /proc/sys/net/ipv4/ip_forward

#或者是修改/etc/sysctl.conf以便重启后也会启用转发,然后设定iptables:

iptables -t nat -A PREROUTING -p tcp --dport 81 -j DNAT --to 192.168.1.1:80

iptables -t nat -A POSTROUTING -j MASQUERADE

#如果开启了防火墙功能,注意要将80和81两个端口都打开


五.防火墙规则删除

显示所有规则的行号:

iptables -L INPUT --line-numbers 

删除对应的行号的规则:

iptables -D chain rulenum [options]

iptables -D INPUT number

注意:删除第一条规则后,第二条规则会成为第一条规则!

六.自动化规则设置

当你设置好一台服务器的规则时,还有很多规则差不多的服务器需要设置规则,这样的话,建议把所有规则复制到shell脚本中,直接一执行规则就设置好了!

本文出自 “linux运维技术” 博客,请务必保留此出处http://forall.blog.51cto.com/12356505/1908421

相关文章
|
17天前
|
网络协议
iptables配置tcp端口转发
iptables配置tcp端口转发
25 1
|
25天前
|
负载均衡 网络协议 算法
slb监听协议与端口
SLB是云服务商提供的负载均衡服务,用于分发客户端请求到多台后端服务器,提升服务可用性和响应速度。关键概念包括监听协议(TCP、UDP、HTTP、HTTPS、TCPSSL)和监听端口。监听协议决定了SLB处理请求的方式,而监听端口则是SLB接收请求的入口。配置时需根据应用选择合适协议和端口,并可设置负载均衡算法(如轮询、最少连接等)。客户端应通过SLB统一入口访问后端服务,避免绕过SLB导致的问题。
43 1
|
29天前
|
负载均衡 网络协议 安全
slb选择监听协议和端口
阿里云SLB中,监听协议(TCP、HTTP、HTTPS)与端口(80、443等)决定客户端请求的处理方式。TCP适用于纯TCP或自处理HTTP的场景,HTTP用于智能调度Web服务,HTTPS提供安全的HTTP传输。监听端口通常匹配应用标准,如80 for HTTP,443 for HTTPS。配置时,可考虑HTTPS重定向和传递`X-Forwarded-Proto`头以识别请求来源。选择应基于业务需求和安全考虑。
29 3
|
2月前
|
前端开发 Java 数据库连接
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
33 0
|
4月前
|
数据安全/隐私保护 时序数据库
InfluxData【部署 03】时序数据库 InfluxDB 离线安装配置使用(下载+安装+端口绑定+管理员用户创建+开启密码认证+开机自启配置)完整流程实例分享
InfluxData【部署 03】时序数据库 InfluxDB 离线安装配置使用(下载+安装+端口绑定+管理员用户创建+开启密码认证+开机自启配置)完整流程实例分享
128 0
|
6月前
|
Linux
centos使用iptables实现nat端口转发
centos使用iptables实现nat端口转发
243 4
|
28天前
|
前端开发 应用服务中间件 nginx
nginx中配置不输入端口(指定地址)访问项目的方法
nginx中配置不输入端口(指定地址)访问项目的方法
23 0
|
2月前
|
安全 网络安全 数据安全/隐私保护
|
3月前
|
存储 安全 网络安全
HTTP与HTTPS的区别:安全性、协议地址和默认端口等比较
HTTP与HTTPS的区别:安全性、协议地址和默认端口等比较
142 0
|
4月前
|
Java 关系型数据库 MySQL
【Linux】jdk、tomcat、MySQL环境搭建的配置安装,Linux更改后端端口
【Linux】jdk、tomcat、MySQL环境搭建的配置安装,Linux更改后端端口
64 0