当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪解析 iptables常用规则设置      iptables命令可用于配置Linux的包过滤规则,常用于实现防火墙、NAT。   1,删除已有规则 在新设定iptables规则时,一般先确保旧规则被清除,用以下命令清除旧规则:   代码示例: iptables -F (.........
    ▪提高系统负载:优化/etc/sysctl.conf网络参数      在linux中,通过修改/etc/sysctl.conf网络参数,可以一定程度上提高系统的负载。 修改/etc/sysctl.conf文件,增加以下配置:   代码示例: net.ipv4.ip_forward = 1    net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_syn.........
    ▪linux umask命令用法举例      在linux中,umask是目录的权限掩码值。 即该目录在默认情况下,新创建出来的目录和文件的所具有的权限。 但它并不是直接显示的权限,而是一个掩码值,而真实的权限值需要计算。 目录和.........

[1]解析 iptables常用规则设置
    来源: 互联网  发布时间: 2013-12-24

iptables命令可用于配置Linux的包过滤规则,常用于实现防火墙、NAT。
 
1,删除已有规则
在新设定iptables规则时,一般先确保旧规则被清除,用以下命令清除旧规则:
 

代码示例:
iptables -F
(or iptables --flush)

2,设置chain策略
对于filter table,默认的chain策略为ACCEPT,我们可以通过以下命令修改chain的策略:
 

代码示例:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
 

以上命令配置将接收、转发和发出包均丢弃,施行比较严格的包管理。
由于接收和发包均被设置为丢弃,当进一步配置其他规则时,需要注意针对INPUT和OUTPUT分别配置。
当然,如果信任本机器往外发包,以上第三条规则可不必配置。

3,屏蔽指定ip
有时发现某个ip不停的往服务器发包,这时可以使用以下命令,将指定ip发来的包丢弃:
 

代码示例:
BLOCK_THIS_IP="x.x.x.x"
iptables -A INPUT -i eth0 -p tcp -s "$BLOCK_THIS_IP" -j DROP

以上命令设置将由x.x.x.x ip发往eth0网口的tcp包丢弃。

4,配置服务项
利用iptables,可以对日常用到的服务项进行安全管理,比如设定只能通过指定网段、由指定网口通过SSH连接本机:
 

代码示例:
iptables -A INPUT -i eth0 -p tcp -s 192.168.100.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

若要支持由本机通过SSH连接其他机器,由于在本机端口建立连接,因而还需要设置以下规则:
 

代码示例:
iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 22 -m state --state ESTABLESHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state NEW,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

5,网口转发配置
对于用作防火墙或网关的服务器,一个网口连接到公网,其他网口的包转发到该网口实现内网向公网通信,假设eth0连接内网,eth1连接公网,配置规则如下:
 

代码示例:
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

6,端口转发配置
对于端口,可以运用iptables完成转发配置:
 

代码示例:
iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 --dport 422 -j DNAT --to 192.168.102.37:22
 

以上命令将422端口的包转发到22端口,因而通过422端口也可进行SSH连接,当然对于422端口,我们也需要像以上“4.配置服务项”一节一样,配置其支持连接建立的规则。

7,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 限制

8,配置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.101: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.102: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.103:80
 

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

9,将丢弃包情况记入日志
使用LOG目标和syslog服务,可以记录某协议某端口下的收发包情况。
拿记录丢包情况举例,可以通过以下方式实现。

首先,自定义一个chain:
 

代码示例:
iptables -N LOGGING

其次,将所有接收包导入LOGGING chain中:
 

代码示例:
iptables -A INPUT -j LOGGING

然后设置日志前缀、日志级别:
 

代码示例:
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7

最后将包倒向DROP,将包丢弃:
 

代码示例:
iptables -A LOGGING -j DROP

另外,还可以配置syslog.conf文件,指定iptables的日志输出。

您可能感兴趣的文章:
iptables 日志维护的方法分享
iptables防火墙之limit限制方法分享
linux下关闭iptables防火墙及selinux的方法
使用iptables屏蔽IP段的方法举例
配置 iptables 静态防火墙
iptables实现路由转发的例子
iptables防火墙配置一例
iptables配置实例详解
一个实用的iptables shell脚本
iptables实例收藏
linux iptables 开启关闭端口的方法
linux iptables入门教程


    
[2]提高系统负载:优化/etc/sysctl.conf网络参数
    来源: 互联网  发布时间: 2013-12-24

在linux中,通过修改/etc/sysctl.conf网络参数,可以一定程度上提高系统的负载。

修改/etc/sysctl.conf文件,增加以下配置:
 

代码示例:
net.ipv4.ip_forward = 1   
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1800

调整/etc/sysctl.conf  参数解释:
net.ipv4.tcp_syncookies = 1
表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse = 1
表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1
表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

net.ipv4.tcp_fin_timeout = 30
表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。

net.ipv4.tcp_keepalive_time = 1200
表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。

net.ipv4.ip_local_port_range = 1024 65000
表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。

net.ipv4.tcp_max_syn_backlog = 8192
表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。

如果高负载系统使用了netfilter/iptables,调整以下参数:
net.ipv4.ip_conntrack_max = 655360
在内核内存中netfilter可以同时处理的“任务”(连接跟踪条目)

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
跟踪的连接超时结束时间

执行:/sbin/sysctl -p
使修改过的参数即时生效。


    
[3]linux umask命令用法举例
    来源: 互联网  发布时间: 2013-12-24

在linux中,umask是目录的权限掩码值。
即该目录在默认情况下,新创建出来的目录和文件的所具有的权限。
但它并不是直接显示的权限,而是一个掩码值,而真实的权限值需要计算。

目录和文件具有不同的计算方法,具体如下:
1、目录的计算方法,目录系统默认为777,那么此目录的权限就是用777-umask值,就是该目录具有的真实权限。例:
 

代码示例:
[ming@xxx tmp]$ umask
0002

上述例子中,第一位为特殊权限位,真实权限为777-002=775,
 

代码示例:
[ming@xxx tmp]$ mkdir test
[ming@xxx tmp]$ ls -ld test
drwxrwxr-x 2 ming ming 4096 Aug 25 10:48 test

所建目录权限果然为775.

2、文件的计算方法,系统默认所新建的文件都不具有执行权限,因此为666,新建文件权限就是666-002=664.
 

代码示例:
[ming@xxx tmp]$ touch test123
[ming@xxx tmp]$ ls -l test123
-rw-rw-r-- 1 ming ming 0 Aug 25 10:51 test123

新建文件果然为664.

3、修改umask值。
为目录新建权限进行设定。
比如想将test目录中,新建的子目录和文件权限定义为755,那么只需要用系统默认目录777-755即可,结果为022。
例如:
 

代码示例:
[ming@xxx test]$ umask 0022
[ming@xxx test]$ umask
0022
[ming@xxx test]$ mkdir abc
[ming@xxx test]$ ls -ld abc
drwxr-xr-x 2 ming ming 4096 Aug 25 10:59 abc ? # 果然为755权限

如果想让该test目录中新建的文件权限为444,那么就用系统默认文件权限666-444=222。
 

代码示例:
[ming@xxx test]$ umask 0222
[ming@xxx test]$ touch test123
[ming@xxx test]$ ls -l test123
-r--r--r-- 1 ming ming 0 Aug 25 11:03 test123 ? # 果然为444权限

如果想更改整个系统全部默认的umask值,可以更改/etc/bashrc中的umask值。


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3