linux防火墙iptables配置规则分享

本文涉及的产品
云防火墙,500元 1000GB
简介: 前面说了Freebsd下ipfw的配置,今天再说一下linux及centos下iptables的通用配置。相比于freebsd的ipfw centos下的iptables更加便于安装配置。

前面说了Freebsd下ipfw的配置,今天再说一下linux及centos下iptables的通用配置。相比于freebsd的ipfw centos下的iptables更加便于安装配置。
默认情况下iptables是集成在centos发行版本之中的,它集成到linux内核中,用户通过iptables,可以对进出你的计算机的数据包进行过滤。通过iptables命令行设置你的规则,来把保护的计算机网络──允许哪些数据通过,哪些不能通过,哪些通过的数据需要进行记录等。通过对iptables的设置甚至可以抵御小规模的DDOS攻击。
运行iptables --version来查看系统是否安装了iptables。

点击(此处)折叠或打开

  1. iptables --version或者iptables -V

 一般会显示当前iptables版本 如    iptables v1.4.7 等。如未显示版本,则表示需要手动安装iptables。下载地址:http://www.netfilter.org/

一.启动iptables
   命令行输入:service iptables status 可以查看当前iptables运行状态,显示如下

[root@localhost ~]# service iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination        

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

表示当前iptables已经运行,如未启动 可以运行 service iptables start 启动防火墙。

二.配置规则前准备
确认iptables已经启动之后,运行iptables --list查看当前iptables策略规则。
配置规则可以修改/etc/sysconfig/iptables 增加你想要的策略。
iptables未启动的情况下/etc/sysconfig/iptables 可能不存在,这时你就需要手动生成一个文件。
touch /etc/sysconfig/iptables  然后再添加规则。
使其生效的办法是修改好后 运行 service iptables restart   系统会载入你配置的iptables规则。
这里有个提示:如果你是刚接触linux或者对与iptables的配置不是很熟悉的话,建议你谨慎点。虚拟机情况还好,如果是远程登录的配置,很可能会把自己挡在外面无法连接。
这时你就需要添加一个Crontab任务
 crontab -e
 

点击(此处)折叠或打开

  1. */5 * * * * root /etc/init.d/iptables stop

这个任务意思是每5分钟关闭一次防火墙,避免出现远程连接SSH断掉无法登录。(此处借鉴抚琴煮酒大咖的办法,在此表示感谢)
 
三.添加具体规则
 
先看一个简单的规则

点击(此处)折叠或打开

  1. Generated by iptables-save v1.3.5 on Sat Nov 10 11:07:00 2012
  2. *filter
  3. :INPUT ACCEPT [0:0]
  4. :FORWARD ACCEPT [0:0]
  5. :OUTPUT ACCEPT [0:0]
  6. -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  7. -A INPUT -i lo -j ACCEPT
  8. -A INPUT -p icmp -j ACCEPT
  9. -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
  10. -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
  11. -A INPUT -j DROP
  12. -A FORWARD -j DROP
  13. -A OUTPUT -j ACCEPT
  14. COMMIT
  15. # Completed on Sat Nov 10 11:07:00 2012

这个规则只允许80 和22端口的连接进入,其余的全部阻止。而对于出去的连接则没有限制。这是针对web服务器进行的一个规则配置,其余的规则可以根据自己的需要添加

 一下是根据网上规则总结的一些配置方法,跟大家分享下

1.屏蔽指定ip
有时候我们发现某个ip不停的往服务器发包,这时我们可以使用以下命令,将指定ip发来的包丢弃:
Black_IP="x.x.x.x"
iptables -A INPUT -i eth0 -p tcp -s "$Black_IP" -j DROP
以上命令设置将由x.x.x.x ip发往eth0网口的tcp包丢弃。
 
2.配置服务项
利用iptables,我们可以对日常用到的服务项进行安全管理,比如设定只能通过指定网段、由指定网口通过SSH连接本机:
  iptables -A INPUT -i eth0 -p tcp -s 192.168.0.0/24 --dport 22 -m state --state NEW,ESTABLESHED -j ACCEPT
  iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

