当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪Linux使用fdisk建立swap分区      针对没有建立swap或者swap空间比较小时创建swap空间。 1、对硬盘进行分区。 #fdisk  /dev/sda Command (m for help): p Disk /dev/sda: 69.7 GB, 69793218560 bytes 255 heads, 63 sectors/track, 8485 cylinders Units = cylinders of .........
    ▪Linux下禁用与启用SeLinux      在php调用system()函数时或者c、c++等一些语言中要运行一些系统命令来执行某种操作,就要修改SELinux中的配置。 一些Linux默认都是启用SeLinux的,在安装操作系统的时候我们可以选择开启或者关.........
    ▪iptables配置实例详解      一、配置一个filter表的防火墙 (1)查看本机关于IPTABLES的设置情况   代码如下: [root@tp ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source.........

[1]Linux使用fdisk建立swap分区
    来源: 互联网  发布时间: 2013-12-24

针对没有建立swap或者swap空间比较小时创建swap空间。

1、对硬盘进行分区。
#fdisk  /dev/sda
Command (m for help): p

Disk /dev/sda: 69.7 GB, 69793218560 bytes
255 heads, 63 sectors/track, 8485 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1305    10482381   83  Linux
/dev/sda2            1829        5221    27254272+  83  Linux
/dev/sda3            1306        1827     4192965   83  Linux

Partition table entries are not in disk order

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Selected partition 4
First cylinder (1828-8485, default 1828): 5222
Last cylinder or +size or +sizeM or +sizeK (5222-8485, default 8485): 7309

Command (m for help): t
Partition number (1-4): 4
Hex code (type L to list codes): 82
Changed system type of partition 4 to 82 (Linux swap / Solaris)

Command (m for help): p

Disk /dev/sda: 69.7 GB, 69793218560 bytes
255 heads, 63 sectors/track, 8485 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1305    10482381   83  Linux
/dev/sda2            1829        5221    27254272+  83  Linux
/dev/sda3            1306        1827     4192965   83  Linux
/dev/sda4            5222        7309    16771860   82  Linux swap / Solaris

Partition table entries are not in disk order

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@ENGtest sbin]# df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             10153988   3347580   6282292  35% /
/dev/sda3              4061572   3432952    418972  90% /worktmp
/dev/sda2             26400508   7456328  17581468  30% /oracle
tmpfs                  3936180         0   3936180   0% /dev/shm
/dev/sdb             205392632    191892 194767412   1% /oracledata1
/dev/sdc             205392632    191892 194767412   1% /oracledata2
/dev/sdd             137272424    192132 130107264   1% /oracledata3

[root@ENGtest sbin]# fdisk -l /dev/sda

Disk /dev/sda: 69.7 GB, 69793218560 bytes
255 heads, 63 sectors/track, 8485 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1305    10482381   83  Linux
/dev/sda2            1829        5221    27254272+  83  Linux
/dev/sda3            1306        1827     4192965   83  Linux
/dev/sda4            5222        7309    16771860   82  Linux swap / Solaris

Partition table entries are not in disk order

2、建立swap分区,并且进行加载。
[root@ENGtest /]#
[root@ENGtest /]# fdisk -l /dev/sda

Disk /dev/sda: 69.7 GB, 69793218560 bytes
255 heads, 63 sectors/track, 8485 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1305    10482381   83  Linux
/dev/sda2            1829        5221    27254272+  83  Linux
/dev/sda3            1306        1827     4192965   83  Linux
/dev/sda4            5222        7309    16771860   82  Linux swap / Solaris

