解决Python.h No such file or directory

解决Python.h No such file or directory

系统是Fedora20。

1.可以先查看一下含python-devel的包

yum search python | grep python-devel

2.64位安装python-devel.x86_64,32位安装python-devel.i686,我这里安装:

sudo yum install python-devel.x86_64

3. 进入/usr/include/python2.7看一下现在有没有Python.h,版本不同目录名不同,我这里是2.7版本。其实也可以看到很多.h文件,python需要库或头文件都在这个地方。

如果是其他Linux发行版,也可以用相应的方法。suse用YaST,deb系用apt-get。

Apache、PHP 隐藏版本信息

http://yfyfj.blog.163.com/blog/static/1542478420111122914470/

一、apache

apache 的httpd.conf 有两个配置可以控制是否显示服务器信息给用户。

对于XAMPP,这两者的配置在conf\extra\httpd-default.conf中。

ServerTokens

ServerSignature

默认条件下会把apache版本系统模块都显示出来(HTTP 返回头)

设置为:

ServerTokens Prod

ServerSignature Off

就隐藏Apache的Apache Version信息。

还有如果列举目录的话会显示域名信息(文件列表正文)
如果不想要就可以调这两个参数
ServerTokens
ServerSignature

ServerSignature On|Off|Email

ServerTokens Minimal|Prod|OS|Full

ServerTokens Prod[uctOnly]
Server sends (e.g.): Server: Apache
ServerTokens Min[imal]
Server sends (e.g.): Server: Apache/1.3.0
ServerTokens OS
Server sends (e.g.): Server: Apache/1.3.0 (Unix)
ServerTokens Full (or not specified)

ServerSignature
控制由系统生成的页面(错误信息,mod_proxy ftp directory listing等等)的页脚中如何显示信息。

可在全局设置文件中控制,或是通过.htaccess文件控制
默认为”off”(ServerSignature Off),有些Linux发行版本可能会打开这个阀门,比如Debian在默认的虚拟主机上默认将这个阀门设置为开放
全局阀门的阀值会被虚拟主机或目录单位的配置文件中的阀值所覆盖,所以,必须确保这样的事情不应该发生
可用的阀值为下面所示:
Off (default): 不输出任何页脚信息 (如同Apache1.2以及更旧版本,用于迷惑)
On:输出一行关于版本号以及处于运行中的虚拟主机的ServerName (2.0.44之后的版本,由ServerTokens负责是否输出版本号)
EMail: 创建一个发送给ServerAdmin的”mailto”

二、隐藏PHP 版本

php.ini

expose_php On
改成
expose_php Off

重启apache后,php版本在http头中隐藏了。

远程连接工具PuTTY和MTPuTTY

PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件

官网 http://www.chiark.greenend.org.uk/~sgtatham/putty/ putty的基本使用可以见官网。

这里主要推荐使用MTPuTTY,是一个PuTTY多标签的插件

官网 http://www.ttyplus.com/multi-tabbed-putty/ 可以在一个页面上打开多个session,基本使用可以见官网也可以google。使用alt键可以显示/隐藏菜单栏。

配置putty选项

Servers->Properties->Run PuTTY Config->PuTTY Configuration->Setting PuTTY option->save->close PuTTY Configuration->choose Putty session in Properties->restart MTPutty

ssh不断开设置

Servers->Properties->Run PuTTY Config->PuTTY Configuration->Setting PuTTY option->connection->Seconds between keepalives(e.g.60) 设置每分钟都发送null packages

SSH客户端Putty与多标签的Putty CM(puttycm)/MTPutty的配置使用方法

SSH客户端Putty与多标签的Putty CM(puttycm)/MTPutty的配置使用方法

本文主要介绍ssh客户端putty和多标签多选项卡的putty管理器putty CM(puttycm)、MTPutty的使用方法和常用配置选项说明。

关于Putty介绍这里就不多说了,

一、Putty快速起步

1.开始一个任务双击putty.exe;
2.在Host Name(or IP address)输入欲访问的主机名或IP;
如:192.168.1.4
3.在protocol选择使用的协议,一般是telnet或ssh,取决于服务器的提供服务。
4.可以把所选的任务配置存起来,在Saved Session输入任务的名字。
5.双击Open, 就出现画面,至此,就可以使用putty

二.Putty使用技巧
当然,上面介绍的知识最基本的使用方法,常见使用方法和技巧还有:
1.中文输入支持
putty也支持中文输入,要设置一下:
Window->;Appearence->;Font:change->;宋体,字符集选择CHINESE_GB2312。

2. 分颜色显示支持
putty也支持分颜色显示目录,可执行文件,普通文件等,要设置一下:
connection->;terminal type string->;将默认的xterm改为xterm-color

