Ежемесячные архивы: Август 2008

ubuntu vpn server

Настройка VPN Сервера на базе Ubuntu 8.04

ставим pptpd
[cc lang=”bash”]sudo apt-get install pptpd[/cc]
редактируем
[cc lang=”bash”]/etc/pptpd.conf[/cc]
ищем строки похожие на
[cc lang=”bash”]localip 192.168.100.4
remoteip 192.168.100.20-51[/cc]
Снимаем комментарии перед ними
localip – ИП адрес будущего VPN сервера
remoteip – ИПы, которые будут выдаваться клиентам

Редактируем
/etc/ppp/chap-secrets
[cc lang=”bash”]# client server secret IP addresses
user pptpd pass 192.168.100.0/13[/cc]
(вот тут структуру бы не нарушать пробелы и табы не путать)

user – логин
pass – его пароль
192.168.10.0/13 – диапазон ИП с которого он будет присоединяться

Дальше пробуем запустить pptpd
[cc lang=”bash”]sudo /etc/init.d/pptpd restart[/cc]
всё запустилось, создаём VPN подключение на клиенте.
Не забываем снять галочку на вкладке “безопасность” “требовать шифрование иначе отключаться”
после чего я смог подключится к серверу.

Дальше чтоб можно было использовать остальные интерфейсы сервера, я добавил
[cc lang=”bash”]echo 1 > /proc/sys/net/ipv4/ip_forward[/cc]
чтоб это не терялось при перезагрузке надо в

/etc/sysctl.conf раскомментировать net.ipv4.ip_forward = 1

Дальше iptables надо сказать чтоб работали НАТ,ом
[cc lang=”bash”]iptables -t nat -A POSTROUTING -s 192.168.10.0/16 -o eth0 -j MASQUERADE[/cc]
Это значит, что всё, что приходит с 192.168.Х.Х слать на eth0 (то что смотрит в инет)

Проверил пинги до своего внешнего сервера (по ипу, всё было замечательно но DNS не отзывались)
для переброски DNS имён я использовал dnsmasq
[cc lang=”bash”]$sudo apt-get install dnsmasq[/cc]
в файле
[cc lang=”bash”]/etc/dnsmasq.conf:[/cc]
я прописал
[cc lang=”bash”]listen-address=192.168.10.1[/cc]
дальше
[cc lang=”bash”]/etc/init.d/dnsmasq restart[/cc]
Теперь надо, чтоб автоматически при подключении мне выдавался правильный ДНС сервер.
идём в /etc/ppp/options
раскомментировал строку
[cc lang=”bash”]ms-dns 192.168.10.1[/cc]
и вписал туда свой днс сервер.

[cc lang=”bash”]/etc/init.d/pptpd restart[/cc]
и в бой.

PS
проявилась одна проблема, что некоторые сайты не желали открываться например mail.ru
один добрый дядька rtzra посоветовал 2 пути решения, одо из которых должно было помочь

первое:
[cc lang=”bash”] iptables -A FORWARD -p tcp –tcp-flags SYN,RST SYN -j TCPMSS –clamp-mss-to-pmtu[/cc]
второе:
[cc lang=”bash”] iptables -A FORWARD -p tcp –tcp-flags SYN,RST SYN -j TCPMSS –set-mss 128[/cc]
Мне помогло второе

Удачи :))

Как созать архив в консоли 7z (для тех кто не читает маны)

Вот чудо команда архивирования

7z a -t7z archive.7z dir1

Упакует dir1 в archive.7z тип архива будет 7z

ну а распаковывать 7z x archive.7z

Файлообменник для офиса (автоматическое удаление через 7 дней)

Нужна была общая папка, в которую бы, каждый мог зайти и кинуть пару файлов для коллеги.
Но такая папка довольно быстро забивается мусором.

smb.conf

[exchange]
path = /var/exchange
comment = Обменник
; available = yes
; browsable = yes
public = yes
writable = yes
hosts allow = 192.168.100.1/16

в крон добавил строку (#crontab -e)

01 0 * * * find /var/exchange/ -type f -mtime +7 -exec rm -f {} \;

01 0 * * * find /var/exchange/ -type d -mtime +7 -exec rm -r {} \;

Каждую ночь находить в /var/exchange/ файлы (вторая строка папки) что созданы ранее чем 7 дней назад и удалять найденные.

Список процессов в borland C++

HANDLE PHandle;
PROCESSENTRY32 ProcEntry;
BOOL Result;
Result=false;
PHandle = CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS,0);
ProcEntry.dwSize = sizeof(PROCESSENTRY32);
if (!Process32First(PHandle, &ProcEntry))
{
if (ExtractFileName(ProcEntry.szExeFile) == “process.exe” || ExtractFileName(ProcEntry.szExeFile) == “process.exe”) Result = true;
}
while(Process32Next(PHandle, &ProcEntry))
if (ExtractFileName(ProcEntry.szExeFile) == “process.exe” || ExtractFileName(ProcEntry.szExeFile) == “process.exe”)
{
Result = true;
}
if(Result) // если нашли прячимся.
{
ShowMessage(“прога нашлась”);
}

Прозрачный прокси (NAT) для небольшой сети

Заметка больше для себя 🙂
Всегда раздавал инет в организации через squid3, но тут захотел сделать всё удобно и для себя и для людей.

Ман не полный, но может кому поможет, а может кто дополнит 🙂

OS ubuntu 8.04 server

Нам потребуется софт (как установить думаю знаете)

1) dhcp у меня уже действовал (dhcp3-server)
2) dnsmasq Для трансляции днс запросов (умеет кстати быть dhcp сервером) (тут ставьте самую новую обязательно)
3) squid3 (для передачи http трафика) (можно и без него пустить если через него то для файрвола сначало надо добавить правило
[cc lang=”bash”]iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.0.0/24 -p tcp -m multiport –dport 80,8080,443 -j DNAT –to 192.168.100.192:3128[/cc]
)
4) iptables (у меня уже был установлен)

в /etc/squid3/squid.conf добавил
[cc lang=”bash”]http_port 3128 transparent
visible_hostname proxy
acl our_networks src 192.168.100.0/255.255.255.0
http_access allow our_networks[/cc]
DHCP говорим выдавать кому надо шлюз по умолчанию тот комп, который будет шлюзом
Можно и ручками прописать тому кто нуждается.

далее в консоли разрешаем форвардинг
[cc lang=”bash”]echo 1 > /proc/sys/net/ipv4/ip_forward[/cc]
дальше в консоли говорим апитейблсам перебрасывать всё что приходит на ppp0
[cc lang=”bash”]iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE[/cc]
Дальше ручками указал на внутренней машине настройки сети
ИП, маску, шлюз и днс(такойже как и шлюз)

Пинги идут rdp работает аська ирк браузер 🙂
Но учтите, что при перезагрузке правило для иптейблса сбросится
Поэтому читаем вот этот пост