标签存档: Linux

CentOS6安装ShadowSocks Server

1、查看系统

[root@localhost ~]# cat /etc/issue
CentOS release 6.6 (Final)
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-042stab106.6 #1 SMP Mon Apr 20 14:48:47 MSK 2015 x86_64 x86_64 x86_64 GNU/Linux

2、安装ShadowSocks

# yum install python-setuptools && easy_install pip
# pip install shadowsocks

3、创建配置文件/etc/shadowsocks.json

[root@localhost /]# touch /etc/shadowsocks.json
[root@localhost /]# vi /etc/shadowsocks.json
{
"server":"138.128.208.158",
"server_port":443,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"MyPass",
"timeout":300,
"method":"rc4-md5"
}

备注:加密方式官方默认使用aes-256-cfb,推荐使用rc4-md5,因为 RC4比AES速度快好几倍。 继续阅读 »

Get a list of Open Ports

LINUX

netstat -lntu

as replied by @askmish will give you list of services running on your system on tcp and udp ports where

  • -l = only services which are listening on some port
  • -n = show port number, don’t try to resolve the service name
  • -t = tcp ports
  • -u = udp ports
  • -p = name of the program

You don’t need the ‘p’ parameter as you’re only interested in getting which ports are free and not which program is running on it.

This only shows which ports on your system are used up, though. This doesn’t tell you the status of your network e.g. if you’re behind NAT and you want some services to be accessible from outside. Or if the firewall is blocking the port for outside visitors. In that case, nmap comes to the rescue. WARNING: Use nmap only on networks which are under your control. Also, there are firewall rules which can block nmap pings, you’ll have to fiddle around with options to get correct results.

2016.09.27 更新
netstat -peanut 用这个参数更可以列出是哪个程序在占用哪个端口

Windows

netstat -ano 可以直接列出PID,然后到任务管理器里面可以根据PID查看是哪个程序。

Linux下遍历查找某的文件包含某个关键字的命令

如下命令

grep -rnw '/path/to/somewhere/' -e "pattern"

-r 或者 -R 为递归查找, -n 是行号 -w 为要求全匹配. -l (小写L) 参数可以只列出文件名.

除此以外, –exclude 或者 –include 参数可以提供更有效的查找。比如:

grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"

这个可以查找扩展名为.c或者.h的文件. –exclude的用法也类似:

grep --exclude=*.o -rnw '/path/to/somewhere/' -e "pattern"

上面这行命令在搜索中会排除扩展名为.0的文件。和包含/不包含文件一样,目录也可以使用 –exclude-dir 和 –include-dir 参数。 比如下面列出怎么使用 –exclude-dir:

grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"

如果单是遍历查找文件的话可以用

find . -name '*.xml'

如果想遍历删除某种类型的文件的话,可以用

 find . -name '*.xml' -type f -delete

Ubuntu等效Chkconfig的命令

在Ubuntu中是没有chkconfig这个命令的,如果想要在Ubuntu里面使用类似Chkconfig的命令怎么办呢?

可以试试sysv-rc-conf命令,如果没有安装的话,可以使用apt-get install来安装这个命令。就可以以模拟图形界面的方式来配置各个service的runlevel了。

另外Ubuntu使用Upstart来替代来了传统的sysvinit,详细的使用方法参加:

https://help.ubuntu.com/community/UpstartHowto

Tomcat: redirecting traffic from port 8080 to 80 using iptables

First verify that Tomcat is running on port 8080. Run the following command

# netstat -ntl

The output will look something like

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN
tcp        0      0 :::8009                     :::*                        LISTEN
tcp        0      0 :::8080                     :::*                        LISTEN
tcp        0      0 :::22                       :::*                        LISTEN

Run the following command to redirect port 80 traffic to port 8080

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

Run the folloing command to verify that redirect is working fine

# iptables -t nat -L

The output will look something like

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
REDIRECT   tcp  --  anywhere             anywhere            tcp dpt:http redir ports 8080

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Run the following command to remove the routing

# iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

 

FROM: Glass Onion Blog

6 Examples To Get Linux Hardware Details / Information

Today in this article we are going to discuss about some tools and commands that might answer your questions like name of your motherboard’s chipset, NIC type, etc. Some of the tools are in built into any Linux system and others need to be downloaded.

Example 1: lspci command

This standard Linux utility shows what your systems have got internally. The command is combination of ls, the standard command to list files and PCI that is for the peripheral connection. You can also expect your results to include AGP and onboard components like your USB chipset.