3.为任务建立一个快捷方式
putty可以为经常访问的站点,建立一个windows快捷方式。建立方法:
先选中putty.exe,右击鼠标,发送得到桌面。然后右击快捷方式,选”属性”,在快捷方式–目标—”c:\putty.exe”改为”c:\putty.exe @mysession”
4.复制和粘贴
在putty窗口中,通过鼠标左键拖动选取复制对象,如一个命令,同时已经加入到windows的粘贴板了,通过单击鼠标右键来粘贴对象。在windwos应用可以直接粘贴使用。同时windows的粘贴板的对象可以在putty窗口中通过单击鼠标右键来粘贴对象。

三、ssh,telnet,rlogin,raw四种方式区别和联系
1、Ssh,telnet,rlogin都可以用来远程连接unix.通过提供类似windows的”dos窗口”,来操作linux.
2、SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样”中间人”这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺 骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为 FTP、Pop、甚至为PPP提供一个安全的”通道”。Ssh有两个版本:ssh1和ssh2.
3、SSH默认使用端口号22,telnet默认使用端口号23。telnet默认使用端口号513。
4、Ssh和rlogin可以允许登录时不必输入密码。
5、Ssh可以在登录时执行脚本。
6、很多的tcp/ip协议包含着明文传输的命令,如smtp,nntp,http,因此使用raw方式可以看到这些明文传输的命令,检查是否正确等。

putty的使用方法
直接在Windows底下执行,执行的图标有点像底下这样:

这个时候请注意,由于我们比较喜欢将固定的几个主机的IP记录下来,所以在这里我们需要先进行一些基本的设定才行!在上图中,我们需要填写:

(1)HostName(or IP address) 那一项,及

(2)Saved Sessions 取个好记的名字,

(3)并且选择SSH 那个选项才行!

  以我的区域内网络为例,我可以写成这个模样:

请千万记得,填写完毕之后,一定要按下右边的『Save』按键,这样你的设定才会被记录下来喔!接着下来,我们要设定的是每次登入的时候,都会进行记录的 项目,所以,你可以在左边的画面上面按下『Logging』然后将右边的『Always append to the end of it』,这样才不会每次登入的时候,系统都要问你一次,是否需要记录!

接着下来,我们还可以调整整个putty 的屏幕大小!以下图为例,我设定我的登入画面为40 行与100 个字符!这样的画面比起传统的24 * 80 要大的多,看起来也比较舒服就是了。那么那个1000 表示我的滚动条有1000 行的纪录,可以方便往前查询!

调整完了屏幕的大小之后,再来这是最重要的:『你要以第几个SSH version 进入?!』前面说过,我们预设是以version2 来登入的,所以这里我们可以调整为2 那个项目!这样每次登入都会以version 2 的模式登入主机了!

好了,已经都设定完毕了,接下来就是要记录!所以请回到『Session』的设定里面,再按下一次『Save』,这个时候在中间的大框框就会出现你输入的 记录名称,然后,以后要登入SSH 主机时,就直接给他点两下test.linux.org 那个(就是你刚刚自行设定的纪录名称),就可以进入你所点选的主机了!

整个putty 大致上的流程就是这样!如此一来,您就可以在Windows上面以SSH 的协议,登入远程的Linux 主机!很方便吧!如果还要其它的设定,那么就直接修改Saved Sessions 与HostName 这两个项目,然后再次给他Save ,就又多一个设定值了!并且可以和刚刚的设定值相同。

o psftp:

  这一支程序的重点则是在于以sftp 联机上Server 。联机的方式可以直接点选psftp 这个档案,让他直接激活,则会出现下面的图样:

 这个时候可以填入你要连接上去的主机名称,例如我的区域内网络test.linux.org 这个主机:

这样我们就可以正常的连接远程了。

当然还有更多的使用方法可以参考:http://www.putty.ws/node/9

使用putty keygen来配置ssh的公钥私钥匹配连接

1. 下载puttygen.exe: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

2. 使用puttygen来产生公钥和私钥;

3. 然后把公钥保存到主机为id_rsa.pub,然后拷贝到需要连接的server主机上,加入到~/.ssh/authorized_keys

cat id_rsa.pub >> ~/.ssh/authorized_keys

4. 把生成的私钥保存到putty所在的路径下,命名为id_rsa.ppk

然后在putty里配置如下:

Putty Configuration > Load a session > Connection > SSH > Auth > Private key file for authentication > choose the private key file id_rsa.ppk > save the session

Putty中的PuTTY Connection Manager 工具

PuTTY Connection Manager 是一款非常棒的 PuTTY 增强工具。它使用 PuTTY 作为内核,保持 PuTTY 强大功能的同时,又增加了很多实用的功能。 通过它,可以实现 PuTTY 自动登录、多标签、多级会话目录树存储等功能。下载puttycm可以到

http://download.csdn.net/detail/nouth/3804792

PuTTY Connection Manager(以下简称puttyCM)的运行需要 .NET Framework 2.0,可以到官方网站 下载。

