作者: 8bto

  • 解决phpmyadmin使用链接表的额外特性尚未激活的方法

    解决方案:

    libraries/config.default.php,将$cfg[‘PmaNoRelation_DisableWarning’]的值改为ture。

    分别修改:

    $cfg[‘Servers’][$i][‘pmadb’] = ”; // ‘phpmyadmin’ – see scripts/create_tables.sql

    $cfg[‘Servers’][$i][‘bookmarktable’] = ”; // ‘pma_bookmark’

    $cfg[‘Servers’][$i][‘relation’] = ”; // ‘pma_relation’

    $cfg[‘Servers’][$i][‘table_info’] = ”; // ‘pma_table_info’

    $cfg[‘Servers’][$i][‘table_coords’] = ”; // ‘pma_table_coords’

    $cfg[‘Servers’][$i][‘pdf_pages’] = ”; // ‘pma_pdf_pages’

    $cfg[‘Servers’][$i][‘column_info’] = ”; // ‘pma_column_info’

    $cfg[‘Servers’][$i][‘history’] = ”; // ‘pma_history’

    $cfg[‘Servers’][$i][‘designer_coords’] = ”;

    修改为:

    $cfg[‘Servers’][$i][‘pmadb’] = ‘phpmyadmin’; // ‘phpmyadmin’ – see scripts/create_tables.sql

    $cfg[‘Servers’][$i][‘bookmarktable’] = ‘pma_bookmark’; // ‘pma_bookmark’

    $cfg[‘Servers’][$i][‘relation’] = ‘pma_relation’; // ‘pma_relation’

    $cfg[‘Servers’][$i][‘table_info’] = ‘pma_table_info’; // ‘pma_table_info’

    $cfg[‘Servers’][$i][‘table_coords’] = ‘pma_table_coords’; // ‘pma_table_coords’

    $cfg[‘Servers’][$i][‘pdf_pages’] = ‘pma_pdf_pages’; // ‘pma_pdf_pages’

    $cfg[‘Servers’][$i][‘column_info’] = ‘pma_column_info’; // ‘pma_column_info’

    $cfg[‘Servers’][$i][‘history’] = ‘pma_history’; // ‘pma_history’

    $cfg[‘Servers’][$i][‘designer_coords’] = ‘pma_designer_coords’;

  • 平面设计常用的制作尺寸列表

    正度纸张:787×1092 mm

    开数(正度) 尺寸 单位(mm)

    全开 781×1086

    2开 530×760 3开 362×781

    4开 390×543 6开 362×390

    8开 271×390

    16开 195×271

    注:成品尺寸=纸张尺寸-修边尺寸

     

    大度纸张:850×1168 mm

    开数(正度) 尺寸 单位(mm)

    全开 844×1162

    2开 581×844 3开 387×844

    4开 422×581 6开 387×422

    8开 290×422

    注:成品尺寸=纸张尺寸-修边尺寸

     

    常见开本尺寸:

    787 x 1092 mm

    开数 尺寸 单位(mm)

    对开:736 x 520

    4开:520 x 368

    8开:368 x 260

    16开:260 x 184

    32开:184 x 130

     

     

    开本尺寸(大度):

    850 x 1168mm

    开数 尺寸 单位(mm)

    对开:570 x 840

    4开:420 x 570

    8开:285 x 420

    16开:210 x 285

    32开:203 x 140

     

    正度纸张:787×1092mm

    开数 尺寸 单位(mm)

    全开 781×1086

    2开 530×760

    3开 362×781

    4开 390×543

    6开 362×390

    8开 271×390

    16开 195×271

    注:成品尺寸=纸张尺寸-修边尺寸

     

    大度×纸张:

    8501168mm

    开数(正度) 尺寸 单位(mm)

    全开 844×1162

    2开 581×844

    3开 387×844

    4开 422×581

    6开 387×422

    8开 290×422

    注:成品尺寸=纸张尺寸-修边尺寸

     

    16开 大度:210×285 正度:185×260

    8开 大度:285×420 正度:260×370

    4开 大度:420×570 正度:370×540

    2开 大度:570×840 正度:540×740

    全开 大:889×1194 小:787×1092

     

    名片:

    横版:90*55mm<方角> 85*54mm<圆角>

    竖版:50*90mm<方角> 54*85mm<圆角>

    方版:90*90mm 90*95mm

     

    IC卡:85x54MM

    三折页广告:

    标准尺寸: (A4)210mm x 285mm

     

    普通宣传册:

    标准尺寸: (A4)210mm x 285mm

     

    文件封套:

    标准尺寸:220mm x 305mm

     

    招贴画:

    标准尺寸:540mm x 380mm

     

    挂旗:

    标准尺寸:8开 376mm x 265mm

     

    4开 540mm x 380mm

     

    手提袋:

    标准尺寸:400mm x 285mm x 80mm

  • 5款免费国外网络存储空间

    1、Box.net。

    免费用户1GB空间,单个文件大小限制为5MB。邀请5个好友注册成功后,免费升级PREMIUM账户

    Box.net还可以设置为本地磁盘。进入【网上邻居】->【添加一个网上邻居】-> 输入https://www.box.net/dav/ 输入用户名密码。

    2、dropsend.com

     

    注册用户获得1G空间。单个文件最大可达1G。可上传jpeg, pdf, MP3。

    3、divshare.com

    注册用户后获得无限空间,单个文件最大达200MB

    4、Mediafire

     

    无需注册可获得无限空间,单个文件最大达100MB

    5、www.megaupload.com

     

    注册获得50G空间,单个文件最大300 MB,下载时需要等待45秒给出链接。

     

    如果有1000人下载了你传的文件还会给你1美元报酬

     

     

     

  • 25种方法让你成为有钱人

    1、做你真正感兴趣的事——你会花很多时间在上面,因此你一定要感兴趣才行,如果不是这样的话,你不愿意把时间花在上面,就得不到成功。

     

    2、自己当老板。为别人打工,你绝不会变成巨富,老板一心一意地缩减开支,他的目标不是使他的职员变成有钱人。

     

    3、提供一种有实效的服务,或一种实际的产品。你要以写作、绘画或作曲变成百万富翁的机会可以说是无限小,而你要在营造业、房地产、制造业发大财的机会比较大。记住,出版商赚的钱比作家多得多。

     

    4、如果你坚持要用自己的灵感来创业?最好选择娱乐业,在这方面,发财的速度相当快,流行歌曲和电视最理想。

     

    5、不论你是演员或商人,尽量增加你的观众。在小咖啡馆唱歌的人,所赚的钱一定比不上替大唱片公司灌唱片的人,地方性的商人,不会比全国性的商人赚的钱多。

     

    6、找出一种需要,然后满足它。社会越变越复杂,人们所需要的产品和服务越来越多,最先发现这些需求而且满足他们的人,是改进现有产品和服务的人,也是最先成为富翁的人。

     

    7、不要不敢采用不同的方式——新的方法和新产品,会造成新的财富。但必须确定你的新方法比旧方法更理想,你的新方法必须增进产品外观、效率、品质、方便或者降低成本。

     

    8、如果你受过专业教育,或者有特殊才能,充分利用它。如果你烧得一手好菜,而却要去当泥水匠,那就太笨了。

     

     

    9、在你着手任何事情之前,仔细地对周围的情形研究一番。政府机关和公共图书馆,可以提供不少资料,先做研究,可以节省你不少时间和金钱。

     

    10、不要一直都想着发大财,不如你想想如何改进你的事业,您应该常常问自己的是:“我如何改良我的事业?”如何使事业进行顺利,财富就会跟着而来。

     

    11、可能的话,进行一种家庭事业,这种方法可以减少费用,增进士气,利润的分配很简单,利润能够得到充分的利用,整个事业控制也较容易。

     

    12、尽可能减少你的费用,但不能牺牲你的品质,否则的话,你等于是在慢性自杀,赚钱的机会不会大。

     

    13、跟同行的朋友维持友谊——他们可能对你很有帮助。

     

    14、把尽量多的时间花在事业上。一天12小时、一星期6天是最低要求,一天14小时到18小时很平常,一星期工作7天最好了。你必须先牺牲家庭和社会上的娱乐,直到你事业站稳为止。也只有到那时候,你才能把责任分给别人。

     

    15、不要不敢自己下决心。听听别人的赞美和批评,但你自己要下决心。

     

    16、不要不敢说实话。拐弯抹角,只会浪费时间,心里想什么就说什么,而且要尽可能地直截了当地、明确地说出来。

     

    17、不要不敢承认自己的错误。犯了错误并不是一种罪行,犯错不改才是罪过。

     

    18、不要因为失败就裹足不前。失败是难免的,也是有价值的,从失败中,你会学到正确的方法论。

     

    19、不要在不可行的观念上打转。一发现某种方法行不通,立即把它放弃。世界上有无数的方法,把时间浪费在那些不可行的方法上是无可弥补的损失。

     

    20、不要冒你承担不起的风险。如果你损失10万元,若损失得起的话,就可以继续下去,但如果你赔不起5万元,而一旦失败的话,你就完蛋了。

     

    21、一再投资,不要让你的利润空闲着,你的利润要继续投资下去,最好投资别的事业或你控制的事业上,那样,才能钱滚钱,替你增加好几倍的财富。

     

    22、请一位高明的律师——他会替你节约更多的金钱和时间,比起你所给予的将要多的多。

     

    23、请一位精明的会计师。最初的时候,你自己记账,但除非你本身是个会计师,你还是请一位精明的会计师,可能决定你的成功和失败——他是值得你花钱的。

     

    24、请专家替你报税。一位机灵的税务专家,可又替你免很多的税。

     

    25、好好维持你的健康和你的平静心灵——否则的话,拥有再多的钱也没有什么意。

  • 特殊QQ表情符号大全

    ░ ▒ ▬ ♦ ◊ ◦ ♠ ♣ ▣ ۰•● ❤ ●•۰► ◄ ▧ ▨ ♨ ◐ ◑ ↔ ↕ ▪ ▫ ☼ ♦

    ♧♡♂♀♠♣♥❤☜☞☎☏⊙◎ ☺☻☼▧▨♨◐◑↔↕▪ ▒ ◊◦▣▤▥ ▦▩◘ ◈◇♬♪♩♭♪の★☆→あぃ£Ю〓§♤♥▶¤๑⊹⊱⋛⋌⋚⊰⊹ ≈ ๑۩۩.. ..۩۩๑ ๑۩۞۩๑ ✲ ❈ ✿ ✲ ❈ ➹ ~.~ ◕‿-。 ☀☂☁【】┱ ┲ ❣ ✚ ✪ ✣ ✤ ✥ ✦❉ ❥ ❦ ❧ ❃ ❂ ❁ ❀ ✄ ☪ ☣ ☢ ☠ ☭ ღ ▶ ▷ ◀ ◁ ☀ ☁ ☂ ☃ ☄ ★ ☆ ☇ ☈ ⊙ ☊ ☋ ☌ ☍ⓛⓞⓥⓔ ╬ 『 』∴ ☀ .♫ ♬ ♩ ♭ ♪ ☆ ∷ ﹌ の ★ ◎ ▶☺ ☻ ► ◄ ▧ ▨ ♨ ◐ ◑ ↔ ↕↘ ☼ ▀ ▄ █ ▌░ ▒ ▬ ♦ ◊ ☜ ☞ ▐ ░ ▒▬ ♦ ◊ ◦ ☼ ♪ の ☆→ ♧ ぃ £ ❤ 。◕‿◕。 ✎ ✟ஐ

     

    ♡.1⊙●○①⊕◎Θ⊙¤㊣★☆♀◆◇◣◢◥▲▼△▽⊿◤ ◥

     

    ♡.2▆ ▇ █ █ ■ ▓ 回 □ 〓≡ ╝╚╔ ╗╬ ═ ╓ ╩ ┠ ┨┯ ┷┏

     

    ♡.3┓┗ ┛┳⊥『』┌ ┐└ ┘∟「」↑↓→←↘↙♀♂┇┅ ﹉﹊﹍﹎╭

     

    ♡.4╮╰ ╯ *^_^* ^*^ ^-^ ^_^ ^(^ ∵∴‖| |︴﹏﹋﹌()〔〕

     

    ♡.5【】〖〗@:!/ ” _ < > `,·。≈{}~ ~() _ -『』√ $ @ * & # ※

     

    ♡.6卐 々∞Ψ ∪∩∈∏ の ℡ ぁ §∮”〃ミ灬ξ№∑⌒ξζω*ㄨ ≮≯ +

     

    ♡.7-×÷+-±/=∫∮∝ ∞ ∧∨ ∑ ∏ ‖∠ ≌ ∽ ≤ ≥ ≈<>じ

     

    ♡.8☆veve↑↓⊙●★☆■♀『』◆◣◥▲Ψ ※◤ ◥ →№←㊣∑⌒〖〗@

     

    ♡.9ξζω□∮〓※∴ぷ▂▃▅▆█ ∏卐【】△√ ∩¤々♀♂∞①ㄨ≡↘↙▂

     

    ♡.10▂ ▃ ▄ ▅ ▆ ▇ █┗┛╰☆╮ ≠ ▂ ▃ ▄ ▅

     

    ♡.1.·°∴ ☆..·°♡Yesterday ♡.·°

     

    ♡.2♡KicaZ宝贝o(╥﹏╥)o ♥♡じ☆ve【 오빠 사랑해요 】*° ^_^…….♧♧

     

    ♡.3┢┦aΡpy ♡^_^♡☜♥☞☞☜ぜ长ヤ乷。◕‿◕。Cool Friends。◕‿◕。

     

    ♡.4【】—一▄【┻┳═一▄【┳一▄【┻═┳一▄【┳-一

     

    ♡.5▄【┻═┳【┳═一▄【┳一·▄【┳═一【┳═一oO

     

    ♡.6-—═┳【∝╬══→::======>>┈━═☆┣▇▇▇═—

     

    ♡.7ゅ≈小鱼≈ゅ卐 ♡ゞ、 时差 7 or 8 小时‘ヅ♡ ◈◇

     

    ♡. 8 …¤¸¸.·´¯`·.¸·.>>–» 洛雨·晴缘«—<<·.¸¸.·´¯`·.¸¸.¤…

     

    ♡. 9 ╬叮咛╬One fifth…☺☺ &( ^___^ )& 麻花辫女孩

     

    ♡. 10 (?o?) 喔? (☆_☆) 眼睛一亮 (*^〔^*) 羞羞脸

     

    ♡. 11 (作鬼脸) ( 「 「 ) ~~~→ 怀疑喔~~ (‧_‧?) 什麼事啊?

     

    ♡. 12 (..) 请问~ (((^^)(^^))) 什麼什麼,告诉我吧!

     

    ♡. 13 ( *^_^* ) 笑(打招呼) ( T___T ) 怎麼会这样… (≥◇≤) 感动~

     

    ♡.14 ……\ ( > < ) / 哇~出现了 ( ⊙ o ⊙ ) 目瞪口呆

     

    ♡.15 ( ¯ □ ¯ ) 脑中一片空白 ( *>.<* ) ~@ 酸~~!

     

    ♡.16 ( E___E ) 念昏了头 ( $ _ $ ) 见钱眼开!( 3__3 ) 刚睡醒~

     

    ♡.17 (b_d) 戴了副眼镜 (*^@^*) 乖~还含个奶嘴哦

     

    ♡.18 ( @^^@) 脸红了啦! o(‧”‧o (皱眉头)

     

    ♡.19 Chris’ Blog™ ♪ ♬ ๑•ิ.•ั๑ ♠ ♣ ✖

     

    ♡.20 ♂ ♀ ♥ ♡ ☜ ☞ ☎ ☏ ⊙ ◎ ☺ ☻► ◄ ▧ ▨ ♨ ◐ ◑ ↔ ↕ ▪ ▫

     

    ♡.21 ☼ ♦ ▀ ▄ █ ▌ ▐ ░ ▒ ▬ ♦ ◊ ◦ ☼ ♠ ♣ ▣ ▤ ▥

     

    ♡.22 ▦ ▩ ◘ ◙ ◈ ♫ ♬ ♪ ♩ ♭ ♪ の ☆→ あ ぃ £ ❤ 。◕‿◕。

     

    ♡.ゃōゃ ⊙▂⊙⊙0⊙⊙^⊙⊙ω⊙⊙﹏⊙⊙△⊙⊙▽⊙

     

    ♡.◑▂◐◑0◐◑^◐◑ω◐◑﹏◐◑△◐◑▽◐

     

    ♡.∩▂∩∩0∩∩^∩∩ω∩∩﹏∩∩△∩∩▽∩

     

    ♡.●▂●●0●●^●●ω●●﹏●●△● ●▽●

     

    ♡.∪▂∪∪0∪∪^∪∪ω∪∪﹏∪∪△∪∪▽∪

     

    ♡. ≥▂≤≥0≤≥^≤≥ω≤≥﹏≤≥△≤≥▽≤

     

    T_T 流眼泪的样子

     

    ~~>_<~~ 痛哭,十分伤心

     

    ⊙⊙ 睁着眼睛看着你

     

    ^_~ 俏皮地向对方眨眼睛

     

    *o* 陶醉

     

    :p 吐舌头

     

    @_@ 高度近视

     

    <@_@> 醉了

     

    o_o 盯着…

     

    ^o^ 扮鬼脸,或者很得意,很自豪

     

    O_O 吃惊

     

    -_- 神秘的笑容

     

    ^_^ 快乐的人儿

     

    _.,_ 裂开嘴轻声笑

     

    ^v^ 很憨地笑

     

    ^^v 成功了,高兴地笑,在用胜利的手势

     

    (^-^) 欢喜

     

    (^o^) 欢喜

     

    *^____^* 大笑

     

    =_=^ 得意

     

    =^_^= 脸红的人儿

     

    *^_^* 脸红

     

    =_= 晕

     

    +_+ 昏迷

     

    ?_? 茫然,不明所以

     

    $_$ 贪心

     

    ~_~ 生气

     

    T^T 生气

     

    >o< 愤怒 .\ /. 愤怒

     

    e_e 困,想睡觉

     

    -_-# 分特(分特=faint、晕,即很无奈、很受不了)

     

    -_-b 流汗

     

    -_-^ 流汗

     

    >_< 表示要发飚了,准备收拾人;或者极度郁闷

     

    -O- 打呵欠

    1)愉快的情况

     

    └(^o^)┘; 偶头好状壮ㄋㄟ“`

    ﹌○﹋ 喔嗨呦^ˇ^≡

    ~^o^~ 大家安安!!

    =^_^= 温馨的微笑!!!

    Y(^_^)Y 举双手胜利

    \^o^/ 欢呼

    ^o^y 胜利^o^y

    ↖(^ω^)↗ 小猪为你打气!

    ~^o^~ 加油呦!

    *^ˍ^* 笑,打

    *^ο^* 哦~,呵呵傻笑

    *^◎^* 呵呵大笑(嘴唇好厚)

    *^÷^* 得意的笑(有上下唇的哟)

    ~~~^_^~~~ 笑毙罗(笑得连眼泪都蹦出来了…)

    (-.-)=3 松ㄌ一口气~

    ~~~///(^v^)\\\~~~ 微笑表示友善!!!~哈~哈~

    ~@^_^@~ 可爱呦!

    \\*^o^*// 可爱ㄋㄟ~

    ~*.*~ 害羞又迷人的小女生

    #^_^# 脸红了!!

    ∩__∩y 耶~~^^ (装可爱?!)

    (*^@^*) 乖~(还含个奶嘴哦) X﹏X糟糕.. 完蛋的意思呀~~

    (° ο°)~@ 晕倒了..

    {{{(>_<}}} 发抖

    ╯﹏╰ 粉无奈~~

    \(╯-╰)/ 很没劲/无耐的意思

    (╯^╰〉 一脸苦瓜

    }_} 粉无奈..粉悲情

    -____-” 唉~~别提了…..

    ._. 受到打击,表情呈现呆滞样~

    (*@^@*〉 悲,晕

    -(- 好伤心.

    //(ㄒoㄒ)// 流泪中…

    ::>_<:: 哭

    〒_〒 鸣~~我在哭…

    %>_<% 我要哭了哦…

    ╰_╯我发火了!! 生气的意思~~~眉毛都翘起来~~

    >_<# 粉生气~冒青筋

    @x@ 生气

    (ˋ^ˊ〉-# 生气

    (>﹏< 不~

    (*+﹏+*)~ @ 受不了~

    x__x, 唉….. 别哭了!

    (2)讶异的

     

    >_<¦¦¦ 很尴尬~!!!

    ^_^; 尴尬

    ⊙﹏⊙‖∣° 真尴尬~~

    ^_^¦¦¦ 好尴尬!

    ^_^” 尴尬的笑…..

    →_→ 怀疑的眼神~~

    ..@_@¦¦¦¦¦.. 头昏眼花

    …(⊙_⊙… ○圭~○列~~怎麼酱?

    o_o …. 沉思(说穿了”呆滞状况”

    O__O” 呆滞的眼神~~~!!

    ///^_^……. 造成”冷”…乾笑~

    ?o?¦¦¦ 听无(就是听不懂ㄉ意思啦^^)

    ( ^_^ )? 什麼意思??

    (+_+)? 不知道你在什麼

    (?ε?)? 哩公啥哇听无啦~

    o_O??? 发生啥事?

    @_@a 搔头,疑惑

    一 一+ 锐利的眼神~

    >”<¦¦¦¦ 伤脑筋的意思~ `(*>﹏<*)′ 好刺激..

    (*@ο@*) 哇~

    O_o 惊讶~~~

    (⊙o⊙) 目瞪口呆

    (°ο°)~ @ 晕倒,不省人事

    *@_@* 崇拜的眼神;眼睛为之一亮

    ★~★ 见到偶像眼睛为之一亮

    (3)表达爱意

     

    ^◎- 爱你呦~~

    (*^‧^*) 啵一个!

    (^_^)∠※ 送你一束花

    (*^〔^*〕 羞羞

    `(*^﹏^*)′ 超级羞羞

    `(*∩_∩*)′ 献上

    4)爱困的

     

    ~_~ 想睡觉了的意思!!

    (~ o ~)~zZ 我想睡啦~

    π_π 打瞌睡

    5)感动的

     

    =@~@= 一个看到美眉就紧张+脸红的大学生.

    @(一-一) 秘密——–嘘“““`

    (ˇ^ˇ〉 不以为然

    (^人^) 拜托啦^^~

    (^_^)/~~ 掰掰~

    *x*… … 你逼我也没用,我劫对不会搜粗弃的!

    ~w_w~ … … 嘘!别吵偶,让偶思考一下!

    (ˇˍˇ) 嗯~,思考中

    ..<{=… 乌鸦乌鸦飞过去表示冷场,无趣…..

    (*>.<*)~ @ 酸~

    ~`o`~ 了解

    ˋ_ˊ* 你不要命啦!!!

    -.- 装蒜 ~>_<~+ 好感人唷…

    Q_Q 流眼泪的样子!!

    (+﹏+) 流泪,感动

    `(+﹏+)′ 超级感动,眼泪不停

    ^_^o ~~~ 感动感动~~~

    ¦¦¦¦¦ 表情篇 ¦¦¦¦¦

     

    (‧_‧?) ( *^_^* ) (..)

    什麼事啊? 笑(打招呼) 请问~

    (((^^)(^^))) ( T___T ) (≥◇≤)

    什麼什麼,告诉我吧! 怎麼会这样… 感动~

    ……\ ( > < ) / ( ⊙ o ⊙ ) ( ¯ □ ¯ )

    哇~出现了 目瞪口呆 脑中一片空白

    ( *>.<* ) ~@ f( ^_^ ) ( E___E )

    酸~~! 呵,这样啊 念昏了头

    ( $ _ $ ) (b_d) ( 3__3 )

    见钱眼开! 戴了副眼镜 刚睡醒~

    (*^@^*) ( @^^@) o(‧”‧o

    乖~还含个奶嘴哦 脸红了啦! (皱眉头)

    (?o?) (☆_☆) (*^〔^*)

    喔? 眼睛一亮 羞羞脸

    &( ^___^ )& (*^﹏^*) (.Q.)

    麻花辫女孩 超级羞羞~ (作鬼脸)

  • 利用iptables来配置linux禁止所有端口登陆和开放指定端口

    1、关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放。

    下面是命令实现:

     

    iptables -P INPUT DROP

    iptables -P FORWARD DROP

    iptables -P OUTPUT DROP

     

    再用命令 iptables -L -n 查看 是否设置好, 好看到全部 DROP 了

    这样的设置好了,我们只是临时的, 重启服务器还是会恢复原来没有设置的状态

    还要使用 service iptables save 进行保存

    看到信息 firewall rules 防火墙的规则 其实就是保存在 /etc/sysconfig/iptables

    可以打开文件查看 vi /etc/sysconfig/iptables

    2、

    下面我只打开22端口,看我是如何操作的,就是下面2个语句

     

    iptables -A INPUT -p tcp –dport 22 -j ACCEPT

    iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT

     

    再查看下 iptables -L -n 是否添加上去, 看到添加了

     

    Chain INPUT (policy DROP)

    target prot opt source destination

    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

     

    Chain FORWARD (policy DROP)

    target prot opt source destination

     

    Chain OUTPUT (policy DROP)

    target prot opt source destination

    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp spt:22

     

    现在Linux服务器只打开了22端口,用putty.exe测试一下是否可以链接上去。

    可以链接上去了,说明没有问题。

     

    最后别忘记了保存 对防火墙的设置

    通过命令:service iptables save 进行保存

     

    iptables -A INPUT -p tcp –dport 22 -j ACCEPT

    iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT

    针对这2条命令进行一些讲解吧

    -A 参数就看成是添加一条 INPUT 的规则

    -p 指定是什么协议 我们常用的tcp 协议,当然也有udp 例如53端口的DNS

    到时我们要配置DNS用到53端口 大家就会发现使用udp协议的

     

    而 –dport 就是目标端口 当数据从外部进入服务器为目标端口

    反之 数据从服务器出去 则为数据源端口 使用 –sport

     

    -j 就是指定是 ACCEPT 接收 或者 DROP 不接收

    3、禁止某个IP访问

    1台Linux服务器,2台windows xp 操作系统进行访问

    Linux服务器ip 192.168.1.99

    xp1 ip: 192.168.1.2

    xp2 ip: 192.168.1.8

     

    下面看看我2台xp 都可以访问的

     

    192.168.1.2 这是 xp1 可以访问的,

    192.168.1.8 xp2 也是可以正常访问的。

     

    那么现在我要禁止 192.168.1.2 xp1 访问, xp2 正常访问,

    下面看看演示

     

    通过命令 iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP

    这里意思就是 -A 就是添加新的规则, 怎样的规则呢? 由于我们访问网站使用tcp的,

    我们就用 -p tcp , 如果是 udp 就写udp,这里就用tcp了, -s就是 来源的意思,

    ip来源于 192.168.1.2 ,-j 怎么做 我们拒绝它 这里应该是 DROP

     

    好,看看效果。好添加成功。下面进行验证 一下是否生效

     

    一直出现等待状态 最后 该页无法显示 ,这是 192.168.1.2 xp1 的访问被拒绝了。

     

    再看看另外一台 xp 是否可以访问, 是可以正常访问的 192.168.1.8 是可以正常访问的

    4、如何删除规则

    首先我们要知道 这条规则的编号,每条规则都有一个编号

     

    通过 iptables -L -n –line-number 可以显示规则和相对应的编号

    num target prot opt source destination

    1 DROP tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306

    2 DROP tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:21

    3 DROP tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:80

    多了 num 这一列, 这样我们就可以 看到刚才的规则对应的是 编号2

     

    那么我们就可以进行删除了

    iptables -D INPUT 2

    删除INPUT链编号为2的规则。

     

    再 iptables -L -n 查看一下 已经被清除了。

    5、过滤无效的数据包

    假设有人进入了服务器,或者有病毒木马程序,它可以通过22,80端口像服务器外传送数据。

    它的这种方式就和我们正常访问22,80端口区别。它发向外发的数据不是我们通过访问网页请求

    而回应的数据包。

     

    下面我们要禁止这些没有通过请求回应的数据包,统统把它们堵住掉。

     

    iptables 提供了一个参数 是检查状态的,下面我们来配置下 22 和 80 端口,防止无效的数据包。

     

    iptables -A OUTPUT -p tcp –sport 22 -m state –state ESTABLISHED -j ACCEPT

     

    可以看到和我们以前使用的:

    iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT

    多了一个状态判断。

     

    同样80端口也一样, 现在删掉原来的2条规则,

    iptables -L -n –line-number 这个是查看规则而且带上编号。我们看到编号就可以

    删除对应的规则了。

     

    iptables -D OUTPUT 1 这里的1表示第一条规则。

     

    当你删除了前面的规则, 编号也会随之改变。看到了吧。

     

    好,我们删除了前面2个规则,22端口还可以正常使用,说明没问题了

     

    下面进行保存,别忘记了,不然的话重启就会还原到原来的样子。

     

    service iptables save 进行保存。

     

    Saving firewall rules to /etc/sysconfig/iptables: [ OK ]

    其实就是把刚才设置的规则写入到 /etc/sysconfig/iptables 文件中。

    6、DNS端口53设置

    下面我们来看看如何设置iptables来打开DNS端口,DNS端口对应的是53

     

    大家看到我现在的情况了吧,只开放22和80端口, 我现在看看能不能解析域名。

     

    host www.google.com 输入这个命令后,一直等待,说明DNS不通

     

    出现下面提示 :

    ;; connection timed out; no servers could be reached

     

    ping 一下域名也是不通

    [root@localhost ~ping www.google.com

    ping: unknown host www.google.com

     

    我这里的原因就是 iptables 限制了53端口。

     

    有些服务器,特别是Web服务器减慢,DNS其实也有关系的,无法发送包到DNS服务器导致的。

     

    下面演示下如何使用 iptables 来设置DNS 53这个端口,如果你不知道 域名服务端口号,你

    可以用命令 : grep domain /etc/services

    [root@localhost ~grep domain /etc/services

    domain 53/tcp # name-domain server

    domain 53/udp

    domaintime 9909/tcp # domaintime

    domaintime 9909/udp # domaintime

     

    看到了吧, 我们一般使用 udp 协议。

    好了, 开始设置。。。

    iptables -A OUTPUT -p udp –dport 53 -j ACCEPT

    这是我们 ping 一个域名,数据就是从本机出去,所以我们先设置 OUTPUT,

    我们按照ping这个流程来设置。

    然后 DNS 服务器收到我们发出去的包,就回应一个回来

    iptables -A INPUT -p udp –sport 53 -j ACCEPT

    同时还要设置

    iptables -A INPUT -p udp –dport 53 -j ACCEPT

    iptables -A OUTPUT -p udp –sport 53 -j ACCEPT

    好了, 下面开始测试下, 可以用 iptables -L -n 查看设置情况,确定没有问题就可以测试了

    [root@localhost ~iptables -L -n

    Chain INPUT (policy DROP)

    target prot opt source destination

    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:80

    ACCEPT udp — 0.0.0.0/0 0.0.0.0/0 udp spt:53

    ACCEPT udp — 0.0.0.0/0 0.0.0.0/0 udp dpt:53

    Chain FORWARD (policy DROP)

    target prot opt source destination

    Chain OUTPUT (policy DROP)

    target prot opt source destination

    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp spt:22 state ESTABLISHED

    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp spt:80 state ESTABLISHED

    ACCEPT udp — 0.0.0.0/0 0.0.0.0/0 udp dpt:53

    ACCEPT udp — 0.0.0.0/0 0.0.0.0/0 udp spt:53

    可以测试一下 是否 DNS 可以通过iptables 了。

    [root@localhost ~host www.google.com

    www.google.com is an alias for www.l.google.com.

    www.l.google.com is an alias for www-china.l.google.com.

    www-china.l.google.com has address 64.233.189.104

    www-china.l.google.com has address 64.233.189.147

    www-china.l.google.com has address 64.233.189.99

    正常可以解析 google 域名。

    ping 方面可能还要设置些东西。

    用 nslookup 看看吧

    [root@localhost ~nslookup

    > www.google.com

    Server: 192.168.1.1

    Address: 192.168.1.1#53

     

    Non-authoritative answer:

    www.google.com canonical name = www.l.google.com.

    www.l.google.com canonical name = www-china.l.google.com.

    Name: www-china.l.google.com

    Address: 64.233.189.147

    Name: www-china.l.google.com

    Address: 64.233.189.99

    Name: www-china.l.google.com

    Address: 64.233.189.104

     

    说明本机DNS正常, iptables 允许53这个端口的访问。

    7、iptables对ftp的设置

    现在我开始对ftp端口的设置,按照我们以前的视频,添加需要开放的端口

    ftp连接端口有2个 21 和 20 端口,我现在添加对应的规则。

    [root@localhost rootiptables -A INPUT -p tcp –dport 21 -j ACCEPT

    [root@localhost rootiptables -A INPUT -p tcp –dport 20 -j ACCEPT

    [root@localhost rootiptables -A OUTPUT -p tcp –sport 21 -j ACCEPT

    [root@localhost rootiptables -A OUTPUT -p tcp –sport 20 -j ACCEPT

    好,这样就添加完了,我们用浏览器访问一下ftp,出现超时。

    所以我刚才说 ftp 是比较特殊的端口,它还有一些端口是 数据传输端口,

    例如目录列表, 上传 ,下载 文件都要用到这些端口。

    而这些端口是 任意 端口。。。 这个 任意 真的比较特殊。

    如果不指定什么一个端口范围, iptables 很难对任意端口开放的,

    如果iptables允许任意端口访问, 那和不设置防火墙没什么区别,所以不现实的。

    那么我们的解决办法就是 指定这个数据传输端口的一个范围。

    下面我们修改一下ftp配置文件。

    我这里使用vsftpd来修改演示,其他ftp我不知道哪里修改,大家可以找找资料。

    [root@localhost rootvi /etc/vsftpd.conf

    在配置文件的最下面 加入

    pasv_min_port=30001

    pasv_max_port=31000

    然后保存退出。

    这两句话的意思告诉vsftpd, 要传输数据的端口范围就在30001到31000 这个范围内传送。

    这样我们使用 iptables 就好办多了,我们就打开 30001到31000 这些端口。

    [root@localhost rootiptables -A INPUT -p tcp –dport 30001:31000 -j ACCEPT

    [root@localhost rootiptables -A OUTPUT -p tcp –sport 30001:31000 -j ACCEPT

    [root@localhost rootservice iptables save

    最后进行保存, 然后我们再用浏览器范围下 ftp。可以正常访问

    用个账号登陆上去,也没有问题,上传一些文件上去看看。

    看到了吧,上传和下载都正常。。 再查看下 iptables 的设置

    [root@localhost rootiptables -L -n

    Chain INPUT (policy DROP)

    target prot opt source destination

    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:21

    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:20

    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpts:30001:31000

     

    Chain FORWARD (policy DROP)

    target prot opt source destination

     

    Chain OUTPUT (policy DROP)

    target prot opt source destination

    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp spt:22

    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp spt:21

    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp spt:20

    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp spts:30001:31000

     

    这是我为了演示ftp特殊端口做的简单规则,大家可以添加一些对数据包的验证

    例如 -m state –state ESTABLISHED,RELATED 等等要求更加高的验证

  • 转发一篇写得不错的关于iptables的文章

    iptables是一个Linux下优秀的nat+防火墙工具,我使用该工具以较低配置的传统pc配置了一个灵活强劲的防火墙+nat系统,小有心得,看了网上也有很多这方面的文章,但是似乎要么说的比较少,要么就是比较偏,内容不全,容易误导,我研究了一段时间的iptables同时也用了很久,有点滴经验,写来供大家参考,同时也备日后自己翻阅。

    首先要说明的是,iptables操作的是2.4以上内核的netfilter.所以需要linux的内核在2.4以上。其功能与安全性远远比其前辈 ipfwadm,ipchains强大,iptables大致是工作在OSI七层的二、三、四层,其前辈ipchains不能单独实现对tcp/udp port以及对mac地址的的定义与操作,所以我想ipchains应该是仅仅工作在三层上的。

     

    我们先简单介绍一下netfilter的大致工作流程,也就是一个数据包(或者叫分组、packet,我个人习惯叫包)在到达linux的网络接口的时候(网卡)如何处理这个包,然后再介绍一下如何用iptables改变或者说控制对这个数据包进行操作。netfilter内部分为三个表,分别是 filter,nat,mangle,每个表又有不同的操作链(Chains)。在filter(过滤)表中,也就是他的防火墙功能的这个表,定义了三个 Chain。分别是INPUT,FORWARD,OUTPUT。也就是对包的入、转发、出进行定义的三个过滤链。对于这个filter表的操作和控制也是我们实现防火墙功能的一个重要手段;在nat(Network Address Translation、网络地址翻译)表中,也就是我们用以实现地址转换和端口转发功能的这个表,定义了PREROUTING, POSTROUTING,OUTPUT三个链,下面我们会对这三个链作详细的说明;而netfilter的mangle表则是一个自定义表,里面包括上面的filter以及nat表中的各种chains,它可以让我们进行一些自定义的操作,同时这个mangle表中的chains在netfilter对包的处理流程中处在一个比较优先的位置,下面有一张图清晰的描绘了netfilter对包的处理流程(该图摘自网上,不知作者是谁,在此深表敬意!),一般情况下,我们用不到这个mangle表,在这里我们就不做介绍了。

    大家可以看到,PREROUTING这个chain在最前面,当一个包来到linux的网络接口的时候先过mangle的PREROUTING,然后是 nat的PREROUTING,从这个chain的名字我们可以看出,这个chain是在路由之前(pre-routing)要过的。为什么要在路由之前过呢?大家可以看到这个图上,上面有一个菱形的部分叫ROUTING,这个ROUTING部分就是Linux的route box,也就是路由系统,它同样有很高深的功能,可以实现策略路由等等一些高级特性,此处我们不做详细解释。单说这个PREROUTING链,因为在这个链里面我们对包的操作是DNAT,也就是改变目的地址和(或端口),通常用在端口转发,或者nat到内网的DMZ区,也就是说当一个包过来的时候我们要改变它的目的地址,大家可以想想,如果一个包在改变目的地址之前就被扔进了route box,让系统选好路之后再改变目的地址,那么选路就可能是错的,或者说毫无意义了,所以,PREROUTING这个Chain一定要在进Routing 之前做。比如说,我们的公网ip是60.1.1.1/24,位于linux中的eth0,内网ip是10.1.1.1/24位于linux中的eth1, 我们的内网有一台web服务器,地址是10.1.1.2/24,我们怎么样能让internet用户通过这个公网ip访问我们内部的这个web服务器呢?我们就可以在这个PREROUTING链上面定义一个规则,把访问60.1.1.1:80的用户的目的地址改变一下,改变为10.1.1.2:80,这样就实现了internet用户对内网服务器的访问了,当然了,这个端口是比较灵活的,我们可以定义任何一个端口的转发,不一定是80–>80,具体的命令我们在下面的例子中介绍,这里我们只谈流程与概念上的实现方法。

     

    好了,我们接着往下走,这个包已经过了两个PREROUTING链了,这个时候,出现了一个分支转折的地方,也就是图中下方的那个菱形(FORWARD),转发!这里有一个对目的地址的判断(这里同样说明了PREROUTING一定要在最先,不仅要在route box之前,甚至是这个对目的地址的判断之前,因为我们可能做一个去某某某ip的地方转到自己的ip的规则,所以PREROUTING是最先处理这个包的 Chain)!如果包的目的地是本机ip,那么包向上走,走入INPUT链处理,然后进入LOCAL PROCESS,如果非本地,那么就进入FORWARD链进行过滤,我们在这里就不介绍INPUT,OUTPUT的处理了,因为那主要是对于本机安全的一种处理,我们这里主要说对转发的过滤和nat的实现。

     

    这里的FORWARD我简单说一下,当linux收到了一个目的ip地址不是本地的包,Linux会把这个包丢弃,因为默认情况下,Linux的三层包转发功能是关闭的,如果要让我们的linux实现转发,则需要打开这个转发功能,可以改变它的一个系统参数,使用sysctl net.ipv4.ip_forward=1或者echo “1” > /proc/sys/net/ipv4/ip_forward命令打开转发功能。好了,在这里我们让linux允许转发,这个包的目的地址也不是本机,那么它将接着走入FORWARD链,在FORWARD链里面,我们就可以定义详细的规则,也就是是否允许他通过,或者对这个包的方向流程进行一些改变,这也是我们实现访问控制的地方,这里同样也是Mangle_FORWARD然后filter_FORWARD,我们操作任何一个链都会影响到这个包的命运,在下面的介绍中,我们就忽略掉mangle表,我们基本用不到操作它,所以我们假设它是透明的。假设这个包被我们的规则放过去了,也就是ACCEPT了,它将进入POSTROUTING部分,注意!这里我注意到一个细节问题,也就是上面的图中数据包过了FORWARD链之后直接进入了POSTROUITNG 链,我觉得这中间缺少一个环节,也就是route box,对于转发的包来说,linux同样需要在选路(路由)之后才能将它送出,这个图却没有标明这一点,我认为它是在过了route box之后才进入的POSTROUITNG,当然了,这对于我们讨论iptables的过滤转发来说不是很重要,只是我觉得流程上有这个问题,还是要说明一下。

     

    同样的,我们在这里从名字就可以看出,这个POSTROUTING链应该是路由之后的一个链,也就是这个包要送出这台Linux的最后一个环节了,这也是极其重要的一个环节!!这个时候linux已经完成(has done..^_^)了对这个包的路由(选路工作),已经找到了合适的接口送出这个包了,在这个链里面我们要进行重要的操作,就是被Linux称为 SNAT的一个动作,修改源ip地址!为什么修改源ip地址?很多情况需要修改源地址阿,最常见的就是我们内网多台机器需要共享一个或几个公网ip访问 internet,因为我们的内网地址是私有的,假如就让linux给路由出去,源地址也不变,这个包应该能访问到目的地,但是却回不来,因为 internet上的N多个路由节点不会转发私有地址的数据包,也就是说,不用合法ip,我们的数据包有去无回。有人会说:“既然是这样,我就不用私有 ip了,我自己分配自己合法的地址不行吗?那样包就会回来了吧?”答案是否定的,ip地址是ICANN来分配的,你的数据包或许能发到目的地,但是回来的时候人家可不会转到你那里,internet上的路由器中的路由信息会把这个返回包送到那个合法的获得ip的地方去,你同样收不到,而你这种行为有可能被定义为一种ip欺骗,很多设备会把这样的包在接入端就给滤掉了,可能都到不了你要访问的那个服务器,呵呵。

     

    那么Linux如何做SNAT呢?比如一个内网的10.1.1.11的pc访问202.2.2.2的一个web服务器,linux的内网接口10.1.1.1在收到这个包之后把原来的PC的 ip10.1.1.11改变为60.1.1.1的合法地址然后送出,同时在自己的ip_conntrack表里面做一个记录,记住是内网的哪一个ip的哪个端口访问的这个web服务器,自己把它的源地址改成多少了,端口改成多少了,以便这个web服务器返回数据包的时候linux将它准确的送回给发送请求的这个pc.

     

    大体的数据转发流程我们说完了,我们看看iptables使用什么样的参数来完成这些操作。

     

    在描述这些具体的操作之前,我还要说几个我对iptables的概念的理解(未必完全正确),这将有助于大家理解这些规则,以实现更精确的控制。上文中我们提到过,对包的控制是由我们在不同的Chain(链)上面添加不同的规则来实现的,比如我们对过滤表(filter table)添加规则来执行对包的操控。那么既然叫链,一定就是一条或者多条规则组成的了,这时就有一个问题了,如果多个规则对同一种包进行了定义,会发生什么事情呢?在Chain中,所有的规则都是从上向下来执行的,也就是说,如果匹配了第一行,那么就按照第一行的规则执行,一行一行的往下找,直到找到符合这个类型的包的规则为止。如果找了一遍没有找到符合这个包的规则怎么办呢?itpables里面有一个概念,就是Policy,也就是策略。一说这个东西大家可能就会觉得比较麻烦,什么策略阿,我对于它的理解就是所谓这个策略就是chain中的最后一条规则,也就是说如果找了一遍找不到符合处理这个包的规则,就按照policy来办。这样理解起来就容易多了。iptables 使用-P来设置Chain的策略。

     

    好了,我们言归正传,来说说iptables到底怎样实现对包的控制

     

    先介绍一下iptables如何操作链

     

    对链的操作就那么几种,-I(插入) -A(追加) -R(替换) -D(删除) -L(列表显示)

     

    这里要说明的就是-I将会把规则放在第一行,-A将会放在最后一行。

     

    比如我们要添加一个规则到filter表的FORWARD链

     

    iptables -t filter -A FORWARD -s 10.1.1.11 -d 202.1.1.1 -j ACCEPT

     

    上面的命令意思为:追加一个规则至filter表中的FORWARD链尾,允许(-j ACCEPT)源地址为10.1.1.11目的地址为202.1.1.1的数据包通过。其中-t后面跟的是表名,在-A后面跟Chain名,后面的小写的 -s为源地址,-d为目的地址,-j为处理方向。

     

    在iptables中,默认的表名就是filter,所以这里可以省略-t filter直接写成:iptables -A FORWARD -s 10.1.1.11 -d 202.1.1.1 -j ACCEPT

     

     

     

    iptables中的匹配参数:

     

    我们在这里就介绍几种常用的参数,详细地用法可以man iptables看它的联机文档,你会有意外的收获。

     

    -s匹配源地址

     

    -d匹配目的地址

     

    -p协议匹配

     

    -i入接口匹配

     

    -o出接口匹配

     

    –sport,–dport源和目的端口匹配

     

    -j跳转,也就是包的方向

     

    其中还有一个!参数,使用!就是取反的意思。下面我们简单举几个例子介绍一下。

     

    -s这个参数呢就是指定源地址的,如果使用这个参数也就是告诉netfilter,对于符合这样一个源地址的包怎么去处理,可以指定某一个单播ip地址,也可以指定一个网络,如果单个的ip地址其实隐含了一个32位的子网掩码,比如-s 10.1.1.11 其实就是-s 10.1.1.11/32 同样我们可以指定不同的掩码用以实现源网络地址的规则,比如一个C类地址我们可以用-s 10.1.1.0/24来指定。

     

    -d参数与-s格式一样。

     

    -i参数是指定入接口的网络接口,比如我仅仅允许从eth3接口过来的包通过FORWARD链,就可以这样指定iptables -A FORWARD -i eth3 -j ACCEPT

     

    -o是出接口,与上同.

     

     

     

    我们下面用一些简单的实例来step by step看看iptables的具体配置方法。

     

     

     

    实例一:简单的nat路由器

     

    环境介绍:

     

    linux 2.4 +

     

    2个网络接口

     

    Lan口:10.1.1.254/24 eth0

     

    Wan口:60.1.1.1/24 eth1

     

    目的:实现内网中的节点(10.1.1.0/24)可控的访问internet。

     

    首先将Lan的节点pc的网关指向10.1.1.254

     

    确定你的linux的ip配置无误,可以正确的ping通内外的地址。同时用route命令查看linux的本地路由表,确认指定了可用的ISP提供的默认网关。

     

    使用sysctl net.ipv4.ip_forward=1打开linux的转发功能。

     

    iptables -P FORWARD DROP

     

    将FORWARD链的策略设置为DROP,这样做的目的是做到对内网ip的控制,你允许哪一个访问internet就可以增加一个规则,不在规则中的ip将无法访问internet.

     

     

     

    iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT

     

    这条规则规定允许任何地址到任何地址的确认包和关联包通过。一定要加这一条,否则你只允许lan IP访问没有用,至于为什么,下面我们再详细说。

     

     

     

    iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -j SNAT –to 60.1.1.1

     

    这条规则做了一个SNAT,也就是源地址转换,将来自10.1.1.0/24的地址转换为60.1.1.1

     

    有这几条规则,一个简单的nat路由器就实现了。这时你可以将允许访问的ip添加至FORWARD链,他们就能访问internet了。

     

    比如我想让10.1.1.9这个地址访问internet,那么你就加如下的命令就可以了。

     

    iptables -A FORWARD -s 10.1.1.9 -j ACCEPT

     

     

     

    也可以精确控制他的访问地址,比如我就允许10.1.1.99访问3.3.3.3这个ip

     

    iptables -A FORWARD -s 10.1.1.99 -d 3.3.3.3 -j ACCEPT

     

     

     

    或者只允许他们访问80端口。

     

    iptables -A FORWARD -s 10.1.1.0/24 -p tcp –dport http -j ACCEPT

     

    更多的控制可以自己灵活去做,或者查阅iptables的联机文档。

     

    实例二:端口转发

    环境介绍:

     

    linux 2.4 +

     

    2个网络接口

     

    Lan口:10.1.1.254/24 eth0

     

    Lan内web server: 10.1.1.1:80

     

    Lan内ftp server: 10.1.1.2:21

     

    Wan口:60.1.1.1/24 eth1

     

    目的:对内部server进行端口转发实现internet用户访问内网服务器

     

     

     

     

     

    同样确认你的linux的各项配置正常,能够访问内外网。

     

    iptables -P FORWARD DROP

     

    iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT

     

    也需要加入确认包和关联包的允许通过

     

     

     

    如果你要把访问60.1.1.1:80的数据包转发到Lan内web server,用下面的命令

     

    iptables -t nat -A PREROUTING -d 60.1.1.1 -p tcp –dport 80 -j DNAT –to 10.1.1.1:80

     

    ftp服务也同样,命令如下:

     

    iptables -t nat -A PREROUTING -d 60.1.1.1 -p tcp –dport 21 -j DNAT –to 10.1.1.2:21

     

    好了,命令完成了,端口转发也做完了,本例能不能转发呢?不能,为什么呢?我下面详细分析一下。对于iptables好像往外访问的配置比较容易,而对内的转发似乎就有一些问题了,在一开始的时候我就先说了一些关于netfilter的流程问题,那么我就简单说说做了这些配置之后为什么有可能还不行呢?

     

    能引起这个配置失败的原因有很多,我们一个个的来说:

     

    第一,本例中,我们的FORWARD策略是DROP,那么也就是说,没有符合规则的包将被丢弃,不管内到外还是外到内,我们在这里依然不讨论那个确认包和关联包的问题,我们不用考虑他的问题,下面我会详细说一下这个东西,那么如何让本例可以成功呢?加入下面的规则。

     

    iptables -A FORWARD -d 10.1.1.1 -p tcp –dport 80 -j ACCEPT

     

    iptables -A FORWARD -d 10.1.1.2 -p tcp –dport 21 -j ACCEPT

     

    有没有觉得有一些晕?为什么目的地址是10.xxx而不是60.xxx人家internet用户不是访问的60.xxx吗?呵呵,回到上面看看那个图吧, FORWARD链在什么位置上,它是在PREROUTING之后,也就是说当这个包到达FORWARD链的时候,目的地址已经变成10.xxx了,假如 internet用户的请求是这样202.1.1.1:1333–>60.1.1.1:80,在经过了我们的PREROUTING链之后将变成 202.1.1.1:1333–>10.1.1.1:80,这个时候如果你设置一个目的地址为60.xxx的规则有用吗?呵呵,这是问题一。这个时候应该可以完成端口转发的访问了,但是有一些时候还是不行?为什么?看问题二。

     

    第二,内网server的ip配置问题,这里我们以web server为例说明一下(ftp情况有一些特殊,下面我们再详细讨论,说确认包和关联包的时候讨论这个问题),上面说到,有的时候可以访问了,有的时候却不行,就是这个web server的ip设置问题了,如果web server没有指定默认的网关,那么在作了上面的配置之后,web server会收到internet的请求,但是,他不知道往哪里回啊,人家的本地路由表不知道你那个internet的ip,202.1.1.1该怎么走。如果你使用截包工具在web server上面察看,你会发现server收到了来自202.1.1.1:1333–>10.1.1.1:80的请求,由于你没有给web server配置默认网关,它不知道怎么回去,所以就出现了不通的情况。怎么办呢?两个解决方法:一就是给这个server配置一个默认网关,当然要指向这个配置端口转发的linux,本例是10.1.1.254,配置好了,就一定能访问了。有一个疑问?难道不需要在FORWARD链上面设置一个允许 web server的ip地址访问外网的规则吗?它的包能出去?答案是肯定的,能出去。因为我们那一条允许确认包与关联包的规则,否则它是出不去的。第二种方法,比较麻烦一些,但是对服务器来说这样似乎更安全一些。方法就是对这个包再作一次SNAT,也就是在POSTROUTING链上添加规则。命令如下:

     

    iptables -t nat -A POSTROUTING -d 10.1.1.1 -p tcp –dport 80 -j SNAT –to 10.1.1.254

     

    ftp的方法相同。这条命令不太好懂??其实很简单,如果使用这条命令,那么你的web server不需要再设置默认网关,就能收到这个请求,只要他和linux的lan ip地址是能互访的(也就是说web server和Linux的Lan ip在一个广播域),我们在根据上面的netfilter流程图来分析这个包到底被我们怎么样了,首先一个请求202.1.1.1:1333–> 60.1.1.1:80被linux收到了,进入PREROUTING,发现一个规则(iptables -t nat -A PREROUTING -d 60.1.1.1 -p tcp –dport 80 -j DNAT –to 10.1.1.1:80)符合,好了,改你的目的地址,于是这个包变成了202.1.1.1:1333–>10.1.1.1:80,继续往前走,进入FORWARD链,okay,也有一条规则允许通过(iptables -A FORWARD -d 10.1.1.1 -p tcp –dport 80 -j ACCEPT),进入route box选路,找到合适的路径了,继续进入POSTROUTING链,耶?又发现一个符合的规则(iptables -t nat -A POSTROUTING -d 10.1.1.1 -p tcp –dport 80 -j SNAT –to 10.1.1.254),原来是一个SNAT,改你的源地址,于是这个包变成了10.1.1.254:xxxx–>10.1.1.1:80。为什么用xxxx了,这里的端口是随机的,我也不知道会是什么。而整个的两次变化的过程都会记录在linux的ip_conntrack中,当web server收到这个包的时候,发现,原来是一个内网自己兄弟来的请求阿,又在一个广播域,不用找网关,把返回包直接扔给交换机了,linux在收到返回包之后,会根据他的ip_conntrack中的条目进行两次变换,返回真正的internet用户,于是完成这一次的访问。

     

     

     

     

     

    看了上面的两个例子,不知道大家是否清楚了iptables的转发流程,希望对大家有所帮助,下面我们就说说我一直在上面提到的关于那个 ESTABLISHED,RELATED的规则是怎么回事,到底有什么用处。说这个东西就要简单说一下网络的数据通讯的方式,我们知道,网络的访问是双向的,也就是说一个Client与Server之间完成数据交换需要双方的发包与收包。在netfilter中,有几种状态,也就是new, established,related,invalid。当一个客户端,在本文例一中,内网的一台机器访问外网,我们设置了规则允许他出去,但是没有设置允许回来的规则阿,怎么完成访问呢?这就是netfilter的状态机制,当一个lan用户通过这个linux访问外网的时候,它发送了一个请求包,这个包的状态是new,当外网回包的时候他的状态就是established,所以,linux知道,哦,这个包是我的内网的一台机器发出去的应答包,他就放行了。而外网试图对内发起一个新的连接的时候,他的状态是new,所以linux压根不去理会它。这就是我们为什么要加这一句的原因。还有那个 related,他是一个关联状态,什么会用到呢?tftp,ftp都会用到,因为他们的传输机制决定了,它不像http访问那样,Client_IP: port–>server:80 然后server:80–>Client_IP:port,ftp使用tcp21建立连接,使用20端口发送数据,其中又有两种方式,一种主动 active mode,一种被动passive mode,主动模式下,client使用port命令告诉server我用哪一个端口接受数据,然后server主动发起对这个端口的请求。被动模式下, server使用port命令告诉客户端,它用那个端口监听,然后客户端发起对他的数据传输,所以这对于一个防火墙来说就是比较麻烦的事情,因为有可能会有new状态的数据包,但是它又是合理的请求,这个时候就用到这个related状态了,他就是一种关联,在linux中,有个叫 ftp_conntrack的模块,它能识别port命令,然后对相应的端口进行放行。

     

    一口气写了这么多东西,不知道质量如何,大家凑和着看吧,希望多多交流共同进步,我还是一个linux的初学者,难免很多谬误,希望高手赐教指正,以期不断进步。

     

    对了,还有几个在实际中比较实用(也比较受用:-))的命令参数,写出来供大家参考

     

    iptables -L -n

     

    这样的列表会跳过linux的domain lookup,有的时候使用iptables -L会比较慢,因为linux会尝试解析ip的域名,真是罗嗦,如果你的dns server比较不爽的话,iptables -L就会让你很不爽,加一个-n参数就好了。列表刷的就出来。当然了,如果你的linux就是做防火墙,建议把nameserver去掉,在 /etc/resolve.conf里面,因为有时候使用route命令也会比较慢列出来,很是不爽。

     

     

     

    iptables -L -v

     

    这个命令会显示链中规则的包和流量计数,嘿嘿,看看哪些小子用的流量那么多,用tc限了他。

     

     

     

    cat /proc/net/ip_conntrack

     

    查看目前的conntrack,可能会比较多哦,最好加一个|grep “关键字”,看看你感兴趣的链接跟踪

     

    wc -l /proc/net/ip_conntrack

     

    看看总链接有多少条。

     

    iptables-save >/etc/iptables

     

    把当前的所有链备份一下,之所以放到/etc下面叫iptables,因为这样重起机器的时候会自动加载所有的链,经常地备份一下吧,否则如果链多,万一掉电重启,你还是会比较痛苦。

     

  • MySQL配置外网远程访问管理数据库的方法

    MySQL安装后,默认只允许通过127.0.0.1的方式在服务器访问3306端口

    1). 3306端口是不是没有打开?

    使用nestat命令查看3306端口状态:

    ~# netstat -an | grep 3306

    tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

    从结果可以看出3306端口只是在IP 127.0.0.1上监听,所以拒绝了其他IP的访问。

    解决方法:修改/etc/mysql/my.cnf文件。打开文件,找到下面内容:

    # Instead of skip-networking the default is now to listen only on

    # localhost which is more compatible and is not less secure.

    bind-address = 127.0.0.1

    把上面这一行注释掉或者把127.0.0.1换成合适的IP,建议注释掉。

    重新启动后,重新使用netstat检测:

     

    ~# netstat -an | grep 3306

    tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

    2). 问题解决了吗?

    现在使用下面命令测试:

    ~# mysql -h 10.1.1.2 -u root -p

    Enter password:

    ERROR 1130 (00000): Host ‘B0324-Desktop.local’ is not allowed to connect to this MySQL server

    结果出乎意料,还是不行。

    解决方法:原来还需要把用户权限分配各远程用户, MySQL默认root账户不带%而是127.0.0.1,因此需要修改。

    登录到mysql服务器,使用grant命令分配权限

    mysql> grant all on database_name.* to user_name@’%’ identified by ‘user_password’;

    其中database_name、user_name和user_password根据实际情况设置。

    完成后使用mysql命令连接,提示成功,为了确保正确可以再远程登陆测试一下。

  • freebsd声卡安装

    1、kldload snd_driver #这是个meta 驱动,一次加载了最常见的设备驱动。这会提高搜索正确驱动的速度。

    2、cat /dev/sndstat 查看当前声卡类型。

    3、在/boot/defaults/loader.conf 中修改相关load snd driver为”YES”,将相关类型的声卡选项为”YES”

    vim /boot/defaults/loader.conf,找到这一 Sound modules 小节,

    如果不清楚的话就在最后把All sound drivers选项中的“NO”改为“YES”。(注意:如果在声卡驱动的这个小节,没有发现你的声卡类型,也可以手工自己加入一行,内容为你的声卡类型_load = “YES” )

    重启就OK了..

  • 国内外著名安全站点

    著名的商业化安全公司

    http://www.iss.net(国外领先的网络安全软件及服务提供商)

    http://www.is-one.net(由IIS,软银,趋势公司共同投资建立的安氏中国)

    http://www.nai.com(国外著名的计算机病毒及网络安全软件服务提供商)

    http://www.eeye.com(国外著名的安全公司)

    http://www.atstake.com(@stack公司的网站,国外)

    著名的漏洞发布站点

    http://www.securityfocus.com(国外著名的漏洞发布站点,即bugtrap)

    http://ntsecurity.net(关于windows系统安全的综合网站)

    http://www.cert.org(美国计算机应急反映小组)

    http://xforce.iss.net(有IIS公司发布的漏洞库)

    http://www.bugnet.com(漏洞修补网站)

    http://icat.nist.gov/icat.cfm(ICAT漏洞发布及漏洞库搜索站点)

    http://www.chinafirst.org.cn(中国信息安全论坛)

    http://www.cert.org.cn/cert/index.php(中国计算机网络应急处理中心)

    著名的黑客站点

    http://www.hack.co.za(国外著名的黑客站点,有较全的exploit库)

    http://www.phrack.com(国外著名的phrack安全杂志)

    http://www.antionline.com(国外经典的黑客站点)

    http://www.rootshell.com(国外经典的漏洞及exploit库)

    http://whitehats.com(白帽子网站,有最新的IDS规则库下载,关于snort等)

    http://lsd-pl.net(发布最新的exploits程序)

    http://packetstormsecurity.com(国外著名的漏洞库,有大量expolits程序)

    http://oliver.efri.hr/~crv/security/bugs/lists.html(有整理好的最新漏洞库下载)

    http://astalavista.box.sk(著名的软件破解站点)

     

    http://www.3w3.org/ 病毒

     

    allhack.com

    本网站提供了图书馆及下载专区。该图书馆为初学者提供了黑客知识和计算机技术基础知识。下载区包括了扫描工具,FLOOD工具,解密工具,拒绝服务攻击等。

    alw.nih,gov

    在安全目录下有大量的安全工具

    anticode.com

    入侵攻击,拒绝服务攻击,密钥记录器,邮件炸弹,最流行的IRC客户程序脚本,扫描器,嗅探器,口令解密器,木马等程序。此网站更新及时,而且维护也很好

    auscert.org.au

    澳大利亚电脑紧急反应小组,包括大量入侵攻击及其工作原理的信息。

    astalavista.com

    一个很棒的黑客工具和入侵攻击的搜索网站

    bugtraq.com

    提供安全及入侵攻击有用信息的数据库

    cerias.cs.purder.edu

    本网站包含非常多的网络安全方面的信息和工具。

    cert.org

    Carngie Mellon大学的计算机紧急反应小组的网站。

    ciac.llnl.gov

    提供病毒信息,及时的电子公告牌,邮件列表,安全源信息,工具和操作系统的站点。

    cultdeadcow.com

    一个黑客组织的主页

    ftp.cert.dfn.de

    软件下载的FTP站点里面工具多多哦,好象是很老了可惜但是值得学习

    deny.de

    网页包含了大量的攻击方法,文本,脚本和程序,包含大量信息源并为初学者提供了入门知识

    elitehackers.com

    为博学的黑客提供的信息公告牌,是上了等级的黑客去的地方。可找到最新的入侵攻击及对解决办法

    enslaver.com

    FTP列表列出了其所有的入侵攻击及脚本

    firosoft.com/security/philez

    入侵攻击,工具,文本文件在目录下一一列出,并根据不同的操作系统进行分类。

    first.org

    意外事件反应小组的组织

    ftp.nec.com

    在/pub/securit目录下面包含一个巨大的工具库

    ftp.porcupine.org

    大量安全工具,没有标签和分类。

    ftp.win.tue.nl

    在/pub/securit目录下包含巨大的安全工具库

    geek-speak.net

    一个在计算机安全上致力于whitepaper的站点。

    hack.co.za

    大量根据操作系统或攻击类型分类的攻击。应该有很多人知道把

    hackernews.com

    关于黑客组织的每日报道。

    hackersclub.com

    提供大量的信息资源和文本文件,并保持时时更新

    infosyssec.net

    大量的新闻来源,从病毒,入侵攻击到安全防范。

    infowar.co.uk

    该网站主要包括文章,建议和工具

    insecure.org

    新闻,入侵攻击(win,linux,solaris等系统),安全工具和whiepaper,更新好快

    l0pht,com

    包含大量关于网络安全和攻击的有用的工具

    net,tamu.edu

    安全工具在

    packetstorm.securify.com

    新闻和入侵攻击的站点,随时更新攻击的数据库。为每一条攻击提供注解。可查询攻击数据库。俺入侵的话,第一个就去查它。真的很好哦““

    rootshell.com

    提供定制的在不同系统中的攻击。此网站研究的现实大量不同的入侵攻击,还提供可以搜索的数据库及文档

    sans.org

    SANS研究院的主页,包含大量的研究讨论和认证安全的信息。安全专家有时间应该去看看~

    securiteam.com

    关于安全问题新闻文章的网站,列出了攻击,工具和各种各样的软件

    securityfocus.com

    BugTraq主页,提供有用的攻击信息

    ussrbak.com

    自我探索攻击的站点,自学者的好地方

    whitehats.com

    包含了一个巨大的黑客工具库

    wiretrip.net/rfp

    Rainforest Puppy的主页,主要是针对CGI脆弱行的信息和攻击NT的信息

    www-arc.com

    可供下载的系统和网络扫描器,入侵公告牌

    介绍这么多的国外黑客资源现在来一点安全资料,下面是邮件列表安全方面的,下面是更新及时的邮件列表

    http://www.ntsecurity.net通过在线签约网页假如NT列表

    Alert向发送邮件,并在邮件的正文中写入Subscribe alert

    Bug Traq向发送邮件,并在邮件的正文中写入subscribe buy traq

    Cert 并在邮件的正文中写入subscribe

    FreeBSD Hackers Digest 并在邮件的中文中写入subscribe

    Happy Hacker Digest 并在邮件的中文中写入subscribe

    Linux security 并在邮件的中文中写入subscribe

    Linux Admin 并在邮件的中文中写入subscribe linux-admin

    NTBuy Traq maito:LISTSERV@LISTSERV.NTBUYTRAQ.COM并在邮件的中文中写入SUBSCRIBE NTBUYTRAQ firtnamelastname

    下面是一些新闻组

    news://alt.cracks

    news://alt.binaries.cracks

    news://alt.binaries.cracks.phrozen-crew

    news://alt.2600.warez

    news://alt.2600.programz

    news://alt.warez.ibm-pc

    news://alt.binaries.warez.linux

    news://alt.binaries.warez.mac

    news://alt.binariec.warez.macintosh

     

    news://alt.cracks

    news://alt.binaries.cracks

    news://alt.binaries.cracks.phrozen-crew

    news://alt.2600.warez

    news://alt.2600.programz

    news://alt.warez.ibm-pc

    news://alt.binaries.warez.linux

    news://alt.binaries.warez.mac

    news://alt.binariec.warez.macintosh

    国外黑客 http://lsd-pl.net/ LsD的站,最新最有效的exploit

    国外黑客 http://www.s0ftpj.org 提供一些水平很高的小工具

    国外黑客 http://www.w00w00.org/ w00w00组织的主页

    国外黑客 http://www.2600.com/ 2600 Magazine

    国外黑客 www.experts-exchange.com 全球有名的社区

    国外黑客 www.is-it-true.org 类似于FAQ的站点,资源丰富

    国外黑客 www.ussrback.com ussr is back

    国外黑客 www.securiteam.com 非常好的安全文章漏洞利用工具下载站点

    国外黑客 www. neworder.box.sk Box Network team

    国外黑客 www.sysinternals.com sysinternals

    国外黑客 www.blackhat.com Black Hat, Inc

    国外黑客 http://p.ulh.as pulhashttp://www.blackcode.com/http://blog.ziffdavis.com/seltzer

    Larry Seltzer是美国eWEEK.com的安全栏目编辑, 有空的时候可以看看他的关于安全方面的想法.

    http://www.security.nnov.ru/

    俄罗斯一个安全站点

    http://www.io.com/~vkp/

    VKP的个人主页,linux安全方面的专业人员(程序员).

    http://chess.eecs.berkeley.edu/trust/

    加州大学伯克利分校”普及安全技术研究小组”

    http://linsec.ca/

    加拿大一个主要收集linux安全相关的文档资料的站点, 也包括其它类Unix系统如OpenBSD, Mac OS X等.

    http://www.rootsecure.net/

    一个专门为系统管理员和黑客提供安全新闻的网站,成立于2002年9月8日

    http://www.2600.com/http://slashdot.org/http://www.antionline.com/

    国外安全 http://www.neohapsis.com/ 内容极为丰富

    国外安全 http://www.deadly.org/ 大量关于OpenBSD的资料文档教程

    国外安全 http://www.guninski.com/ 安全专家Guninski的主页,有大量由系统漏洞

    国外安全 http://www.sysinternals.com 有很好的windows下的工具及源代码

    国外安全 http://www.securityflaw.com/bible/ 入侵检测等文档整理较好的站点

    国外安全 http://www.secinf.net/ 网络安全方面的大量文档

    国外安全 http://www.incident-response.org 入侵反应,数据恢复工具等

    国外安全 http://www.securityfocus.com/ 安全资料整合最好的站

    国外安全 http://www.project.honeynet.org/ 由安全界一帮牛人组织的一个project

    国外安全 http://www.packetstormsecurity.com 资料全面的安全站

    国外安全 http://www.securityportal.com/ 还可以看看的安全站

    国外安全 http://www.ussrback.com/ 比较活跃的安全站

    国外安全 http://www.attrition.org/ 内容全面的安全站

    国外安全 http://www.wiretrip.net/rfp/2/index.asp rfp的安全主页,提供权威的安全信息

    国外安全 http://www.antionline.com/ 有些特色栏目的安全站

    国外安全 http://www.eeye.com/ eeye公司的主页,提供权威性的安全建议和工具

    国外安全 http://www.insecure.org/ Fyodor的主页,nmap的老家,还有exploit

    国外安全 http://www.atstake.com/ @stack公司的主页,提供权威的安全建议

    国外安全 http://www.bugnet.com/ 提供漏洞修补

    国外黑客 http://lsd-pl.net/ LsD的站,最新最有效的exploit

    国外黑客 http://www.s0ftpj.org 提供一些水平很高的小工具

    国外黑客 http://phrack.org/ Phrack的主页,经典的黑客技术电子杂志

    国外黑客 http://www.w00w00.org/ w00w00组织的主页

    国外黑客 http://mixter.void.ru/ Mixter的个人主页,不少有用的工具

    国外黑客 http://www.thehackerschoice.com/ THC黑客组织的页面,很好的安全文档和工具

    国外黑客 www.win2000mag.net    Windows