The command is much helpful in diagnosing bugs related to PCI devices.Using -t option of lspci command you can see PCI layout in a tree format. 继续阅读 »

Linux系统中网关IP修改设置命令大全

(一)修改ip地址
即时生效: # ifconfig eth0 192.168.0.20 netmask 255.255.255.0
启动生效: 修改/etc/sysconfig/network-scripts/ifcfg-eth0
修改default gateway
即时生效:# route add default gw 192.168.0.254
启动生效:修改/etc/sysconfig/network-scripts/ifcfg-eth0
修改dns
修改/etc/resolv.conf
修改后可即时生效,启动同样有效
修改host name
即时生效:# hostname fc2
启动生效:修改/etc/sysconfig/network
etc/sysconfig/network-scripts/ifcfg-ethN 文件

(二)在RedHat中,系统网络设备的配置文件保存在“/etc/sysconfig/network-scripts”目录下,ifcfg-eth0包含第一块网卡的配置信息,ifcfg-eth1包含第二块网卡的配置信息。
下面是“/etc/sysconfig/network-scripts/ifcfg-eth0”文件的示例:
DEVICE=eth0
IPADDR=x.x.x.x
NETMASK=255.255.255.0
NETWORK=x.x.x.x
BROADCAST=x.x.x.x
ONBOOT=yes
BOOTPROTO=none
USERCTL=no

(三)若希望手工修改网络地址或在新的接口上增加新的网络界面,可以通过修改对应的文件(ifcfg-ethN)或创建新的文件来实现。 
DEVICE=name     name表示物理设备的名字
IPADDR=addr     addr表示赋给该卡的IP地址
NETMASK=mask    mask表示网络掩码
NETWORK=addr    addr表示网络地址
BROADCAST=addr   addr表示广播地址
ONBOOT=yes/no   启动时是否激活该卡
none:无须启动协议
bootp:使用bootp协议
dhcp:使用dhcp协议
USERCTL=yes/no       是否允许非root用户控制该设备

(四)手工使用命令法是基于以太网卡已装入的情况下,编辑配置文件来配置网络的方法。具体步骤如下:
⑴ 编辑/etc/rc.d/rc.local文件
在该文件中加入类似下列各行:
#配置第一个以太网卡eth0的IP地址,子网掩码,UP起激活作用
/sbin/ifconfig,etho 163.1.5.125 netmask 255.255.0.0 UP
#配置并激活回环设备lo
/sbin/ifconfig lo 127.0.0.1 UP
/sbin/route add –host 127.0.0.1 lo
#让Linux将本地网的信息发送到eth0接口
/sbin/route add –net 163.1.5.125 netmask 255.255.0.0 eth0
#指定访问远程网络的缺省网关,假定缺省网关的IP地址为163.1.1.254
/sbin/route default gw 163.1.1.254 eth0
⑵ 编辑/etc/resdv.conf文件
该文件作用是设置名称服务器。可加入下列内容。
#指定本机域名为linux.net。
Domain linux.net
#域名称服务器(DNS),可以是本地网,也可以是远程网上的。按nameserver的顺序#逐一查找。若未找到,则Linux放弃寻找。
Nameserver 163.1.1.4
Nameserver 10.55.0.33
⑶ 编辑/etc/hosts.conf文件
设置主机文件表。可加入如下行:
order hosts,bind
multi on
163.1.5.125 lgx.linux.net lgx
第一行表示:查找名称时,首先检查本地主机文件(hosts),然后按/etc/resolv.conf所指定的Nameservers顺序查找。
第三行列出主机IP地址、主机名和别名。
对/etc/rc.d/rc.local,/etc/hosts.conf,/etc/resolv.conf三个文件编辑后,必须重新启动机器。

(五)结束语
综上所述,只要采用其中的任意一种方法,定义主机名字、主机表、网络接口设备及路由等参数,配置好Linux以太网,就能接入Internet,享受Internet提供的服务。

任务调度的crond常驻命令

crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而linux任务调度的工作主要分为以下两类:

1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存

2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

继续阅读 »

删除Ubuntu引导菜单中的多余项

Ubuntu在升级了几次内核以后,就会在引导菜单里面多出很多引导项。看着很不爽~

今天研究了下,发现可以通过下面这个命令删除Ubuntu系统中过期的内核,精简菜单项:

 

XML/HTML代码
  1. sudo aptitude purge ~ilinux-image-.*(!`uname -r`)  

 

一行命令就解决问题,不错!

同时在网上还看到另外一个复杂一点的办法:

第一步:列出所有当前已经安装了的内核文件:
 