类似的,对于HTTP/HTTPS(80/443)、pop3(110)、rsync(873)、MySQL(3306)等基于tcp连接的服务,也可以参照上述命令配置。
对于基于udp的dns服务,使用以下命令开启端口服务:
iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT 
  
3.网口转发配置
对于用作防火墙或网关的服务器,一个网口连接到公网,其他网口的包转发到该网口实现内网向公网通信,假设eth0连接内网,eth1连接公网,配置规则如下:
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT 
  
4.端口转发配置
  对于端口,我们也可以运用iptables完成转发配置:
iptables -t nat -A PREROUTING -p tcp -d 192.168.0.1 --dport 422 -j DNAT --to 192.168.1.1:22
以上命令将422端口的包转发到22端口,因而通过422端口也可进行SSH连接,当然对于422端口,我们也需要像以上“4.配置服务项”一节一样,配置其支持连接建立的规则。
  
5.DoS攻击防范
利用扩展模块limit,我们还可以配置iptables规则,实现DoS攻击防范:
  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 限制
 
6.配置web流量均衡
我们可以将一台服务器作为前端服务器,利用iptables进行流量分发,配置方法如下:
iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.1:80
iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.2:80
iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.3:80

以上配置规则用到nth扩展模块,将80端口的流量均衡到三台服务器。

ok。先分享到这里,后面还有更多精彩继续哦。

如需转载,请标明出处: http://blog.chinaunix.net/uid-29179844-id-3905551.html

相关文章
|
4月前
|
存储 监控 安全
比较入站和出站防火墙规则
本文介绍了入站与出站流量的区别,以及如何通过配置入站和出站防火墙规则来保护网络安全。入站规则拦截恶意来源的流量,防止攻击;出站规则监控合法流量,阻止数据泄露。同时,推荐使用 EventLog Analyzer 工具实时监控防火墙规则变更、简化日志审计、分析流量和审核 VPN 日志,帮助构筑更安全的网络防线,快速响应潜在威胁。
595 1
|
6月前
|
安全 Linux 开发工具
【Linux】vim使用与配置教程
Vim是一款功能强大的文本编辑器,广泛应用于Linux环境,是开发者和系统管理员的必备工具。本文介绍了Vim的基本操作与简单配置,涵盖命令模式、插入模式和底行模式的使用方法,以及光标定位、复制粘贴、搜索替换等常用技巧。同时,文章还提供了实用的分屏操作和代码注释方法,并分享了通过`.vimrc`文件进行个性化配置(如显示行号、语法高亮、自动缩进等)的技巧,帮助用户提升文本编辑效率。掌握这些内容,能让Vim更好地服务于日常工作与开发需求。
423 3
|
4月前
|
Ubuntu 安全 Linux
CentOS与Ubuntu中防火墙配置命令集汇
有了这些,你就能遨游在 CentOS 和 Ubuntu 的海洋中,频繁地改变你的防火墙设置,快速地应对各种安全威胁,同时也能保证你的系统可以正常工作。出发吧,勇敢的编程者,随着这些命令集的涌动,扬帆起航,走向安全的网络世界!
148 5
|
4月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
315 11
|
3月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
164 0
|
5月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
200 10
|
6月前
|
Java Linux 应用服务中间件
在Rocky Linux 9上安装JDK并配置环境变量!
本教程介绍在Rocky Linux 9上安装JDK并配置环境变量的完整步骤。首先更新系统,清理旧版本JDK相关包及残留文件,确保环境干净。接着搜索并安装所需版本的JDK(如OpenJDK 17),验证安装是否成功。然后查找JDK安装路径,配置全局环境变量`JAVA_HOME`和`PATH`,最后验证环境变量设置。按照此流程操作,可顺利完成Java开发环境搭建,支持多版本切换(如JDK 8/11/17)。生产环境请谨慎操作,避免影响现有服务。
979 21
|
5月前
|
人工智能 Kubernetes Ubuntu
linux配置IP
linux配置IP
477 1
|
6月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
7月前
|
Linux Shell
问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作
修复/etc/passwd文件是解决Linux登录故障的重要步骤。通过进入单用户模式、挂载文件系统、恢复或手动修复/etc/passwd文件,可以有效解决该问题。保持定期备份系统配置文件是预防此类问题的最佳实践。
215 13

热门文章

最新文章