Partition table entries are not in disk order
[root@ENGtest /]# ls -l
total 392
drwxr-xr-x   2 root   root       4096 Dec 30 13:32 bin
drwxr-xr-x   3 root   root       4096 Dec 30 19:59 boot
drwxr-xr-x  11 root   root       3800 Feb  2 16:23 dev
drwxr-xr-x 100 root   root      12288 Feb  2 16:30 etc
drwxr-xr-x   5 root   root       4096 Jan  9 21:14 home
drwxr-xr-x   2 root   root       4096 Jan 21 10:59 install_doc
drwxr-xr-x  12 root   root       4096 Jan 17 04:02 lib
drwxr-xr-x   8 root   root       4096 Dec 30 13:31 lib64
drwx------   2 root   root      16384 Dec 30 19:53 lost+found
drwxr-xr-x   2 root   root       4096 Feb  2 16:23 media
drwxr-xr-x   2 root   root          0 Feb  2 16:23 misc
drwxr-xr-x   4 root   root       4096 Jan 15 16:42 mnt
drwxr-xr-x   2 root   root          0 Feb  2 16:23 net
drwxr-xr-x   2 root   root       4096 Oct 11  2006 opt
drwxr-xr-x   6 oracle oinstall   4096 Jan 22 10:54 oracle
drwxr-xr-x   3 root   root       4096 Jan  9 16:22 oracledata1
drwxr-xr-x   3 root   root       4096 Jan  9 16:35 oracledata2
drwxr-xr-x   3 root   root       4096 Jan  9 16:41 oracledata3
dr-xr-xr-x 150 root   root          0 Feb  2 16:22 proc
drwxr-x---  23 root   root       4096 Feb  2 16:23 root
drwxr-xr-x   2 root   root      12288 Feb  2 16:23 sbin
-rw-r--r--   1 root   root     199516 Jan 21 10:58 Screenshot-Oracle Database 10g Installation - Installation Method.png
drwxr-xr-x   4 root   root          0 Feb  2 16:22 selinux
drwxr-xr-x   2 root   root       4096 Oct 11  2006 srv
drwxrwxrwx   2 root   root       4096 Feb  2 16:26 swap
drwxr-xr-x  12 root   root          0 Feb  2 16:22 sys
drwxrwxrwt  17 root   root       4096 Feb  2 16:23 tmp
drwxr-xr-x  16 root   root       4096 Jan 16 16:28 usr
drwxr-xr-x  24 root   root       4096 Dec 30 20:20 var
drwxr-xr-x   6 root   root       4096 Jan 19 10:46 worktmp
[root@ENGtest /]# rmdir swap
[root@ENGtest /]# ls -l
total 384
drwxr-xr-x   2 root   root       4096 Dec 30 13:32 bin
drwxr-xr-x   3 root   root       4096 Dec 30 19:59 boot
drwxr-xr-x  11 root   root       3800 Feb  2 16:23 dev
drwxr-xr-x 100 root   root      12288 Feb  2 16:30 etc
drwxr-xr-x   5 root   root       4096 Jan  9 21:14 home
drwxr-xr-x   2 root   root       4096 Jan 21 10:59 install_doc
drwxr-xr-x  12 root   root       4096 Jan 17 04:02 lib
drwxr-xr-x   8 root   root       4096 Dec 30 13:31 lib64
drwx------   2 root   root      16384 Dec 30 19:53 lost+found
drwxr-xr-x   2 root   root       4096 Feb  2 16:23 media
drwxr-xr-x   2 root   root          0 Feb  2 16:23 misc
drwxr-xr-x   4 root   root       4096 Jan 15 16:42 mnt
drwxr-xr-x   2 root   root          0 Feb  2 16:23 net
drwxr-xr-x   2 root   root       4096 Oct 11  2006 opt
drwxr-xr-x   6 oracle oinstall   4096 Jan 22 10:54 oracle
drwxr-xr-x   3 root   root       4096 Jan  9 16:22 oracledata1
drwxr-xr-x   3 root   root       4096 Jan  9 16:35 oracledata2
drwxr-xr-x   3 root   root       4096 Jan  9 16:41 oracledata3
dr-xr-xr-x 150 root   root          0 Feb  2 16:22 proc
drwxr-x---  23 root   root       4096 Feb  2 16:23 root
drwxr-xr-x   2 root   root      12288 Feb  2 16:23 sbin
-rw-r--r--   1 root   root     199516 Jan 21 10:58 Screenshot-Oracle Database 10g Installation - Installation Method.png
drwxr-xr-x   4 root   root          0 Feb  2 16:22 selinux
drwxr-xr-x   2 root   root       4096 Oct 11  2006 srv
drwxr-xr-x  12 root   root          0 Feb  2 16:22 sys
drwxrwxrwt  17 root   root       4096 Feb  2 16:23 tmp
drwxr-xr-x  16 root   root       4096 Jan 16 16:28 usr
drwxr-xr-x  24 root   root       4096 Dec 30 20:20 var
drwxr-xr-x   6 root   root       4096 Jan 19 10:46 worktmp

