標籤彙整: Linux

Linux防火牆iptables基本使用方法

iptables是Linux上常用的防火牆軟件,一般VPS系統裡面默認都有集成。

1、安裝iptables防火牆

如果沒有安裝iptables需要先安裝,CentOS執行:
yum install iptables

Debian/Ubuntu執行:
apt-get install iptables
2、清除已有iptables規則
iptables -F
iptables -X
iptables -Z
3、開放指定的端口
#允許本地回環接口(即運行本機訪問本機)
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# 允許已建立的或相關連的通行
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
#允許所有本機向外的訪問
iptables -A OUTPUT -j ACCEPT
# 允許訪問22端口
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
#允許訪問80端口
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
#允許FTP服務的21和20端口
iptables -A INPUT -p tcp –dport 21 -j ACCEPT
iptables -A INPUT -p tcp –dport 20 -j ACCEPT
#如果有其他端口的話,規則也類似,稍微修改上述語句就行
#禁止其他未允許的規則訪問(注意:如果22端口未加入允許規則,SSH鏈接會直接斷開。)
1).用DROP方法
iptables -A INPUT -p tcp -j DROP
2).用REJECT方法
iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT
4、屏蔽IP
#如果只是想屏蔽IP的話“3、開放指定的端口”可以直接跳過。
#屏蔽單個IP的命令是
iptables -I INPUT -s 123.45.6.7 -j DROP
#封整個段即從123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP
#封IP段即從123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP
#封IP段即從123.45.6.1到123.45.6.254的命令是
iptables -I INPUT -s 123.45.6.0/24 -j DROP
4、查看已添加的iptables規則
iptables -L -n

v:顯示詳細信息,包括每條規則的匹配包數量和匹配字節數
x:在 v 的基礎上,禁止自動單位換算(K、M) vps偵探
n:只顯示IP地址和端口號,不將ip解析為域名

5、刪除已添加的iptables規則

將所有iptables以序號標記顯示,執行:
iptables -L -n –line-numbers

比如要刪除INPUT裡序號為8的規則,執行:
iptables -D INPUT 8
6、iptables的開機啟動及規則保存

CentOS上可能會存在安裝好iptables後,iptables並不開機自啟動,可以執行一下:
chkconfig –level 345 iptables on

將其加入開機啟動。

CentOS上可以執行:service iptables save保存規則。

Debian/Ubuntu上iptables是不會保存規則的。

需要按如下步驟進行,讓網卡關閉是保存iptables規則,啟動時加載iptables規則。
如果當前用戶不是root,即使使用了sudo,也會提示你沒有權限,無法保存,所以執行本命令,你必須使用root用戶.
可以使用sudo -i快速轉到root,使用完成,請及時使用su username切換到普通帳戶.
為了重啟服務器後,規則自動加載,我們創建如下文件:
sudo vim /etc/network/if-pre-up.d/iptables#!/bin/bash
iptables-save > /etc/iptables.rules

添加執行權限。
chmod +x /etc/network/if-pre-up.d/iptables

附上基礎規則:
*filter
:INPUT ACCEPT [106:85568]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [188:168166]
:RH-Firewall-1-INPUT – [0:0]
#允許本地回環接口(即運行本機訪問本機)
-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
#允許已建立的或相關連的通行
-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
#允許所有本機向外的訪問
-A OUTPUT -j ACCEPT
#允許PPTP撥號到外網
-A INPUT -p tcp -m tcp –dport 1723 -j ACCEPT
#僅特定主機訪問Rsync數據同步服務
-A INPUT -s 8.8.8.8/32 -p tcp -m tcp –dport 873 -j ACCEPT
#僅特定主機訪問WDCP管理系統
-A INPUT -s 6.6.6.6/32 -p tcp -m tcp –dport 8080 -j ACCEPT
#允許訪問SSH
-A INPUT -p tcp -m tcp –dport 1622 -j ACCEPT
#允許訪問FTP
-A INPUT -p tcp -m tcp –dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 20 -j ACCEPT
#允許訪問網站服務
-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
#禁止所有未經允許的連接
-A INPUT -p tcp -j DROP
#注意:如果22端口未加入允許規則,SSH鏈接會直接斷開。
#-A INPUT -j REJECT
#-A FORWARD -j REJECT
COMMIT

可以使用以下方法直接載入:
1、複製上面的規則粘貼到這裡,保存本文件
sudo vim /etc/iptables.test.rules
2、把本規則加載,使之生效,注意,iptables不需要重啟,加載一次規則就成了
sudo iptables-restore < /etc/iptables.test.rules 3、查看最新的配置,應該所有的設置都生效了. sudo iptables -L -n 4、保存生效的配置,讓系統重啟的時候自動加載有效配置(iptables提供了保存當前運行的規則功能) iptables-save > /etc/iptables.rules

======
轉載自open-open.com

Linux端口轉發和3389遠程桌面等實用工具

介紹兩個不錯的Linux下的實用工具:

1、端口轉發:rinetd
作用:轉發到達指定端口的請求到另一個IP的指定端口
Ubuntu下可以直接使用apt-get進行安裝,也可以從官方下載源碼編譯:http://www.boutell.com/rinetd/
使用方法:apt-get後默認自啟,修改/etc/rinetd.conf並在末尾添加配置即可
格式為 原目標IP 原端口 轉發目標IP 轉發目標端口
例如:

表示轉發所有連接該伺服器5100和80端口的請求到192.168.43.121上。

2、Linux下連接Windows遠程桌面:rdesktop
可以從官網下載後編譯安裝:http://www.rdesktop.org/
使用方法:rdesktop 192.100.129.201
具體參數可參看幫助說明,例如指定分辨率:rdesktop 192.100.129.201 -g 1440×768

以上,推薦給工作上有需要的人,也當作自己的筆記。
======
kujou_rin

Linux下查看pptpd等VPN撥入日誌的方法

使用pptpd和xl2tpd搭建VPN之後,會發現在/var/log下並沒有詳細的日誌,在syslog中雖然有IP記錄和撥入時間,但卻沒有帳戶和連接等信息,當需要查看當前連接的用戶,或者之前的使用日誌則無從查起。
之前的文章中介紹過利用shell腳本對VPN撥入的PPP連接進行限速,原理是利用ppp撥入時會加載ip-up,事實上在ppp斷開時也會加載ip-down。參考pptpd幫助可以得知其中可以使用的參數。因此可以用如下方法:
在ip-up結尾添加

在ip-down結尾添加

之後當連接撥入和斷開時則寫入日誌,如果擔心日誌過大可以在crontab寫一個自動清理腳本即可。

======
kujou_rin

利用shell腳本對VPN撥入的PPP連接進行限速

  在Linux下使用xl2tpd或pptpd架設VPN服務後,如果需要對撥入的用戶進行限速可以用shell腳本實現。筆者使用tc進行限速,該命令一般預設於Linux中。Linux的VPN在每一個用戶撥入後,會建立一個名為ppp+數字編號的連接並加載 /etc/ppp/ip-up 腳本,因此我們可以把限速的腳本寫在這個文件裡,每次ppp連接建立執行腳本為新連接應用限速規則。
  具體方法是在ip-up的文件末尾加入如下幾行:

  其中down為下行速率,upload為上行速率,這裡的400就是400k/s,iprange是你為撥入用戶分配的ip位址,該位址以外的ip將不受限速規則影響。以上方式筆者在Ubuntu測試通過。

======
kujou_rin