第一次启动 puttyCM 它会提示让你指定 putty.exe 的路径,以便它自动启动管理 PuTTY。需要注意的是,指定的 putty.exe 最好是官方原版的,而不是经过修改的(汉化版除外),例如修改版本就是不可以的,下面我还要提到为什么最好不使用修改版。

puttyCM 既可以直接使用 PuTTY 中的会话设置进行连接,也可以在自己的连接库中管理连接。推荐使用 puttyCM 自己的连接库管理连接,因为它不仅支持树形的目录管理,非常方便,更支持自动登录等高级功能。

使用 puttyCM 自己的连接库管理连接很简单,首先需要创建一个库。点菜单中的 File -> New -> Database,在弹出的窗口中输入库的名字。之后点 Create Database。

此时在主界面的右边就可以看到创建的连接库了,默认的它会建立两个目录 SSH 和 Telnet,我们可以直接使用这两个目录,或者自己添加目录。添加目录很简单,在库名(My Connections)或者目录名上点右键 New -> Folder 之后输入自己想要的文件夹名字就可以了。

大家可能会发现库名的右边有个星号 “*”,这表示你的连接库存在没有保存的数据,想一下,我们刚才创建库之后还没有保存呢,现在我们保存一下,点菜单中的 File -> Save Database ,之后选择保存路径即可。这时候星号 “*” 就没有了。

下面我们添加一个连接,在对应的目录名上点右键 New -> Connection(也可以 New -> Connection Wizard 采用向导方式添加),之后会弹出连接的配置窗口,有三个选项卡需要我们分别配置,分别是 Connection(连接)、Login Macro(登录宏)和 PuTTY Session(PuTTY 会话)。下面我分别介绍一下这三类选项的配置。

首先是 Connection(连接)配置:

比较简单,分别填上Name(连接的名字)、Host(服务器地址)、Protocol(协议)、Port(端口)、Enable Login Macro Mode(是否使用登录宏模式)和 Description(连接描述)就可以了。是否使用登录宏这个选项是否选中就看大家自己的需要了,如果选中的话第二个选项卡(Login Macro)中的选项才可以修改。

接下来是 Login Macro(登录宏)配置:

我们可以在这里配置自动登录、登录之后需要自动执行命令等。

从上到下的配置选项分别是:

Auto-connect credentials 自动登录设定
-> Login 登录用户名
-> Password 登录密码

延迟时间设定
-> Connection 连接上服务器之后、自动输入用户名之前的延迟时间
-> Login 自动输入完用户名之后、自动输入密码之前的延迟时间
-> Password 自动输入完密码之后、执行第一个登录自动命令之前的延迟时间
-> Command 每个登录自动命令之间的延迟时间

Post-login command
-> Enable post-login commands 是否开启登录之后自动执行命令功能。如果开启就可以设置 5 个自动命令。
-> Command 1-5 登录之后自动执行的命令,一共可以设置 5 个。

实际上 puttyCM 的自动登录和登录之后自动执行的命令是采用模拟键盘输入的方式进行的,所以正确的设置延迟时间是非常重要的。如果服务器的连接速度很快,我们可以把各个延 迟时间设置的短一些,而如果服务器连接速度比较慢的话,我们必须把延迟时间设置的长一些,以保证在 puttyCM 在帮你自动输入那些数据的时候,服务器也正好处于等待输入的状态,否则可能会出现”答非所问”的情况。

最后是 PuTTY Session(PuTTY 会话)配置:

只有两个需要配置的选项。

第一个是 Session (使用的 PuTTY 的会话设置),由于 puttyCM 实际上还是使用 PuTTY,而且 puttyCM 只能自定义少数几个 PuTTY 的设置,而绝大部分还是使用 PuTTY 自己的会话设置。所以在这里必须选择一个有效的 PuTTY 会话设置。在这里 puttyCM 会读出所有 PuTTY 的会话设置供你选择(所以最好使用原版的 PuTTY,如果是修改版的话 puttyCM 可能无法读出会话设置)。

第二个是附加给 PuTTY 的其他命令行启动参数。如果没有需要附加的话留空即可。

连接配置完成之后,我们可以点 OK,这样这个连接就添加完成了。别忘了保存一下连接库。向导方式添加与之类似,就不单独说了。

这时候,我们双击一个连接,puttyCM 就会自动打开一个 PuTTY,并进行自动登录等自动操作,并把 PuTTY 窗口集成到自己的窗口中作为一个标签。

另外,在菜单的 Tools -> Options -> Hotkeys 中可以配置快捷键,支持快捷键切换标签的哦,非常的方便。

Puttycm常见问题以及解决方法

当最小化puttycm时,不能通过ALT+TAB再次激活窗口,如果重新开始新的程序,则会出现‘Application already started’? (When I minimize Puttycm window it disappears. I can’t reactivate the window using ALT-TAB too. If I try to start the application again it says ‘Application already started’.)