[root@ENGtest /]# mkswap /dev/sda4
Setting up swapspace version 1, size = 17174380 kB
[root@ENGtest /]# swapon /dev/swap
swapon: cannot stat /dev/swap: No such file or directory
[root@ENGtest /]# swapon /dev/sda4

[root@ENGtest /]# top

top - 16:33:00 up 10 min,  1 user,  load average: 0.10, 0.28, 0.29
Tasks: 135 total,   4 running, 129 sleeping,   2 stopped,   0 zombie
Cpu(s):  0.5%us,  0.0%sy,  0.0%ni, 99.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   7872512k total,   814760k used,  7057752k free,    25516k buffers
Swap: 16771852k total,        0k used, 16771852k free,   330096k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND          
 2961 root      15   0 83872  10m 5316 S    1  0.1   0:02.59 Xorg             
 3240 root      16   0  260m  13m 8476 S    1  0.2   0:00.44 gnome-terminal   
 3565 root      15   0 12716 1068  792 R    1  0.0   0:00.09 top              
    1 root      15   0 10312  664  560 S    0  0.0   0:00.78 init             
    2 root      RT   0     0    0    0 S    0  0.0   0:00.08 migration/0      
    3 root      34  19     0    0    0 S    0  0.0   0:00.00 ksoftirqd/0      
    4 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/0       
    5 root      RT   0     0    0    0 S    0  0.0   0:00.06 migration/1      
    6 root      34  19     0    0    0 S    0  0.0   0:00.00 ksoftirqd/1      
    7 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/1       
    8 root      10  -5     0    0    0 S    0  0.0   0:00.05 events/0         
    9 root      10  -5     0    0    0 S    0  0.0   0:00.02 events/1         
   10 root      10  -5     0    0    0 S    0  0.0   0:00.00 khelper          
   11 root      11  -5     0    0    0 S    0  0.0   0:00.00 kthread          
   13 root      10  -5     0    0    0 S    0  0.0   0:00.00 xenwatch         
   14 root      10  -5     0    0    0 S    0  0.0   0:00.00 xenbus           
   17 root      10  -5     0    0    0 S    0  0.0   0:00.00 kblockd/0        

[3]+  Stopped                 top
[root@ENGtest /]# df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             10153988   3347708   6282164  35% /
/dev/sda3              4061572   3432952    418972  90% /worktmp
/dev/sda2             26400508   7456328  17581468  30% /oracle
tmpfs                  3936180         0   3936180   0% /dev/shm
/dev/sdb             205392632    191892 194767412   1% /oracledata1
/dev/sdc             205392632    191892 194767412   1% /oracledata2
/dev/sdd             137272424    192132 130107264   1% /oracledata3

3、修改文件 /etc/fstab或者/etc/rc.d/rc.local,是启动的时候自动加载swap
如果让swap开机就加载,应该改 /etc/fstab文件,加类似如下一行;
 

代码如下:
/dev/sda6         swap        swap    defaults        0 0 

注:把此行中的/dev/hda7 改为您的交换分区就行;
或者把命令行直接写入 /etc/rc.d/rc.local中也行;

代码如下:
swapon  /dev/sda6

