本文针对gnome桌面
直接ALT+F2 输入dconf-editor,展开/org/gnome/gedit/preferences/encodings
auto-detected的Value中加入 ‘GB18030’ ,加在CURRENT前面;
分类: 菜鸟Linux笔记
菜鸟学习LINUX笔记
-
Gedit中文乱码解决方法
-
chmod命令setuid setgid sticky bit说明
permission的符号模式表:
模式 名字 说明 r 读 设置为可读权限 w 写 设置为可写权限 x 执行权限 设置为可执行权限 X 特殊执行权限 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行 s setuid/gid 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限 t 粘贴位 设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位 一个文件都有一个所有者, 表示该文件是谁创建的. 同时, 该文件还有一个组编号, 表示该文件所属的组, 一般为文件所有者所属的组.
如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限. 而setuid, setgid 可以来改变这种设置.
setuid: 设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.
setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.
sticky bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限,则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky
bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件.下面说一下如何操作这些标志:
操作这些标志与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作,
1) chmod u+s temp — 为temp文件加上setuid标志. (setuid 只对文件有效)
chmod g+s tempdir — 为tempdir目录加上setgid标志 (setgid 只对目录有效)
chmod o+t temp — 为temp文件加上sticky标志 (sticky只对文件有效)2) 采用八进制方式. 对一般文件通过三组八进制数字来置标志, 如 666, 777, 644等. 如果设置这些特殊标志, 则在这组数字之外外加一组八进制数字. 如 4666, 2777等. 这一组八进制数字三位的意义如下,
abc
a – setuid位, 如果该位为1, 则表示设置setuid
b – setgid位, 如果该位为1, 则表示设置setgid
c – sticky位, 如果该位为1, 则表示设置sticky
设置完这些标志后, 可以用 ls -l 来查看. 如果有这些标志, 则会在原来的执行标志位置上显示. 如
rwsrw-r– 表示有setuid标志
rwxrwsrw- 表示有setgid标志
rwxrw-rwt 表示有sticky标志
那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
这三个权限的数字位可以这么理解
[root@server3 test]# 1 1 1
[root@server3 test]# rw s rws rwt
[root@server3 test]#
[root@server3 test]# SUID SGID Sticky
所以,可以得出
chmod 4777是设sid
chmod 2777是设置gid
chmod 1777是设sticky
常用操作
找出所有危险的目录(设置目录所有人可读写却没有设置sticky位的目录)
find / -perm -0007 -type d
找出所有设置了suid的文件
find / -perm -4000 -type f -
samba passwd的几种方式
passdb backend就是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam。sam应该是security account manager(安全账户管理)的简写。
1.smbpasswd
passdb backend = smbpasswd
该方式是使用smb自己的工具smbpasswd来给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。
smbpasswd -a 用户名 #添加一个samba用户
smbpasswd -d 用户名 #禁用一个samba用户
smbpasswd -e 用户名 #恢复一个samba用户
smbpasswd -x 用户名 #删除一个samba用户
2.tdbsam
passdb backend = tdbsam
该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。passdb.tdb 用户数据库可以使用smbpasswd –a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。我们也可以使用pdbedit命令来建立Samba账户并由其pdbedit管 理。
用户的建立可以先用mksmbpasswd建立一个smppasswd文件,然后用pdbedit将文件里的用户导入数据库。
cat /etc/passwd | mksmbpasswd > /etc/samba/smbpasswd
pdbedit命令的参数很多,我们列出几个主要的:
pdbedit -i smbpasswd:/etc/samba/smbpasswd
pdbedit -a username:新建Samba账户。
pdbedit -x username:删除Samba账户。
pdbedit -L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit -Lv:列出Samba用户列表的详细信息。
pdbedit -c “[D]” –u username:暂停该Samba用户的账号。
pdbedit -c “[]” –u username:恢复该Samba用户的账号。
3.ldapsam
passdb backend = smbpasswd
该方式则是基于LDAP的账户管理方式来验证用户。首先要建立LDAP服务,然后设置“passdb backend = ldapsam:ldap://LDAP Server”。
注:samba3.x的早期版本默认使用tdb库也就是smb.conf默认设定为passdb backend = tdbsam,只需要注释掉该行添加smb passwd file = /etec/samba/smbpasswd即可使用smbpasswd存储加密密钥。samba3.5.6更加规范了passdb backend参数的使用,取消了smb passwd file设定,如果简单注释掉passdb backend参数,密钥文件也不会被存储到smbpasswd。所以很多人说怎么修改smb.conf的配置,smbpasswd文件都无法生成,就算 手工创建,内容也是0字节。
这里只能说samba版本升级了,规则也变化了。现在无论是使用tdb数据库存储密钥还是smbpasswd文本存储密钥都要设定相对应的 passdb backend参数。要用传统的文本方式存储只需这样设定passdb backend = smbpasswd:/etc/samba/smbpasswd(后面跟的是绝对路径)>,不要再画蛇添足的写上smb passwd file = /etec/samba/smbpasswd,该参数已经不适用于新版本的samba了。
注意,这里的用户名必须是linux中存在的用户,可以使用useradd命令在系统中添加一个用户,然后再增加一个对应的samba用户,也 就是一个用户名使用的是两套密码。一个是系统用户密码,另一个密码存储在/etc/samba/smbpasswd文件中的samba密码,这样可以防止 系统用户密钥外泄带来的安全隐患。
除了上面的措施外,samba还提供了一个更安全的方法,用户名映射功能,这样做的好处是防止系统内的真实用户名暴露,在smb.conf中增 加username map = /etc/samba/smbuser设定,再手工建立该文件。username map参数详解,比如有一个系统用户名为shaogroup.com,同时我们也设定其为samba的登录名,虽然是两套独立的密码,但依然告诉了用户,我系统内 也存在shaogroup.com这个用户。严格的说这也是违背系统安全规则的,不法人士可能会利用该用户名暴力猜解获得系统内帐户权限。samba提供的用户名 映射功能,只需编辑smbuser文件,格式为:真实的用户名 = 映射出的用户名(随便自定义);shaogroup.com = nas_guest nas_nobody(可以映射出多个用户名,注意中间的空格)。设定完成后,我们只需将nas_guest告诉用户即可,无须担心真实的 shaogroup.com用户名暴露。
-
Linux系统提示There are stopped jobs怎么办?
运行命令 logout 时,系统提示: There are stopped jobs 。这时可以运行命令 jobs ,看看是什么程序还在运行然后运行命令 fg ,把还在运行的程序调出来,安全退出该程序就可以了。
-
解决nginx出现File not found的问题
使用php-fpm解析PHP,”No input file specified”,”File not found”是令nginx新手头疼的常见错误,原因是php-fpm进程找不到SCRIPT_FILENAME配置的要执行的.php文件,php-fpm返回给nginx的默认404错误提示。
比如我的网站doucument_root下没有test.php,访问这个文件时通过抓包可以看到返回的内容。
HTTP/1.1 404 Not Found
Date: Fri, 21 Dec 2012 08:15:28 GMT
Content-Type: text/html
Proxy-Connection: close
Server: nginx/1.2.5
X-Powered-By: PHP/5.4.7
Via: 1.1 c3300 (NetCache NetApp/6.0.7)
Content-Length: 16
File not found.
很多人不想用户直接看到这个默认的404错误信息,想自定义404错误.
给出解决办法前我们来先分析下如何避免出现这类404错误,然后再说真的遇到这种情况(比如用户输入一个错误不存在的路径)时该怎么办,才能显示自定义的404错误页。
一、错误的路径被发送到php-fpm进程
出现这类错误,十个有九个是后端fastcgi进程收到错误路径(SCRIPT_FILENAME),而后端fastcgi收到错误路径的原因大都是配置错误。
常见的nginx.conf的配置如下:
server {
listen [::]:80;
server_name example.com www.example.com;
access_log /var/www/logs/example.com.access.log;
location / {
root /var/www/example.com;
index index.html index.htm index.pl;
}
location /images {
autoindex on;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/example.com$fastcgi_script_name;
include fastcgi_params;
}
}
这个配置中有很多不合理的地方,其中一个明显的问题就是root指令被放到了location / 块。如果root指令被定义在location块中那么该root指令只能对其所在的location生效。其它locaiont中没有root指令,像location /images块不会匹配任何请求,需要在每个请求中重复配置root指令来解决这个问题。因此我们需要把root指令放在server块,这样各个location就会继承父server块定义的$document_root,如果某个location需要定义一个不同的$document_root,则可以在location单独定义一个root指令。
另一个问题就是fastCGI参数SCRIPT_FILENAME 是写死的。如果修改了root指令的值或者移动文件到别的目录,php-fpm会返回“No input file specified”错误,因为SCRIPT_FILENAME在配置中是写死的并没有随着$doucument_root变化而变化,我们可以修改SCRIPT_FILENAME配置如下:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
所以我们不能忘记在server块中配置root指令,不然$document_root的值为空,只会传$fastcgi_script_name到php-fpm,这样就会导致“No input file specified”错误。
二、请求的文件真的不存在
当nginx收到一个不存在的.php文件的请求时,因为nginx只会检查$uri是否是.php结尾,不会对文件是否存在进行判断,.php结尾的请求nginx会直接发给php-fpm处理。php-fpm处理时找不到文件就会返回“No input file specified”带着“404 Not Found”头。
解决办法
我们在nginx拦截不存在的文件,请求并返回自定义404错误
使用 try_files 捕捉不存在的urls并返回错误。
location ~ .php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME ….
……………………………..
……………………………..
}
上面的配置会检查.php文件是否存在,如果不存在,会返回404页面。
-
wordpress mb_strimwidth() 函数不可用解决办法
博客搬家将以前的APACHE换成了NGINX,配置的过程中没有安装php5_mbstring导致首页的摘要始终无法显示,之前做模板时首页摘要是用mb_strimwidth() 函数进行截断,一开始还以为是模板出问题了,修改了半天,都无法解决,最后无意间在网上看到一篇文章才发现自己没安装php5_mbstring导致的,直接安装然后重启nginx和php-fpm就OK了。
mb_strimwidth() 函数进行截断,对于中文用户来说,这个函数是相当实用的,因为很多摘要的方法都会把中文字截断出乱码,因为中文字在 UTF-8 编码下占三个长度,如果你使用的是VPS,那么直接安装php5-mbstring即可,如果是虚拟主机,那就看主机都默认支持这个函数的,前提是要开启 mb_string 这个模块。那如果主机没有开启 mb_string 就不能使用 mb_strimwidth() 函数了吗?有没有变通的办法呢?答案当然是 YES
先在 WordPress 主题的 functions.php 文件中添加如下代码:
function dm_strimwidth($str ,$start , $width ,$trimmarker ){
$output = preg_replace(‘/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,’.$start.’}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,’.$width.’}).*/s’,’\1′,$str);
return $output.$trimmarker;
}
接下来在需要的地方调用如下:
echo dm_strimwidth(strip_tags($post->post_content),0,200,’<a href=”‘.get_permalink().’”>……[阅读全文]</a>’);
-
Nginx配置文件nginx.conf中文详解
#定义Nginx运行的用户和用户组
user www www;
#nginx进程数,建议设置为等于CPU总核心数。
worker_processes 8;
#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;
#进程文件
pid /var/run/nginx.pid;
#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。
worker_rlimit_nofile 65535;
#工作模式与连接数上限
events
{
#参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
use epoll;
#单个进程最大连接数(最大连接数=连接数*进程数)
worker_connections 65535;
}
#设定http服务器
http
{
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #默认文件类型
#charset utf-8; #默认编码
server_names_hash_bucket_size 128; #服务器名字的hash表大小
client_header_buffer_size 32k; #上传文件大小限制
large_client_header_buffers 4 64k; #设定请求缓
client_max_body_size 8m; #设定请求缓
sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
autoindex on; #开启目录列表访问,合适下载服务器,默认关闭。
tcp_nopush on; #防止网络阻塞
tcp_nodelay on; #防止网络阻塞
keepalive_timeout 120; #长连接超时时间,单位是秒
#FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。下面参数看字面意思都能理解。
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#gzip模块设置
gzip on; #开启gzip压缩输出
gzip_min_length 1k; #最小压缩文件大小
gzip_buffers 4 16k; #压缩缓冲区
gzip_http_version 1.0; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_comp_level 2; #压缩等级
gzip_types text/plain application/x-javascript text/css application/xml;
#压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m; #开启限制IP连接数的时候需要使用
upstream blog.yourname.com {
#upstream的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。
server 192.168.80.121:80 weight=3;
server 192.168.80.122:80 weight=2;
server 192.168.80.123:80 weight=3;
}
#虚拟主机的配置
server
{
#监听端口
listen 80;
#域名可以有多个,用空格隔开
server_name www.yourname.com yourname.com;
index index.html index.htm index.php;
root /data/www/yourname;
location ~ .*.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
#图片缓存时间设置
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 10d;
}
#JS和CSS缓存时间设置
location ~ .*.(js|css)?$
{
expires 1h;
}
#日志格式设定
log_format access ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for’;
#定义本虚拟主机的访问日志
access_log /var/log/nginx/access.log access;
#对 “/” 启用反向代理
location / {
proxy_pass http://127.0.0.1:88;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#以下是一些反向代理的配置,可选。
proxy_set_header Host $host;
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,
proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k;
#设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
#设定查看Nginx状态的地址
location /NginxStatus {
stub_status on;
access_log on;
auth_basic “NginxStatus”;
auth_basic_user_file conf/htpasswd;
#htpasswd文件的内容可以用apache提供的htpasswd工具来产生。
}
#本地动静分离反向代理配置
#所有jsp的页面均交由tomcat或resin处理
location ~ .(jsp|jspx|do)?$ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
}
#所有静态文件由nginx直接读取不经过tomcat或resin
location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{ expires 15d; }
location ~ .*.(js|css)?$
{ expires 1h; }
}
}
-
nginx中配置ip直接访问的默认站点
nginx中,每个站点都是由一个server段定义的,这里面设定了监听的ip和端口,站点的域名,根目录等信息。但一般来说vps主机上每个ip上会对应几个不同的站点。这样就会出现一个问题,直接访问这个ip的话,访问的会是哪个站点?
答案是这样的:在Listen ip:port; 这个指令行中,有一个参数default_server,指定了它后,这个server段就会是这个ip的默认站点;如果没有这个参数,那么默认ip直接访问的是nginx.conf中出现的第一个server段对应的站点。
server{
listen 80 default_server;
server_name ixq.us;
rewrite ^ http://www.ixq.us$request_uri?;
}
-
Linux防火墙Firestarter
Firestarter是一款适合个人用户和小型企业的图形界面iptables配置工具,可以用来构建和维护防火墙,加固网络安全。对于与局域网共享唯一公共IP地址的NAT防火墙来说,这是一个不错的选择,并且在防火墙之后,它还有一些公共服务,或者一个分离的DMZ。它拥有打开或关闭防火墙的一些简易命令,可以查看状态视图和当前的活动。
虽然Firestarter需要GTK并设计在GNOME下面运行,但是它同样也能够在KDE下面运行。
主要特点
适用于台式机,服务器和网关
可共享Internet连接
允许自定义入站和出站访问策略
使用向导轻松配置防火墙
设置和控制DHCP服务器
实时展示外来入侵和其他防火墙事件,方便用户及时调整ICMP参数以帮助阻止DoS攻击
查看活动的网络连接,包括任何进站和出站的访问必须经过防火墙
安装
# aptitude install firestarter
当然,你也可以用Synaptic(新立得软件包管理器)来安装。
主界面截图
运行向导配置
点击 FireStarter 主界面的菜单 防火墙 → 运行向导 可以进入 FireStarter 的运行向导界面。不要看到英文就担心,这里的关键信息文字已经被翻译成中文,很容易理解。按照向导的指示点击“前进”。
第一步是选择连接到 Internet 的网络设备,一般来说由软件自动侦测的网络设备不会有错的。但这些网络设备至少需要是已经激活的网络连接(例如 eth0、eth1)等。
第二步是选择连接到内部局域网的接口设备,一般来说用户可以相信软件的自动侦测功能。这里有个特别的选项用于设置是否实现共享 Internet 上网,即“Enable Internet connection sharing”,如果你要使内部局域网内的其他计算机可以共享这台主机上的 Internet 连接,那么请在这个选项旁边打个勾。
第三步是选择是否立即启用防火墙。通常这个选项是打勾选择的。
这时候点击“保存”,一切已经就绪。
使用首选项
和别的 Linux 软件一样,FireStarter 也有“首选项”使用户可以随时对该软件进行各方面的配置。你可以从左边的折叠菜单里选择 防火墙 / 网络配置,然后在右边的配置界面中一步完成。
事实上这个界面囊括了运行向导中的三个步骤,你可以在这里分别选择连接到 Internet 的网络设备(Internet connected network device)和连接到内部局域网的网络设备(Local network connected device)。
然后在“Enable Internet connection sharing”选项前面打个勾。在配置窗口的右下角点击“接受”按钮,配置就完成了。
在“首选项”的接口(Interface)菜单中,在以下两个选项的前面都打个勾:
启用托盘图标
Minimize to tray on window close(当窗口关闭时最小化到系统托盘)
在“首选项”的防火墙菜单中,在以下选项的前面打个勾:
Start/restart firewall on program startup(启动时运行 FireStarter)
Start/restart firewall on dial-out(如果你使用拨号网络的话,请开启本项)
Start/restart firewall on DHCP lease renewal(从 DHCP 获得 IP 时自动运行)
ICMP过滤,你可以根据自己的需要勾选。
Tos过滤,也是根据自己的需要勾选。
设置好了,在配置窗口的右下角点击“接受”按钮。
更多配置功能
FIreStarter 的界面非常直观。你可以很容易了解和上手使用其中的各种功能。
你可以在主界面中见到“状态”“事件”“策略”三个选项卡。分别点击,可以看到 FireStarter 防火墙当前的运行状态、被过滤连接的事件日志(你可以随时清空或者保存这些日志)、在“策略”中随时添加删除自定义的防火墙规则以实现更复杂多样的准入和过滤设置。下图为查看事件,被过滤的连接:
自定义防火墙规则,点击策略选项:
新建规则:向局域网内其他计算机开放 https 安全浏览服务的端口
术语
默认策略:在默认情况下,firestarter实现了用户友好的策略,该策略能够保护防火墙主机和客户端系统。在一般情况下,它允许出站流量,并屏蔽那些并不是用来响应出站流量的入站流量。具体说来,默认的firestarter策略如下。
屏蔽新的来自因特网、目的地是防火墙主机或客户端系统的入站连接。
允许那些用来响应由防火墙主机或客户端系统发起的到Internet的连接而发送的入站分组。
允许防火墙主机建立连接。
允许客户端系统建立到因特网的连接。
不允许客户端系统建立到防火墙主机的连接。
在使用防火墙向导设置firestarter之后,就能够修改默认策略以满足你的需要。
(防火墙)主机(系统)——运行着防火墙的系统。
客户端系统——与防火墙主机位于同一个局域网的系统,它们离开局域网的分组以及(特别是从因特网)进入局域网的分组都要经过防火墙主机。
策略——防火墙应用的规则集。
规则——一条语句,用来指定当防火墙在它的网络接口中接收到来自指定系统的指定类型的分组时执行什么动作。
连接——在TCP中,连接指的是两个系统交换的数据所经过的路径。客户端系统通过向服务器系统发送一个SYN(同步)分组打开一条连接。服务器向该客户端发回一个ACK(应答)分组,然后两个系统交换数据。客户端用一个SYN分组将连接关闭。虽然UDP的工作方式有所不同(因为它没有连接的概念),但是就这里的讨论而言,UDP连接这个概念是合适的。
入站连接——这些连接包括来自因特网的连接以及将防火墙主机作为目的地的客户端系统。
出站连接——这些连接包括来自防火墙主机的连接以及将因特网作为目的地的客户端系统。