通过改变puttycm的设置来实现,去掉其中的‘Hide when minimized’选项。( Go to the menu bar, click on Tools and then Options. Select General from the options in the left side pane. Now in the right side you can see the check button ‘Hide when minimized’. In this case this would have been enabled. Unselecting this button will solve the problem.)

当最小化puttycm时,不能通过再次单击Puttycm窗口来再次激活窗口。(After I minimize Puttycm windows if I try to reactivate the window by clicking on the Puttycm icon in the taskbar, it does not activate the window sometimes.)

这个是puttycm的已知问题,算是一个bug了,只能尝试用Alt+TAB的解决方法了。(This is another known problem. You just need to use ALT-TAB to restore the window. Sometimes it does not open immediately even after pressing ALT-TAB once. Try doing it again and it will work.)

I created a database and created new connections. But I do not see the connections after reopening puttycm, what happened with the old database I created?

Looks like you did not save the database. After creating a new database and new connections, you might think that all the changes are saved but they are not. You have do explicitly save the database changes by clicking on File from the menu bar and then selecting Save Database.

How to encrypt the database file? Storing passwords in plain text could be a security issue?

There is no in-built feature to encrypt database looks like. There is a check button ‘Enable database encryption’ in Database-> Properties but it’s greyed out. May be the feature is not yet implemented.

But you can encrypt the database file using Windows EFS feature if you have a OS edition that supports the feature(XP home does not support EFS). Just right click on the file and Properties -> Advanced. Select the check button ‘Enable encryption to secure data’.

Where are Puttycm’s registry keys stored ?

You can find Putty connection manager’s registry keys under the node HKEY_CURRENT_USER\Software\ACS\PuTTY Connection Manager

How to disable Ctrl-R binding? Ctrl-R is a shortcut for searching command history in linux. But doing Ctrl-R in Puttycm opens up tab rename window. How to fix this?

Open Tools -> Options -> Hotkeys. Change the shortcut for rename tab to something else. You would be able to search command history now.

Known issues with Puttycm.
Exporting Putty sessions fails with the error ‘Error during export Putty sessions’.
Disabling ‘Show tray icon’ has issue. After restarting Puttycm it shows ‘unexpected error occurred’ message when you try to create a new connection. Puttycm does not work and you will have to enable ‘show tray icon’ to use Puttycm.
I have not found a way of changing the background color to something other than black. If any of you know solution to this please let me know.

MTPutty

另外一个方法易用的多标签管理工具mtputty,可以从如下的网站下载。有效的解决了以上的puttycm的问题

http://fileforum.betanews.com/detail/MTPuTTY/1314194663/1

【解决】ssh登陆远程服务器后,gcc编译出现乱码问题
ssh登陆远程服务器后,gcc编译出现乱码,上网搜了一下原来是ssh终端程序的设置问题,于是在PuTTY下的 Windows->Translation选项下,设置Remote Character Set选项为UFT-8,然后输入ip地址,save一下,打开时在编译就不会出现这个问题了。
打开putty主程序,选择window-〉Appearance-〉Font settings-〉Change……,选择Fixedsys字体,字符集选择CHINESE_GB2312.在window-〉Appearance -〉Translation中,Received data assumed to be in which character set 中,把Use font encoding改为UTF-8.一般这样就行了。
 
  如果经常使用,可以把这些设置保存在session里面。
  其他方法可以尝试:
  打开putty登录成功后,在shell中输入:
# export LC_ALL= ‘zh_CN.utf8′

# vi ~/.bash_profile

LANG=zh_CN.GB18030

LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN

export LANG LANGUAGE
Reference

http://www.putty.ws/Putty-wanquanshiyong

http://www.putty.ws/putty-cm

http://download.csdn.net/detail/nouth/3804792

http://www.blog.163.com/houh-1984/

本文主要介绍ssh客户端putty和多标签多选项卡的putty管理器putty CM(puttycm)、MTPutty的使用方法和常用配置选项说明。

Puttycm常见问题以及解决方法

Puttycm常见问题以及解决方法

当最小化puttycm时,不能通过ALT+TAB再次激活窗口,如果重新开始新的程序,则会出现‘Application already started’? (When I minimize Puttycm window it disappears. I can’t reactivate the window using ALT-TAB too. If I try to start the application again it says ‘Application already started’.)

通过改变puttycm的设置来实现,去掉其中的‘Hide when minimized’选项。( Go to the menu bar, click on Tools and then Options. Select General from the options in the left side pane. Now in the right side you can see the check button ‘Hide when minimized’. In this case this would have been enabled. Unselecting this button will solve the problem.)

当最小化puttycm时,不能通过再次单击Puttycm窗口来再次激活窗口。(After I minimize Puttycm windows if I try to reactivate the window by clicking on the Puttycm icon in the taskbar, it does not activate the window sometimes.)