$dpkg –get-selections|grep linux-image
linux-image-2.6.31-14-generic            install
linux-image-2.6.31-15-generic            install
linux-image-2.6.31-16-generic            install
linux-image-2.6.31-17-generic            install
linux-image-2.6.31-20-generic            install
linux-image-2.6.31-21-generic            install

第二步:删除旧的内核,用以下命令:
 
$sudo apt-get remove [内核文件名]
 
同时删除多个可以在内核文件名之间加空格。比如我要删除14,15我就输入以下命令:
 
$sudo apt-get remove linux-image-2.6.31-14-generic linux-image-2.6.31-15-generic

防范Linux安全11条措施

  由于Linux操作系统良好的网络功能,因此在因特网中大部分网站服务器都是使用的Linux作为主操作系统的。但由于该操作系统是一个多用户操作系统,黑客们为了在攻击中隐藏自己,往往会选择Linux作为首先攻击的对象。那么,作为一名Linux用户,我们该如何通过合理的方法来防范 Linux的安全呢?下面笔者搜集和整理了一些防范Linux安全的几则措施,现在把它们贡献出来,希望各位读者能不断补充和完善。

  1、禁止使用ping命令

  ping命令是计算机之间进行相互检测线路完好的一个应用程序,计算机间交流数据的传输没有经过任何的加密处理,因此我们在用ping命令来检测某一个服务器时,可能在因特网上存在某个非法分子,通过专门的黑客程序把在网络线路上传输的信息中途窃取,并利用偷盗过来的信息对指定的服务器或者系统进行攻击,为此我们有必要在Linux系统中禁止使用 Linux命令。

  在linux里,如果要想使ping没反应也就是用来忽略icmp包,因此我们可以在Linux的命令行中输入如下命令:

  echo 1 /proc/sys/net/ipv4/icmp_echo_igore_all ;

  如果想恢复使用ping命令,就可以输入:

  echo 0 /proc/sys/net/ipv4/icmp_echo_igore_all。

  2、注意对系统及时备份

  为了防止系统在使用的过程中发生以外情况而难以正常运行,我们应该对Linux完好的系统进行备份,最好是在一完成Linux系统的安装任务后就对整个系统进行备份,以后可以根据这个备份来验证系统的完整性,这样就可以发现系统文件是否被非法修改过。如果发生系统文件已经被破坏的情况,也可以使用系统备份来恢复到正常的状态。备份信息时,我们可以把完好的系统信息备份在CD-ROM光盘上,以后可以定期将系统与光盘内容进行比较以验证系统的完整性是否遭到破坏。如果对安全级别的要求特别高,那么可以将光盘设置为可启动的并且将验证工作作为系统启动过程的一部分。这样只要可以通过光盘启动,就说明系统尚未被破坏过。

  3、改进登录服务器

  将系统的登录服务器移到一个单独的机器中会增加系统的安全级别,使用一个更安全的登录服务器来取代Linux自身的登录工具也可以进一步提高安全。在大的 Linux网络中,最好使用一个单独的登录服务器用于syslog服务。它必剧情网须是一个能够满足所有系统登录需求并且拥有足够的磁盘空间的服务器系统,在这个系统上应该没有其它的服务运行。更安全的登录服务器会大大削弱入侵者透过登录系统窜改日志文件的能力。

  4、取消root命令历史记录

  在linux下,系统会自动记录用户输入过的命令,而root用户发出的命令往往具有敏感的信息,为了保证安全性,一般应该不记录或者少记录 root的命令历史记录。为了设置系统不记录每个人执行过的命令,我们可以在 linux的命令行下,首先用cd命令进入到/etc命令,然后用编辑命令来打开该目录下面的profile文件,并在其中输入如下内容:

  HISTFILESIZE=0

  HISTSIZE=0

  当然,我们也可以直接在命令行中输入如下命令:ln -s /dev/null ~/.bash_history 。

  5、为关键分区建立只读属性

  Linux的文件系统可以分成几个主要的分区,每个分区分别进行不同的配置和安装,一般情况下至少要建立/、/usr/local、/var和 /home 等分区。/usr可以安装成只读并且可以被认为是不可修改的。如果/usr中有任何文件发生了改变,那么系统将立即发出安全报警。当然这不包括用户自己改 变/usr中的内容。 /lib、/boot和/sbin的安装和设置也一样。在安装时应该尽量将它们设置为只读,并且对它们的文件、目录和属性进行的任何修改都会导致系统报 警。

  当然将所有主要的分区都设置为只读是不可能的,有的分区如/var等,其自身的性质就决定了不能将它们设置为只读,但应该不允许它具有执行权限。

  6、杀掉攻击者的所有进程

  假设我们从系统的日志文件中发现了一个用户从我们未知的主机登录,而且我们确定该用户在这台主机上没有相应的帐号,这表明此时我们正在受到攻击。为了保证 系统的安全被进一步破坏,我们应该马上锁住指定的帐号,如果攻击者已经登录到指定的系统,我们应该马上断开主机与网络的物理连接。如有可能,我们还要进一 步查看此用户的历史记录,再仔细查看一下其他用户是否也已经被假冒,攻击者是否拥有有限权限;最后应该杀掉此用户的所有进程,并把此主机的IP地址掩码加 入到文件hosts.deny中。

  7、改进系统内部安全机制

  我们可以通过改进Linux操作系统的内部功能来防止缓冲区溢出,从而达到增强Linux系统内部安全机制的目的,大大提高了整个系统的安全性。但缓冲区 溢出实施起来是相当困难的,因为入侵者必须能够判断潜在的缓冲区溢出何时会出现以及它在内存中的什么位置出现。缓冲区溢出预防起来也十分困难,系统管理员 必须完全去掉缓冲区溢出存在的条件才能防止这种方式的攻击。正因为如此,许多人甚至包括Linux Torvalds本人也认为这个安全Linux补丁十分重要,因为它防止了所有使用缓冲区溢出的攻击。但是需要引起注意的是,这些补丁也会导致对执行栈的 某些程序和库的依赖问题,这些问题也给系统管理员带来的新的挑战。

  8、对系统进行跟踪记录

  为了能密切地监视黑客的攻击活动,我们应该启动日志文件,来记录系统的运行情况,当黑客在攻击系统时,它的蛛丝马迹都会被记录在日志文件中的,因此有许多 黑客在开始攻击系统时,往往首先通过修改系统的日志文件,来隐藏自己的行踪,为此我们必须限制对/var/log文件的访问,禁止一般权限的用户去查看日 志文件。当然,系统中内置的日志管理程序功能可能不是太强,我们应该采用专门的日志程序,来观察那些可疑的多次连接尝试。另外,我们还要小心保护好具有根 权限的密码和用户,因为黑客一旦知道了这些具有根权限的帐号后,他们就可以修改日志文件来隐藏其踪迹了。

  9、使用专用程序来防范安全

  有时,我们通过人工的方法来监视系统的安全比较麻烦,或者是不周密,因此我们还可以通过专业程序来防范系统的安全,目前最典型的方法为设置陷井和设置蜜罐 两种方法。所谓陷井就是激活时能够触发报警事件的软件,而蜜罐(honey pot)程序是指设计来引诱有入侵企图者触发专门的报警的陷井程序。通过设置陷井和蜜罐程序,一旦出现入侵事件系统可以很快发出报警。在许多大的网络中, 一般都设计有专门的陷井程序。陷井程序一般分为两种:一种是只发现入侵者而不对其采取报复行动,另一种是同时采取报复行动。

  10、将入侵消灭在萌芽状态

  入侵者进行攻击之前最常做的一件事情就是端号扫瞄,如果能够及时发现和阻止入侵者的端号扫瞄行为,那么可以大大减少入侵事件的发生率。反应系统可以是一个 简单的状态检查包过滤器,也可以是一个复杂的入侵检测系统或可配置的防火墙。我们可以采用诸如Abacus Port Sentry这样专业的工具,来监视网络接口并且与防火墙交互操作,最终达到关闭端口扫瞄攻击的目的。当发生正在进行的端口扫瞄时,Abacus Sentry可以迅速阻止它继续执行。但是如果配置不当,它也可能允许敌意的外部者在你的系统中安装拒绝服务攻击。正确地使用这个软件将能够有效地防止对 端号大量的并行扫瞄并且阻止所有这样的入侵者。

  11、严格管理好口令

  前面我们也曾经说到过,黑客一旦获取具有根权限的帐号时,就可以对系统进行任意的破坏和攻击,因此我们必须保护好系统的操作口令。通常用户的口令是保存在 文件/etc/passwd文件中的,尽管 /etc/passwd是一个经过加密的文件,但黑客们可以通过许多专用的搜索方法来查找口令,如果我们的口令选择不当,就很容易被黑客搜索到。因此,我 们一定要选择一个确保不容易被搜索的口令。另外,我们最好能安装一个口令过滤工具,并借用该工具来帮物料管理流程助自己检查设置的口令是否耐得住攻击。