[root@ENGtest /]# cd  etc
[root@ENGtest etc]# cd  rc.d
[root@ENGtest rc.d]# ls
init.d  rc0.d  rc2.d  rc4.d  rc6.d     rc.sysinit
rc      rc1.d  rc3.d  rc5.d  rc.local
[root@ENGtest rc.d]# ls -l
total 112
drwxr-xr-x 2 root root  4096 Jan 15 16:41 init.d
-rwxr-xr-x 1 root root  2255 Sep 22  2006 rc
drwxr-xr-x 2 root root  4096 Jan 15 16:41 rc0.d
drwxr-xr-x 2 root root  4096 Jan 15 16:41 rc1.d
drwxr-xr-x 2 root root  4096 Jan 15 16:41 rc2.d
drwxr-xr-x 2 root root  4096 Jan 15 16:41 rc3.d
drwxr-xr-x 2 root root  4096 Jan 15 16:41 rc4.d
drwxr-xr-x 2 root root  4096 Jan 15 16:41 rc5.d
drwxr-xr-x 2 root root  4096 Jan 15 16:41 rc6.d
-rwxr-xr-x 1 root root   220 Jun 24  2003 rc.local
-rwxr-xr-x 1 root root 26376 Jan 19  2007 rc.sysinit
[root@ENGtest rc.d]# cp rc
rc          rc1.d/      rc3.d/      rc5.d/      rc.local  
rc0.d/      rc2.d/      rc4.d/      rc6.d/      rc.sysinit
[root@ENGtest rc.d]# cp rc.local  rc.local20090202
[root@ENGtest rc.d]# ls-l
-bash: ls-l: command not found
[root@ENGtest rc.d]# ls -l
total 120
drwxr-xr-x 2 root root  4096 Jan 15 16:41 init.d
-rwxr-xr-x 1 root root  2255 Sep 22  2006 rc
drwxr-xr-x 2 root root  4096 Jan 15 16:41 rc0.d
drwxr-xr-x 2 root root  4096 Jan 15 16:41 rc1.d
drwxr-xr-x 2 root root  4096 Jan 15 16:41 rc2.d
drwxr-xr-x 2 root root  4096 Jan 15 16:41 rc3.d
drwxr-xr-x 2 root root  4096 Jan 15 16:41 rc4.d
drwxr-xr-x 2 root root  4096 Jan 15 16:41 rc5.d
drwxr-xr-x 2 root root  4096 Jan 15 16:41 rc6.d
-rwxr-xr-x 1 root root   220 Jun 24  2003 rc.local
-rwxr-xr-x 1 root root   220 Feb  2 16:40 rc.local20090202
-rwxr-xr-x 1 root root 26376 Jan 19  2007 rc.sysinit

[root@ENGtest rc.d]# vi rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
swapon /dev/sda4
~
"rc.local" 8L, 237C written
[root@ENGtest rc.d]# ls
init.d  rc0.d  rc2.d  rc4.d  rc6.d     rc.local20090202
rc      rc1.d  rc3.d  rc5.d  rc.local  rc.sysinit
[root@ENGtest rc.d]# reboot

Broadcast message from root (pts/1) (Mon Feb  2 16:41:28 2009):
The system is going down for reboot NOW!
[root@ENGtest rc.d]#
[root@ENGtest rc.d]#
[root@ENGtest rc.d]# reboot


    
[2]Linux下禁用与启用SeLinux
    来源: 互联网  发布时间: 2013-12-24

在php调用system()函数时或者c、c++等一些语言中要运行一些系统命令来执行某种操作,就要修改SELinux中的配置。

一些Linux默认都是启用SeLinux的,在安装操作系统的时候我们可以选择开启或者关闭SeLinux,但是在安装完系统之后又如何开启与关闭呢?
在/etc/sysconf下有一个SeLinux文件,使用vi打开,更改其中的SELINUX项的值就可以了。
SELINUX=disable  禁用SeLinux
SELINUX=enforcing  使用SeLinux

关闭SELinux

1.无需重启而暂时关闭SELinux

以root用户运行以下命令
# setenforce 0

这条命令的作用是把SELinux暂时设定成Permissive模式(关于Permissive Mode在以下会有介绍)

如果要恢复运行SELinux则可以运行
# setenforce 1

这条命令会把SELinux设定成Enforcing模式

2.把SELinux永久设定为Permissive模式

这里需要讲一下Permissive和Enforcing模式的区别。 SELinux有三种模式:Enforcing, Permissive and Disable.

Enforcing模式就是应用SELinux所设定的Policy, 所有违反Policy的规则(Rules)都会被SELinux拒绝
Permissive和Enforcing的区别就在于它还是会遵循SELinux的Policy,但是对于违反规则的操作只会予以记录而并不会拒绝操作

Disable 完全禁用SELinux

如果要永久设定为Permissive模式,就要修改SELinux的配置文件 /etc/sysconfig/selinux (在RHEL5下这是一个symbolic link to /etc/selinux/conf)
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted

修改SELINUX=permissive,重启生效。


    
[3]iptables配置实例详解
    来源: 互联网  发布时间: 2013-12-24