这个是puttycm的已知问题,算是一个bug了,只能尝试用Alt+TAB的解决方法了。(This is another known problem. You just need to use ALT-TAB to restore the window. Sometimes it does not open immediately even after pressing ALT-TAB once. Try doing it again and it will work.)

I created a database and created new connections. But I do not see the connections after reopening puttycm, what happened with the old database I created?

Looks like you did not save the database. After creating a new database and new connections, you might think that all the changes are saved but they are not. You have do explicitly save the database changes by clicking on File from the menu bar and then selecting Save Database.

How to encrypt the database file? Storing passwords in plain text could be a security issue?

There is no in-built feature to encrypt database looks like. There is a check button ‘Enable database encryption’ in Database-> Properties but it’s greyed out. May be the feature is not yet implemented.

But you can encrypt the database file using Windows EFS feature if you have a OS edition that supports the feature(XP home does not support EFS). Just right click on the file and Properties -> Advanced. Select the check button ‘Enable encryption to secure data’.

Where are Puttycm’s registry keys stored ?

You can find Putty connection manager’s registry keys under the node HKEY_CURRENT_USER\Software\ACS\PuTTY Connection Manager

How to disable Ctrl-R binding? Ctrl-R is a shortcut for searching command history in linux. But doing Ctrl-R in Puttycm opens up tab rename window. How to fix this?

Open Tools -> Options -> Hotkeys. Change the shortcut for rename tab to something else. You would be able to search command history now.

Known issues with Puttycm.
Exporting Putty sessions fails with the error ‘Error during export Putty sessions’.
Disabling ‘Show tray icon’ has issue. After restarting Puttycm it shows ‘unexpected error occurred’ message when you try to create a new connection. Puttycm does not work and you will have to enable ‘show tray icon’ to use Puttycm.
I have not found a way of changing the background color to something other than black. If any of you know solution to this please let me know.

MTPutty

另外一个方法易用的多标签管理工具mtputty,可以从如下的网站下载。有效的解决了以上的puttycm的问题

http://fileforum.betanews.com/detail/MTPuTTY/1314194663/1

【解决】ssh登陆远程服务器后,gcc编译出现乱码问题
ssh登陆远程服务器后,gcc编译出现乱码,上网搜了一下原来是ssh终端程序的设置问题,于是在PuTTY下的 Windows->Translation选项下,设置Remote Character Set选项为UFT-8,然后输入ip地址,save一下,打开时在编译就不会出现这个问题了。
打开putty主程序,选择window-〉Appearance-〉Font settings-〉Change……,选择Fixedsys字体,字符集选择CHINESE_GB2312.在window-〉Appearance -〉Translation中,Received data assumed to be in which character set 中,把Use font encoding改为UTF-8.一般这样就行了。
 
  如果经常使用,可以把这些设置保存在session里面。
  其他方法可以尝试:
  打开putty登录成功后,在shell中输入:
# export LC_ALL= ‘zh_CN.utf8′

# vi ~/.bash_profile

LANG=zh_CN.GB18030

LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN

export LANG LANGUAGE
Reference

http://www.putty.ws/Putty-wanquanshiyong

http://www.putty.ws/putty-cm

http://download.csdn.net/detail/nouth/3804792

http://www.blog.163.com/houh-1984/

本文主要介绍ssh客户端putty和多标签多选项卡的putty管理器putty CM(puttycm)、MTPutty的使用方法和常用配置选项说明。

putty connection manager 一些问题的整理

Evan Yin
putty connection manager 一些问题的整理
不能在窗口内打开链接,打开链接时都会新打开一个窗口
解决:tools->option->plugins->putty->enable additional timing for putty cature(ms): 输入250. 点OK
提示:Object reference not set to an instance of an object
解决:tools->option->general->show tray icon->hide when minimized 重启

参考:

http://www.josefpanerio.com/blog/?p=619

http://superuser.com/questions/255990/alternative-to-putty-connection-manager

https://superuser.com/questions/255990/alternative-to-putty-connection-manager

下面的网站提供了别的工具

http://houh-1984.blog.163.com/blog/static/311278342011101721648934/

centos 7.x设置守护进程的文件数量限制

在Bash中有个ulimit命令,提供了对Shell及该Shell启动的进程的可用资源控制。主要包括打开文件描述符数量、用户的最大进程数量、coredump文件的大小等。

在CentOS 5/6等版本中,资源限制的配置可以在/etc/security/limits.conf设置,针对root/user等各个用户或者*代表所有用户来设置。
当然,/etc/security/limits.d/ 中可以配置,系统是先加载limits.conf然后按照英文字母顺序加载limits.d目录下的配置文件,后加载配置覆盖之前的配置。 一个配置示例如下:

