标签: CentOS

  • CentOS安装系统后的基本调优

    CentOS安装系统后的基本调优

     

    一.清理开机自动启动的服务

     

    显示出所有服务的所有运行级别的启动状态

    #chkconfig –list

     

    停止所有在运行级别3上开机启动的服务

    #for oldboy in `chkconfig –list|grep 3:on|awk ‘{print $1}’`;do chkconfig –level 3 $oldboy off;done

     

    在开启常用的服务,crond,network,syslog,sshd

    #for oldboy in crond network syslog sshd;do chkconfig –level 3 $oldboy on;done

     

    显示出所有3运行级别下的所有服务(根据需求决定哪个服务启动)

    #chkconfig –list |grep 3:on

     

    二.配置SSH安全

    备份配置文件(更改配置文件前需要进行备份)

    #cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

     

    修改sshd配置文件(提高系统安全性)

    #vi /etc/ssh/sshd_config

    Port 2022 #修改ssh的默认端口,默认为22端口

    PermitRootLogin no #不允许ROOT用户登录

    PermitEmptyPasswords no #不允许空密码登录

    UseDns no #不适用DNS

     

    三.修改LINUX字符集

    在使用英文安装操作系统后,如果系统中有中文,这时候会显示乱码,需要修改字符集

    英文字符集:en_US.UTF-8

    中文字符集:zh_CN.GB18030

     

    #vim /etc/sysconfig/i18n

    LANG=”en_US.UTF-8″

    SYSFONT=”latarcyrheb-sun16″

     

    让修改内容立刻有效

    #source /etc/sysconfig/i18n

     

    四.修改时区并使用ntp服务更新服务器时间

    安装ntp

    #yum install ntp

     

    更新时间

    #ntpdate time.windows.com

     

    每5分钟执行一次更新

    #echo ‘*/5 * * * * ntpdate time.windows.com > /dev/null 2>&1 >>/var/spool/cron/root’

     

    查看计划任务

    #crontab –l

     

    时区是以文件形式存在的,当前的时区文件是在/etc/localtime,我们用东八区,北京,上海的时区文件替换即可:

    #cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

     

    五.加大服务器文件描述符

    显示当前的文件描述符数

    #ulimit –n

    1024

     

    修改文件描述符数

    #vim /etc/security/limits.conf

    * – nofile 65536 #在文本的最后一行添加

    重新登录用户,在次查看文件描述符

    #ulimit –n

    65536

     

    六.调整内核参数

    增加以下项

    #vim /etc/sysctl.conf

    net.ipv4.tcp_fin_timeout = 2

    net.ipv4.tcp_tw_reuse = 1

    net.ipv4.tcp_tw_recycle = 1

    net.ipv4.tcp_syncookies = 1

    net.ipv4.tcp_keepalive_time = 600

    net.ipv4.ip_local_port_range = 4000 65000

    net.ipv4.tcp_max_syn_backlog = 16384

    net.ipv4.tcp_max_tw_buckets = 36000

    net.ipv4.route.gc_timeout = 100

    net.ipv4.tcp_syn_retries = 1

    net.ipv4.tcp_synack_retries = 1

    使修改立即生效#sysctl –p

  • 最小化安装centos不能make问题的解决方法

    解决问题的方法:

    安装:

    yum -y install gcc automake autoconf libtool make

    安装g++:

    yum -y install gcc gcc-c++

     

  • CentOS / Redhat Iptables Firewall Configuration Tutorial

    #!/bin/bash

    # A sample firewall shell script

    IPT=”/sbin/iptables”

    SPAMLIST=”blockedip”

    SPAMDROPMSG=”BLOCKED IP DROP”

    SYSCTL=”/sbin/sysctl”

    BLOCKEDIPS=”/root/scripts/blocked.ips.txt”

     

    # Stop certain attacks

    echo “Setting sysctl IPv4 settings…”

    $SYSCTL net.ipv4.ip_forward=0

    $SYSCTL net.ipv4.conf.all.send_redirects=0

    $SYSCTL net.ipv4.conf.default.send_redirects=0

    $SYSCTL net.ipv4.conf.all.accept_source_route=0

    $SYSCTL net.ipv4.conf.all.accept_redirects=0

    $SYSCTL net.ipv4.conf.all.secure_redirects=0

    $SYSCTL net.ipv4.conf.all.log_martians=1

    $SYSCTL net.ipv4.conf.default.accept_source_route=0

    $SYSCTL net.ipv4.conf.default.accept_redirects=0

    $SYSCTL net.ipv4.conf.default.secure_redirects=0

    $SYSCTL net.ipv4.icmp_echo_ignore_broadcasts=1

    #$SYSCTL net.ipv4.icmp_ignore_bogus_error_messages=1

    $SYSCTL net.ipv4.tcp_syncookies=1

    $SYSCTL net.ipv4.conf.all.rp_filter=1

    $SYSCTL net.ipv4.conf.default.rp_filter=1

    $SYSCTL kernel.exec-shield=1

    $SYSCTL kernel.randomize_va_space=1

     

    echo “Starting IPv4 Firewall…”

    $IPT -F

    $IPT -X

    $IPT -t nat -F

    $IPT -t nat -X

    $IPT -t mangle -F

    $IPT -t mangle -X

     

    # load modules

    modprobe ip_conntrack

     

    [ -f “$BLOCKEDIPS” ] && BADIPS=$(egrep -v -E “^#|^$” “${BLOCKEDIPS}”)

     

    # interface connected to the Internet

    PUB_IF=”eth0″

     

    #Unlimited traffic for loopback

    $IPT -A INPUT -i lo -j ACCEPT

    $IPT -A OUTPUT -o lo -j ACCEPT

     

    # DROP all incomming traffic

    $IPT -P INPUT DROP

    $IPT -P OUTPUT DROP

    $IPT -P FORWARD DROP

     

    if [ -f “${BLOCKEDIPS}” ];

    then

    # create a new iptables list

    $IPT -N $SPAMLIST

     

    for ipblock in $BADIPS

    do

    $IPT -A $SPAMLIST -s $ipblock -j LOG –log-prefix “$SPAMDROPMSG ”

    $IPT -A $SPAMLIST -s $ipblock -j DROP

    done

     

    $IPT -I INPUT -j $SPAMLIST

    $IPT -I OUTPUT -j $SPAMLIST

    $IPT -I FORWARD -j $SPAMLIST

    fi

     

    # Block sync

    $IPT -A INPUT -i ${PUB_IF} -p tcp ! –syn -m state –state NEW -m limit –limit 5/m –limit-burst 7 -j LOG –log-level 4 –log-prefix “Drop Sync”

    $IPT -A INPUT -i ${PUB_IF} -p tcp ! –syn -m state –state NEW -j DROP

     

    # Block Fragments

    $IPT -A INPUT -i ${PUB_IF} -f -m limit –limit 5/m –limit-burst 7 -j LOG –log-level 4 –log-prefix “Fragments Packets”

    $IPT -A INPUT -i ${PUB_IF} -f -j DROP

     

    # Block bad stuff

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL FIN,URG,PSH -j DROP

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL ALL -j DROP

     

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL NONE -m limit –limit 5/m –limit-burst 7 -j LOG –log-level 4 –log-prefix “NULL Packets”

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL NONE -j DROP # NULL packets

     

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags SYN,RST SYN,RST -j DROP

     

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags SYN,FIN SYN,FIN -m limit –limit 5/m –limit-burst 7 -j LOG –log-level 4 –log-prefix “XMAS Packets”

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags SYN,FIN SYN,FIN -j DROP #XMAS

     

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags FIN,ACK FIN -m limit –limit 5/m –limit-burst 7 -j LOG –log-level 4 –log-prefix “Fin Packets Scan”

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags FIN,ACK FIN -j DROP # FIN packet scans

     

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP

     

    # Allow full outgoing connection but no incomming stuff

    $IPT -A INPUT -i ${PUB_IF} -m state –state ESTABLISHED,RELATED -j ACCEPT

    $IPT -A OUTPUT -o ${PUB_IF} -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

     

    # Allow ssh

    $IPT -A INPUT -i ${PUB_IF} -p tcp –destination-port 22 -j ACCEPT

     

    # Allow http / https (open port 80 / 443)

    $IPT -A INPUT -i ${PUB_IF} -p tcp –destination-port 80 -j ACCEPT

    #$IPT -A INPUT -o ${PUB_IF} -p tcp –destination-port 443 -j ACCEPT

     

    # allow incomming ICMP ping pong stuff

    $IPT -A INPUT -i ${PUB_IF} -p icmp –icmp-type 8 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

    #$IPT -A OUTPUT -o ${PUB_IF} -p icmp –icmp-type 0 -m state –state ESTABLISHED,RELATED -j ACCEPT

     

    # Allow port 53 tcp/udp (DNS Server)

    $IPT -A INPUT -i ${PUB_IF} -p udp –dport 53 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

    #$IPT -A OUTPUT -o ${PUB_IF} -p udp –sport 53 -m state –state ESTABLISHED,RELATED -j ACCEPT

     

    $IPT -A INPUT -i ${PUB_IF} -p tcp –destination-port 53 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

    #$IPT -A OUTPUT -o ${PUB_IF} -p tcp –sport 53 -m state –state ESTABLISHED,RELATED -j ACCEPT

     

    # Open port 110 (pop3) / 143

    $IPT -A INPUT -i ${PUB_IF} -p tcp –destination-port 110 -j ACCEPT

    $IPT -A INPUT -i ${PUB_IF} -p tcp –destination-port 143 -j ACCEPT

     

    ##### Add your rules below ######

    #

    #

    ##### END your rules ############

     

    # Do not log smb/windows sharing packets – too much logging

    $IPT -A INPUT -p tcp -i ${PUB_IF} –dport 137:139 -j REJECT

    $IPT -A INPUT -p udp -i ${PUB_IF} –dport 137:139 -j REJECT

     

    # log everything else and drop

    $IPT -A INPUT -j LOG

    $IPT -A FORWARD -j LOG

    $IPT -A INPUT -j DROP

     

    exit 0

  • centOS停止不必要的服务

    #!/bin/sh

    service microcode_ctl stop

    chkconfig –level 235 microcode_stl off

    service gpm stop

    chkconfig –level 235 gpm off

    service kudzu stop

    chkconfig –level 235 kudzu off

    service netfs stop

    chkconfig –level 235 netfs off

    service rawdevices stop

    chkconfig –level 235 rawdevices off

    service saslauthd stop

    chkconfig –level 235 saslauthd off

    service keytable stop

    chkconfig –level 235 keytable off

    service mdmonitor stop

    chkconfig –level 235 mdmonitor off

    service atd stop

    chkconfig –level 235 atd off

    service irda stop

    chkconfig –level 235 irda off

    service psacct stop

    chkconfig –level 235 psacct off

    service apmd stop

    chkconfig –level 235 apmd off

    service isdn stop

    chkconfig –level 235 isdn off

    service iptables stop

    chkconfig –level 235 iptables off

    service ip6tables stop

    chkconfig –level 235 ip6tables off

    service pcmcia stop

    chkconfig –level 235 pcmcia off

    service smartd stop

    chkconfig –level 235 smartd off

    service autofs stop

    chkconfig –level 235 autofs off

    service netdump stop

    chkconfig –level 235 netdump off

    service portmap stop

    chkconfig –level 235 portmap off

    service nfs stop

    chkconfig –level 235 nfs off

    service nfslock stop

    chkconfig –level 235 nfslock off

    service snmptrapd stop

    chkconfig –level 235 snmptrapd off

    service rhnsd stop

    chkconfig –level 235 rhnsd off

    service xinetd stop

    chkconfig –level 235 xinetd off

    service cups stop

    chkconfig –level 235 cups off

    service snmpd stop

    chkconfig –level 235 snmpd off

    service vncserver stop

    chkconfig –level 235 vncserver off

    service hpoj stop

    chkconfig –level 235 hpoj off

    service xfs stop

    chkconfig –level 235 xfs off

    service ntpd stop

    chkconfig –level 235 ntpd off

    service winbind stop

    chkconfig –level 235 winbind off

    service smb stop

    chkconfig –level 235 smb off

    service dc_client stop

    chkconfig –level 235 dc_client off

    service dc_server stop

    chkconfig –level 235 dc_server off

    service aep1000 stop

    chkconfig –level 235 aep1000 off

    service bcm5820 stop

    chkconfig –level 235 bcm5820 off

    service squid stop

    chkconfig –level 235 squid off

    service named stop

    chkconfig –level 235 named off

    service tux stop

    chkconfig –level 235 tux off

    service avahi-daemon stop

    chkconfig –level 235 avahi-daemon off

    service bluetooth stop

    chkconfig –level 235 bluetooth off

    service firstboot stop

    chkconfig –level 235 firstboot off

    service lvm2-monitor stop

    chkconfig –level 235 lvm2-monitor off

    service mcstrans stop

    chkconfig –level 235 mcstrans off

    service pcscd stop

    chkconfig –level 235 pcscd off

    service restorecond stop

    chkconfig –level 235 restorecond off

    service rpcgssd stop

    chkconfig –level 235 rpcgssd off

    service rpcidmapd stop

    chkconfig –level 235 rpcidmapd off

    根据自己的需要对上面的服务适当增减,保存为xxx.sh文件,然后chmod +x xxx.sh,运行之,许多不必要的服务都被关掉了

  • CentOS搭建xfce桌面+VNC教程

    本文将简单带领大家在Linux VPS上安装桌面系统Xfce,并使用VNC对其进行图形界面的使用与管理。

    Xfce与KDE,Gnome一样,都是可视化的桌面前端,其特点是占用资源更小。根据网上言论,资源占用情况大致为Xfce<KDE<Gnome。(具体情况与版本相关,不具备绝对的对比性)

    本文Linux为CentOS 5,所安装Xfce为4.4,还将涉及VNC server,Firefox以及Flash player的安装(挂机?呵呵)。(已在BuyVM 256M OpenVZ下测试通过)

    首先把系统整干净点

    yum remove portmap* httpd* bind9* samba* nscd* sendmail*

    一、安装Xfce 4.4

    yum groupinstall xfce-4.4

    也可通过yum grouplist命令查阅是否存在新的可用版本,替换4.4

    二、安装VNC

    yum install vnc vnc-server

    三、配置VNC

    1.修改配置文件

    vi /etc/sysconfig/vncservers

    加入以下内容:

    VNCSERVERS=”1:root”

    VNCSERVERARGS[1]=”-geometry 800×600″

    2.设置VNC密码

    vncpasswd

    3.启动VNC服务(很多朋友在使用DirectSpace默认的桌面VNC的时候,遇到无法连接“10061错误”,即可在ssh下输入下面命令解决!)

    vncserver

    4.修改vnc文件

    vi /root/.vnc/xstartup

    将文件内容替换为以下内容

    #!/bin/sh

    /usr/bin/startxfce4

    5.设置vnc权限

    chmod +x ~/.vnc/xstartup

    6.重启VNC服务

    service vncserver restart

    7.设置VNC开机启动

    chkconfig vncserver on

    安装中文语言支持(安装中文字体,解决访问中文网站乱码问题)

    yum -y install fonts-chinese

    安装Firefox火狐浏览器

    yum -y install firefox

    安装Firefox的flash player插件

    重新启动VPS,使用VNC连接(VNC Viewer等软件)

    连接方法:你的ip:1

    * 使用firefox访问www.adobe.com,点击Get Flash Player

    * 下载rpm包

    * 在rpm文件所在文件夹右键,进入终端(Open Terminal Here),使用rpm -ivh flash-plugin-*.rpm进行安装。

    * 在firefox的地址栏输入about:plugins查看是否安装成功~

     

  • centos中安装和卸载软件的使用方法

    在Centos中yum安装和卸载软件的使用方法

    安装方法

    安装一个软件时

    yum -y install httpd

    安装多个相类似的软件时

    yum -y install httpd*

    安装多个非类似软件时

    yum -y install httpd php php-gd mysql

    卸载一个软件时

    yum -y remove httpd

    卸载多个相类似的软件时

    yum -y remove httpd*

    卸载多个非类似软件时

    yum -y remove httpd php php-gd mysql

    另外还有一个非常棒的用法

    假如我要执行iostat这个命令来查看CPU与存储设备状态,可是执行却发现没有这个命令

    于是执行yum install iostat,结果说找不到该软件,使用下面的办法可以解决

    yum search iostat就能查到和iostat相关的安装包了,

    另外想安装一个程序,只记得一部分名称,也可以用这个办法来实现安装

    yum search png |grep png

    就能找到我们想安装的libpng这个名称

  • U盘安装CentOS系统

    下面来简单说下使用U盘安装CentOS系统,这里以centos-6.2 i386 minimal为例安装。

    使用到的材料:

    1、centos-6.2 i386 minimal

    下载地址:http://mirrors.163.com/centos/6.2/isos/i386/CentOS-6.2-i386-minimal.iso

    2、UltraISO

    下载地址:http://www.crsky.com/soft/1134.html

    3、U盘一个

    开始安装:

    1、打开UltraISO,依次点击“文件”》“打开”,选择“CentOS-6.2-i386-minimal.iso”文件。

    2、“启动”》“写入硬盘映像”,在“硬盘驱动器选择u盘”,写入方式默认即可,点击“格式化”格式u盘,最后“写入”即可完成。

    3、完成写入后,只保留“images”和“isolinux”两个文件夹,其余的全部删除,然后复制CentOS-6.2-i386-minimal.iso到u盘根目录。

    4、重启以u盘启动,选”Install or upgrade an existing system”回车,语言选择“Chinese(Simplified)”回车,选择键盘模式,默认,然后回车。在下一步“Installation Method”选择“Hard drive”,然后选择u盘所在的分区(不确定的可以一个个尝试)。下面就是常规的系统安装了。

  • CentOS 5.5 文本模式安装

    一、安装前提条件:

    1. VMware Workstation或者Oracle VM VirtualBox,没有的可以GOOGLE一下

    2. CentOS-5.5-i386-bin-DVD.iso,很多大型LINUX相关网站都提供下载

    3. 虚拟机软件的安装和虚拟机创建过程略。虚拟机分配512MB内存,虚拟磁盘大小为6GB。

     

    二、CentOS系统的安装:

    1. 开机光盘启动,进入如下启动画面,输入linux text后回车;

    2. 选择Skip,跳过光盘介质的测试;

    3. 点击OK继续;

    4. 安装过程中的语言选择画面,这里我们选择English;

    5. 键盘布局选择us,美式键盘;

    6. 告警信息提示我们磁盘上之前的数据会被初始化而丢失,选择Yes继续;

    7. 磁盘分区画面,这里我们选择“Create custom layout”自定义分区大小,选择OK继续;

    8. 将光标移到“Free space”上,按键盘的F2键,新建分区;

    9. 分区挂载点输入/boot,文件系统类型选择ext3,分区大小100MB固定大小,强制设置这个分区为主分区,之后选择OK;

    10. 这时我们可以看到/boot挂载点已经建好了。将光标移到“Free space”上,按键盘F2键,创建新的分区;

    11. 文件系统类型选择swap,固定大小256MB,强制设为主分区,之后选择OK。需要说明的是,swap交换分区的大小一般设置为物理内存的1.5至2倍;

    12. 之后我们创建根分区,挂载点输入/,文件系统类型ext3,使用全部可用的磁盘空间,强制其为主分区,之后点击OK;

    13. 分区明细如下图,之后按键盘的F12继续;

    14. 由于设置的swap空间(258M)小于物理内存(512M),系统会提示我们有可能影响性能,选择Yes继续;

    15. 引导程序选择界面,这里我们使用GRUB Boot Loader,选择OK继续;

    16. 有时候我们需要调用特定的参数来启动系统,这时就需要在这个画面输入该参数。默认启动的话,直接选择OK继续;

    17. 高安全级别的情况下,有时需要设置引导程序的密码,不过一般不需要设置,点击OK继续;

    18. 多系统环境中,在这个画面可以选择默认启动的系统。这里我们只是单系统环境,选择OK继续;

    19. 引导程序的安装位置,我们选择主引导扇区(MBR),选择OK;

    20. 是否配置eth0网卡,选择OK;

    21. 选择系统启动时激活,并启动IPv4支持;

    22. 选择手动配置IP地址,根据实际环境输入IP地址和子网掩码;

    23. 根据实际环境输入网关地址和DNS地址;

    24. 手动输入主机名称,之后选择OK继续;

    25. 时区选择画面,这里我们选择“Asia/Shanghai”;

    26. 输入root账号的密码;

    27. 要安装的软件程序包的选择画面,这里我们取消掉所有“*”的选项,之后选择“Customize software selection”来自定义安装;

    28. 一般情况下,只需选择:base(基本环境)、development librarys(开发库)、development tools(开发工具)、editors(编辑器)、system tools(系统工具)、X software development(图形界面开发软件);

     

    29. 提示我们安装过程的完整日志会保存在/root/install.log中,选择OK继续;

    30. 安装进行中;

    31. 安装完成,将安装光盘弹出,之后重启系统;

    32. 第一次启动后会出现如下界面。如果30秒内没有操作则会自动跳过进入命令提示符。之后也可以使用setup命令调用这个界面;

    33. 在命令提示符界面,我们输入root账号和密码进入系统。之后输入setup;

    34. 选择“Firewall Configuration”回车;

    35. 将防火墙状态设置为Disabled,SELinux设置为Disabled,选择OK;

    36. 选择“System services”后回车;

    37. 保留crond、network、sshd、syslog服务,其他一律禁用;

    38. 系统安装完成。