一、配置一个filter表的防火墙
(1)查看本机关于IPTABLES的设置情况
 

代码如下:
[root@tp ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain RH-Firewall-1-INPUT (0 references)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
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 state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
可以看出我在安装linux时,选择了有防火墙,并且开放了22,80,25端口.

如果你在安装linux时没有选择启动防火墙,是这样的
 

代码如下:
[root@tp ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
什么规则都没有.

(2)清除原有规则.
不管你在安装linux时是否启动了防火墙,如果你想配置属于自己的防火墙,那就清除现在filter的所有规则.
 

代码如下:
[root@tp ~]# iptables -F 清除预设表filter中的所有规则链的规则
[root@tp ~]# iptables -X 清除预设表filter中使用者自定链中的规则


我们在来看一下
 

代码如下:
[root@tp ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
什么都没有了吧,和我们在安装linux时没有启动防火墙是一样的.(提前说一句,这些配置就像用命令配置IP一样,重起就会失去作用),怎么保存。
[root@tp ~]# /etc/rc.d/init.d/iptables save
这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用。
[root@tp ~]# service iptables restart
现在IPTABLES配置表里什么配置都没有了,那我们开始我们的配置吧

(3)设定预设规则
 

代码如下:
[root@tp ~]# iptables -P INPUT DROP
[root@tp ~]# iptables -P OUTPUT ACCEPT
[root@tp ~]# iptables -P FORWARD DROP
 

上面的意思是,当超出了IPTABLES里filter表里的两个链规则(INPUT,FORWARD)时,不在这两个规则里的数据包怎么处理呢,那就是DROP(放弃).应该说这样配置是很安全的.我们要控制流入数据包。
而对于OUTPUT链,也就是流出的包我们不用做太多限制,而是采取ACCEPT,也就是说,不在着个规则里的包怎么办呢,那就是通过。
可以看出INPUT,FORWARD两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过。
这样设置还是挺合理的,当然你也可以三个链都DROP,但这样做我认为是没有必要的,而且要写的规则就会增加.但如果你只想要有限的几个规则是,如只做WEB服务器.还是推荐三个链都是DROP。
注:如果你是远程SSH登陆的话,当你输入第一个命令回车的时候就应该掉了.因为你没有设置任何规则。

(4)添加规则
首先添加INPUT链,INPUT链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链
为了能采用远程SSH登陆,我们要开启22端口.
 

代码如下:
[root@tp ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@tp ~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT (注:这个规则,如果你把OUTPUT 设置成DROP的就要写上这一句
其他的端口也一样,如果开启了web服务器,OUTPUT设置成DROP的话,同样也要添加一条链:
[root@tp ~]# iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT ,其他同理.)
如果做了WEB服务器,开启80端口.
[root@tp ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
如果做了邮件服务器,开启25,110端口.
[root@tp ~]# iptables -A INPUT -p tcp --dport 110 -j ACCEPT
[root@tp ~]# iptables -A INPUT -p tcp --dport 25 -j ACCEPT
如果做了FTP服务器,开启21端口
[root@tp ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
[root@tp ~]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
如果做了DNS服务器,开启53端口
[root@tp ~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT
如果你还做了其他的服务器,需要开启哪个端口,照写就行了.
上面主要写的都是INPUT链,凡是不在上面的规则里的,都DROP
允许icmp包通过,也就是允许ping,
[root@tp ~]# iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成DROP的话)
[root@tp ~]# iptables -A INPUT -p icmp -j ACCEPT (INPUT设置成DROP的话)
允许loopback!(不然会导致DNS无法正常关闭等问题)
IPTABLES -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)
IPTABLES -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)

下面写OUTPUT链,OUTPUT链默认规则是ACCEPT,所以我们就写需要DROP(放弃)的链.
减少不安全的端口连接
 

代码如下:
[root@tp ~]# iptables -A OUTPUT -p tcp --sport 31337 -j DROP
[root@tp ~]# iptables -A OUTPUT -p tcp --dport 31337 -j DROP


有些些特洛伊木马会扫描端口31337到31340(即黑客语言中的 elite 端口)上的服务。既然合法服务都不使用这些非标准端口来通信,阻塞这些端口能够有效地减少你的网络上可能被感染的机器和它们的远程主服务器进行独立通信的机会
还有其他端口也一样,像:31335、27444、27665、20034 NetBus、9704、137-139(smb),2049(NFS)端口也应被禁止,我在这写的也不全,有兴趣的朋友应该去查一下相关资料.
当然出入更安全的考虑你也可以包OUTPUT链设置成DROP,那你添加的规则就多一些,就像上边添加
允许SSH登陆一样.照着写就行了.

限制到某台机器的规则。
如:我们只允许192.168.0.3的机器进行SSH连接
 

代码如下:
[root@tp ~]# iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT
如果要允许,或限制一段IP地址可用 192.168.0.0/24 表示192.168.0.1-255端的所有IP.
24表示子网掩码数.但要记得把 /etc/sysconfig/iptables 里的这一行删了.
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 因为它表示所有地址都可以登陆.
或采用命令方式:
[root@tp ~]# iptables -D INPUT -p tcp --dport 22 -j ACCEPT
然后保存,我再说一边,反是采用命令的方式,只在当时生效,如果想要重起后也起作用,那就要保存.写入到/etc/sysconfig/iptables文件里.
[root@tp ~]# /etc/rc.d/init.d/iptables save
这样写 !192.168.0.3 表示除了192.168.0.3的ip地址
其他的规则连接也一样这么设置.

在下面就是FORWARD链,FORWARD链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链,对正在转发链的监控.
 

代码如下:
开启转发功能,(在做NAT时,FORWARD默认规则是DROP时,必须做)
[root@tp ~]# iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
[root@tp ~]# iptables -A FORWARD -i eth1 -o eh0 -j ACCEPT
丢弃坏的TCP包
[root@tp ~]#iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP
处理IP碎片数量,防止攻击,允许每秒100个
[root@tp ~]#iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包.
[root@tp ~]#iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
我在前面只所以允许ICMP包通过,就是因为我在这里有限制.

二,配置一个NAT表放火墙

1,查看本机关于NAT的设置情况
 

代码如下:
[root@tp rc.d]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 192.168.0.0/24 anywhere to:211.101.46.235
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
 

我的NAT已经配置好了的(只是提供最简单的代理上网功能,还没有添加防火墙规则)。
当然你如果还没有配置NAT的话,你也不用清除规则,因为NAT在默认情况下是什么都没有的。
如果你想清除,命令是
 

代码如下:
[root@tp ~]# iptables -F -t nat
[root@tp ~]# iptables -X -t nat
[root@tp ~]# iptables -Z -t nat

2,添加规则
添加基本的NAT地址转换
 

代码如下:
添加规则,我们只添加DROP链.因为默认链全是ACCEPT.
防止外网用内网IP欺骗
[root@tp sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP
[root@tp sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
[root@tp sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP

如果我们想,比如阻止MSN,QQ,BT等的话,需要找到它们所用的端口或者IP,(个人认为没有太大必要)
例:
 

代码如下:

禁止与211.101.46.253的所有连接
[root@tp ~]# iptables -t nat -A PREROUTING -d 211.101.46.253 -j DROP

禁用FTP(21)端口
[root@tp ~]# iptables -t nat -A PREROUTING -p tcp --dport 21 -j DROP

这样写范围太大了,我们可以更精确的定义.
[root@tp ~]# iptables -t nat -A PREROUTING -p tcp --dport 21 -d 211.101.46.253 -j DROP
这样只禁用211.101.46.253地址的FTP连接,其他连接还可以.如web(80端口)连接.
按照我写的,你只要找到QQ,MSN等其他软件的IP地址,和端口,以及基于什么协议,只要照着写就行了.

最后:
 

代码如下:
drop非法连接
[root@tp ~]# iptables -A INPUT -m state --state INVALID -j DROP
[root@tp ~]# iptables -A OUTPUT -m state --state INVALID -j DROP
[root@tp ~]# iptables-A FORWARD -m state --state INVALID -j DROP

 

代码如下:
允许所有已经建立的和相关的连接
[root@tp ~]# iptables-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@tp ~]# iptables-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

代码如下:
[root@tp ~]# /etc/rc.d/init.d/iptables save
这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用.
[root@tp ~]# service iptables restart

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


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell脚本实现的阳历转农历代码分享 iis7站长之家
▪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