* soft nofile 100000
* hard nofile 100000
* soft nproc 100000
* hard nproc 100000
* soft core 100000
* hard core 100000
不过,在CentOS 7/RHEL 7的系统中,使用Systemd替代了之前的SysV,因此/etc/security/limits.conf
文件的配置作用域缩小了一些。limits.conf这里的配置,只适用于通过PAM认证登录用户的资源限制,它对systemd的service的资源限制不生效。登录用户的限制,与上面讲的一样,通过/etc/security/limits.conf和
limits.d来配置即可。

对于systemd service的资源限制,如何配置呢?

全局的配置,放在文件/etc/systemd/system.conf和/etc/systemd/user.conf。
同时,也会加载两个对应的目录中的所有.conf文件/etc/systemd/system.conf.d/.conf和/etc/systemd/user.conf.d/.conf

其中,system.conf是系统实例使用的,user.conf用户实例使用的。一般的sevice,使用system.conf中的配置即可。systemd.conf.d/*.conf中配置会覆盖system.conf。

DefaultLimitCORE=infinity
DefaultLimitNOFILE=100000
DefaultLimitNPROC=100000
注意:修改了system.conf后,需要重启系统才会生效。

针对单个Service,也可以设置,以nginx为例。

编辑/usr/lib/systemd/system/nginx.service文件,或者/usr/lib/systemd/system/nginx.service.d/my-limit.conf文件,做如下配置:

[Service]
LimitCORE=infinity
LimitNOFILE=100000
LimitNPROC=100000
然后运行如下命令,才能生效。

sudo systemctl daemon-reload
sudo systemctl restart nginx.service
查看一个进程的limit设置:cat /proc/YOUR-PID/limits

例如我的一个nginx service的配置效果:

$ cat /proc/$(cat /var/run/nginx.pid)/limits

Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size unlimited unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 100000 100000 processes
Max open files 100000 100000 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 1030606 1030606 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
顺便提一下,CentOS7自带的/etc/security/limits.d/20-nproc.conf,里面默认设置了非root用户的最大进程数为4096,被limit.d目录中的配置覆盖了。

如何在Ubuntu 16.04上使用UFW设置防火墙

如何在Ubuntu 16.04上使用UFW设置防火墙

介绍

UFW或Uncomplicated Firewall是iptables的接口,旨在简化配置防火墙的过程。 虽然iptables是一个坚实和灵活的工具,但是初学者可能很难学会如何使用它来正确配置防火墙。如果您希望开始保护网络安全,并且不确定使用哪种工具,UFW可能是您的最佳选择。 本教程将向您介绍如何在Ubuntu 16.04上使用UFW设置防火墙。

先决条件

要遵循本教程,您需要:

UFW默认安装在Ubuntu上。如果由于某种原因卸载它,你可以使用sudo apt-get install ufw 。

第1步 – 使用IPv6与UFW(可选)

本教程是用IPv4编写的,但将适用于IPv6,只要您启用它。如果您的Ubuntu服务器启用了IPv6,请确保UFW配置为支持IPv6,以便它将管理除IPv4之外的IPv6的防火墙规则。为此,请使用nano或您喜欢的编辑器打开UFW配置。

sudo nano /etc/default/ufw

然后确保IPV6值为yes 。它应该看起来像这样:

/ etc / default / ufw摘要
...
IPV6=yes
...

保存并关闭文件。现在,当启用UFW时,将配置为写入IPv4和IPv6防火墙规则。但是,在启用UFW之前,我们将确保您的防火墙配置为允许您通过SSH连接。让我们开始设置默认策略。

第2步 – 设置默认策略

如果您刚刚开始使用防火墙,则首先要定义的规则是您的默认策略。这些规则控制如何处理未明确匹配任何其他规则的流量。默认情况下,UFW设置为拒绝所有传入连接,并允许所有传出连接。这意味着任何人尝试到达您的云服务器将无法连接,而服务器内的任何应用程序将能够到达外部世界。 让我们将您的UFW规则设置为默认值,这样我们可以确保您能够遵循本教程。要设置UFW使用的默认值,请使用以下命令:

sudo ufw default deny incoming
sudo ufw default allow outgoing

这些命令设置默认值为拒绝传入和允许传出连接。单独的这些防火墙默认值可能足以用于个人计算机,但是服务器通常需要响应来自外部用户的传入请求。我们将研究下一个。

第3步 – 允许SSH连接

如果我们现在启用了UFW防火墙,它将拒绝所有传入的连接。这意味着,如果我们希望服务器响应这些类型的请求,我们将需要创建明确允许合法传入连接(例如SSH或HTTP连接)的规则。如果您使用的是云服务器,则可能需要允许传入的SSH连接,以便连接和管理服务器。 要将服务器配置为允许传入SSH连接,可以使用以下命令:

sudo ufw allow ssh

这将创建防火墙规则,允许端口22上的所有连接,这是默认情况下SSH守护程序监听的端口。 UFW知道什么SSH和一些其他服务名意味着,因为它们被列为/etc/services文件中的/etc/services 。 但是,我们实际上可以通过指定端口而不是服务名称来编写等效规则。例如,此命令的工作原理与上述相同:

sudo ufw allow 22

如果您将SSH守护程序配置为使用其他端口,则必须指定适当的端口。例如,如果您的SSH服务器正在监听端口2222,则可以使用此命令允许该端口上的连接:

sudo ufw allow 2222

现在您的防火墙已配置为允许传入SSH连接,我们可以启用它。

第4步 – 启用UFW

要启用UFW,请使用以下命令:

sudo ufw enable

您将收到一条警告,指出该命令可能会中断现有的SSH连接。我们已经设置了允许SSH连接的防火墙规则,因此应该继续。用y响应提示。 防火墙现在处于活动状态。随意运行sudo ufw status verbose命令以查看设置的规则。本教程的其余部分将更详细地介绍如何使用UFW,例如允许或拒绝不同类型的连接。

第5步 – 允许其他连接

此时,您应该允许服务器需要响应的所有其他连接。应该允许的连接取决于您的特定需求。幸运的是,你已经知道如何编写允许基于服务名称或端口的连接的规则;我们已经在端口22上使用SSH。您也可以执行以下操作:

  • 端口80上的HTTP,这是未加密的Web服务器使用的,使用sudo ufw allow httpsudo ufw allow 80
  • HTTPS端口443,这是加密的Web服务器使用,使用sudo ufw allow httpssudo ufw allow 443
  • FTP在端口21,用于未加密的文件传输(您可能不应该使用),使用sudo ufw allow ftpsudo ufw allow 21/tcp

除了指定端口或已知服务之外,还有其他几种允许其他连接的方法。

特定端口范围

您可以使用UFW指定端口范围。一些应用程序使用多个端口,而不是单个端口。 例如,要允许使用端口6000 – 6007X11连接,请使用以下命令:

sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp

当使用UFW指定端口范围时,必须指定规则应应用于的协议( tcpudp )。我们以前没有提到过,因为没有指定协议只允许两个协议,这在大多数情况下是OK的。

特定IP地址

使用UFW时,还可以指定IP地址。例如,如果要允许来自特定IP地址(例如工作或家庭IP地址为15.15.15.51 ,则需要指定from ,然后指定IP地址:

sudo ufw allow from 15.15.15.51

您还可以通过添加to any port后面跟端口号to any port指定允许IP地址连接的特定端口。 例如,如果要允许15.15.15.51连接到端口22 (SSH),请使用以下命令:

sudo ufw allow from 15.15.15.51 to any port 22

子网

如果要允许IP地址的子网,您可以使用CIDR表示法来指定网络掩码。例如,如果要允许所有的IP地址范围从15.15.15.115.15.15.254您可以使用此命令:

sudo ufw allow from 15.15.15.0/24

同样,您也可以指定允许子网15.15.15.0/24连接到的目标端口。 再次,我们将使用端口22 (SSH)作为示例:

sudo ufw allow from 15.15.15.0/24 to any port 22

连接到特定的网络接口

如果要创建仅适用于特定网络接口的防火墙规则,可以通过指定“allow in on”,然后指定网络接口的名称来实现。 在继续之前,您可能需要查找网络接口。为此,请使用以下命令:

ip addr
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
...
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default 
...

突出显示的输出指示网络接口名称。它们通常命名为像eth0eth1 。 因此,如果您的服务器有一个名为eth0的公共网络接口,您可以使用此命令允许HTTP流量(端口80 ):

sudo ufw allow in on eth0 to any port 80

这样做将允许您的服务器从公共Internet接收HTTP请求。 或者,如果您希望您的MySQL数据库服务器(端口3306 )监听专用网络接口eth1上的eth1 ,例如,您可以使用以下命令:

sudo ufw allow in on eth1 to any port 3306

这将允许您的专用网络上的其他服务器连接到您的MySQL数据库。

第6步 – 拒绝连接

如果您尚未更改传入连接的默认策略,则UFW将配置为拒绝所有传入连接。通常,通过要求创建明确允许特定端口和IP地址通过的规则,这简化了创建安全防火墙策略的过程。 但是,有时您会希望根据源IP地址或子网拒绝特定连接,也许是因为您知道您的服务器正在从那里受到攻击。此外,如果您希望将默认传入策略更改为允许 (这对于安全性不推荐),您需要为您不希望允许连接的任何服务或IP地址创建拒绝规则。 要编写拒绝规则,可以使用上述命令,将allow替换为deny 。 例如,要拒绝HTTP连接,可以使用以下命令:

sudo ufw deny http

或者如果你想拒绝15.15.15.51的所有连接,你可以使用这个命令:

sudo ufw deny from 15.15.15.51

现在让我们来看看如何删除规则。

第7步 – 删除规则

了解如何删除防火墙规则与知道如何创建它们同样重要。有两种不同的方法指定要删除的规则:按规则编号或实际规则(类似于创建规则时指定的规则)。我们将从规则编号方法开始,因为如果你是UFW的新手,相比编写要删除的实际规则更容易。

按规则编号

如果您使用规则编号删除防火墙规则,您首先要做的是获取防火墙规则列表。 UFW状态命令有一个选项,可以显示每个规则旁边的数字,如下所示:

sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    15.15.15.0/24
[ 2] 80                         ALLOW IN    Anywhere

如果我们决定删除规则2,允许端口80(HTTP)连接,我们可以在UFW删除命令中指定它,如下所示:

sudo ufw delete 2

这将显示确认提示,然后删除规则2,它允许HTTP连接。请注意,如果启用了IPv6,则也要删除相应的IPv6规则。

按实际规则

规则编号的替代方法是指定要删除的实际规则。例如,如果要删除allow http规则,您可以这样写:

sudo ufw delete allow http

您还可以通过allow 80指定规则,而不是按服务名称指定规则:

sudo ufw delete allow 80

此方法将删除IPv4和IPv6规则(如果存在)。

第8步 – 检查UFW状态和规则

在任何时候,您可以使用此命令检查UFW的状态:

sudo ufw status verbose

如果UFW被禁用,默认情况下,你会看到这样:

Status: inactive

如果UFW是活动的,它应该是如果你按照第3步,输出将说它是活动的,它会列出所有设置的规则。例如,如果防火墙设置为允许从任何地方连接SSH(端口22 ),输出可能如下所示:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere

如果要检查UFW如何配置防火墙,请使用status命令。

第9步 – 禁用或重置UFW(可选)

如果您决定不想使用UFW,可以使用此命令禁用它:

sudo ufw disable

使用UFW创建的任何规则将不再处于活动状态。如果需要稍后激活它,可以总是运行sudo ufw enable 。 如果已配置UFW规则,但您决定要重新开始,可以使用reset命令:

sudo ufw reset

这将禁用UFW并删除以前定义的任何规则。请注意,如果您在任何时间修改默认策略,默认策略将不会更改为原始设置。这应该给你一个新的开始与UFW。

结论

您的防火墙现在应该配置为允许(至少)SSH连接。请确保允许您的服务器的任何其他传入连接,同时限制任何不必要的连接,以便您的服务器可以正常工作和安全。 要了解更常见的UFW配置,请查看UFW Essentials:常见防火墙规则和命令教程

Ubuntu防火墙安装和配置

Ubuntu安装UFW防火墙

sudo apt-get install ufw 

一般用户,只需如下设置:
sudo apt-get install ufw
sudo ufw enable
sudo ufw default deny

以上三条命令已经足够安全了,如果你需要开放某些服务,再使用sudo ufw allow开启。

启用

sudo ufw enable 
sudo ufw default deny 
#运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。 
#关闭所有外部对本机的访问,但本机访问外部正常。 

开启/禁用

sudo ufw allow|deny [service] 

打开或关闭某个端口,例如:

sudo ufw allow smtp       #允许所有的外部IP访问本机的25/tcp (smtp)端口 
sudo ufw allow 22/tcp      #允许所有的外部IP访问本机的22/tcp (ssh)端口 
sudo ufw allow 53          #允许外部访问53端口(tcp/udp) 
sudo ufw allow from 192.168.1.100 #允许此IP访问所有的本机端口 
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53 
sudo ufw deny smtp         #禁止外部访问smtp服务 
sudo ufw delete allow smtp #删除上面建立的某条规则 

查看防火墙状态

sudo ufw status 

补充:

#开启/关闭防火墙 (默认设置是’disable’)
ufw enable|disable

#转换日志状态
ufw logging on|off

#设置默认策略 (比如 “mostly open” vs “mostly closed”)
ufw default allow|deny

#许可或者屏蔽某些入埠的包 (可以在“status” 中查看到服务列表[见后文])
#可以用“协议:端口”的方式指定一个存在于/etc/services中的服务名称,也可以通过包的meta-data。 ‘allow’ 参数将把条目加入 /etc/ufw/maps ,而 ‘deny’ 则相反。基本语法如下:
ufw allow|deny [service]

#显示防火墙和端口的侦听状态,参见 /var/lib/ufw/maps。括号中的数字将不会被显示出来。
ufw status

UFW使用范例:

#允许 53 端口
$ sudo ufw allow 53

#禁用 53 端口
$ sudo ufw delete allow 53

#允许 80 端口
$ sudo ufw allow 80/tcp

#禁用 80 端口
$ sudo ufw delete allow 80/tcp

#允许 smtp 端口
$ sudo ufw allow smtp

#删除 smtp 端口的许可
$ sudo ufw delete allow smtp

#允许某特定 IP
$ sudo ufw allow from 192.168.254.254

#删除上面的规则
$ sudo ufw delete allow from 192.168.254.254